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

📄 ctdb_private.h

📁 samba最新软件
💻 H
📖 第 1 页 / 共 3 页
字号:
  allocate a packet for use in client<->daemon communication */struct ctdb_req_header *_ctdbd_allocate_pkt(struct ctdb_context *ctdb,					    TALLOC_CTX *mem_ctx, 					    enum ctdb_operation operation, 					    size_t length, size_t slength,					    const char *type);#define ctdbd_allocate_pkt(ctdb, mem_ctx, operation, length, type) \	(type *)_ctdbd_allocate_pkt(ctdb, mem_ctx, operation, length, sizeof(type), #type)struct ctdb_req_header *_ctdb_transport_allocate(struct ctdb_context *ctdb,						 TALLOC_CTX *mem_ctx, 						 enum ctdb_operation operation, 						 size_t length, size_t slength,						 const char *type);#define ctdb_transport_allocate(ctdb, mem_ctx, operation, length, type) \	(type *)_ctdb_transport_allocate(ctdb, mem_ctx, operation, length, sizeof(type), #type)/*  lock a record in the ltdb, given a key */int ctdb_ltdb_lock(struct ctdb_db_context *ctdb_db, TDB_DATA key);/*  unlock a record in the ltdb, given a key */int ctdb_ltdb_unlock(struct ctdb_db_context *ctdb_db, TDB_DATA key);/*  make a ctdb call to the local daemon - async send. Called from client context.  This constructs a ctdb_call request and queues it for processing.   This call never blocks.*/struct ctdb_call_state *ctdb_client_call_send(struct ctdb_db_context *ctdb_db, 					      struct ctdb_call *call);/*  make a recv call to the local ctdb daemon - called from client context  This is called when the program wants to wait for a ctdb_call to complete and get the   results. This call will block unless the call has already completed.*/int ctdb_client_call_recv(struct ctdb_call_state *state, struct ctdb_call *call);int ctdb_daemon_set_message_handler(struct ctdb_context *ctdb, uint64_t srvid, 			     ctdb_message_fn_t handler,			     void *private_data);int ctdb_client_send_message(struct ctdb_context *ctdb, uint32_t vnn,			     uint64_t srvid, TDB_DATA data);/*  send a ctdb message*/int ctdb_daemon_send_message(struct ctdb_context *ctdb, uint32_t vnn,			     uint64_t srvid, TDB_DATA data);struct lockwait_handle *ctdb_lockwait(struct ctdb_db_context *ctdb_db,				      TDB_DATA key,				      void (*callback)(void *), void *private_data);struct ctdb_call_state *ctdb_daemon_call_send(struct ctdb_db_context *ctdb_db, 					      struct ctdb_call *call);int ctdb_daemon_call_recv(struct ctdb_call_state *state, struct ctdb_call *call);struct ctdb_call_state *ctdb_daemon_call_send_remote(struct ctdb_db_context *ctdb_db, 						     struct ctdb_call *call, 						     struct ctdb_ltdb_header *header);int ctdb_call_local(struct ctdb_db_context *ctdb_db, struct ctdb_call *call,		    struct ctdb_ltdb_header *header, TALLOC_CTX *mem_ctx, TDB_DATA *data,		    uint32_t caller);#define ctdb_reqid_find(ctdb, reqid, type)	(type *)_ctdb_reqid_find(ctdb, reqid, #type, __location__)void ctdb_recv_raw_pkt(void *p, uint8_t *data, uint32_t length);int ctdb_socket_connect(struct ctdb_context *ctdb);void ctdb_latency(double *latency, struct timeval t);uint32_t ctdb_reqid_new(struct ctdb_context *ctdb, void *state);void *_ctdb_reqid_find(struct ctdb_context *ctdb, uint32_t reqid, const char *type, const char *location);void ctdb_reqid_remove(struct ctdb_context *ctdb, uint32_t reqid);void ctdb_request_control(struct ctdb_context *ctdb, struct ctdb_req_header *hdr);void ctdb_reply_control(struct ctdb_context *ctdb, struct ctdb_req_header *hdr);int ctdb_daemon_send_control(struct ctdb_context *ctdb, uint32_t destnode,			     uint64_t srvid, uint32_t opcode, uint32_t client_id, uint32_t flags,			     TDB_DATA data,			     ctdb_control_callback_fn_t callback,			     void *private_data);int32_t ctdb_control_db_attach(struct ctdb_context *ctdb, TDB_DATA indata, 			       TDB_DATA *outdata);int ctdb_daemon_set_call(struct ctdb_context *ctdb, uint32_t db_id,			 ctdb_fn_t fn, int id);int ctdb_control(struct ctdb_context *ctdb, uint32_t destnode, uint64_t srvid, 		 uint32_t opcode, uint32_t flags, TDB_DATA data, 		 TALLOC_CTX *mem_ctx, TDB_DATA *outdata, int32_t *status,		 struct timeval *timeout, char **errormsg);#define CHECK_CONTROL_DATA_SIZE(size) do { \ if (indata.dsize != size) { \	 DEBUG(0,(__location__ " Invalid data size in opcode %u. Got %u expected %u\n", \		  opcode, (unsigned)indata.dsize, (unsigned)size));	\	 return -1; \ } \ } while (0)int ctdb_control_getvnnmap(struct ctdb_context *ctdb, uint32_t opcode, TDB_DATA indata, TDB_DATA *outdata);int ctdb_control_setvnnmap(struct ctdb_context *ctdb, uint32_t opcode, TDB_DATA indata, TDB_DATA *outdata);int ctdb_control_getdbmap(struct ctdb_context *ctdb, uint32_t opcode, TDB_DATA indata, TDB_DATA *outdata);int ctdb_control_getnodemap(struct ctdb_context *ctdb, uint32_t opcode, TDB_DATA indata, TDB_DATA *outdata);int ctdb_control_writerecord(struct ctdb_context *ctdb, uint32_t opcode, TDB_DATA indata, TDB_DATA *outdata);struct ctdb_traverse_start {	uint32_t db_id;	uint32_t reqid;	uint64_t srvid;};/*  structure used to pass record data between the child and parent */struct ctdb_rec_data {	uint32_t length;	uint32_t reqid;	uint32_t keylen;	uint32_t datalen;	uint8_t  data[1];};				   /* structure used for pulldb control */struct ctdb_control_pulldb {	uint32_t db_id;	uint32_t lmaster;};/* structure used for pulldb control */struct ctdb_control_pulldb_reply {	uint32_t db_id;	uint32_t count;	uint8_t data[1];};/* set dmaster control structure */struct ctdb_control_set_dmaster {	uint32_t db_id;	uint32_t dmaster;};/*  structure for setting a tunable */struct ctdb_control_set_tunable {	uint32_t value;	uint32_t length;	uint8_t  name[1];};/*  structure for getting a tunable */struct ctdb_control_get_tunable {	uint32_t length;	uint8_t  name[1];};/*  structure for listing tunables */struct ctdb_control_list_tunable {	uint32_t length;	/* returns a : separated list of tunable names */	uint8_t  data[1];};/* table that contains a list of all nodes a ctdb knows about and their    status */struct ctdb_node_and_flags {	uint32_t vnn;	uint32_t flags;	struct sockaddr_in sin;};struct ctdb_node_map {	uint32_t num;	struct ctdb_node_and_flags nodes[1];};int32_t ctdb_control_traverse_start(struct ctdb_context *ctdb, TDB_DATA indata, 				    TDB_DATA *outdata, uint32_t srcnode);int32_t ctdb_control_traverse_all(struct ctdb_context *ctdb, TDB_DATA data, TDB_DATA *outdata);int32_t ctdb_control_traverse_data(struct ctdb_context *ctdb, TDB_DATA data, TDB_DATA *outdata);int ctdb_dispatch_message(struct ctdb_context *ctdb, uint64_t srvid, TDB_DATA data);int daemon_register_message_handler(struct ctdb_context *ctdb, uint32_t client_id, uint64_t srvid);int ctdb_deregister_message_handler(struct ctdb_context *ctdb, uint64_t srvid, void *private_data);int daemon_deregister_message_handler(struct ctdb_context *ctdb, uint32_t client_id, uint64_t srvid);int32_t ctdb_ltdb_enable_seqnum(struct ctdb_context *ctdb, uint32_t db_id);int32_t ctdb_ltdb_update_seqnum(struct ctdb_context *ctdb, uint32_t db_id, uint32_t srcnode);int32_t ctdb_ltdb_set_seqnum_frequency(struct ctdb_context *ctdb, uint32_t frequency);struct ctdb_rec_data *ctdb_marshall_record(TALLOC_CTX *mem_ctx, uint32_t reqid,	TDB_DATA key, TDB_DATA data);int32_t ctdb_control_pull_db(struct ctdb_context *ctdb, TDB_DATA indata, TDB_DATA *outdata);int32_t ctdb_control_push_db(struct ctdb_context *ctdb, TDB_DATA indata);int32_t ctdb_control_set_dmaster(struct ctdb_context *ctdb, TDB_DATA indata);int32_t ctdb_control_set_recmode(struct ctdb_context *ctdb, 				 struct ctdb_req_control *c,				 TDB_DATA indata, bool *async_reply,				 const char **errormsg);void ctdb_request_control_reply(struct ctdb_context *ctdb, struct ctdb_req_control *c,				TDB_DATA *outdata, int32_t status, const char *errormsg);int32_t ctdb_control_freeze(struct ctdb_context *ctdb, struct ctdb_req_control *c, bool *async_reply);int32_t ctdb_control_thaw(struct ctdb_context *ctdb);int ctdb_start_recoverd(struct ctdb_context *ctdb);uint32_t ctdb_get_num_active_nodes(struct ctdb_context *ctdb);void ctdb_stop_monitoring(struct ctdb_context *ctdb);void ctdb_start_monitoring(struct ctdb_context *ctdb);void ctdb_start_tcp_tickle_update(struct ctdb_context *ctdb);void ctdb_send_keepalive(struct ctdb_context *ctdb, uint32_t destnode);void ctdb_daemon_cancel_controls(struct ctdb_context *ctdb, struct ctdb_node *node);void ctdb_call_resend_all(struct ctdb_context *ctdb);void ctdb_node_dead(struct ctdb_node *node);void ctdb_node_connected(struct ctdb_node *node);bool ctdb_blocking_freeze(struct ctdb_context *ctdb);int32_t ctdb_control_max_rsn(struct ctdb_context *ctdb, TDB_DATA indata, TDB_DATA *outdata);int32_t ctdb_control_set_rsn_nonempty(struct ctdb_context *ctdb, TDB_DATA indata, TDB_DATA *outdata);int32_t ctdb_control_delete_low_rsn(struct ctdb_context *ctdb, TDB_DATA indata, TDB_DATA *outdata);int ctdb_ctrl_get_max_rsn(struct ctdb_context *ctdb, struct timeval timeout, 			  uint32_t destnode, uint32_t db_id, uint64_t *max_rsn);int ctdb_ctrl_set_rsn_nonempty(struct ctdb_context *ctdb, struct timeval timeout, 			       uint32_t destnode, uint32_t db_id, uint64_t rsn);int ctdb_ctrl_delete_low_rsn(struct ctdb_context *ctdb, struct timeval timeout, 			     uint32_t destnode, uint32_t db_id, uint64_t rsn);void ctdb_set_scheduler(struct ctdb_context *ctdb);void ctdb_restore_scheduler(struct ctdb_context *ctdb);int32_t ctdb_control_takeover_ip(struct ctdb_context *ctdb, 				 struct ctdb_req_control *c,				 TDB_DATA indata, 				 bool *async_reply);int32_t ctdb_control_release_ip(struct ctdb_context *ctdb, 				 struct ctdb_req_control *c,				 TDB_DATA indata, 				 bool *async_reply);struct ctdb_public_ip {	uint32_t vnn;	uint32_t takeover_vnn;	struct sockaddr_in sin;};int ctdb_ctrl_takeover_ip(struct ctdb_context *ctdb, struct timeval timeout, 			  uint32_t destnode, struct ctdb_public_ip *ip);int ctdb_ctrl_release_ip(struct ctdb_context *ctdb, struct timeval timeout, 			 uint32_t destnode, struct ctdb_public_ip *ip);struct ctdb_all_public_ips {	uint32_t num;	struct ctdb_public_ip ips[1];};int32_t ctdb_control_get_public_ips(struct ctdb_context *ctdb, struct ctdb_req_control *c, TDB_DATA *outdata);int ctdb_ctrl_get_public_ips(struct ctdb_context *ctdb, 			struct timeval timeout, uint32_t destnode, 			TALLOC_CTX *mem_ctx, struct ctdb_all_public_ips **ips);/* from takeover/system.c */int ctdb_sys_send_arp(const struct sockaddr_in *saddr, const char *iface);bool ctdb_sys_have_ip(const char *ip);int ctdb_sys_send_tcp(int fd,		      const struct sockaddr_in *dest, 		      const struct sockaddr_in *src,		      uint32_t seq, uint32_t ack, int rst);int ctdb_set_public_addresses(struct ctdb_context *ctdb, const char *alist);int ctdb_set_event_script(struct ctdb_context *ctdb, const char *script);int ctdb_takeover_run(struct ctdb_context *ctdb, struct ctdb_node_map *nodemap);int32_t ctdb_control_tcp_client(struct ctdb_context *ctdb, uint32_t client_id, 				TDB_DATA indata);int32_t ctdb_control_tcp_add(struct ctdb_context *ctdb, TDB_DATA indata);int32_t ctdb_control_tcp_remove(struct ctdb_context *ctdb, TDB_DATA indata);int32_t ctdb_control_startup(struct ctdb_context *ctdb, uint32_t vnn);int32_t ctdb_control_kill_tcp(struct ctdb_context *ctdb, TDB_DATA indata);int32_t ctdb_control_get_tcp_tickle_list(struct ctdb_context *ctdb, TDB_DATA indata, TDB_DATA *outdata);int32_t ctdb_control_set_tcp_tickle_list(struct ctdb_context *ctdb, TDB_DATA indata);void ctdb_takeover_client_destructor_hook(struct ctdb_client *client);int ctdb_event_script(struct ctdb_context *ctdb, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);int ctdb_event_script_callback(struct ctdb_context *ctdb, 			       struct timeval timeout,			       TALLOC_CTX *mem_ctx,			       void (*callback)(struct ctdb_context *, int, void *),			       void *private_data,			       const char *fmt, ...) PRINTF_ATTRIBUTE(6,7);void ctdb_release_all_ips(struct ctdb_context *ctdb);void set_nonblocking(int fd);void set_close_on_exec(int fd);bool ctdb_recovery_lock(struct ctdb_context *ctdb, bool keep);int ctdb_set_recovery_lock_file(struct ctdb_context *ctdb, const char *file);int32_t ctdb_control_get_tunable(struct ctdb_context *ctdb, TDB_DATA indata, 				 TDB_DATA *outdata);int32_t ctdb_control_set_tunable(struct ctdb_context *ctdb, TDB_DATA indata);int32_t ctdb_control_list_tunables(struct ctdb_context *ctdb, TDB_DATA *outdata);void ctdb_tunables_set_defaults(struct ctdb_context *ctdb);int32_t ctdb_control_modflags(struct ctdb_context *ctdb, TDB_DATA indata);int ctdb_ctrl_get_all_tunables(struct ctdb_context *ctdb, 			       struct timeval timeout, 			       uint32_t destnode,			       struct ctdb_tunable *tunables);void ctdb_start_freeze(struct ctdb_context *ctdb);bool parse_ip_port(const char *s, struct sockaddr_in *ip);int ctdb_sys_open_capture_socket(const char *iface, void **private_data);int ctdb_sys_close_capture_socket(void *private_data);int ctdb_sys_open_sending_socket(void);int ctdb_sys_read_tcp_packet(int s, void *private_data, struct sockaddr_in *src, struct sockaddr_in *dst,			     uint32_t *ack_seq, uint32_t *seq);int ctdb_ctrl_killtcp(struct ctdb_context *ctdb, 		      struct timeval timeout, 		      uint32_t destnode,		      struct ctdb_control_killtcp *killtcp);int ctdb_ctrl_get_tcp_tickles(struct ctdb_context *ctdb, 		      struct timeval timeout, 		      uint32_t destnode,		      TALLOC_CTX *mem_ctx,		      uint32_t vnn,		      struct ctdb_control_tcp_tickle_list **list);#endif

⌨️ 快捷键说明

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