X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=source3%2Finclude%2Fmessages.h;h=bea3fd00370af54fe27f91b4d8c6b2f6e0c46dc5;hb=56a7ddd7779448f18233f6e1769bc34f11fa2e14;hp=27b315642c6a9ca8cb7584b0ca496d5d11f5b931;hpb=5f3ccfc16b7c64d2de109ba26d92d22ae1010882;p=samba.git diff --git a/source3/include/messages.h b/source3/include/messages.h index 27b315642c6..bea3fd00370 100644 --- a/source3/include/messages.h +++ b/source3/include/messages.h @@ -60,11 +60,7 @@ #include "librpc/gen_ndr/server_id.h" -#ifdef CLUSTER_SUPPORT #define MSG_BROADCAST_PID_STR "0:0" -#else -#define MSG_BROADCAST_PID_STR "0" -#endif struct messaging_context; struct messaging_rec; @@ -80,6 +76,9 @@ struct messaging_context { struct tevent_context *event_ctx; struct messaging_callback *callbacks; + struct tevent_req **new_waiters; + unsigned num_new_waiters; + struct tevent_req **waiters; unsigned num_waiters; @@ -88,21 +87,21 @@ struct messaging_context { }; struct messaging_backend { - NTSTATUS (*send_fn)(struct messaging_context *msg_ctx, + NTSTATUS (*send_fn)(struct server_id src, struct server_id pid, int msg_type, - const DATA_BLOB *data, + const struct iovec *iov, int iovlen, struct messaging_backend *backend); void *private_data; }; -NTSTATUS messaging_tdb_init(struct messaging_context *msg_ctx, +NTSTATUS messaging_dgm_init(struct messaging_context *msg_ctx, TALLOC_CTX *mem_ctx, struct messaging_backend **presult); - -bool messaging_tdb_parent_init(TALLOC_CTX *mem_ctx); - -void *messaging_tdb_event(TALLOC_CTX *mem_ctx, struct messaging_context *msg, - struct tevent_context *ev); +NTSTATUS messaging_dgm_cleanup(struct messaging_context *msg_ctx, pid_t pid); +NTSTATUS messaging_dgm_wipe(struct messaging_context *msg_ctx); +void *messaging_dgm_register_tevent_context(TALLOC_CTX *mem_ctx, + struct messaging_context *msg_ctx, + struct tevent_context *ev); NTSTATUS messaging_ctdbd_init(struct messaging_context *msg_ctx, TALLOC_CTX *mem_ctx, @@ -117,6 +116,8 @@ struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx, struct tevent_context *ev); struct server_id messaging_server_id(const struct messaging_context *msg_ctx); +struct messaging_backend *messaging_local_backend( + struct messaging_context *msg_ctx); /* * re-init after a fork @@ -140,9 +141,20 @@ NTSTATUS messaging_send(struct messaging_context *msg_ctx, NTSTATUS messaging_send_buf(struct messaging_context *msg_ctx, struct server_id server, uint32_t msg_type, const uint8_t *buf, size_t len); +NTSTATUS messaging_send_iov(struct messaging_context *msg_ctx, + struct server_id server, uint32_t msg_type, + const struct iovec *iov, int iovlen); void messaging_dispatch_rec(struct messaging_context *msg_ctx, struct messaging_rec *rec); +struct tevent_req *messaging_filtered_read_send( + TALLOC_CTX *mem_ctx, struct tevent_context *ev, + struct messaging_context *msg_ctx, + bool (*filter)(struct messaging_rec *rec, void *private_data), + void *private_data); +int messaging_filtered_read_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, + struct messaging_rec **presult); + struct tevent_req *messaging_read_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct messaging_context *msg, @@ -150,6 +162,8 @@ struct tevent_req *messaging_read_send(TALLOC_CTX *mem_ctx, int messaging_read_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, struct messaging_rec **presult); +bool messaging_parent_dgm_cleanup_init(struct messaging_context *msg); + #include "librpc/gen_ndr/ndr_messaging.h" #endif