New version 1.2.17
[sahlberg/ctdb.git] / include / ctdb_client.h
index 2bee621c56f6831ffcaf4f590d8dbb0200075b96..3dc115f0ccd441ba72793cef30e1cba376e22e9d 100644 (file)
@@ -52,12 +52,12 @@ struct ctdb_client_notify_deregister {
        uint64_t srvid;
 };
 
-struct event_context;
+struct tevent_context;
 
 /*
   initialise ctdb subsystem
 */
-struct ctdb_context *ctdb_init(struct event_context *ev);
+struct ctdb_context *ctdb_init(struct tevent_context *ev);
 
 /*
   choose the transport
@@ -76,17 +76,13 @@ int ctdb_set_tdb_dir_state(struct ctdb_context *ctdb, const char *dir);
 */
 void ctdb_set_flags(struct ctdb_context *ctdb, unsigned flags);
 
-/*
-  set max acess count before a dmaster migration
-*/
-void ctdb_set_max_lacount(struct ctdb_context *ctdb, unsigned count);
-
 /*
   tell ctdb what address to listen on, in transport specific format
 */
 int ctdb_set_address(struct ctdb_context *ctdb, const char *address);
 
 int ctdb_set_socketname(struct ctdb_context *ctdb, const char *socketname);
+const char *ctdb_get_socketname(struct ctdb_context *ctdb);
 
 /*
   tell ctdb what nodes are available. This takes a filename, which will contain
@@ -104,7 +100,7 @@ int ctdb_ip_to_nodeid(struct ctdb_context *ctdb, const char *nodeip);
   start the ctdb protocol
 */
 int ctdb_start(struct ctdb_context *ctdb);
-int ctdb_start_daemon(struct ctdb_context *ctdb, bool do_fork, bool use_syslog);
+int ctdb_start_daemon(struct ctdb_context *ctdb, bool do_fork, bool use_syslog, const char *public_address_list);
 
 /*
   attach to a ctdb database
@@ -157,6 +153,8 @@ typedef void (*ctdb_msg_fn_t)(struct ctdb_context *, uint64_t srvid,
 int ctdb_client_set_message_handler(struct ctdb_context *ctdb, uint64_t srvid,
                             ctdb_msg_fn_t handler,
                             void *private_data);
+int ctdb_client_remove_message_handler(struct ctdb_context *ctdb,
+                                      uint64_t srvid, void *private_data);
 
 
 int ctdb_call(struct ctdb_db_context *ctdb_db, struct ctdb_call *call);
@@ -190,7 +188,7 @@ int ctdb_register_message_handler(struct ctdb_context *ctdb,
 struct ctdb_db_context *find_ctdb_db(struct ctdb_context *ctdb, uint32_t id);
 
 
-struct ctdb_context *ctdb_cmdline_client(struct event_context *ev);
+struct ctdb_context *ctdb_cmdline_client(struct tevent_context *ev);
 
 struct ctdb_statistics;
 int ctdb_ctrl_statistics(struct ctdb_context *ctdb, uint32_t destnode, struct ctdb_statistics *status);
@@ -412,7 +410,11 @@ int ctdb_ctrl_modflags(struct ctdb_context *ctdb,
                       uint32_t destnode,
                       uint32_t set, uint32_t clear);
 
-enum ctdb_server_id_type { SERVER_TYPE_SAMBA=1 };
+enum ctdb_server_id_type {
+       SERVER_TYPE_SAMBA=1,
+       SERVER_TYPE_NFSD=2,
+       SERVER_TYPE_ISCSID=3
+};
 
 struct ctdb_server_id {
        enum ctdb_server_id_type type;
@@ -447,17 +449,6 @@ struct ctdb_uptime {
        struct timeval last_recovery_finished;
 };
 
-/*
-  definitions for different socket structures
- */
-typedef struct sockaddr_in ctdb_addr_in;
-typedef struct sockaddr_in6 ctdb_addr_in6;
-typedef union {
-       struct sockaddr sa;
-       ctdb_addr_in    ip;
-       ctdb_addr_in6   ip6;
-} ctdb_sock_addr;
-
 /*
   struct for tcp_client control
   this is an ipv4 only version of this structure used by samba
@@ -548,7 +539,8 @@ int ctdb_transaction_commit(struct ctdb_transaction_handle *h);
 
 int ctdb_ctrl_recd_ping(struct ctdb_context *ctdb);
 
-int switch_from_server_to_client(struct ctdb_context *ctdb);
+int switch_from_server_to_client(struct ctdb_context *ctdb, const char *fmt,
+                                ...);
 
 int ctdb_ctrl_getscriptstatus(struct ctdb_context *ctdb,
                    struct timeval timeout, uint32_t destnode,
@@ -591,4 +583,7 @@ struct ctdb_db_priority {
 int ctdb_ctrl_set_db_priority(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode, struct ctdb_db_priority *db_prio);
 int ctdb_ctrl_get_db_priority(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode, uint32_t db_id, uint32_t *priority);
 
+int ctdb_ctrl_getstathistory(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode, TALLOC_CTX *mem_ctx, struct ctdb_statistics_wire **stats);
+
+
 #endif /* _CTDB_CLIENT_H */