]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-daemon: Use ctdb_parse_node_address() in ctdbd
authorMartin Schwenke <mschwenke@ddn.com>
Mon, 8 Jul 2024 07:57:27 +0000 (17:57 +1000)
committerMartin Schwenke <martins@samba.org>
Tue, 23 Jul 2024 12:39:18 +0000 (12:39 +0000)
While here, fix a trivial memory leak (ctdbd will exit anyway if this
function fails).

Signed-off-by: Martin Schwenke <mschwenke@ddn.com>
Reviewed-by: Anoop C S <anoopcs@samba.org>
Autobuild-User(master): Martin Schwenke <martins@samba.org>
Autobuild-Date(master): Tue Jul 23 12:39:18 UTC 2024 on atb-devel-224

ctdb/common/common.h
ctdb/common/ctdb_util.c
ctdb/server/ctdb_server.c

index 6a52fb4e4c6027a5b43051ceb4f7af04cfaa4df0..1f6f937663c8471d5dbb2de7f877a47e61df49ca 100644 (file)
@@ -101,9 +101,6 @@ bool ctdb_set_helper(const char *type, char *helper, size_t size,
                     const char *envvar,
                     const char *dir, const char *file);
 
-int ctdb_parse_address(TALLOC_CTX *mem_ctx, const char *str,
-                      ctdb_sock_addr *address);
-
 bool ctdb_same_address(ctdb_sock_addr *a1, ctdb_sock_addr *a2);
 
 uint32_t ctdb_hash(const TDB_DATA *key);
index 831a2877b8a8a931e785e5c09aab8a76bf72f779..0b4876725a07f8daf2ad8704c9a7de212c2f8889 100644 (file)
@@ -140,36 +140,6 @@ bool ctdb_set_helper(const char *type, char *helper, size_t size,
        return true;
 }
 
-/*
-  parse a IP:port pair
-*/
-int ctdb_parse_address(TALLOC_CTX *mem_ctx, const char *str,
-                      ctdb_sock_addr *address)
-{
-       struct servent *se;
-       int port;
-       int ret;
-
-       setservent(0);
-       se = getservbyname("ctdb", "tcp");
-       endservent();
-
-       if (se == NULL) {
-               port = CTDB_PORT;
-       } else {
-               port = ntohs(se->s_port);
-       }
-
-       ret = ctdb_sock_addr_from_string(str, address, false);
-       if (ret != 0) {
-               return -1;
-       }
-       ctdb_sock_addr_set_port(address, port);
-
-       return 0;
-}
-
-
 /*
   check if two addresses are the same
 */
index 40f8e28923905620b759a1b5113385e0978be0c0..b7a33af7ecf23174e9746b2633b54a19cab2ebb1 100644 (file)
@@ -154,10 +154,14 @@ fail:
 */
 int ctdb_set_address(struct ctdb_context *ctdb, const char *address)
 {
+       bool ok;
+
        ctdb->address = talloc(ctdb, ctdb_sock_addr);
        CTDB_NO_MEMORY(ctdb, ctdb->address);
 
-       if (ctdb_parse_address(ctdb, address, ctdb->address) != 0) {
+       ok = ctdb_parse_node_address(address, ctdb->address);
+       if (!ok) {
+               TALLOC_FREE(ctdb->address);
                return -1;
        }