/* LICENSE: WTFPL Simple library for working with ipv4 irc servers Dont support: ddc ipv6 motd */ #ifndef _IRCC_H #define _IRCC_H #define IRCC_MSG_MAX 512 #define IRCC_PING_TIMEOUT 600 #ifdef ENABLE_SSL #include #endif enum { IRCC_NICK = 1, IRCC_PRIVMSG, IRCC_JOIN, IRCC_QUIT, IRCC_PING, IRCC_TOPIC, IRCC_MODE, IRCC_CONNECTED, IRCC_DISCONNECTED, IRCC_ERROR, IRCC_SUCCESS }; typedef struct { int irc_socket; char irc_raw[IRCC_MSG_MAX + 1]; char *irc_msg; char *irc_channel; char *irc_nick; #ifdef ENABLE_SSL int irc_usingssl; SSL_METHOD *irc_sslmethod; SSL_CTX *irc_sslctx; SSL *irc_ssl; #endif } IRCC_client; int IRCC_connect(IRCC_client *irc, const char *ip, const unsigned int port); int IRCC_recv(IRCC_client *irc); int IRCC_parse(IRCC_client *irc); int IRCC_join(IRCC_client *irc, const char *channel, const char *key); int IRCC_send(IRCC_client *irc, const char *channel, const char *msg); int IRCC_register(IRCC_client *irc, const char *nickname); int IRCC_initssl(IRCC_client *irc); void IRCC_close(IRCC_client *irc); int IRCC_usend(IRCC_client *irc, off_t bytes); int IRCC_urecv(IRCC_client *irc); #endif