winsrepl.h

来自「samba最新软件」· C头文件 代码 · 共 162 行

H
162
字号
/*   Unix SMB/CIFS implementation.   structures for WINS replication client library   Copyright (C) Andrew Tridgell 2005   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 3 of the License, or   (at your option) any later version.   This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.   You should have received a copy of the GNU General Public License   along with this program.  If not, see <http://www.gnu.org/licenses/>.*/#include "librpc/gen_ndr/nbt.h"#include "librpc/gen_ndr/winsrepl.h"/*  main context structure for the wins replication client library*/struct wrepl_socket {	struct socket_context *sock;	struct packet_context *packet;	struct {		struct event_context *ctx;		struct fd_event *fde;	} event;	/* a queue of replies waiting to be received */	struct wrepl_request *recv_queue;	/* the default timeout for requests, 0 means no timeout */#define WREPL_SOCKET_REQUEST_TIMEOUT	(60)	uint32_t request_timeout;	/* counter for request timeouts, after 2 timeouts the socket is marked as dead */	uint32_t timeout_count;	/* remember is the socket is dead */	bool dead;	/* remember if we need to free the wrepl_socket at the end of wrepl_socket_dead() */	bool free_skipped;	struct smb_iconv_convenience *iconv_convenience;};struct wrepl_send_ctrl {	bool send_only;	bool disconnect_after_send;};enum wrepl_request_state {	WREPL_REQUEST_INIT  = 0,	WREPL_REQUEST_RECV  = 1,	WREPL_REQUEST_DONE  = 2,	WREPL_REQUEST_ERROR = 3};/*  a WINS replication request*/struct wrepl_request {	struct wrepl_request *next, *prev;	struct wrepl_socket *wrepl_socket;	enum wrepl_request_state state;	bool trigger;	NTSTATUS status;	struct timed_event *te;	struct wrepl_packet *packet;	struct {		void (*fn)(struct wrepl_request *);		void *private;	} async;};/*  setup an association*/struct wrepl_associate {	struct {		uint32_t assoc_ctx;	} out;};/*  setup an association*/struct wrepl_associate_stop {	struct {		uint32_t assoc_ctx;		uint32_t reason;	} in;};/*  pull the partner table*/struct wrepl_pull_table {	struct {		uint32_t assoc_ctx;	} in;	struct {		uint32_t num_partners;		struct wrepl_wins_owner *partners;	} out;};#define WREPL_NAME_TYPE(flags) (flags & WREPL_FLAGS_RECORD_TYPE)#define WREPL_NAME_STATE(flags) ((flags & WREPL_FLAGS_RECORD_STATE)>>2)#define WREPL_NAME_NODE(flags) ((flags & WREPL_FLAGS_NODE_TYPE)>>5)#define WREPL_NAME_IS_STATIC(flags) ((flags & WREPL_FLAGS_IS_STATIC)?true:false)#define WREPL_NAME_FLAGS(type, state, node, is_static) \	(type | (state << 2) | (node << 5) | \	 (is_static ? WREPL_FLAGS_IS_STATIC : 0))/*  a full pull replication*/struct wrepl_pull_names {	struct {		uint32_t assoc_ctx;		struct wrepl_wins_owner partner;	} in;	struct {		uint32_t num_names;		struct wrepl_name {			struct nbt_name name;			enum wrepl_name_type type;			enum wrepl_name_state state;			enum wrepl_name_node node;			bool is_static;			uint32_t raw_flags;			uint64_t version_id;			const char *owner;			uint32_t num_addresses;			struct wrepl_address {				const char *owner;				const char *address;			} *addresses;		} *names;	} out;};struct resolve_context;#include "libcli/wrepl/winsrepl_proto.h"

⌨️ 快捷键说明

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