Merge commit 'origin/silc.1.1.branch'
[silc.git] / lib / silcclient / client_listener.c
index d6af269f65df0f19ff3fe6aaaf274e52b9d2f5fa..76db6af75a6d5cf5c5e39215a0b2a40000de8714 100644 (file)
@@ -4,7 +4,7 @@
 
   Author: Pekka Riikonen <priikone@silcnet.org>
 
-  Copyright (C) 2007 Pekka Riikonen
+  Copyright (C) 2007 - 2008 Pekka Riikonen
 
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -181,6 +181,9 @@ silc_client_listener_new_connection(SilcClientListener listener,
     return;
   }
   conn->stream = stream;
+  conn->socket_stream = silc_packet_stream_get_stream(stream);
+  silc_socket_stream_get_info(conn->socket_stream, &conn->sock, NULL,
+                             NULL, NULL);
   conn->internal->schedule = listener->schedule;
   silc_packet_set_context(conn->stream, conn);
 
@@ -219,7 +222,7 @@ silc_client_listener_new_connection(SilcClientListener listener,
 /* TCP network listener callback.  Accepts new key agreement connection.
    Responder function. */
 
-static void silc_client_listener_tcp_accept(SilcNetStatus status,
+static void silc_client_listener_tcp_accept(SilcResult status,
                                            SilcStream stream,
                                            void *context)
 {
@@ -334,7 +337,8 @@ silc_client_listener_add(SilcClient client,
                     client, NULL, SILC_CLIENT_MESSAGE_ERROR,
                     "Cannot create UDP listener on %s on port %d: %s",
                     params->bind_ip ? params->bind_ip :
-                    params->local_ip, params->local_port, strerror(errno));
+                    params->local_ip, params->local_port,
+                    silc_errno_string(silc_errno));
       silc_client_listener_free(listener);
       if (stream)
        silc_stream_destroy(stream);
@@ -364,7 +368,8 @@ silc_client_listener_add(SilcClient client,
                     client, NULL, SILC_CLIENT_MESSAGE_ERROR,
                     "Cannot create listener on %s on port %d: %s",
                     params->bind_ip ? params->bind_ip :
-                    params->local_ip, params->local_port, strerror(errno));
+                    params->local_ip, params->local_port,
+                    silc_errno_string(silc_errno));
 
       silc_client_listener_free(listener);
       return NULL;