⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nameserv.h

📁 samba-3.0.22.tar.gz 编译smb服务器的源码
💻 H
📖 第 1 页 / 共 2 页
字号:
typedef void (*timeout_response_function)(struct subnet_record *,                                          struct response_record *);/* typedef to define the function called when the request that caused this   response record to be created is successful. */typedef void (*success_function)(struct subnet_record *, struct userdata_struct *, ...);/* typedef to define the function called when the request that caused this   response record to be created is unsuccessful. */typedef void (*fail_function)(struct subnet_record *, struct response_record *, ...);/* List of typedefs for success and fail functions of the different query   types. Used to catch any compile time prototype errors. */typedef void (*register_name_success_function)( struct subnet_record *,                                                struct userdata_struct *,                                                struct nmb_name *,                                                uint16,                                                int,                                                struct in_addr);typedef void (*register_name_fail_function)( struct subnet_record *,                                             struct response_record *,                                             struct nmb_name *);typedef void (*release_name_success_function)( struct subnet_record *,                                               struct userdata_struct *,                                                struct nmb_name *,                                               struct in_addr);typedef void (*release_name_fail_function)( struct subnet_record *,                                            struct response_record *,                                             struct nmb_name *);typedef void (*refresh_name_success_function)( struct subnet_record *,                                               struct userdata_struct *,                                                struct nmb_name *,                                               uint16,                                               int,                                               struct in_addr);typedef void (*refresh_name_fail_function)( struct subnet_record *,                                            struct response_record *,                                            struct nmb_name *);typedef void (*query_name_success_function)( struct subnet_record *,                                             struct userdata_struct *,                                             struct nmb_name *,                                             struct in_addr,                                             struct res_rec *answers);typedef void (*query_name_fail_function)( struct subnet_record *,                                          struct response_record *,                                              struct nmb_name *,                                          int);  typedef void (*node_status_success_function)( struct subnet_record *,                                              struct userdata_struct *,                                              struct res_rec *,                                              struct in_addr);typedef void (*node_status_fail_function)( struct subnet_record *,                                           struct response_record *);/* Initiated name queries are recorded in this list to track any responses. */struct response_record {	struct response_record *next;	struct response_record *prev;	uint16 response_id;	/* Callbacks for packets received or not. */ 	response_function resp_fn;	timeout_response_function timeout_fn;	/* Callbacks for the request succeeding or not. */	success_function success_fn;	fail_function fail_fn; 	struct packet_struct *packet;	struct userdata_struct *userdata;	int num_msgs;	time_t repeat_time;	time_t repeat_interval;	int    repeat_count;	/* Recursion protection. */	BOOL in_expiration_processing;};/* A subnet structure. It contains a list of workgroups and netbios names. *//*   B nodes will have their own, totally separate subnet record, with their   own netbios name set. These do NOT interact with other subnet records'   netbios names.*/enum subnet_type {	NORMAL_SUBNET              = 0,  /* Subnet listed in interfaces list. */	UNICAST_SUBNET             = 1,  /* Subnet for unicast packets. */	REMOTE_BROADCAST_SUBNET    = 2,  /* Subnet for remote broadcasts. */	WINS_SERVER_SUBNET         = 3   /* Only created if we are a WINS server. */};struct subnet_record {	struct subnet_record *next;	struct subnet_record *prev;	char  *subnet_name;      /* For Debug identification. */	enum subnet_type type;   /* To catagorize the subnet. */	struct work_record     *workgrouplist; /* List of workgroups. */	ubi_trRoot              namelist[1];   /* List of netbios names. */	struct response_record *responselist;  /* List of responses expected. */	BOOL namelist_changed;	BOOL work_changed;	struct in_addr bcast_ip;	struct in_addr mask_ip;	struct in_addr myip;	int nmb_sock;               /* socket to listen for unicast 137. */	int dgram_sock;             /* socket to listen for unicast 138. */};/* A resource record. */struct res_rec {	struct nmb_name rr_name;	int rr_type;	int rr_class;	int ttl;	int rdlength;	char rdata[MAX_DGRAM_SIZE];};/* Define these so we can pass info back to caller of name_query */#define NM_FLAGS_RS 0x80 /* Response. Cheat     */#define NM_FLAGS_AA 0x40 /* Authoritative       */#define NM_FLAGS_TC 0x20 /* Truncated           */#define NM_FLAGS_RD 0x10 /* Recursion Desired   */#define NM_FLAGS_RA 0x08 /* Recursion Available */#define NM_FLAGS_B  0x01 /* Broadcast           *//* An nmb packet. */struct nmb_packet {	struct {		int name_trn_id;		int opcode;		BOOL response;		struct {			BOOL bcast;			BOOL recursion_available;			BOOL recursion_desired;			BOOL trunc;			BOOL authoritative;		} nm_flags;		int rcode;		int qdcount;		int ancount;		int nscount;		int arcount;	} header;	struct {		struct nmb_name question_name;		int question_type;		int question_class;	} question;	struct res_rec *answers;	struct res_rec *nsrecs;	struct res_rec *additional;};/* msg_type field options - from rfc1002. */#define DGRAM_UNIQUE 0x10#define DGRAM_GROUP 0x11#define DGRAM_BROADCAST 0x12#define DGRAM_ERROR 0x13#define DGRAM_QUERY_REQUEST 0x14#define DGRAM_POSITIVE_QUERY_RESPONSE 0x15#define DGRAM_NEGATIVE_QUERT_RESPONSE 0x16/* A datagram - this normally contains SMB data in the data[] array. */struct dgram_packet {	struct {		int msg_type;		struct {			enum node_type node_type;			BOOL first;			BOOL more;		} flags;		int dgm_id;		struct in_addr source_ip;		int source_port;		int dgm_length;		int packet_offset;	} header;	struct nmb_name source_name;	struct nmb_name dest_name;	int datasize;	char data[MAX_DGRAM_SIZE];};/* Define a structure used to queue packets. This will be a linked list of nmb packets. */struct packet_struct{	struct packet_struct *next;	struct packet_struct *prev;	BOOL locked;	struct in_addr ip;	int port;	int fd;	time_t timestamp;	enum packet_type packet_type;	union {		struct nmb_packet nmb;		struct dgram_packet dgram;	} packet;};/* NETLOGON opcodes */#define QUERYFORPDC	 7 /* Query for PDC. */#define SAM_UAS_CHANGE  10 /* Announce change to UAS or SAM. */#define QUERYFORPDC_R	12 /* Response to Query for PDC. */#define SAMLOGON	18#define SAMLOGON_R	19#define SAMLOGON_UNK_R	21#define SAMLOGON_AD_UNK_R 23#define SAMLOGON_AD_R   25/* Ids for netbios packet types. */#define ANN_HostAnnouncement         1#define ANN_AnnouncementRequest      2#define ANN_Election                 8#define ANN_GetBackupListReq         9#define ANN_GetBackupListResp       10#define ANN_BecomeBackup            11#define ANN_DomainAnnouncement      12#define ANN_MasterAnnouncement      13#define ANN_ResetBrowserState       14#define ANN_LocalMasterAnnouncement 15/* Broadcast packet announcement intervals, in minutes. *//* Attempt to add domain logon and domain master names. */#define CHECK_TIME_ADD_DOM_NAMES 5 /* Search for master browsers of workgroups samba knows about,    except default. */#define CHECK_TIME_MST_BROWSE       5 /* Request backup browser announcements from other servers. */#define CHECK_TIME_ANNOUNCE_BACKUP 15/* Request host announcements from other servers: min and max of interval. */#define CHECK_TIME_MIN_HOST_ANNCE   3#define CHECK_TIME_MAX_HOST_ANNCE  12/* Announce as master to WINS server and any Primary Domain Controllers. */#define CHECK_TIME_MST_ANNOUNCE    15/* Time between syncs from domain master browser to local master browsers. */#define CHECK_TIME_DMB_TO_LMB_SYNC    15/* Do all remote announcements this often. */#define REMOTE_ANNOUNCE_INTERVAL 180/* what is the maximum period between name refreshes. Note that this only   affects non-permanent self names (in seconds) */#define MAX_REFRESH_TIME (60*20)/* The Extinction interval: 4 days, time a node will stay in released state  */#define EXTINCTION_INTERVAL (4*24*60*60)/* The Extinction time-out: 1 day, time a node will stay in deleted state */#define EXTINCTION_TIMEOUT (24*60*60)/* Macro's to enumerate subnets either with or without   the UNICAST subnet. */extern struct subnet_record *subnetlist;extern struct subnet_record *unicast_subnet;extern struct subnet_record *wins_server_subnet;extern struct subnet_record *remote_broadcast_subnet;#define FIRST_SUBNET subnetlist#define NEXT_SUBNET_EXCLUDING_UNICAST(x) ((x)->next)#define NEXT_SUBNET_INCLUDING_UNICAST(x) (get_next_subnet_maybe_unicast((x)))/* wins replication record used between nmbd and wrepld */typedef struct _WINS_RECORD {	char name[17];	char type;	int nb_flags;	int wins_flags;	SMB_BIG_UINT id;	int num_ips;	struct in_addr ip[25];	struct in_addr wins_ip;} WINS_RECORD;/* To be removed. */enum state_type { TEST };#endif /* _NAMESERV_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -