silcsockconn.h
- COPYRIGHT
-
Author: Pekka Riikonen <priikone@silnet.org>
Copyright (C) 1997 - 2001 Pekka Riikonen
*/
-/****h* silcutil/silcsockconn.h
+/****h* silcutil/SilcSocketConnectionAPI
*
* DESCRIPTION
*
/* 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
*
* Protocol object for the socket. Currently only one protocol can be
* executing at a time for a particular socket.
*
- * uint32 flags
+ * SilcUInt32 flags
*
* Socket flags that indicate the status of the socket. This can
* indicate several different status that can affect the use of the
*
* char *hostname
* char *ip
- * uint16 port
+ * SilcUInt16 port
*
* Resolved hostname, IP address and port of the connection who owns
* this object.
SilcSocketType type;
void *user_data;
SilcProtocol protocol;
- uint32 flags;
+ SilcUInt32 flags;
+ SilcUInt8 sock_error;
int users;
char *hostname;
char *ip;
- uint16 port;
+ SilcUInt16 port;
SilcBuffer inbuf;
SilcBuffer outbuf;
#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)
#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 */
*
* SYNOPSIS
*
- * int silc_socket_read(SilcSocketConnection sock);
+ * int silc_socket_write(SilcSocketConnection sock);
*
* DESCRIPTION
*
***/
int silc_socket_write(SilcSocketConnection sock);
+/****f* silcutil/SilcSocketConnectionAPI/silc_socket_get_error
+ *
+ * SYNOPSIS
+ *
+ * bool silc_socket_get_error(SilcSocketConnection sock, char *error,
+ * SilcUInt32 error_len);
+ *
+ * DESCRIPTION
+ *
+ * Returns human readable error message into the `error' buffer if
+ * the socket is in error status. Returns TRUE if error message was
+ * written into the buffer and FALSE if there is not socket error.
+ *
+ ***/
+bool silc_socket_get_error(SilcSocketConnection sock, char *error,
+ SilcUInt32 error_len);
+
/****f* silcutil/SilcSocketConnectionAPI/SilcSocketConnectionHBCb
*
* SYNOPSIS
* SYNOPSIS
*
* void silc_socket_set_heartbeat(SilcSocketConnection sock,
- * uint32 heartbeat,
+ * SilcUInt32 heartbeat,
* void *hb_context,
* SilcSocketConnectionHBCb hb_callback,
* SilcSchedule schedule);
*
***/
void silc_socket_set_heartbeat(SilcSocketConnection sock,
- uint32 heartbeat,
+ SilcUInt32 heartbeat,
void *hb_context,
SilcSocketConnectionHBCb hb_callback,
SilcSchedule schedule);