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
struct SilcSocketStreamStruct {
const SilcStreamOps *ops;
SilcSchedule schedule;
- int sock;
+ SilcSocket sock;
char *hostname;
char *ip;
- SilcUInt16 port;
- SilcUInt16 sock_error;
SilcSocketQos qos;
SilcStreamNotifier notifier;
void *notifier_context;
- unsigned int ipv6 : 1;
+ SilcUInt16 port;
+ unsigned int ipv6 : 1; /* UDP IPv6 */
+ unsigned int connected : 1; /* UDP connected state */
};
+#define SILC_IS_SOCKET_STREAM(s) (s->ops == &silc_socket_stream_ops)
+#define SILC_IS_SOCKET_STREAM_UDP(s) (s->ops == &silc_socket_udp_stream_ops)
+
+extern const SilcStreamOps silc_socket_stream_ops;
+extern const SilcStreamOps silc_socket_udp_stream_ops;
+
+/* Backwards support */
+#define SilcSocketStreamStatus SilcResult
+#define silc_socket_stream_get_error(stream) silc_errno
+#define SILC_SOCKET_OK SILC_OK
+#define SILC_SOCKET_UNKNOWN_IP SILC_ERR_UNKNOWN_IP
+#define SILC_SOCKET_UNKNOWN_HOST SILC_ERR_UNKNOWN_HOST
+#define SILC_SOCKET_NO_MEMORY SILC_ERR_OUT_OF_MEMORY
+#define SILC_SOCKET_ERROR SILC_ERR
+
#endif /* SILCSOCKETSTREAM_I_H */