The branch, master has been updated via 74b359c s3:build: remove global CLUSTER_SUPPORT define via e93b85d s3:wscript: only build ctdb_dummy.c if we have no cluster support via 91e5696 s3:wscript: only fill in CTDB_CFLAGS instead of config.h via 6c00795 s3:wscript: don't add ctdb include dir globally via 1c96c06 s3:serverid: use ctdb_serverids_exist_supported() runtime check via 4574602 s3:ctdb_conn: only use ctdb_protocol.h or ctdb_private.h in ctdb_conn.c via 47dbd4e wafsamba: use cluster_support_features in build_options.c via fc04cad s3:lib: add cluster_support_[available|features]() via 24054b5 s3:param: move lp_ctdbd_socket() to ctdbd_conn.c via b2c9921 s3:lib: move all ctdb related dummy functions to ctdb_dummy.c via 0607b18 s3:ctdbd_conn: always provide ctdb_serverids_exist() via e5b5775 s3:ctdbd_conn: add ctdb_serverids_exist_supported() via b17c6ad s3:wscript: create a libsamba-cluster-support.so via 1c1a2e4 wafsamba: add CONFIG_RESET() from 5976791 lsa.idl: define lsa.ForestTrustCollisionInfo and ForestTrustCollisionRecord as public structs
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 74b359c61686c1a940ec76ad4459fabc403a8715 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Jan 21 14:34:48 2014 +0100 s3:build: remove global CLUSTER_SUPPORT define All ctdb specific code is isolated in samba-cluster-support.so now. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Michael Adam <ob...@samba.org> Autobuild-User(master): Michael Adam <ob...@samba.org> Autobuild-Date(master): Mon Mar 24 19:08:44 CET 2014 on sn-devel-104 commit e93b85dbd871d5d56a7bc13235820c488a41266f Author: Stefan Metzmacher <me...@samba.org> Date: Tue Jan 21 15:26:28 2014 +0100 s3:wscript: only build ctdb_dummy.c if we have no cluster support Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Michael Adam <ob...@samba.org> commit 91e56961fd2a66378fab4d91245365441e546ab3 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Oct 8 12:56:02 2013 +0200 s3:wscript: only fill in CTDB_CFLAGS instead of config.h Only files in 'samba3-ctdb-client' will see HAVE_CTDB* defines. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Michael Adam <ob...@samba.org> commit 6c007951bb5ada8cc3a2eabdc40568fa84da2831 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Oct 8 12:11:49 2013 +0200 s3:wscript: don't add ctdb include dir globally Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Michael Adam <ob...@samba.org> commit 1c96c068ad3869ca8411efbc07f82ae987ed2219 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Oct 8 15:31:17 2013 +0200 s3:serverid: use ctdb_serverids_exist_supported() runtime check This is better than a compile time check for HAVE_CTDB_CONTROL_CHECK_SRVIDS_DECL. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Michael Adam <ob...@samba.org> commit 4574602057d7645d673d1cddeb1941677b797f82 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Oct 8 13:35:41 2013 +0200 s3:ctdb_conn: only use ctdb_protocol.h or ctdb_private.h in ctdb_conn.c We don't need them in ctdb_conn.h. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Michael Adam <ob...@samba.org> commit 47dbd4ef60e58e3b4512a151dabd63f1d0ea840d Author: Stefan Metzmacher <me...@samba.org> Date: Tue Jan 21 14:32:49 2014 +0100 wafsamba: use cluster_support_features in build_options.c This way 'smbd -b' returns the cluster features of the currently used libsamba-cluster-support.so. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Michael Adam <ob...@samba.org> commit fc04cad01a92dae25f2075b99f1cdf84fef516ea Author: Stefan Metzmacher <me...@samba.org> Date: Tue Jan 21 14:32:30 2014 +0100 s3:lib: add cluster_support_[available|features]() This allows runtime selection of libsamba-cluster-support.so Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Michael Adam <ob...@samba.org> commit 24054b5f8b196befb454f48a0da0600afac2c7a1 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Oct 8 13:33:49 2013 +0200 s3:param: move lp_ctdbd_socket() to ctdbd_conn.c This allows us to use CTDB_PATH only in ctdbd_conn.c Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Michael Adam <ob...@samba.org> commit b2c992162230ac1975dee0d0229ea6be7d8ae9a3 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Jan 21 14:25:32 2014 +0100 s3:lib: move all ctdb related dummy functions to ctdb_dummy.c This gets all dummy functions for the build without CLUSTER_SUPPORT. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Michael Adam <ob...@samba.org> commit 0607b187f3c7f6289c669f7a2aee117171143db5 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Oct 8 15:30:44 2013 +0200 s3:ctdbd_conn: always provide ctdb_serverids_exist() Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Michael Adam <ob...@samba.org> commit e5b5775b81500fb8d0c7491186e6ba35502134c3 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Oct 8 15:30:16 2013 +0200 s3:ctdbd_conn: add ctdb_serverids_exist_supported() Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Michael Adam <ob...@samba.org> commit b17c6ad6441c19de0fca4ff9ca1bdc2d0b59f300 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Oct 8 11:52:23 2013 +0200 s3:wscript: create a libsamba-cluster-support.so This collects the ctdb version dependent files, which allows vendors to provide multiple versions of libsamba-cluster-support.so each compiled against different ctdb versions. Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Michael Adam <ob...@samba.org> commit 1c1a2e459655c6062ab4fc425cb055360a75b3f3 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Oct 8 12:10:54 2013 +0200 wafsamba: add CONFIG_RESET() Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Michael Adam <ob...@samba.org> ----------------------------------------------------------------------- Summary of changes: buildtools/wafsamba/samba_autoconf.py | 8 + buildtools/wafsamba/samba_patterns.py | 5 + docs-xml/smbdotconf/misc/ctdbdsocket.xml | 3 +- lib/param/param_table.c | 2 +- source3/include/ctdbd_conn.h | 2 + source3/include/messages.h | 4 - source3/lib/cluster_support.c | 92 ++++++++++ .../grouptest.h => source3/lib/cluster_support.h | 6 +- source3/lib/ctdb_conn.c | 82 +-------- source3/lib/ctdb_conn.h | 17 +-- source3/lib/ctdb_dummy.c | 180 ++++++++++++++++++++ source3/lib/ctdbd_conn.c | 45 +++--- source3/lib/dbwrap/dbwrap_ctdb.c | 18 -- source3/lib/dbwrap/dbwrap_open.c | 12 +- source3/lib/messages.c | 7 - source3/lib/messages_ctdbd.c | 18 -- source3/lib/serverid.c | 16 +- source3/lib/smbconf/smbconf_reg.c | 3 +- source3/param/loadparm.c | 10 +- source3/smbd/process.c | 7 - source3/smbd/server.c | 2 - source3/torture/test_ctdbconn.c | 12 +-- source3/wscript | 101 +++++++----- source3/wscript_build | 40 ++++- 24 files changed, 433 insertions(+), 259 deletions(-) create mode 100644 source3/lib/cluster_support.c copy source4/torture/libnet/grouptest.h => source3/lib/cluster_support.h (84%) create mode 100644 source3/lib/ctdb_dummy.c Changeset truncated at 500 lines: diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py index e14f9cd..e726536 100644 --- a/buildtools/wafsamba/samba_autoconf.py +++ b/buildtools/wafsamba/samba_autoconf.py @@ -495,6 +495,14 @@ def CONFIG_SET(conf, option): if v == (): return False return True + +@conf +def CONFIG_RESET(conf, option): + if option not in conf.env: + return + del conf.env[option] + +Build.BuildContext.CONFIG_RESET = CONFIG_RESET Build.BuildContext.CONFIG_SET = CONFIG_SET Build.BuildContext.CONFIG_GET = CONFIG_GET diff --git a/buildtools/wafsamba/samba_patterns.py b/buildtools/wafsamba/samba_patterns.py index 55ed540..1e2df90 100644 --- a/buildtools/wafsamba/samba_patterns.py +++ b/buildtools/wafsamba/samba_patterns.py @@ -59,6 +59,8 @@ def write_build_options_header(fp): fp.write("#include \"includes.h\"\n") fp.write("#include \"build_env.h\"\n") fp.write("#include \"dynconfig/dynconfig.h\"\n") + fp.write("#include \"lib/cluster_support.h\"\n") + fp.write("\n") fp.write("static int output(bool screen, const char *format, ...) PRINTF_ATTRIBUTE(2,3);\n") fp.write("void build_options(bool screen);\n") @@ -129,6 +131,9 @@ def write_build_options_header(fp): fp.write("\n") def write_build_options_footer(fp): + fp.write(" /* Output the sizes of the various cluster features */\n") + fp.write(" output(screen, \"\\n%s\", cluster_support_features());\n") + fp.write("\n") fp.write(" /* Output the sizes of the various types */\n") fp.write(" output(screen, \"\\nType sizes:\\n\");\n") fp.write(" output(screen, \" sizeof(char): %lu\\n\",(unsigned long)sizeof(char));\n") diff --git a/docs-xml/smbdotconf/misc/ctdbdsocket.xml b/docs-xml/smbdotconf/misc/ctdbdsocket.xml index 378d6e2..27e8121 100644 --- a/docs-xml/smbdotconf/misc/ctdbdsocket.xml +++ b/docs-xml/smbdotconf/misc/ctdbdsocket.xml @@ -1,8 +1,9 @@ <samba:parameter name="ctdbd socket" context="G" advanced="1" - type="string" + type="string" constant="1" + function="_ctdbd_socket" xmlns:samba="http://www.samba.org/samba/DTD/samba-doc"> <description> <para>If you set <value type="example">clustering=yes</value>, diff --git a/lib/param/param_table.c b/lib/param/param_table.c index ad929ec..40f8eb5 100644 --- a/lib/param/param_table.c +++ b/lib/param/param_table.c @@ -1938,7 +1938,7 @@ static struct parm_struct parm_table[] = { .label = "ctdbd socket", .type = P_STRING, .p_class = P_GLOBAL, - .offset = GLOBAL_VAR(ctdbd_socket), + .offset = GLOBAL_VAR(_ctdbd_socket), .special = NULL, .enum_list = NULL, .flags = FLAG_ADVANCED | FLAG_GLOBAL, diff --git a/source3/include/ctdbd_conn.h b/source3/include/ctdbd_conn.h index 0f85229..49445d9 100644 --- a/source3/include/ctdbd_conn.h +++ b/source3/include/ctdbd_conn.h @@ -30,6 +30,7 @@ NTSTATUS ctdbd_messaging_connection(TALLOC_CTX *mem_ctx, struct ctdbd_connection **pconn); uint32_t ctdbd_vnn(const struct ctdbd_connection *conn); +const char *lp_ctdbd_socket(void); NTSTATUS ctdbd_register_msg_ctx(struct ctdbd_connection *conn, struct messaging_context *msg_ctx); @@ -49,6 +50,7 @@ bool ctdbd_process_exists(struct ctdbd_connection *conn, uint32_t vnn, bool ctdb_processes_exist(struct ctdbd_connection *conn, const struct server_id *pids, int num_pids, bool *results); +bool ctdb_serverids_exist_supported(struct ctdbd_connection *conn); bool ctdb_serverids_exist(struct ctdbd_connection *conn, const struct server_id *pids, unsigned num_pids, bool *results); diff --git a/source3/include/messages.h b/source3/include/messages.h index 5666911..d7a2853 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; diff --git a/source3/lib/cluster_support.c b/source3/lib/cluster_support.c new file mode 100644 index 0000000..d6605fd --- /dev/null +++ b/source3/lib/cluster_support.c @@ -0,0 +1,92 @@ +/* + Unix SMB/CIFS implementation. + Copyright (C) 2014 Stefan Metzmacher + + 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 "includes.h" +#include <tdb.h> +#include "cluster_support.h" + +#ifdef HAVE_CTDB_H +#include <ctdb.h> +#define CLUSTER_SUPPORT 1 +#endif + +#ifdef HAVE_CTDB_PROTOCOL_H +#include <ctdb_protocol.h> +#else +#ifdef HAVE_CTDB_PRIVATE_H +#include <ctdb_private.h> +#endif +#endif + +bool cluster_support_available(void) +{ +#ifdef CLUSTER_SUPPORT + return true; +#else + return false; +#endif +} + +const char *cluster_support_features(void) +{ +#define _LINE_DEF(x) " " #x "\n" +#define _LINE_STR(x) " " #x ": " x "\n" +#define _LINE_INT(x) " " #x ": " __STRINGSTRING(x) "\n" + static const char *v = "Cluster support features:\n" +#ifdef CLUSTER_SUPPORT + _LINE_DEF(CLUSTER_SUPPORT) +#else + " NONE\n" +#endif +#ifdef HAVE_CTDB_H + _LINE_DEF(HAVE_CTDB_H) +#endif +#ifdef HAVE_CTDB_PRIVATE_H + _LINE_DEF(HAVE_CTDB_PRIVATE_H) +#endif +#ifdef HAVE_CTDB_PROTOCOL_H + _LINE_DEF(HAVE_CTDB_PROTOCOL_H) +#endif +#ifdef HAVE_CTDB_CONTROL_TRANS3_COMMIT_DECL + _LINE_DEF(HAVE_CTDB_CONTROL_TRANS3_COMMIT_DECL) +#endif +#ifdef HAVE_CTDB_CONTROL_SCHEDULE_FOR_DELETION_DECL + _LINE_DEF(HAVE_CTDB_CONTROL_SCHEDULE_FOR_DELETION_DECL) +#endif +#ifdef HAVE_CTDB_WANT_READONLY_DECL + _LINE_DEF(HAVE_CTDB_WANT_READONLY_DECL) +#endif +#ifdef HAVE_STRUCT_CTDB_CONTROL_TCP + _LINE_DEF(HAVE_STRUCT_CTDB_CONTROL_TCP) +#endif +#ifdef HAVE_STRUCT_CTDB_CONTROL_TCP_ADDR + _LINE_DEF(HAVE_STRUCT_CTDB_CONTROL_TCP_ADDR) +#endif +#ifdef HAVE_CTDB_CONTROL_CHECK_SRVIDS_DECL + _LINE_DEF(HAVE_CTDB_CONTROL_CHECK_SRVIDS_DECL) +#endif +#ifdef CTDB_PATH + _LINE_STR(CTDB_PATH) +#endif +#ifdef CTDB_VERSION + _LINE_INT(CTDB_VERSION) +#endif + ""; + + return v; +} diff --git a/source4/torture/libnet/grouptest.h b/source3/lib/cluster_support.h similarity index 84% copy from source4/torture/libnet/grouptest.h copy to source3/lib/cluster_support.h index 8b65e6e..0a03d2b 100644 --- a/source4/torture/libnet/grouptest.h +++ b/source3/lib/cluster_support.h @@ -1,7 +1,6 @@ /* Unix SMB/CIFS implementation. - - Copyright (C) Rafal Szczesniak 2007 + Copyright (C) 2014 Stefan Metzmacher 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 @@ -17,4 +16,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#define TEST_GROUPNAME "libnetgrptest" +bool cluster_support_available(void); +const char *cluster_support_features(void); diff --git a/source3/lib/ctdb_conn.c b/source3/lib/ctdb_conn.c index 40071d4..0996511 100644 --- a/source3/lib/ctdb_conn.c +++ b/source3/lib/ctdb_conn.c @@ -21,7 +21,13 @@ #include "lib/util/tevent_unix.h" #include "ctdb_conn.h" -#ifdef CLUSTER_SUPPORT +#include <tdb.h> + +#ifdef HAVE_CTDB_PROTOCOL_H +#include <ctdb_protocol.h> +#else +#include <ctdb_private.h> +#endif #include "lib/async_req/async_sock.h" @@ -545,77 +551,3 @@ int ctdb_msg_read_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, *pmsg_len = msg->datalen; return 0; } - -#else - -struct dummy_state { - uint8_t dummy; -}; - -static struct tevent_req *dummy_send(TALLOC_CTX *mem_ctx, - struct tevent_context *ev) -{ - struct tevent_req *req; - struct dummy_state *state; - req = tevent_req_create(mem_ctx, &state, struct dummy_state); - if (req == NULL) { - return NULL; - } - tevent_req_done(req); - return tevent_req_post(req, ev); -} - -struct tevent_req *ctdb_conn_init_send(TALLOC_CTX *mem_ctx, - struct tevent_context *ev, - const char *sock) -{ - return dummy_send(mem_ctx, ev); -} - -int ctdb_conn_init_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, - struct ctdb_conn **pconn) -{ - return ENOSYS; -} - -struct tevent_req *ctdb_conn_msg_write_send(TALLOC_CTX *mem_ctx, - struct tevent_context *ev, - struct ctdb_conn *conn, - uint32_t vnn, uint64_t srvid, - uint8_t *msg, size_t msg_len) -{ - return dummy_send(mem_ctx, ev); -} - -int ctdb_conn_msg_write_recv(struct tevent_req *req) -{ - return ENOSYS; -} - -struct tevent_req *ctdb_msg_channel_init_send( - TALLOC_CTX *mem_ctx, struct tevent_context *ev, - const char *sock, uint64_t srvid) -{ - return dummy_send(mem_ctx, ev); -} - -int ctdb_msg_channel_init_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, - struct ctdb_msg_channel **pchannel) -{ - return ENOSYS; -} - -struct tevent_req *ctdb_msg_read_send(TALLOC_CTX *mem_ctx, - struct tevent_context *ev, - struct ctdb_msg_channel *channel) -{ - return dummy_send(mem_ctx, ev); -} - -int ctdb_msg_read_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, - uint8_t **pmsg, size_t *pmsg_len) -{ - return ENOSYS; -} - -#endif diff --git a/source3/lib/ctdb_conn.h b/source3/lib/ctdb_conn.h index 0d648c7..21a69c7 100644 --- a/source3/lib/ctdb_conn.h +++ b/source3/lib/ctdb_conn.h @@ -20,26 +20,11 @@ #ifndef _CTDB_CONN_H #define _CTDB_CONN_H -#ifdef CLUSTER_SUPPORT - -#include <tdb.h> - -#ifdef HAVE_CTDB_PROTOCOL_H -#include <ctdb_protocol.h> -#else -#include <ctdb_private.h> -#endif - -#else /* CLUSTER_SUPPORT */ - -struct ctdb_reply_control; - -#endif /* CLUSTER_SUPPORT */ - #include "tevent.h" #include "librpc/gen_ndr/messaging.h" struct ctdb_conn; +struct ctdb_reply_control; struct tevent_req *ctdb_conn_control_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, diff --git a/source3/lib/ctdb_dummy.c b/source3/lib/ctdb_dummy.c new file mode 100644 index 0000000..4b360a8 --- /dev/null +++ b/source3/lib/ctdb_dummy.c @@ -0,0 +1,180 @@ +/* + Unix SMB/CIFS implementation. + Copyright (C) 2014 Björn Baumbach + Copyright (C) 2014 Stefan Metzmacher + + 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 "includes.h" +#include "messages.h" +#include "ctdb_conn.h" +#include "ctdbd_conn.h" +#include "lib/dbwrap/dbwrap.h" +#include "lib/dbwrap/dbwrap_ctdb.h" +#include "torture/proto.h" + +NTSTATUS ctdbd_probe(void) +{ + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS ctdbd_messaging_send_blob(struct ctdbd_connection *conn, + uint32_t dst_vnn, uint64_t dst_srvid, + const uint8_t *buf, size_t buflen) +{ + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS register_with_ctdbd(struct ctdbd_connection *conn, uint64_t srvid) +{ + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS ctdbd_register_reconfigure(struct ctdbd_connection *conn) +{ + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS ctdbd_register_ips(struct ctdbd_connection *conn, + const struct sockaddr_storage *_server, + const struct sockaddr_storage *_client, + bool (*release_ip_handler)(const char *ip_addr, + void *private_data), + void *private_data) +{ + return NT_STATUS_NOT_IMPLEMENTED; +} + +const char *lp_ctdbd_socket(void) +{ + return ""; +} + +bool ctdb_serverids_exist_supported(struct ctdbd_connection *conn) +{ + return false; +} + +bool ctdb_serverids_exist(struct ctdbd_connection *conn, + const struct server_id *pids, unsigned num_pids, + bool *results) +{ + return false; +} + +bool ctdb_processes_exist(struct ctdbd_connection *conn, + const struct server_id *pids, int num_pids, + bool *results) +{ + return false; +} + +struct dummy_state { + uint8_t dummy; +}; + +static struct tevent_req *dummy_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev) +{ + struct tevent_req *req; + struct dummy_state *state; + req = tevent_req_create(mem_ctx, &state, struct dummy_state); + if (req == NULL) { + return NULL; + } + tevent_req_done(req); + return tevent_req_post(req, ev); +} + +struct tevent_req *ctdb_conn_init_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + const char *sock) +{ + return dummy_send(mem_ctx, ev); +} + +int ctdb_conn_init_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, + struct ctdb_conn **pconn) +{ + return ENOSYS; +} + +struct tevent_req *ctdb_conn_msg_write_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct ctdb_conn *conn, + uint32_t vnn, uint64_t srvid, + uint8_t *msg, size_t msg_len) +{ + return dummy_send(mem_ctx, ev); +} + +int ctdb_conn_msg_write_recv(struct tevent_req *req) +{ + return ENOSYS; +} + +struct tevent_req *ctdb_msg_channel_init_send( + TALLOC_CTX *mem_ctx, struct tevent_context *ev, + const char *sock, uint64_t srvid) +{ + return dummy_send(mem_ctx, ev); +} + +int ctdb_msg_channel_init_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, + struct ctdb_msg_channel **pchannel) +{ + return ENOSYS; -- Samba Shared Repository