added free functions to free everything (maybe a restart function later?)
[NeonServV5.git] / main.c
1
2 #include "main.h"
3 #include "ClientSocket.h"
4 #include "UserNode.h"
5 #include "ChanNode.h"
6 #include "IRCEvents.h"
7 #include "IRCParser.h"
8 #include "modcmd.h"
9 #include "WHOHandler.h"
10 #include "bots.h"
11
12 void just_test_it() {
13     struct UserNode *user;
14     struct ClientSocket *client;
15     
16     user = addUser("TestBot");
17     strcpy(user->ident, "test");
18     strcpy(user->realname, "testUser!");
19     user->flags |= USERFLAG_ISBOT;
20     client = create_socket("127.0.0.1", 6667, "pktest:pktest123", user); //pktest Hostmask(s): *@127.0.0.1
21     client->flags |= SOCKET_FLAG_PREFERRED;
22     connect_socket(client);
23     
24     user = addUser("TestBot2");
25     strcpy(user->ident, "test");
26     strcpy(user->realname, "testUser!");
27     user->flags |= USERFLAG_ISBOT;
28     client = create_socket("127.0.0.1", 6667, "pktest:pktest123", user); //pktest Hostmask(s): *@127.0.0.1
29     connect_socket(client);
30 }
31
32 void cleanup() {
33     free_sockets();
34     free_parser();
35     free_UserNode();
36     free_ChanNode();
37     free_bind();
38     free_modcmd();
39     free_whoqueue();
40     free_bots();
41 }
42
43 int main(void)
44 {
45     init_parser();
46     init_UserNode();
47     init_ChanNode();
48     init_bind();
49         init_modcmd();
50     init_bots();
51     just_test_it();
52     
53     time_t socket_wait;
54     while(1) {
55         socket_wait = time(0) + SOCKET_SELECT_TIME;
56         do {
57             socket_loop(SOCKET_SELECT_TIME);
58         } while(time(0) > socket_wait);
59         clearTempUsers();
60     }
61 }
62
63 int stricmp (const char *s1, const char *s2)
64 {
65    if (s1 == NULL) return s2 == NULL ? 0 : -(*s2);
66    if (s2 == NULL) return *s1;
67    char c1, c2;
68    while ((c1 = tolower (*s1)) == (c2 = tolower (*s2)))
69    {
70      if (*s1 == '\0') break;
71      ++s1; ++s2;
72    }
73    return c1 - c2;
74 }
75
76 int stricmplen (const char *s1, const char *s2, int len)
77 {
78    if (s1 == NULL) return s2 == NULL ? 0 : -(*s2);
79    if (s2 == NULL) return *s1;
80    char c1, c2;
81    int i = 0;
82    while ((c1 = tolower (*s1)) == (c2 = tolower (*s2)))
83    {
84      i++;
85      if (*s1 == '\0') break;
86      ++s1; ++s2;
87      if(i == len) break;
88    }
89    return c1 - c2;
90 }
91