From: Ralph Boehme Date: Sat, 9 Jul 2016 06:59:09 +0000 (+0200) Subject: ctdbd_conn: add ctdbd_reinit_connection() X-Git-Tag: tdb-1.3.10~428 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=84da49f89b905a80d82901bfc1e4c8ec534edd3d;p=thirdparty%2Fsamba.git ctdbd_conn: add ctdbd_reinit_connection() Signed-off-by: Ralph Boehme Reviewed-by: Volker Lendecke --- diff --git a/source3/include/ctdbd_conn.h b/source3/include/ctdbd_conn.h index 11e71ba559a..bbebbcec9fe 100644 --- a/source3/include/ctdbd_conn.h +++ b/source3/include/ctdbd_conn.h @@ -33,6 +33,9 @@ struct messaging_rec; int ctdbd_init_connection(TALLOC_CTX *mem_ctx, const char *sockname, int timeout, struct ctdbd_connection **pconn); +int ctdbd_reinit_connection(TALLOC_CTX *mem_ctx, + const char *sockname, int timeout, + struct ctdbd_connection *conn); uint32_t ctdbd_vnn(const struct ctdbd_connection *conn); diff --git a/source3/lib/ctdbd_conn.c b/source3/lib/ctdbd_conn.c index db7bb80c475..1f8ac947199 100644 --- a/source3/lib/ctdbd_conn.c +++ b/source3/lib/ctdbd_conn.c @@ -477,6 +477,31 @@ int ctdbd_init_connection(TALLOC_CTX *mem_ctx, return ret; } +int ctdbd_reinit_connection(TALLOC_CTX *mem_ctx, + const char *sockname, int timeout, + struct ctdbd_connection *conn) +{ + int ret; + + ret = ctdbd_connection_destructor(conn); + if (ret != 0) { + DBG_ERR("ctdbd_connection_destructor failed\n"); + return ret; + } + + ret = ctdbd_init_connection_internal(mem_ctx, + sockname, + timeout, + conn); + if (ret != 0) { + DBG_ERR("ctdbd_init_connection_internal failed (%s)\n", + strerror(ret)); + return ret; + } + + return 0; +} + int ctdbd_conn_get_fd(struct ctdbd_connection *conn) { return conn->fd;