Ver Fonte

Populate memberlist->from when initiating new member and when they change nick

Bryan Drewery há 14 anos atrás
pai
commit
e31d7d46d1
2 ficheiros alterados com 4 adições e 0 exclusões
  1. 1 0
      src/chan.h
  2. 3 0
      src/mod/irc.mod/chan.c

+ 1 - 0
src/chan.h

@@ -24,6 +24,7 @@ typedef struct memstruct {
   char nick[NICKLEN];
   char userhost[UHOSTLEN];
   char userip[UHOSTLEN];
+  char from[NICKLEN + UHOSTLEN];   /* nick!user@host */
   bool is_me;
 } memberlist;
 

+ 3 - 0
src/mod/irc.mod/chan.c

@@ -1882,6 +1882,7 @@ static int got352or4(struct chanset_t *chan, char *user, char *host, char *nick,
 
     /* Store the userhost */
     simple_snprintf(m->userhost, sizeof(m->userhost), "%s@%s", user, host);
+    simple_snprintf(m->from, sizeof(m->from), "%s!%s", m->nick, m->userhost);
 
     if (!m->userip[0]) {
       if (ip)
@@ -2634,6 +2635,7 @@ static int gotjoin(char *from, char *chname)
 	m = newmember(chan, nick);
 	m->joined = m->last = now;
 	strlcpy(m->userhost, uhost, sizeof(m->userhost));
+        simple_snprintf(m->from, sizeof(m->from), "%s!%s", m->nick, m->userhost);
         if (is_dotted_ip(host))
           strlcpy(m->userip, uhost, sizeof(m->userip));
         m->user = get_user_by_host(from);
@@ -2956,6 +2958,7 @@ static int gotnick(char *from, char *msg)
       }
 
       strlcpy(m->nick, msg, sizeof(m->nick));
+      simple_snprintf(m->from, sizeof(m->from), "%s!%s", m->nick, m->userhost);
 
       /*
        * Banned?