diff --git a/source3/lib/ctdbd_conn.c b/source3/lib/ctdbd_conn.c index d27186996e6..f42290695a7 100644 --- a/source3/lib/ctdbd_conn.c +++ b/source3/lib/ctdbd_conn.c @@ -1358,6 +1358,11 @@ NTSTATUS ctdbd_register_ips(struct ctdbd_connection *conn, } conn->release_ip_handler = release_ip_handler; + /* + * store the IP address of the server socket for later + * comparison in release_ip() + */ + conn->release_ip_priv = private_data; /* * We want to be told about IP releases diff --git a/source3/smbd/process.c b/source3/smbd/process.c index d58baeb930d..5f9845cba05 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -2358,6 +2358,9 @@ static void release_ip(const char *ip, void *priv) p = addr + 7; } + DEBUG(10, ("Got release IP message for %s, " + "our address is %s\n", ip, p)); + if ((strcmp(p, ip) == 0) || ((p != addr) && strcmp(addr, ip) == 0)) { /* we can't afford to do a clean exit - that involves database writes, which would potentially mean we