#ifndef SILCSOCKETSTREAM_H
#define SILCSOCKETSTREAM_H
-/****d* silcutil/SilcSocketStreamAPI/SilcSocketStreamStatus
- *
- * NAME
- *
- * typedef enum { ... } SilcStreamStatus;
- *
- * DESCRIPTION
- *
- * Socket Stream status. This status is returned into the
- * SilcSocketStreamCallback function after the socket stream is
- * created.
- *
- * SOURCE
- */
-typedef enum {
- SILC_SOCKET_OK, /* Normal status */
- SILC_SOCKET_UNKNOWN_IP, /* Remote does not have IP address */
- SILC_SOCKET_UNKNOWN_HOST, /* Remote does not have host name */
- SILC_SOCKET_NO_MEMORY, /* System out of memory */
- SILC_SOCKET_ERROR, /* Unknown error */
-} SilcSocketStreamStatus;
-/***/
-
/****f* silcutil/SilcSocketStreamAPI/SilcSocketStreamCallback
*
* SYNOPSIS
*
- * typedef void (*SilcSocketStreamCallback)(SilcSocketStreamStatus status,
+ * typedef void (*SilcSocketStreamCallback)(SilcResult status,
* SilcStream stream,
* void *context);
*
* functions can also be used to read data, send data, and otherwise
* handle the stream.
*
+ * If the silc_stream_set_notifier is called the stream will be set to
+ * non-blocking mode.
+ *
***/
-typedef void (*SilcSocketStreamCallback)(SilcSocketStreamStatus status,
+typedef void (*SilcSocketStreamCallback)(SilcResult status,
SilcStream stream, void *context);
/****f* silcutil/SilcSocketStreamAPI/silc_socket_tcp_stream_create
* socket connection information, such as hostname and IP address are
* resolved, so SilcAsyncOperation is returned which can be used to cancel
* the creation process. The `callback' will be called to return the
- * created socket stream. To destroy the stream call silc_stream_destroy.
+ * created socket stream.
*
* If the `lookup' is TRUE then this will perform IP and hostname lookup
* for the socket. If the `require_fqdn' is TRUE then the socket must
* will not be available from the socket stream. In that case this will
* also return NULL as the `callback' is called immediately.
*
+ * If the silc_stream_set_notifier is called the stream is set to
+ * non-blocking mode. If `schedule' is NULL this will call
+ * silc_schedule_get_global to try to get global scheduler.
+ *
***/
SilcAsyncOperation
silc_socket_tcp_stream_create(SilcSocket sock, SilcBool lookup,
*
* This function returns the created SilcStream or NULL on error.
*
+ * If the silc_stream_set_notifier is called the stream is set to
+ * non-blocking mode. If `schedule' is NULL this will call
+ * silc_schedule_get_global to try to get global scheduler.
+ *
***/
SilcStream silc_socket_udp_stream_create(SilcSocket sock,
SilcBool ipv6,
* DESCRIPTION
*
* Returns TRUE if the `stream' is UDP stream. If the `connected' pointer
- * is non-NULL indication whether the UDP stream is in connected state.
- * If it is then packets can be read and written using silc_stream_read
- * and silc_stream_write. If it is not then packets need to read and
- * written by using silc_net_udp_receive and silc_net_udp_send.
+ * is non-NULL it will have indication whether the UDP stream is in
+ * connected state. If it is then packets can be read and written using
+ * silc_stream_read and silc_stream_write. If it is not then packets
+ * need to read and written by using silc_net_udp_receive and
+ * silc_net_udp_send.
*
***/
SilcBool silc_socket_stream_is_udp(SilcStream stream, SilcBool *connected);
const char *hostname,
const char *ip, SilcUInt16 port);
-/****f* silcutil/SilcSocketStreamAPI/silc_socket_stream_get_error
- *
- * SYNOPSIS
- *
- * int silc_socket_stream_get_error(SilcStream stream);
- *
- * DESCRIPTION
- *
- * If error occurred during socket stream operations, this function
- * can be used to retrieve the error number that occurred.
- *
- ***/
-int silc_socket_stream_get_error(SilcStream stream);
-
/****f* silcutil/SilcSocketStreamAPI/silc_socket_stream_set_qos
*
* SYNOPSIS