updates.
authorPekka Riikonen <priikone@silcnet.org>
Sat, 23 Jun 2001 14:52:03 +0000 (14:52 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Sat, 23 Jun 2001 14:52:03 +0000 (14:52 +0000)
CHANGES
lib/silcutil/silcnet.c
lib/silcutil/silcnet.h
lib/silcutil/unix/Makefile.am
lib/silcutil/unix/silcunixnet.c
lib/silcutil/win32/Makefile.am
lib/silcutil/win32/silcwin32net.c

diff --git a/CHANGES b/CHANGES
index 2deed3e7713bcea19a84eb549cbbbd60a9168dc9..f33d7505f87bf5b3167260ef33184f3ac446a70a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -12,6 +12,10 @@ Sat Jun 23 16:01:00 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
          and created lib/silcutil/win32 directory for WIN32 based
          scheduler.
 
+       * Added Unix specific network routines to the
+         lib/silcutil/unix/silcunixnet.c and the old
+         lib/silcutil/silcnet.c includes now only generic routines.
+
 Fri Jun 22 10:44:14 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
 
        * Do not handle JOIN notify in the server if the target client
index 0f6df5a88053e356500a2f2d3c76e9539edd115d..f8e75fd03d712c8a302fce52939e2d06869c331c 100644 (file)
@@ -38,7 +38,7 @@ int silc_net_set_socket_opt(int sock, int level, int option, int on)
 
 /* Checks whether IP address sent as argument is valid IP address. */
 
-int silc_net_is_ip(const char *addr)
+bool silc_net_is_ip(const char *addr)
 {
   struct in_addr tmp;
   int len = sizeof(tmp);
index b9ebab2033004897b9f1abfd05d1170aa33b4ebc..5b35a0668e67fd9add97cac18faa8818d0033e79 100644 (file)
-/*
-
-  silcnet.h
-
-  Author: Pekka Riikonen <priikone@silcnet.org>
-
-  Copyright (C) 1997 - 2001 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
-  the Free Software Foundation; either version 2 of the License, or
-  (at your option) any later version.
-  
-  This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-*/
+/****h* silcutil/silcnet.h
+ *
+ * NAME
+ *
+ * silcnet.h
+ *
+ * COPYRIGHT
+ *
+ * Author: Pekka Riikonen <priikone@silcnet.org>
+ *
+ * Copyright (C) 1997 - 2001 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
 
 #ifndef SILCNET_H
 #define SILCNET_H
 
 /* Prototypes */
+
+/****f* silcutil/SilcNetAPI/silc_net_create_server
+ *
+ * SYNOPSIS
+ *
+ *    int silc_net_create_server(int port, char *ip_addr);
+ *
+ * DESCRIPTION
+ *
+ *    This function creates server or daemon or listener or what ever. This
+ *    does not fork a new process, it must be done by the caller if caller
+ *    wants to create a child process. This is used by the SILC server. 
+ *    If argument `ip_addr' is NULL `any' address will be used. Returns 
+ *    the created socket or -1 on error.
+ *
+ ***/
 int silc_net_create_server(int port, char *ip_addr);
+
+/****f* silcutil/SilcNetAPI/silc_net_close_server
+ *
+ * SYNOPSIS
+ *
+ *    void silc_net_close_server(int sock);
+ *
+ * DESCRIPTION
+ *
+ *    Closes the server by closing the socket connection.
+ *
+ ***/
 void silc_net_close_server(int sock);
+
+/****f* silcutil/SilcNetAPI/silc_net_create_connection
+ *
+ * SYNOPSIS
+ *
+ *    int silc_net_create_connection(int port, char *host);
+ *
+ * DESCRIPTION
+ *
+ *    Creates a connection (TCP/IP) to a remote host. Returns the connection
+ *    socket or -1 on error. This blocks the process while trying to create
+ *    the connection.
+ *
+ ***/
 int silc_net_create_connection(int port, char *host);
+
+/****f* silcutil/SilcNetAPI/silc_net_create_connection_async
+ *
+ * SYNOPSIS
+ *
+ *    int silc_net_create_connection_async(int port, char *host);
+ *
+ * DESCRIPTION
+ *
+ *    Creates a connection (TCP/IP) to a remote host. Returns the connection
+ *    socket or -1 on error. This creates non-blocking socket hence the
+ *    connection returns directly. To get the result of the connect() one
+ *    must select() the socket and read the result after it's ready.
+ *
+ ***/
 int silc_net_create_connection_async(int port, char *host);
+
+/****f* silcutil/SilcNetAPI/silc_net_close_connection
+ *
+ * SYNOPSIS
+ *
+ *    void silc_net_close_connection(int sock);
+ *
+ * DESCRIPTION
+ *
+ *    Closes the connection by closing the socket connection.
+ *
+ ***/
 void silc_net_close_connection(int sock);
+
+/****f* silcutil/SilcNetAPI/silc_net_accept_connection
+ *
+ * SYNOPSIS
+ *
+ *    int silc_net_accept_connection(int sock);
+ *
+ * DESCRIPTION
+ *
+ *    Accepts a connection from a particular socket.
+ *
+ ***/
 int silc_net_accept_connection(int sock);
-int silc_net_set_socket_nonblock(int sock);
+
+/****f* silcutil/SilcNetAPI/silc_net_set_socket_opt
+ *
+ * SYNOPSIS
+ *
+ *    int silc_net_set_socket_opt(int sock, int level, int option, int on);
+ *
+ * DESCRIPTION
+ *
+ *    Sets a option for a socket.  This function can be used to set
+ *    various options for the socket.  Some of the options might be
+ *    system specific.
+ *
+ ***/
 int silc_net_set_socket_opt(int sock, int level, int option, int on);
-int silc_net_is_ip(const char *addr);
+
+/****f* silcutil/SilcNetAPI/silc_net_is_ip
+ *
+ * SYNOPSIS
+ *
+ *    bool silc_net_is_ip(const char *addr);
+ *
+ * DESCRIPTION
+ *
+ *    Checks whether IP address sent as argument is valid IP address.
+ *
+ ***/
+bool silc_net_is_ip(const char *addr);
+
+/****f* silcutil/SilcNetAPI/silc_net_addr2bin
+ *
+ * SYNOPSIS
+ *
+ *    bool silc_net_addr2bin(const char *addr, unsigned char *bin,
+ *                           uint32 bin_len);
+ *
+ * DESCRIPTION
+ *
+ *    Converts the IP number string from numbers-and-dots notation to
+ *    binary form.
+ *
+ ***/
 bool silc_net_addr2bin(const char *addr, unsigned char *bin,
                       uint32 bin_len);
+
+/****f* silcutil/SilcNetAPI/silc_net_check_host_by_sock
+ *
+ * SYNOPSIS
+ *
+ *    bool silc_net_check_host_by_sock(int sock, char **hostname, char **ip);
+ *
+ * DESCRIPTION
+ *
+ *    Performs lookups for remote name and IP address. This peforms reverse
+ *    lookup as well to verify that the IP has FQDN.
+ *
+ ***/
 bool silc_net_check_host_by_sock(int sock, char **hostname, char **ip);
+
+/****f* silcutil/SilcNetAPI/silc_net_check_local_by_sock
+ *
+ * SYNOPSIS
+ *
+ *    bool silc_net_check_local_by_sock(int sock, char **hostname, char **ip);
+ *
+ * DESCRIPTION
+ *
+ *    Performs lookups for local name and IP address. This peforms reverse
+ *    lookup as well to verify that the IP has FQDN.
+ *
+ ***/
 bool silc_net_check_local_by_sock(int sock, char **hostname, char **ip);
+
+/****f* silcutil/SilcNetAPI/silc_net_get_remote_port
+ *
+ * SYNOPSIS
+ *
+ *    uint16 silc_net_get_remote_port(int sock);
+ *
+ * DESCRIPTION
+ *
+ *    Return remote port by socket.
+ *
+ ***/
 uint16 silc_net_get_remote_port(int sock);
+
+/****f* silcutil/SilcNetAPI/silc_net_get_local_port
+ *
+ * SYNOPSIS
+ *
+ *    uint16 silc_net_get_local_port(int sock);
+ *
+ * DESCRIPTION
+ *
+ *    Return local port by socket.
+ *
+ ***/
 uint16 silc_net_get_local_port(int sock);
+
+/****f* silcutil/SilcNetAPI/silc_net_localhost
+ *
+ * SYNOPSIS
+ *
+ *    char *silc_net_localhost();
+ *
+ * DESCRIPTION
+ *
+ *    Return name of localhost.  This will also attempt to resolve
+ *    the real hostname by the local host's IP address.  If unsuccessful
+ *    the first found hostname is returned.
+ *
+ ***/
 char *silc_net_localhost();
 
 #endif
index 3eb7f7d2228844c8e6ff03ffccebc0c6987b9c01..c0ab848008447e87aa7db23778f2b97f5d81aefc 100644 (file)
@@ -20,8 +20,9 @@ AUTOMAKE_OPTIONS = 1.0 no-dependencies foreign
 
 noinst_LIBRARIES = libsilcunixutil.a
 
-libsilcunixutil_a_SOURCES = \
-       silcunixschedule.c
+libsilcunixutil_a_SOURCES =    \
+       silcunixschedule.c      \
+       silcunixnet.c
 
 EXTRA_DIST = *.h
 
index 7b2ef02dcd0bc550be79cb8e238270b2cdd443ba..1abb7a0c1bb0c1f77dcfc5db9f2866fc518326ab 100644 (file)
@@ -22,6 +22,8 @@
 #include "silcincludes.h"
 #include "silcnet.h"
 
+int silc_net_set_socket_nonblock(int sock);
+
 /* This function creates server or daemon or listener or what ever. This
    does not fork a new process, it must be done by the caller if caller
    wants to create a child process. This is used by the SILC server. 
@@ -84,6 +86,8 @@ int silc_net_create_server(int port, char *ip_addr)
   return sock;
 }
 
+/* Closes the server by closing the socket connection. */
+
 void silc_net_close_server(int sock)
 {
   shutdown(sock, 2);
@@ -199,7 +203,7 @@ int silc_net_create_connection_async(int port, char *host)
   return sock;
 }
 
-/* Closes the connection */
+/* Closes the connection by closing the socket connection. */
 
 void silc_net_close_connection(int sock)
 {
index e66c847b6bc4347bdfb71b3ffea88392672edc1d..53b09b9b07799d654f0f16ffc183617e08dc19f0 100644 (file)
@@ -20,7 +20,8 @@ AUTOMAKE_OPTIONS = 1.0 no-dependencies foreign
 
 noinst_LIBRARIES = libsilcwin32util.a
 
-libsilcwin32util_a_SOURCES = 
+libsilcwin32util_a_SOURCES = \
+       silcwin32net.c
 
 EXTRA_DIST = *.h
 
index 13032ce7058f5a1db00e445e0cf081ead7f68a4d..d3ff04748ed6ca0767e512cac044788c5a29ea35 100644 (file)
@@ -186,3 +186,10 @@ bool silc_net_addr2bin(const char *addr, unsigned char *bin,
 
   return ret != INADDR_NONE;
 }
+
+/* Set socket to non-blocking mode. */
+
+int silc_net_set_socket_nonblock(int sock)
+{
+  return 0;
+}