]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - src/inspircd_util.cpp
Fixed fd_Setsize in cygwin
[user/henk/code/inspircd.git] / src / inspircd_util.cpp
1 /*       +------------------------------------+
2  *       | Inspire Internet Relay Chat Daemon |
3  *       +------------------------------------+
4  *
5  *  Inspire is copyright (C) 2002-2004 ChatSpike-Dev.
6  *                       E-mail:
7  *                <brain@chatspike.net>
8  *                <Craig@chatspike.net>
9  *     
10  * Written by Craig Edwards, Craig McLure, and others.
11  * This program is free but copyrighted software; see
12  *            the file COPYING for details.
13  *
14  * ---------------------------------------------------
15  */
16
17 using namespace std;
18
19 #include "inspircd_config.h"
20 #include "inspircd.h" 
21 #include "inspircd_io.h" 
22 #include "inspircd_util.h" 
23 #include "inspstring.h"
24 #include "helperfuncs.h"
25
26 extern time_t TIME;
27  
28 char *SafeStrncpy (char *dest, const char *src, size_t size) 
29
30   if (!dest) 
31     { 
32       dest = NULL; 
33       return (NULL); 
34     } 
35   else if (size < 1) 
36     { 
37       dest = NULL; 
38       return (NULL); 
39     } 
40  
41   memset (dest, '\0', size); 
42   strlcpy (dest, src, size - 1);
43  
44   return (dest); 
45
46  
47  
48 char *CleanIpAddr (char *cleanAddr, const char *dirtyAddr) 
49
50   int count = 0, maxdot = 0, maxoctet = 0; 
51  
52   memset (cleanAddr, '\0', MAXBUF); 
53   if(dirtyAddr == NULL) 
54         return(cleanAddr); 
55  
56   for (count = 0; count < MAXBUF - 1; count++) 
57     { 
58       if (isdigit (dirtyAddr[count])) 
59         { 
60           if (++maxoctet > 3) 
61             { 
62               cleanAddr[count] = '\0'; 
63               break; 
64             } 
65           cleanAddr[count] = dirtyAddr[count]; 
66         } 
67       else if (dirtyAddr[count] == '.') 
68         { 
69           if (++maxdot > 3) 
70             { 
71               cleanAddr[count] = '\0'; 
72               break; 
73             } 
74           maxoctet = 0; 
75           cleanAddr[count] = dirtyAddr[count]; 
76         } 
77       else 
78         { 
79           cleanAddr[count] = '\0'; 
80           break; 
81         } 
82     } 
83  
84   return (cleanAddr); 
85
86  
87 char* CleanFilename(char* name)
88 {
89         char* p = name + strlen(name);
90         while ((p != name) && (*p != '/'))
91                 p--;
92         if ( p != name)
93         {
94                 return ++p;
95         }
96         else
97         {
98                 return p;
99         }
100 }
101