s3: Remove "server_fd" global variable
authorVolker Lendecke <vl@samba.org>
Mon, 27 Sep 2010 00:15:18 +0000 (02:15 +0200)
committerVolker Lendecke <vl@samba.org>
Tue, 28 Sep 2010 05:36:15 +0000 (07:36 +0200)
source3/smbd/globals.c
source3/smbd/globals.h
source3/smbd/process.c

index 87d6405ee96b442e139b0e41d09254899f69118b..340789ba8e18060573775c9fde05e45233845559 100644 (file)
@@ -110,7 +110,6 @@ int32_t level_II_oplocks_open = 0;
 struct kernel_oplocks *koplocks = NULL;
 
 int am_parent = 1;
-int server_fd = -1;
 struct memcache *smbd_memcache_ctx = NULL;
 bool exit_firsttime = true;
 struct child_pid *children = 0;
index 923dd1763c5b1cf96773f2d9a9548c02cd316589..f4fb4f0b404f748a2f09d328bab11523b47db872 100644 (file)
@@ -120,7 +120,6 @@ extern int32_t level_II_oplocks_open;
 extern struct kernel_oplocks *koplocks;
 
 extern int am_parent;
-extern int server_fd;
 extern struct event_context *smbd_event_ctx;
 extern struct messaging_context *smbd_msg_ctx;
 extern struct memcache *smbd_memcache_ctx;
index 1ce4ca72632e1d5cdd726c53cf7b890d28aa3fc0..9535d819dd82bbbbc25fcf81977467a9db15b780 100644 (file)
@@ -2410,19 +2410,16 @@ static void msg_release_ip(struct messaging_context *msg_ctx, void *private_data
 }
 
 #ifdef CLUSTER_SUPPORT
-static int client_get_tcp_info(struct sockaddr_storage *server,
+static int client_get_tcp_info(int sock, struct sockaddr_storage *server,
                               struct sockaddr_storage *client)
 {
        socklen_t length;
-       if (server_fd == -1) {
-               return -1;
-       }
        length = sizeof(*server);
-       if (getsockname(server_fd, (struct sockaddr *)server, &length) != 0) {
+       if (getsockname(sock, (struct sockaddr *)server, &length) != 0) {
                return -1;
        }
        length = sizeof(*client);
-       if (getpeername(server_fd, (struct sockaddr *)client, &length) != 0) {
+       if (getpeername(sock, (struct sockaddr *)client, &length) != 0) {
                return -1;
        }
        return 0;
@@ -3116,7 +3113,7 @@ void smbd_process(struct smbd_server_connection *sconn)
 
                struct sockaddr_storage srv, clnt;
 
-               if (client_get_tcp_info(&srv, &clnt) == 0) {
+               if (client_get_tcp_info(sconn->sock, &srv, &clnt) == 0) {
                        NTSTATUS status;
                        status = smbd_register_ips(sconn, &srv, &clnt);
                        if (!NT_STATUS_IS_OK(status)) {