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