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