]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - src/inspircd_util.cpp
...
[user/henk/code/inspircd.git] / src / inspircd_util.cpp
1 /*
2
3 $Log$
4 Revision 1.1  2003/01/23 19:45:58  brain
5 Initial revision
6
7 Revision 1.2  2003/01/15 22:49:18  brain
8 Added log macros
9
10    
11 */
12
13 #include "inspircd.h" 
14 #include "inspircd_io.h" 
15 #include "inspircd_util.h" 
16  
17 char *SafeStrncpy (char *dest, const char *src, size_t size) 
18
19   if (!dest) 
20     { 
21       dest = NULL; 
22       return (NULL); 
23     } 
24   else if (size < 1) 
25     { 
26       dest = NULL; 
27       return (NULL); 
28     } 
29  
30   memset (dest, '\0', size); 
31   strncpy (dest, src, size - 1); 
32  
33   return (dest); 
34
35  
36  
37 char *CleanIpAddr (char *cleanAddr, const char *dirtyAddr) 
38
39   int count = 0, maxdot = 0, maxoctet = 0; 
40  
41   memset (cleanAddr, '\0', MAXBUF); 
42   if(dirtyAddr == NULL) 
43         return(cleanAddr); 
44  
45   for (count = 0; count < MAXBUF - 1; count++) 
46     { 
47       if (isdigit (dirtyAddr[count])) 
48         { 
49           if (++maxoctet > 3) 
50             { 
51               cleanAddr[count] = '\0'; 
52               break; 
53             } 
54           cleanAddr[count] = dirtyAddr[count]; 
55         } 
56       else if (dirtyAddr[count] == '.') 
57         { 
58           if (++maxdot > 3) 
59             { 
60               cleanAddr[count] = '\0'; 
61               break; 
62             } 
63           maxoctet = 0; 
64           cleanAddr[count] = dirtyAddr[count]; 
65         } 
66       else 
67         { 
68           cleanAddr[count] = '\0'; 
69           break; 
70         } 
71     } 
72  
73   return (cleanAddr); 
74
75  
76  
77