ref: e31571ccd655aabc78d736047c6211f024ead09c
parent: d22d253f7d37601c8cfd4f4603dfa3489e9d0593
author: sirjofri <sirjofri@sirjofri.de>
date: Tue Jul 22 16:18:17 EDT 2025
only greet once
--- a/cmd.c
+++ b/cmd.c
@@ -35,8 +35,10 @@
u->realname = strdup(r->args[3]);
c->user = u;
- if (c->nick)
+ if (c->nick && !u->greeted) {
+ u->greeted = 1;
reply(c, Rwelcome, welcome, c->nick, u->name, sysnameb);
+ }
}
static void
@@ -54,8 +56,10 @@
c->nick = strdup(r->args[0]);
- if (c->user)
+ if (c->user && !c->user->greeted) {
+ c->user->greeted = 1;
reply(c, Rwelcome, welcome, c->nick, c->user->name, sysnameb);
+ }
}
static void
--- a/dat.h
+++ b/dat.h
@@ -4,7 +4,6 @@
typedef struct Reply Reply;
typedef struct User User;
typedef struct Replybuffer Replybuffer;
-typedef struct Userlist Userlist;
typedef struct Client Client;
#pragma varargck type "R" Request
@@ -45,14 +44,10 @@
{
char *name;
char *realname;
+ int greeted;
User *prev;
User *next;
-};
-
-struct Userlist
-{
- User *first;
};
struct Client
--
⑨