s3:smbd: call sub_set_socket_ids() in smbd_process() again
authorStefan Metzmacher <metze@samba.org>
Mon, 12 Dec 2011 07:46:26 +0000 (08:46 +0100)
committerStefan Metzmacher <metze@samba.org>
Mon, 12 Dec 2011 09:23:43 +0000 (10:23 +0100)
This got lost in commit b2511a280aa9449123376fd3cbb495dcd1a87dee.

metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Mon Dec 12 10:23:44 CET 2011 on sn-devel-104

source3/smbd/process.c

index 82dd51048e4bf02a9e5d48edb2e57124c96cd595..073ee395775c4b1700f516f1cdf005824fe88513 100644 (file)
@@ -2955,6 +2955,7 @@ void smbd_process(struct tevent_context *ev_ctx,
        socklen_t sa_socklen;
        struct tsocket_address *local_address = NULL;
        struct tsocket_address *remote_address = NULL;
+       const char *locaddr = NULL;
        const char *remaddr = NULL;
        char *rhost;
        int ret;
@@ -3013,6 +3014,19 @@ void smbd_process(struct tevent_context *ev_ctx,
        sconn->local_address = local_address;
        sconn->remote_address = remote_address;
 
+       if (tsocket_address_is_inet(local_address, "ip")) {
+               locaddr = tsocket_address_inet_addr_string(
+                               sconn->local_address,
+                               talloc_tos());
+               if (locaddr == NULL) {
+                       DEBUG(0,("%s: tsocket_address_inet_addr_string local failed - %s\n",
+                                __location__, strerror(errno)));
+                       exit_server_cleanly("tsocket_address_inet_addr_string local failed.\n");
+               }
+       } else {
+               locaddr = "0.0.0.0";
+       }
+
        if (tsocket_address_is_inet(remote_address, "ip")) {
                remaddr = tsocket_address_inet_addr_string(
                                sconn->remote_address,
@@ -3051,6 +3065,10 @@ void smbd_process(struct tevent_context *ev_ctx,
        }
        sconn->remote_hostname = talloc_move(sconn, &rhost);
 
+       sub_set_socket_ids(remaddr,
+                          sconn->remote_hostname,
+                          locaddr);
+
        if (!allow_access(lp_hostsdeny(-1), lp_hostsallow(-1),
                          sconn->remote_hostname,
                          remaddr)) {