]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/inspircd.h
If a user connects over 4in6 (YUCK) give them an ipv4 cloak
[user/henk/code/inspircd.git] / include / inspircd.h
index 9c53fdf41013f96e879cbbbf4d7e9892e556e194..ee02a32b5188e14853903cbbbcb28b025f83c425 100644 (file)
@@ -25,6 +25,7 @@
 #include "socketengine.h"
 #include "command_parse.h"
 #include "snomasks.h"
+#include "cull_list.h"
 
 /** Returned by some functions to indicate failure.
  */
@@ -47,7 +48,7 @@ enum DebugLevel
 };
 
 /**
- * This define is used in place of strcmp when we 
+ * This define is used in place of strcmp when we
  * want to check if a char* string contains only one
  * letter. Pretty fast, its just two compares and an
  * addition.
@@ -66,6 +67,7 @@ template<typename T> inline void DELETE(T* x)
  */
 template<typename T> inline std::string ConvNumeric(const T &in)
 {
+       if (in == 0) return "0";
        char res[MAXBUF];
        char* out = res;
        T quotient = in;
@@ -295,7 +297,7 @@ class InspIRCd : public classbase
        /** Holds a string describing the last module error to occur
         */
        char MODERR[MAXBUF];
+
        /** Remove a ModuleFactory pointer
         * @param j Index number of the ModuleFactory to remove
         */
@@ -520,6 +522,10 @@ class InspIRCd : public classbase
         */
        time_t next_call;
 
+       /** Global cull list, will be processed on next iteration
+        */
+       CullList GlobalCulls;
+
        /** Get the current time
         * Because this only calls time() once every time around the mainloop,
         * it is much faster than calling time() directly.
@@ -583,13 +589,11 @@ class InspIRCd : public classbase
 
        /** Binds a socket on an already open file descriptor
         * @param sockfd A valid file descriptor of an open socket
-        * @param client A sockaddr to use as temporary storage
-        * @param server A sockaddr to use as temporary storage
         * @param port The port number to bind to
         * @param addr The address to bind to (IP only)
         * @return True if the port was bound successfully
         */
-       bool BindSocket(int sockfd, insp_sockaddr client, insp_sockaddr server, int port, char* addr);
+       bool BindSocket(int sockfd, int port, char* addr, bool dolisten = true);
 
        /** Adds a server name to the list of servers we've seen
         * @param The servername to add
@@ -628,7 +632,7 @@ class InspIRCd : public classbase
         * @param text The text to send
         */
        void WriteOpers(const std::string &text);
-       
+
        /** Find a nickname in the nick hash
         * @param nick The nickname to find
         * @return A pointer to the user, or NULL if the user does not exist
@@ -704,7 +708,7 @@ class InspIRCd : public classbase
 
        /** Send text to all users with a specific set of modes
         * @param modes The modes to check against, without a +, e.g. 'og'
-        * @param flags one of WM_OR or WM_AND. If you specify WM_OR, any one of the 
+        * @param flags one of WM_OR or WM_AND. If you specify WM_OR, any one of the
         * mode characters in the first parameter causes receipt of the message, and
         * if you specify WM_OR, all the modes must be present.
         * @param text The text format string to send
@@ -1060,7 +1064,7 @@ class InspIRCd : public classbase
         bool DelELine(const std::string &hostmask);
 
        /** Return true if the given parameter is a valid nick!user\@host mask
-        * @param mask A nick!user\@host masak to match against 
+        * @param mask A nick!user\@host masak to match against
         * @return True i the mask is valid
         */
         bool IsValidMask(const std::string &mask);