Created SILC Runtime Toolkit git repository Part II.
[runtime.git] / lib / silcutil / silcnet.c
index 027d70891bb86c623fd382c9bd2ae5b821128e4d..5c6dadb06beeed621903b241d5dc0608a1f5708c 100644 (file)
@@ -4,7 +4,7 @@
 
   Author: Pekka Riikonen <priikone@silcnet.org>
 
-  Copyright (C) 1997 - 2007 Pekka Riikonen
+  Copyright (C) 1997 - 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
@@ -16,9 +16,8 @@
   GNU General Public License for more details.
 
 */
-/* $Id$ */
 
-#include "silc.h"
+#include "silcruntime.h"
 
 /* Returns bound port from listener */
 
@@ -94,6 +93,7 @@ int silc_net_accept_connection(int sock)
   int ret = accept(sock, 0, 0);
   if (ret < 0)
     silc_set_errno_posix(errno);
+  return ret;
 }
 
 /* Sets a option for a socket. */
@@ -103,6 +103,7 @@ int silc_net_set_socket_opt(int sock, int level, int option, int on)
   int ret = setsockopt(sock, level, option, (void *)&on, sizeof(on));
   if (ret < 0)
     silc_set_errno_posix(errno);
+  return ret;
 }
 
 /* Get socket options */
@@ -110,9 +111,10 @@ int silc_net_set_socket_opt(int sock, int level, int option, int on)
 int silc_net_get_socket_opt(int sock, int level, int option,
                            void *optval, int *opt_len)
 {
-  int ret = getsockopt(sock, level, option, optval, opt_len);
+  int ret = getsockopt(sock, level, option, optval, (unsigned int *)opt_len);
   if (ret < 0)
     silc_set_errno_posix(errno);
+  return ret;
 }
 
 /* Checks whether IP address sent as argument is valid IPv4 address. */
@@ -297,6 +299,11 @@ void silc_net_gethostbyname_async(const char *name,
 {
   SilcNetResolveContext r = silc_calloc(1, sizeof(*r));
 
+  if (!schedule) {
+    schedule = silc_schedule_get_global();
+    SILC_VERIFY(schedule);
+  }
+
   r->completion = completion;
   r->context = context;
   r->prefer_ipv6 = prefer_ipv6;
@@ -353,6 +360,11 @@ void silc_net_gethostbyaddr_async(const char *addr,
 {
   SilcNetResolveContext r = silc_calloc(1, sizeof(*r));
 
+  if (!schedule) {
+    schedule = silc_schedule_get_global();
+    SILC_VERIFY(schedule);
+  }
+
   r->completion = completion;
   r->context = context;
   r->schedule = schedule;
@@ -370,7 +382,8 @@ SilcBool silc_net_check_host_by_sock(SilcSocket sock, char **hostname,
                                     char **ip)
 {
   char host[1024];
-  int rval, len;
+  int rval;
+  unsigned int len;
 
 #ifdef HAVE_IPV6
   struct sockaddr_storage remote;
@@ -449,7 +462,8 @@ SilcBool silc_net_check_local_by_sock(SilcSocket sock, char **hostname,
                                      char **ip)
 {
   char host[1024];
-  int rval, len;
+  int rval;
+  unsigned int len;
 
 #ifdef HAVE_IPV6
   struct sockaddr_storage local;
@@ -527,7 +541,7 @@ SilcUInt16 silc_net_get_remote_port(SilcSocket sock)
 {
 #ifdef HAVE_IPV6
   struct sockaddr_storage remote;
-  int len;
+  unsigned int len;
   char s[NI_MAXSERV];
 
   memset(&remote, 0, sizeof(remote));
@@ -542,7 +556,7 @@ SilcUInt16 silc_net_get_remote_port(SilcSocket sock)
   return atoi(s);
 #else
   struct sockaddr_in remote;
-  int len;
+  unsigned int len;
 
   memset(&remote, 0, sizeof(remote));
   len = sizeof(remote);
@@ -559,7 +573,7 @@ SilcUInt16 silc_net_get_local_port(SilcSocket sock)
 {
 #ifdef HAVE_IPV6
   struct sockaddr_storage local;
-  int len;
+  unsigned int len;
   char s[NI_MAXSERV];
 
   memset(&local, 0, sizeof(local));
@@ -574,7 +588,7 @@ SilcUInt16 silc_net_get_local_port(SilcSocket sock)
   return atoi(s);
 #else
   struct sockaddr_in local;
-  int len;
+  unsigned int len;
 
   memset(&local, 0, sizeof(local));
   len = sizeof(local);