s4:smb_server: use tsocket_address_string() for debugging the client address
authorStefan Metzmacher <metze@samba.org>
Tue, 27 Apr 2010 14:05:08 +0000 (16:05 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 27 Apr 2010 14:18:14 +0000 (16:18 +0200)
metze

source4/smb_server/management.c

index e58c2786134c0a3e16f28cf8f7ccf9a7e386e196..b8e42aec400cf19e668e7bd36bca4748e543f6eb 100644 (file)
@@ -25,6 +25,7 @@
 #include "lib/messaging/irpc.h"
 #include "librpc/gen_ndr/ndr_irpc.h"
 #include "auth/auth.h"
+#include "lib/tsocket/tsocket.h"
 
 /*
   return a list of open sessions
@@ -34,9 +35,15 @@ static NTSTATUS smbsrv_session_information(struct irpc_message *msg,
 {
        struct smbsrv_connection *smb_conn = talloc_get_type(msg->private_data,
                                             struct smbsrv_connection);
+       struct tsocket_address *client_addr = smb_conn->connection->remote_address;
+       char *client_addr_string;
        int i=0, count=0;
        struct smbsrv_session *sess;
 
+       /* This is for debugging only! */
+       client_addr_string = tsocket_address_string(client_addr, r);
+       NT_STATUS_HAVE_NO_MEMORY(client_addr_string);
+
        /* count the number of sessions */
        for (sess=smb_conn->sessions.list; sess; sess=sess->next) {
                count++;
@@ -48,14 +55,8 @@ static NTSTATUS smbsrv_session_information(struct irpc_message *msg,
 
        for (sess=smb_conn->sessions.list; sess; sess=sess->next) {
                struct smbsrv_session_info *info = &r->out.info.sessions.sessions[i];
-               struct socket_address *client_addr;
-               client_addr = socket_get_peer_addr(smb_conn->connection->socket, r);
-               
-               if (client_addr) {
-                       info->client_ip = client_addr->addr;
-               } else {
-                       info->client_ip = NULL;
-               }
+
+               info->client_ip    = client_addr_string;
 
                info->vuid         = sess->vuid;
                info->account_name = sess->session_info->server_info->account_name;