*/
#define ctdb_validate_pnn(ctdb, pnn) (((uint32_t)(pnn)) < (ctdb)->num_nodes)
-
-/* called from the queue code when a packet comes in. Called with data==NULL
- on error */
-typedef void (*ctdb_queue_cb_fn_t)(uint8_t *data, size_t length,
- void *private_data);
-
/* used for callbacks in ctdb_control requests */
typedef void (*ctdb_control_callback_fn_t)(struct ctdb_context *,
int32_t status, TDB_DATA data,
struct ctdb_cluster_mutex_handle;
+struct eventd_context;
enum ctdb_freeze_mode {CTDB_FREEZE_NONE, CTDB_FREEZE_PENDING, CTDB_FREEZE_FROZEN};
-#define NUM_DB_PRIORITIES 3
/* main state of the ctdb daemon */
struct ctdb_context {
struct tevent_context *ev;
TALLOC_CTX *recd_ctx; /* a context used to track recoverd monitoring events */
TALLOC_CTX *release_ips_ctx; /* a context used to automatically drop all IPs if we fail to recover the node */
- TALLOC_CTX *event_script_ctx;
- int active_events;
-
- struct ctdb_event_script_state *current_monitor;
- struct ctdb_script_list_old *last_status[CTDB_EVENT_MAX];
+ struct eventd_context *ectx;
TALLOC_CTX *banning_ctx;
/* if we are a child process, do we have a domain socket to send controls on */
bool can_send_controls;
- /* list of event script callback functions that are active */
- struct event_script_callback *script_callbacks;
-
struct ctdb_reloadips_handle *reload_ips;
const char *nodes_file;
bool push_started;
void *push_state;
+
+ struct hash_count_context *migratedb;
};
int ctdb_daemon_call_recv(struct ctdb_call_state *state,
struct ctdb_call *call);
-void ctdb_send_keepalive(struct ctdb_context *ctdb, uint32_t destnode);
-
int ctdb_start_revoke_ro_record(struct ctdb_context *ctdb,
struct ctdb_db_context *ctdb_db,
TDB_DATA key, struct ctdb_ltdb_header *header,
TDB_DATA key, struct ctdb_req_header *hdr,
deferred_requeue_fn fn, void *call_context);
+int ctdb_migration_init(struct ctdb_db_context *ctdb_db);
+
/* from server/ctdb_control.c */
int32_t ctdb_dump_memory(struct ctdb_context *ctdb, TDB_DATA *outdata);
void ctdb_shutdown_sequence(struct ctdb_context *ctdb, int exit_code);
-int switch_from_server_to_client(struct ctdb_context *ctdb,
- const char *fmt, ...);
+int switch_from_server_to_client(struct ctdb_context *ctdb);
/* From server/ctdb_fork.c */
-void ctdb_set_child_info(TALLOC_CTX *mem_ctx, const char *child_name_fmt, ...);
-
void ctdb_track_child(struct ctdb_context *ctdb, pid_t pid);
pid_t ctdb_fork(struct ctdb_context *ctdb);
+pid_t ctdb_vfork_exec(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
+ const char *helper, int helper_argc,
+ const char **helper_argv);
struct tevent_signal *ctdb_init_sigchld(struct ctdb_context *ctdb);
int32_t ctdb_control_db_transaction_commit(struct ctdb_context *ctdb,
TDB_DATA indata);
-int32_t ctdb_control_transaction_start(struct ctdb_context *ctdb, uint32_t id);
-int32_t ctdb_control_transaction_cancel(struct ctdb_context *ctdb);
-int32_t ctdb_control_transaction_commit(struct ctdb_context *ctdb, uint32_t id);
-
int32_t ctdb_control_wipe_database(struct ctdb_context *ctdb, TDB_DATA indata);
bool ctdb_db_frozen(struct ctdb_db_context *ctdb_db);
void ctdb_start_keepalive(struct ctdb_context *ctdb);
void ctdb_stop_keepalive(struct ctdb_context *ctdb);
+void ctdb_request_keepalive(struct ctdb_context *ctdb,
+ struct ctdb_req_header *hdr);
+
/* from server/ctdb_lock.c */
struct lock_request;
/* from ctdb_logging.c */
-extern const char *debug_extra;
-
-typedef int (*ctdb_log_setup_fn_t)(TALLOC_CTX *mem_ctx,
- const char *logging,
- const char *app_name);
-
-void ctdb_log_register_backend(const char *prefix, ctdb_log_setup_fn_t init);
-
-bool ctdb_logging_init(TALLOC_CTX *mem_ctx, const char *logging);
+bool ctdb_logging_init(TALLOC_CTX *mem_ctx, const char *logging,
+ const char *debug_level);
struct ctdb_log_state *ctdb_vfork_with_logging(TALLOC_CTX *mem_ctx,
struct ctdb_context *ctdb,
void *logfn_private, pid_t *pid);
int ctdb_set_child_logging(struct ctdb_context *ctdb);
-int ctdb_init_tevent_logging(struct ctdb_context *ctdb);
/* from ctdb_logging_file.c */
int ctdb_set_public_addresses(struct ctdb_context *ctdb, bool check_addresses);
-int ctdb_takeover_run(struct ctdb_context *ctdb, struct ctdb_node_map_old *nodemap,
- uint32_t *force_rebalance_nodes);
-
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_add_public_address(struct ctdb_context *ctdb,
TDB_DATA indata);
int32_t ctdb_control_del_public_address(struct ctdb_context *ctdb,
- struct ctdb_req_control_old *c,
- TDB_DATA recdata, bool *async_reply);
+ TDB_DATA recdata);
int32_t ctdb_control_reload_public_ips(struct ctdb_context *ctdb,
struct ctdb_req_control_old *c,
/* from eventscript.c */
-int32_t ctdb_control_get_event_script_status(struct ctdb_context *ctdb,
- uint32_t call_type,
- TDB_DATA *outdata);
+int ctdb_start_eventd(struct ctdb_context *ctdb);
+void ctdb_stop_eventd(struct ctdb_context *ctdb);
int ctdb_event_script_callback(struct ctdb_context *ctdb,
TALLOC_CTX *mem_ctx,
int ctdb_event_script(struct ctdb_context *ctdb,
enum ctdb_event call);
-int32_t ctdb_run_eventscripts(struct ctdb_context *ctdb,
- struct ctdb_req_control_old *c,
- TDB_DATA data, bool *async_reply);
-
-int32_t ctdb_control_enable_script(struct ctdb_context *ctdb, TDB_DATA indata);
-int32_t ctdb_control_disable_script(struct ctdb_context *ctdb, TDB_DATA indata);
-
#endif