updates.
[silc.git] / lib / silcutil / silcsockconn.h
index 658c3acda1755f12565d1b2b7f6360c553bd6091..f2e15e3cd1dd177dd28b8b7d6a7bda590c299bca 100644 (file)
@@ -1,24 +1,24 @@
-/****h* silcutil/silcsockconn.h
- *
- * NAME
- *
- * silcsockconn.h
- *
- * COPYRIGHT
- *
- * Author: Pekka Riikonen <priikone@silnet.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.
+/*
+  silcsockconn.h
+  Author: Pekka Riikonen <priikone@silnet.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/SilcSocketConnectionAPI
  *
  * DESCRIPTION
  *
@@ -94,11 +94,13 @@ typedef enum {
 
 /* Socket flags */
 #define SILC_SF_NONE             0
-#define SILC_SF_INBUF_PENDING    1
-#define SILC_SF_OUTBUF_PENDING   2
-#define SILC_SF_DISCONNECTING    3
-#define SILC_SF_DISCONNECTED     4
-#define SILC_SF_HOST_LOOKUP      5
+#define SILC_SF_INBUF_PENDING    1 /* data in inbound buffer */
+#define SILC_SF_OUTBUF_PENDING   2 /* data in outbound buffer */
+#define SILC_SF_DISCONNECTING    3 /* socket disconnecting */
+#define SILC_SF_DISCONNECTED     4 /* socket disconnected */
+#define SILC_SF_HOST_LOOKUP      5 /* performing host lookup for socket */
+#define SILC_SF_DISABLED         6 /* socket connection is disabled,
+                                     no data is sent or received. */
 
 /****s* silcutil/SilcSocketConnectionAPI/SilcSocketConnectionStruct
  *
@@ -208,11 +210,13 @@ struct SilcSocketConnectionStruct {
 #define SILC_SET_DISCONNECTING(x) SF_SET((x), SILC_SF_DISCONNECTING)
 #define SILC_SET_DISCONNECTED(x) SF_SET((x), SILC_SF_DISCONNECTED)
 #define SILC_SET_HOST_LOOKUP(x) SF_SET((x), SILC_SF_HOST_LOOKUP)
+#define SILC_SET_DISABLED(x) SF_SET((x), SILC_SF_HOST_LOOKUP)
 #define SILC_UNSET_OUTBUF_PENDING(x) SF_UNSET((x), SILC_SF_OUTBUF_PENDING)
 #define SILC_UNSET_INBUF_PENDING(x) SF_UNSET((x), SILC_SF_INBUF_PENDING)
 #define SILC_UNSET_DISCONNECTING(x) SF_UNSET((x), SILC_SF_DISCONNECTING)
 #define SILC_UNSET_DISCONNECTED(x) SF_UNSET((x), SILC_SF_DISCONNECTED)
 #define SILC_UNSET_HOST_LOOKUP(x) SF_UNSET((x), SILC_SF_HOST_LOOKUP)
+#define SILC_UNSET_DISABLED(x) SF_UNSET((x), SILC_SF_DISABLED)
 
 /* Checking for flags */
 #define SILC_IS_OUTBUF_PENDING(x) SF_IS((x), SILC_SF_OUTBUF_PENDING)
@@ -220,6 +224,7 @@ struct SilcSocketConnectionStruct {
 #define SILC_IS_DISCONNECTING(x) SF_IS((x), SILC_SF_DISCONNECTING)
 #define SILC_IS_DISCONNECTED(x) SF_IS((x), SILC_SF_DISCONNECTED)
 #define SILC_IS_HOST_LOOKUP(x) SF_IS((x), SILC_SF_HOST_LOOKUP)
+#define SILC_IS_DISABLED(x) SF_IS((x), SILC_SF_DISABLED)
 
 /* Prototypes */
 
@@ -333,7 +338,7 @@ typedef void (*SilcSocketConnectionHBCb)(SilcSocketConnection sock,
  *                                   uint32 heartbeat,
  *                                   void *hb_context,
  *                                   SilcSocketConnectionHBCb hb_callback,
- *                                   void *timeout_queue);
+ *                                   SilcSchedule schedule);
  *
  * DESCRIPTION
  *
@@ -343,14 +348,14 @@ typedef void (*SilcSocketConnectionHBCb)(SilcSocketConnection sock,
  *    `hb_callback' function that is called when the `heartbeat' timeout
  *    expires.  The callback `hb_context' won't be touched by the library
  *    but will be freed automatically when calling silc_socket_free.  The
- *    `timeout_queue' is the application's scheduler timeout queue.
+ *    `schedule' is the application's scheduler.
  *
  ***/
 void silc_socket_set_heartbeat(SilcSocketConnection sock, 
                               uint32 heartbeat,
                               void *hb_context,
                               SilcSocketConnectionHBCb hb_callback,
-                              void *timeout_queue);
+                              SilcSchedule schedule);
 
 /****f* silcutil/SilcSocketConnectionAPI/SilcSocketHostLookupCb
  *
@@ -373,9 +378,10 @@ typedef void (*SilcSocketHostLookupCb)(SilcSocketConnection sock,
  * SYNOPSIS
  *
  *    void silc_socket_host_lookup(SilcSocketConnection sock,
+ *                                 bool port_lookup,
  *                                 SilcSocketHostLookupCb callback,
  *                                 void *context,
- *                                 void *timeout_queue);
+ *                                 SilcSchedule schedule);
  *
  * DESCRIPTION
  *
@@ -383,11 +389,11 @@ typedef void (*SilcSocketHostLookupCb)(SilcSocketConnection sock,
  *    specified socket connection. This may be called when the socket
  *    connection is created and the full IP address and fully qualified
  *    domain name information is desired. The `callback' with `context'
- *    will be called after the lookup is performed. The `timeout_queue'
- *    is the application's scheduler timeout queue which the lookup
- *    routine needs. If the socket connection is freed during the
- *    lookup the library will automatically cancel the lookup and
- *    the `callback' will not be called.
+ *    will be called after the lookup is performed. The `schedule'
+ *    is the application's scheduler which the lookup routine needs. 
+ *    If the socket connection is freed during the lookup the library
+ *    will automatically cancel the lookup and the `callback' will not be
+ *    called.
  *
  *    If `port_lookup' is TRUE then the remote port of the socket 
  *    connection is resolved. After the information is resolved they
@@ -401,6 +407,6 @@ void silc_socket_host_lookup(SilcSocketConnection sock,
                             bool port_lookup,
                             SilcSocketHostLookupCb callback,
                             void *context,
-                            void *timeout_queue);
+                            SilcSchedule schedule);
 
 #endif