]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdbd_conn: add ctdbd_reinit_connection()
authorRalph Boehme <slow@samba.org>
Sat, 9 Jul 2016 06:59:09 +0000 (08:59 +0200)
committerRalph Boehme <slow@samba.org>
Mon, 11 Jul 2016 18:05:06 +0000 (20:05 +0200)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
source3/include/ctdbd_conn.h
source3/lib/ctdbd_conn.c

index 11e71ba559a44d874f81e36e00f3e3d2853a9346..bbebbcec9fecb4c80957f347184ec8d10e05193d 100644 (file)
@@ -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);
 
index db7bb80c475477aa99031a3c23ecea0027888224..1f8ac947199e8858c1f47a69932b4a71eb80ae06 100644 (file)
@@ -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;