]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - src/inspircd_util.cpp
*** empty log message ***
[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.h" 
20 #include "inspircd_io.h" 
21 #include "inspircd_util.h" 
22 #include "inspstring.h"
23 #include "helperfuncs.h"
24
25 extern time_t TIME;
26  
27 char *SafeStrncpy (char *dest, const char *src, size_t size) 
28
29   if (!dest) 
30     { 
31       dest = NULL; 
32       return (NULL); 
33     } 
34   else if (size < 1) 
35     { 
36       dest = NULL; 
37       return (NULL); 
38     } 
39  
40   memset (dest, '\0', size); 
41   strlcpy (dest, src, size - 1);
42  
43   return (dest); 
44
45  
46  
47 char *CleanIpAddr (char *cleanAddr, const char *dirtyAddr) 
48
49   int count = 0, maxdot = 0, maxoctet = 0; 
50  
51   memset (cleanAddr, '\0', MAXBUF); 
52   if(dirtyAddr == NULL) 
53         return(cleanAddr); 
54  
55   for (count = 0; count < MAXBUF - 1; count++) 
56     { 
57       if (isdigit (dirtyAddr[count])) 
58         { 
59           if (++maxoctet > 3) 
60             { 
61               cleanAddr[count] = '\0'; 
62               break; 
63             } 
64           cleanAddr[count] = dirtyAddr[count]; 
65         } 
66       else if (dirtyAddr[count] == '.') 
67         { 
68           if (++maxdot > 3) 
69             { 
70               cleanAddr[count] = '\0'; 
71               break; 
72             } 
73           maxoctet = 0; 
74           cleanAddr[count] = dirtyAddr[count]; 
75         } 
76       else 
77         { 
78           cleanAddr[count] = '\0'; 
79           break; 
80         } 
81     } 
82  
83   return (cleanAddr); 
84
85  
86 char* CleanFilename(char* name)
87 {
88         char* p = name + strlen(name);
89         while ((p != name) && (*p != '/'))
90                 p--;
91         if ( p != name)
92         {
93                 return ++p;
94         }
95         else
96         {
97                 return p;
98         }
99 }
100