From: Michael Adam Date: Thu, 7 May 2009 23:11:43 +0000 (+0200) Subject: s3: make release_ip() call (ctdb) cope with IPv4 mapped addresses X-Git-Tag: tdb-1.1.5~672 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e86a534fa707b44baec87060745dd8a557622721;p=thirdparty%2Fsamba.git s3: make release_ip() call (ctdb) cope with IPv4 mapped addresses Michael --- diff --git a/source3/smbd/process.c b/source3/smbd/process.c index 7605ad70b55..0f3e560611c 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -1887,8 +1887,15 @@ received when we should release a specific IP static void release_ip(const char *ip, void *priv) { char addr[INET6_ADDRSTRLEN]; + char *p; - if (strcmp(client_socket_addr(get_client_fd(),addr,sizeof(addr)), ip) == 0) { + client_socket_addr(get_client_fd(),addr,sizeof(addr)); + + if (strncmp("::ffff:", addr, 7) == 0) { + p = addr + 7; + } + + if ((strcmp(p, ip) == 0) || (strcmp(addr, ip) == 0)) { /* we can't afford to do a clean exit - that involves database writes, which would potentially mean we are still running after the failover has finished -