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