66 lines
1.2 KiB
C
66 lines
1.2 KiB
C
|
/*
|
||
|
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 <openssl/ssl.h>
|
||
|
#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);
|
||
|
|
||
|
//u - mean universal. Functions uses internal fields in structure
|
||
|
int IRCC_usend(IRCC_client *irc, off_t bytes);
|
||
|
int IRCC_urecv(IRCC_client *irc);
|
||
|
|
||
|
#endif
|