commit - 92793d31146de401694f084fd009c4fdd9538773
commit + 50ec7a56a4e75dad25b20fdb904545143ac19ff3
blob - 917b230eb74edcc9be73d8518476d6cd1edb1a18
blob + 6bbbd26f2f96dcb6ec0dd55885a57feae90c7d20
--- src/ngircd/client.c
+++ src/ngircd/client.c
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
- * $Id: client.c,v 1.46 2002/03/10 22:03:20 alex Exp $
+ * $Id: client.c,v 1.47 2002/03/11 22:04:10 alex Exp $
*
* client.c: Management aller Clients
*
* Server gewesen, so existiert eine entsprechende CONNECTION-Struktur.
*
* $Log: client.c,v $
+ * Revision 1.47 2002/03/11 22:04:10 alex
+ * - Client_Destroy() hat neuen Paramter: QUITs fuer Clients verschicken?
+ *
* Revision 1.46 2002/03/10 22:03:20 alex
* - Netz-Splits werden nun als soche ausgegeben.
*
CLIENT *c, *next;
INT cnt;
- Client_Destroy( This_Server, "Server going down.", NULL );
+ Client_Destroy( This_Server, "Server going down.", NULL, FALSE );
cnt = 0;
c = My_Clients;
} /* Client_New */
-GLOBAL VOID Client_Destroy( CLIENT *Client, CHAR *LogMsg, CHAR *FwdMsg )
+GLOBAL VOID Client_Destroy( CLIENT *Client, CHAR *LogMsg, CHAR *FwdMsg, BOOLEAN SendQuit )
{
/* Client entfernen. */
{
/* der Client, der geloescht wird ist ein Server. Der Client, den wir gerade
* pruefen, ist ein Child von diesem und muss daher auch entfernt werden */
- Client_Destroy( c, NULL, msg);
+ Client_Destroy( c, NULL, msg, FALSE );
last = NULL;
c = My_Clients;
continue;
{
if( c->conn_id != NONE )
{
- /* Ein lokaler User. Alle andere Server informieren! */
+ /* Ein lokaler User */
Log( LOG_NOTICE, "User \"%s\" unregistered (connection %d): %s", Client_Mask( c ), c->conn_id, txt );
- if( FwdMsg ) IRC_WriteStrServersPrefix( NULL, c, "QUIT :%s", FwdMsg );
- else IRC_WriteStrServersPrefix( NULL, c, "QUIT :" );
+ if( SendQuit )
+ {
+ /* Alle andere Server informieren! */
+ if( FwdMsg ) IRC_WriteStrServersPrefix( NULL, c, "QUIT :%s", FwdMsg );
+ else IRC_WriteStrServersPrefix( NULL, c, "QUIT :" );
+ }
}
else
{
- /* Remote User. Andere Server informieren, ausser denen,
- * die "in Richtung dem liegen", auf dem der User registriert
- * ist. Von denen haben wir das QUIT ja wohl bekommen. */
+ /* Remote User */
Log( LOG_DEBUG, "User \"%s\" unregistered: %s", Client_Mask( c ), txt );
-
- if( FwdMsg ) IRC_WriteStrServersPrefix( Client_NextHop( c ), c, "QUIT :%s", FwdMsg );
- else IRC_WriteStrServersPrefix( Client_NextHop( c ), c, "QUIT :" );
+
+ if( SendQuit )
+ {
+ /* Andere Server informieren, ausser denen, die "in
+ * Richtung dem liegen", auf dem der User registriert
+ * ist. Von denen haben wir das QUIT ja wohl bekommen. */
+ if( FwdMsg ) IRC_WriteStrServersPrefix( Client_NextHop( c ), c, "QUIT :%s", FwdMsg );
+ else IRC_WriteStrServersPrefix( Client_NextHop( c ), c, "QUIT :" );
+ }
}
Channel_RemoveClient( c, FwdMsg ? FwdMsg : c->id );
}
blob - 3edc10c334a19325ff029cd52d2ca02f474cf974
blob + 68f827c02363acbab33583e9bdcbcacc01a920a8
--- src/ngircd/client.h
+++ src/ngircd/client.h
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
- * $Id: client.h,v 1.23 2002/02/27 18:22:09 alex Exp $
+ * $Id: client.h,v 1.24 2002/03/11 22:04:10 alex Exp $
*
* client.h: Konfiguration des ngircd (Header)
*
* $Log: client.h,v $
+ * Revision 1.24 2002/03/11 22:04:10 alex
+ * - Client_Destroy() hat neuen Paramter: QUITs fuer Clients verschicken?
+ *
* Revision 1.23 2002/02/27 18:22:09 alex
* - neue Funktion Client_SetAway() und Client_Away() implementiert.
*
GLOBAL CLIENT *Client_NewRemoteUser( CLIENT *Introducer, CHAR *Nick, INT Hops, CHAR *User, CHAR *Hostname, INT Token, CHAR *Modes, CHAR *Info, BOOLEAN Idented );
GLOBAL CLIENT *Client_New( CONN_ID Idx, CLIENT *Introducer, CLIENT *TopServer, INT Type, CHAR *ID, CHAR *User, CHAR *Hostname, CHAR *Info, INT Hops, INT Token, CHAR *Modes, BOOLEAN Idented );
-GLOBAL VOID Client_Destroy( CLIENT *Client, CHAR *LogMsg, CHAR *FwdMsg );
+GLOBAL VOID Client_Destroy( CLIENT *Client, CHAR *LogMsg, CHAR *FwdMsg, BOOLEAN SendQuit );
GLOBAL CLIENT *Client_ThisServer( VOID );
blob - 36a33dacac80606aa852072ff5f7806dd16e0cb4
blob + 7dede7098db5c4bda65883ca40061e9a3db288df
--- src/ngircd/conn.c
+++ src/ngircd/conn.c
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
- * $Id: conn.c,v 1.50 2002/03/11 00:04:48 alex Exp $
+ * $Id: conn.c,v 1.51 2002/03/11 22:04:10 alex Exp $
*
* connect.h: Verwaltung aller Netz-Verbindungen ("connections")
*
* $Log: conn.c,v $
+ * Revision 1.51 2002/03/11 22:04:10 alex
+ * - Client_Destroy() hat neuen Paramter: QUITs fuer Clients verschicken?
+ *
* Revision 1.50 2002/03/11 00:04:48 alex
* - ein sofortiger Re-Connect wird nur dann versucht, wenn die Vernindung
* "lange genug" bereits bestanden hatte.
}
c = Client_GetFromConn( Idx );
- if( c ) Client_Destroy( c, LogMsg, FwdMsg );
+ if( c ) Client_Destroy( c, LogMsg, FwdMsg, TRUE );
if( My_Connections[Idx].res_stat )
{
blob - 3898d4b17cc611fd5638452b35725f0359afd459
blob + 9d1c96df2041281fd9f91eecc21c5a26744ce2cf
--- src/ngircd/irc-login.c
+++ src/ngircd/irc-login.c
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
- * $Id: irc-login.c,v 1.5 2002/03/11 17:33:40 alex Exp $
+ * $Id: irc-login.c,v 1.6 2002/03/11 22:04:10 alex Exp $
*
* irc-login.c: Anmeldung und Abmeldung im IRC
*
* $Log: irc-login.c,v $
+ * Revision 1.6 2002/03/11 22:04:10 alex
+ * - Client_Destroy() hat neuen Paramter: QUITs fuer Clients verschicken?
+ *
* Revision 1.5 2002/03/11 17:33:40 alex
* - Log-Level von SQUIT und QUIT bei unbekannten Clients auf DEBUG herabgesetzt.
*
return CONNECTED;
}
- if( Req->argc == 0 ) Client_Destroy( target, "Got QUIT command.", NULL );
- else Client_Destroy( target, "Got QUIT command.", Req->argv[0] );
+ if( Req->argc == 0 ) Client_Destroy( target, "Got QUIT command.", NULL, TRUE );
+ else Client_Destroy( target, "Got QUIT command.", Req->argv[0], TRUE );
return CONNECTED;
}
blob - 53884517c9f88fc12155bc93ae90342dd8da46ff
blob + bb01dcd256e158dc4e7f8a2ac9cd58d6cbac68fc
--- src/ngircd/irc-server.c
+++ src/ngircd/irc-server.c
* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
- * $Id: irc-server.c,v 1.3 2002/03/11 17:33:40 alex Exp $
+ * $Id: irc-server.c,v 1.4 2002/03/11 22:04:10 alex Exp $
*
* irc-server.c: IRC-Befehle fuer Server-Links
*
* $Log: irc-server.c,v $
+ * Revision 1.4 2002/03/11 22:04:10 alex
+ * - Client_Destroy() hat neuen Paramter: QUITs fuer Clients verschicken?
+ *
* Revision 1.3 2002/03/11 17:33:40 alex
* - Log-Level von SQUIT und QUIT bei unbekannten Clients auf DEBUG herabgesetzt.
*
else
{
/* Verbindung hielt anderer Server */
- Client_Destroy( target, msg, Req->argv[1] );
+ Client_Destroy( target, msg, Req->argv[1], FALSE );
return CONNECTED;
}
} /* IRC_SQUIT */