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