added config parser & incoming connection handler
[NextIRCd.git] / src / tools.c
1 /* tools.c - NextIRCd
2  * Copyright (C) 2012-2013  Philipp Kreil (pk910)
3  * 
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  * 
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  * 
14  * You should have received a copy of the GNU General Public License 
15  * along with this program. If not, see <http://www.gnu.org/licenses/>. 
16  */
17
18 #include <stdlib.h>
19 #include <ctype.h>
20 #include "tools.h"
21
22 int stricmp (const char *s1, const char *s2) {
23     return stricmplen(s1, s2, -1);
24 }
25
26 int stricmplen(const char *s1, const char *s2, int len) {
27     if (s1 == NULL) 
28         return (s2 == NULL ? 0 : -(*s2));
29     if (s2 == NULL) 
30         return *s1;
31     char c1, c2;
32     int i = 0;
33     while ((c1 = tolower(*s1)) == (c2 = tolower(*s2))) {
34         if (*s1 == '\0') 
35             break;
36         i++;
37         s1++; 
38         s2++;
39         if(len != -1 && i == len) break;
40     }
41     return c1 - c2;
42 }
43