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