Handle default oplevels.
[srvx.git] / src / hash.h
index d10c35ea9467b3fc794213d9298e93843d01fed7..656926a349b63c6581fa1759c470d930af08c659 100644 (file)
@@ -41,6 +41,8 @@
 #define MODE_NOCOLORS           0x2000 /* +c */
 #define MODE_NOCTCPS            0x4000 /* +C */
 #define MODE_REGISTERED         0x8000 /* Bahamut +r */
+#define MODE_APASS             0x10000 /* +A adminpass */
+#define MODE_UPASS             0x20000 /* +U userpass */
 #define MODE_REMOVE             0x80000000
 
 #define FLAGS_OPER             0x0001 /* Operator +O */
@@ -58,7 +60,7 @@
 #define FLAGS_STAMPED           0x1000 /* for users who have been stamped */
 #define FLAGS_HIDDEN_HOST       0x2000 /* user's host is masked by their account */
 #define FLAGS_REGNICK           0x4000 /* user owns their current nick */
-#define FLAGS_REGISTERING      0x8000 /* user has issued account register command, is waiting for email cookie */
+#define FLAGS_REGISTERING       0x8000 /* user has issued account register command, is waiting for email cookie */
 
 #define IsOper(x)               ((x)->modes & FLAGS_OPER)
 #define IsService(x)            ((x)->modes & FLAGS_SERVICE)
@@ -84,6 +86,7 @@
 #define REALLEN         50
 #define TOPICLEN        250
 #define CHANNELLEN      200
+#define MAXOPLEVEL      999
 
 #define MAXMODEPARAMS  6
 #define MAXBANS                45
@@ -108,7 +111,7 @@ struct userNode {
     unsigned int num_local : 18;
 #endif
     unsigned int dead : 1;        /* Is user waiting to be recycled? */
-    struct in_addr ip;            /* User's IP address */
+    irc_in_addr_t ip;             /* User's IP address */
     long modes;                   /* user flags +isw etc... */
 
     time_t timestamp;             /* Time of last nick change */
@@ -125,8 +128,10 @@ struct chanNode {
     chan_mode_t modes;
     unsigned int limit, locks;
     char key[KEYLEN + 1];
+    char upass[KEYLEN + 1];
+    char apass[KEYLEN + 1];
     time_t timestamp; /* creation time */
-  
+
     char topic[TOPICLEN + 1];
     char topic_nick[NICKLEN + 1];
     time_t topic_time;
@@ -151,7 +156,8 @@ struct banNode {
 struct modeNode {
     struct chanNode *channel;
     struct userNode *user;
-    long modes;
+    unsigned short modes;
+    short oplevel;
     time_t idle_since;
 };