summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2002-10-03 03:31:41 +0000
committerAndrew Bartlett <abartlet@samba.org>2002-10-03 03:31:41 +0000
commit08387abd7d6f581dd1954fe05b7b28a1fa71bcd8 (patch)
tree7ebdbf0b503914d07af27e19e7f13d576b9bda80
parent3a5577e552d7723138ccd638848716659492133b (diff)
downloadsamba-08387abd7d6f581dd1954fe05b7b28a1fa71bcd8.tar.gz
samba-08387abd7d6f581dd1954fe05b7b28a1fa71bcd8.tar.bz2
samba-08387abd7d6f581dd1954fe05b7b28a1fa71bcd8.zip
Another patch from Steve Langasek <vorlon@netexpress.net>, again from the
Debian patchset. The idea is to still allow DNS domains to be specified in 'hosts allow' and 'hosts deny' without making the admin set 'hostname lookups' in their smb.conf. His concern is about upgrades. This has been designed not to change the value of %M. Andrew Bartlett (This used to be commit f428ee98d83a55922c991b0eeddd47891b80d918)
-rw-r--r--source3/lib/access.c6
-rw-r--r--source3/lib/util_sock.c6
-rw-r--r--source3/web/cgi.c2
3 files changed, 7 insertions, 7 deletions
diff --git a/source3/lib/access.c b/source3/lib/access.c
index 4e524735e4..a39bc6df76 100644
--- a/source3/lib/access.c
+++ b/source3/lib/access.c
@@ -316,20 +316,20 @@ BOOL check_access(int sock, char **allow_list, char **deny_list)
else
{
DEBUG (3, ("check_access: hostnames in host allow/deny list.\n"));
- ret = allow_access(deny_list,allow_list, get_socket_name(sock),
+ ret = allow_access(deny_list,allow_list, get_socket_name(sock,True),
get_socket_addr(sock));
}
if (ret)
{
DEBUG(2,("Allowed connection from %s (%s)\n",
- only_ip ? "" : get_socket_name(sock),
+ only_ip ? "" : get_socket_name(sock,True),
get_socket_addr(sock)));
}
else
{
DEBUG(0,("Denied connection from %s (%s)\n",
- only_ip ? "" : get_socket_name(sock),
+ only_ip ? "" : get_socket_name(sock,True),
get_socket_addr(sock)));
}
}
diff --git a/source3/lib/util_sock.c b/source3/lib/util_sock.c
index fc2abf976f..04c20f6596 100644
--- a/source3/lib/util_sock.c
+++ b/source3/lib/util_sock.c
@@ -832,7 +832,7 @@ void client_setfd(int fd)
char *client_name(void)
{
- return get_socket_name(client_fd);
+ return get_socket_name(client_fd,False);
}
char *client_addr(void)
@@ -890,7 +890,7 @@ static BOOL matchname(char *remotehost,struct in_addr addr)
/*******************************************************************
return the DNS name of the remote end of a socket
******************************************************************/
-char *get_socket_name(int fd)
+char *get_socket_name(int fd, BOOL force_lookup)
{
static pstring name_buf;
static fstring addr_buf;
@@ -902,7 +902,7 @@ char *get_socket_name(int fd)
situations won't work because many networks don't link dhcp
with dns. To avoid the delay we avoid the lookup if
possible */
- if (!lp_hostname_lookups()) {
+ if (!lp_hostname_lookups() && (force_lookup == False)) {
return get_socket_addr(fd);
}
diff --git a/source3/web/cgi.c b/source3/web/cgi.c
index 7415fbe3f1..27cc932abe 100644
--- a/source3/web/cgi.c
+++ b/source3/web/cgi.c
@@ -636,7 +636,7 @@ return the hostname of the client
char *cgi_remote_host(void)
{
if (inetd_server) {
- return get_socket_name(1);
+ return get_socket_name(1,False);
}
return getenv("REMOTE_HOST");
}