added user invite timeout
[srvx.git] / src / hash.h
index a1a2c9194d6bf57257764a1b6de4067bd0f8e1b0..582561fd5f37292638933ae3fc0595ed096b07ea 100644 (file)
@@ -79,6 +79,7 @@
 #define IsDummy(x)              ((x)->modes & FLAGS_DUMMY)
 #define IsNoIdle(x)             ((x)->modes & FLAGS_NOIDLE)
 #define IsFakeHost(x)           ((x)->fakehost[0] != '\0')
+#define IsFakeIdent(x)          ((x)->fakeident[0] != '\0')
 #define IsLocal(x)              ((x)->uplink == self)
 
 #define NICKLEN         30
@@ -107,6 +108,7 @@ struct userNode {
     char info[REALLEN + 1];       /* Free form additional client information */
     char hostname[HOSTLEN + 1];   /* DNS name or IP address */
     char fakehost[HOSTLEN + 1];   /* Assigned fake host */
+    char fakeident[USERLEN + 1];  /* Assigned fake ident */
 #ifdef WITH_PROTOCOL_P10
     char numeric[COMBO_NUMERIC_LEN+1];
     unsigned int num_local : 18;
@@ -142,6 +144,7 @@ struct chanNode {
     struct modeList members;
     struct banList banlist;
     struct policer join_policer;
+    struct userList invited;
     unsigned int join_flooded : 1;
     unsigned int bad_channel : 1;
 
@@ -170,7 +173,7 @@ struct modeNode {
 struct server {
     char name[SERVERNAMEMAX+1];
     unsigned long boot;
-    unsigned long link;
+    unsigned long link_time;
     char description[SERVERDESCRIPTMAX+1];
 #ifdef WITH_PROTOCOL_P10
     char numeric[COMBO_NUMERIC_LEN+1];
@@ -205,7 +208,7 @@ int userList_contains(struct userList *list, struct userNode *user);
 typedef void (*server_link_func_t) (struct server *server);
 void reg_server_link_func(server_link_func_t handler);
 
-typedef int (*new_user_func_t) (struct userNode *user);
+typedef void (*new_user_func_t) (struct userNode *user);
 void reg_new_user_func(new_user_func_t handler);
 typedef void (*del_user_func_t) (struct userNode *user, struct userNode *killer, const char *why);
 void reg_del_user_func(del_user_func_t handler);
@@ -219,7 +222,7 @@ typedef void (*account_func_t) (struct userNode *user, const char *stamp, unsign
 void reg_account_func(account_func_t handler);
 void call_account_func(struct userNode *user, const char *stamp, unsigned long timestamp, unsigned long serial);
 void StampUser(struct userNode *user, const char *stamp, unsigned long timestamp, unsigned long serial);
-void assign_fakehost(struct userNode *user, const char *host, int announce);
+void assign_fakehost(struct userNode *user, const char *host, const char *ident, int force, int announce);
 
 typedef void (*new_channel_func_t) (struct chanNode *chan);
 void reg_new_channel_func(new_channel_func_t handler);
@@ -234,6 +237,7 @@ void UnlockChannel(struct chanNode *channel);
 
 struct modeNode* AddChannelUser(struct userNode* user, struct chanNode* channel);
 
+int modeNode_sort(const void *pa, const void *pb);
 typedef void (*part_func_t) (struct modeNode *mn, const char *reason);
 void reg_part_func(part_func_t handler);
 void unreg_part_func(part_func_t handler);