Author: Pekka Riikonen <priikone@silcnet.org>
- Copyright (C) 2005 - 2006 Pekka Riikonen
+ Copyright (C) 2005 - 2007 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
SilcUInt32 data_len);
SilcBool silc_socket_stream_close(SilcStream stream);
void silc_socket_stream_destroy(SilcStream stream);
-void silc_socket_stream_notifier(SilcStream stream,
- SilcSchedule schedule,
- SilcStreamNotifier callback,
- void *context);
+SilcBool silc_socket_stream_notifier(SilcStream stream,
+ SilcSchedule schedule,
+ SilcStreamNotifier callback,
+ void *context);
SilcSchedule silc_socket_stream_get_schedule(SilcStream stream);
/* Internal async host lookup context. */
}
if (lookup->status != SILC_SOCKET_OK) {
- SILC_LOG_DEBUG(("Socket stream failed"));
+ SILC_LOG_DEBUG(("Socket stream lookup failed"));
stream->schedule = NULL;
silc_socket_stream_destroy(stream);
stream = lookup->stream = NULL;
SilcSocketStream stream;
SilcSocketHostLookup l;
- if (!sock) {
+ if (!sock || !schedule) {
+ SILC_LOG_ERROR(("Missing arguments to silc_socket_tcp_stream_create"));
if (callback)
callback(SILC_SOCKET_ERROR, NULL, context);
return NULL;
return NULL;
}
- SILC_LOG_DEBUG(("Creating TCP socket stream %p", stream));
+ SILC_LOG_DEBUG(("Creating TCP socket stream %p, sock %lu", stream, sock));
stream->ops = &silc_socket_stream_ops;
stream->sock = sock;
stream->schedule = schedule;
+ stream->connected = TRUE;
l = silc_calloc(1, sizeof(*l));
if (!l) {
if (sock)
*sock = socket_stream->sock;
- if (hostname) {
- if (!socket_stream->hostname)
+ if (port) {
+ if (!socket_stream->port)
return FALSE;
- *hostname = socket_stream->hostname;
+ *port = socket_stream->port;
}
if (ip) {
if (!socket_stream->ip)
return FALSE;
*ip = socket_stream->ip;
}
- if (port) {
- if (!socket_stream->port)
+ if (hostname) {
+ if (!socket_stream->hostname)
return FALSE;
- *port = socket_stream->port;
+ *hostname = socket_stream->hostname;
}
return TRUE;