1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
#include <libircclient/libircclient.h>
#include <string.h>
#include "../error/error.h"
#include "../parameters/parameters.h"
#include "irc.h"
#include "irc_event_handlers.h"
int JH_irc_initialize
(
struct JH_irc irc [const restrict static 1],
const struct JH_parameters params [const restrict static 1],
struct JH_meta_net jh_net [const restrict static 1]
)
{
memset((void *) &(irc->callbacks), 0, sizeof(irc_callbacks_t));
irc->callbacks.event_connect = JH_irc_handle_connected_event;
irc->callbacks.event_join = JH_irc_do_nothing;
irc->callbacks.event_nick = JH_irc_do_nothing;
irc->callbacks.event_quit = JH_irc_do_nothing;
irc->callbacks.event_part = JH_irc_do_nothing;
irc->callbacks.event_mode = JH_irc_do_nothing;
irc->callbacks.event_topic = JH_irc_do_nothing;
irc->callbacks.event_kick = JH_irc_do_nothing;
irc->callbacks.event_channel = JH_irc_handle_channel_message_event;
irc->callbacks.event_privmsg = JH_irc_do_nothing;
irc->callbacks.event_notice = JH_irc_do_nothing;
irc->callbacks.event_invite = JH_irc_do_nothing;
irc->callbacks.event_umode = JH_irc_do_nothing;
irc->callbacks.event_ctcp_rep = JH_irc_do_nothing;
irc->callbacks.event_ctcp_action = JH_irc_handle_ctcp_action_event;
irc->callbacks.event_unknown = JH_irc_do_nothing;
irc->callbacks.event_numeric = JH_irc_handle_numeric_event;
irc->callbacks.event_dcc_chat_req = JH_irc_handle_dcc_chat_req_event;
irc->callbacks.event_dcc_send_req = JH_irc_handle_dcc_send_req_event;
irc->session = irc_create_session(&(irc->callbacks));
irc->params = params;
irc->jh_net = jh_net;
if (!(irc->session))
{
JH_S_FATAL(stderr, "Unable to create IRC session.");
return -1;
}
return 0;
}
int JH_irc_connect (struct JH_irc irc [const restrict static 1])
{
if (JH_parameters_get_irc_is_ipv6(irc->params))
{
return
irc_connect6
(
irc->session,
JH_parameters_get_irc_server(irc->params),
JH_parameters_get_irc_port(irc->params),
JH_parameters_get_irc_password(irc->params),
JH_parameters_get_irc_nick(irc->params),
JH_parameters_get_irc_username(irc->params),
JH_parameters_get_irc_realname(irc->params)
);
}
else
{
return
irc_connect
(
irc->session,
JH_parameters_get_irc_server(irc->params),
JH_parameters_get_irc_port(irc->params),
JH_parameters_get_irc_password(irc->params),
JH_parameters_get_irc_nick(irc->params),
JH_parameters_get_irc_username(irc->params),
JH_parameters_get_irc_realname(irc->params)
);
}
}
void JH_irc_do_nothing
(
irc_session_t * session,
const char * event,
const char * origin,
const char ** params,
unsigned int count
)
{
}
void JH_irc_handle_numeric_event
(
irc_session_t * session,
unsigned int event,
const char * origin,
const char ** params,
unsigned int count
)
{
}
|