#include "main.h"
-#define SOCKET_FLAG_DEAD 0x01
#define SOCKET_FLAG_CONNECTED 0x02
#define SOCKET_FLAG_READY 0x04
#define SOCKET_FLAG_PREFERRED 0x08 /* prefered bot to send datas to the IRC World (NOTICE's WHO's etc pp) */
#define SOCKET_FLAG_USE_QUEUE 0x10
#define SOCKET_FLAG_RECONNECT 0x20
#define SOCKET_FLAG_SSL 0x40
-#define SOCKET_FLAG_HAVE_SSL 0x80
-#define SOCKET_FLAG_QUITTED 0x100
+
#define SOCKET_FLAG_FAST_JUMP 0x200
#define SOCKET_FLAG_SILENT 0x400
#define SOCKET_FLAG_CHANGENICK 0x800
#define SOCKET_FLAG_REQUEST_INVITE 0x1000
#define SOCKET_FLAG_REQUEST_OP 0x2000
+#define SOCKET_FLAG_SECRET_BOT 0x4000
#define SOCKET_HAVE_BOTCLASSVALUE1 0x10000000
#define SOCKET_HAVE_BOTCLASSVALUE2 0x20000000
struct UserNode;
struct trigger_cache;
-struct SSLConnection;
+struct IODescriptor;
struct ClientSocket {
- int sock;
+ struct IODescriptor *iofd;
unsigned int flags;
- char buffer[BUF_SIZ*2]; //we need to store up to 2 full commands at once
- unsigned int bufferpos;
char *host;
int port;
char *bind;
unsigned long traffic_in;
unsigned long traffic_out;
time_t connection_time;
- struct SSLConnection *sslconn;
struct BotQueue *queue;
#ifndef DND_FUNCTIONS
/* MODULAR ACCESSIBLE */ struct ClientSocket* create_socket(char *host, int port, char *bindto, char *pass, char *nick, char *ident, char *realname);
-/* MODULAR ACCESSIBLE */ int connect_socket(struct ClientSocket *client);
+/* MODULAR ACCESSIBLE */ void connect_socket(struct ClientSocket *client);
/* MODULAR ACCESSIBLE */ int close_socket(struct ClientSocket *client);
-/* MODULAR ACCESSIBLE */ int disconnect_socket(struct ClientSocket *client);
+/* MODULAR ACCESSIBLE */ int destroy_socket(struct ClientSocket *client);
int write_socket_force(struct ClientSocket *client, char* msg, int len);
/* MODULAR ACCESSIBLE */ int write_socket(struct ClientSocket *client, char* msg, int len);
#ifdef HAVE_THREADS
int clientsocket_parseorder_top(unsigned int tid);
#endif
-int socket_loop(int timeout_seconds);
/* MODULAR ACCESSIBLE */ void putsock(struct ClientSocket *client, const char *text, ...) PRINTF_LIKE(2, 3);
/* MODULAR ACCESSIBLE */ struct ClientSocket* getBots(int flags, struct ClientSocket* last_bot);
void init_sockets();