-/****h* silcutil/silcnet.h
- *
- * NAME
- *
- * silcnet.h
- *
- * COPYRIGHT
- *
- * Author: Pekka Riikonen <priikone@silcnet.org>
+/*
+
+ 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/SilcNetAPI
*
- * Copyright (C) 1997 - 2001 Pekka Riikonen
+ * DESCRIPTION
*
- * 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.
+ * SILC Net API provides various network routines for applications. It
+ * can be used to create TCP/IP connections and servers. Various utility
+ * functions for resolving various information is also provided.
*
- * 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.
+ * On WIN32 systems the SILC Net API must initialized by calling the
+ * silc_net_win32_init and uninitialized when the application ends by
+ * calling the silc_net_win32_uninit function. The initializing must be
+ * done in order to assure that the SILC Net API works correctly.
*
- */
+ ***/
#ifndef SILCNET_H
#define SILCNET_H
*
* SYNOPSIS
*
- * int silc_net_create_connection(int port, char *host);
+ * int silc_net_create_connection(const char *local_ip, int port,
+ * const 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.
+ * the connection. If the `local_ip' is not NULL then this will bind
+ * the `local_ip' address to a port before creating the connection. If
+ * it is NULL then this will directly create the connection.
*
***/
-int silc_net_create_connection(int port, char *host);
+int silc_net_create_connection(const char *localhost, int port,
+ const char *host);
/****f* silcutil/SilcNetAPI/silc_net_create_connection_async
*
* SYNOPSIS
*
- * int silc_net_create_connection_async(int port, char *host);
+ * int silc_net_create_connection_async(const char *local_ip, int port,
+ * const 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.
+ * must select() the socket and read the result after it's ready. If the
+ * `local_ip' is not NULL then this will bind the `local_ip' address to
+ * a port before creating the connection. If it is NULL then this will
+ * directly create the connection.
*
***/
-int silc_net_create_connection_async(int port, char *host);
+int silc_net_create_connection_async(const char *local_ip, int port,
+ const char *host);
/****f* silcutil/SilcNetAPI/silc_net_close_connection
*
* this function the SILC Net API routines will not work anymore.
*
***/
-void silc_net_win32_init(void);
+void silc_net_win32_uninit(void);
#endif