Commit Diff


commit - 51ed74205432036f729d96bf5683ca858aae9f10
commit + f76e0a1db689dadfe32f211002248d03416b3982
blob - c565830a6b82957c8cc0287046c2175b7459b60c
blob + 671bf6cef5b5fed0e6f855baa2b98d5b8a447aaa
--- src/ngircd/client.c
+++ src/ngircd/client.c
@@ -1136,6 +1136,9 @@ Destroy_UserOrService(CLIENT *Client, const char *Txt,
 		    "%s \"%s\" unregistered (connection %d): %s",
 		    Client_TypeText(Client), Client_Mask(Client),
 		    Client->conn_id, Txt);
+		Log_ServerNotice('c', "Client exiting: %s (%s@%s) [%s]",
+			         Client_ID(Client), Client_User(Client),
+				 Client_Hostname(Client), Txt);
 
 		if (SendQuit) {
 			/* Inforam all the other servers */
blob - 94c7dd1e92a393ae24478cb037af1755cb25e334
blob + b463c5f9f54006fb0fde6539c508c666569775ea
--- src/ngircd/defines.h
+++ src/ngircd/defines.h
@@ -80,7 +80,7 @@
 #define RECONNECT_DELAY 3		/* Time to delay re-connect attempts
 					   in seconds. */
 
-#define USERMODES "aiorsw"		/* Supported user modes. */
+#define USERMODES "aciorsw"		/* Supported user modes. */
 #define CHANMODES "biIklmnoPstvz"	/* Supported channel modes. */
 
 #define CONNECTED true			/* Internal status codes. */
blob - c8b44dbc1653723d0a32cddd4f63300c8e906a60
blob + 8e77e7fe34ddcefde11788fd00a5e15c0c7e77f9
--- src/ngircd/irc-login.c
+++ src/ngircd/irc-login.c
@@ -840,10 +840,16 @@ Introduce_Client(CLIENT *From, CLIENT *Client, int Typ
 			 Client_Modes(Client), Client_ID(From),
 			 Client_ID(Client_Introducer(Client)),
 			 Client_Hops(Client), Client_Hops(Client) > 1 ? "s": "");
-	} else
+	} else {
 		Log(LOG_NOTICE, "%s \"%s\" registered (connection %d).",
 		    Client_TypeText(Client), Client_Mask(Client),
 		    Client_Conn(Client));
+		Log_ServerNotice('c', "Client connecting: %s (%s@%s) [%s] - %s",
+			         Client_ID(Client), Client_User(Client),
+				 Client_Hostname(Client),
+				 Conn_IPA(Client_Conn(Client)),
+				 Client_TypeText(Client));
+	}
 
 	/* Inform other servers */
 	IRC_WriteStrServersPrefixFlag_CB(From,
blob - d22d32f01acc3c82a787ecc375a6fe041cc57e39
blob + cd470863aa2edea492a9e818cce5103c1d50af72
--- src/ngircd/irc-mode.c
+++ src/ngircd/irc-mode.c
@@ -172,6 +172,16 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Ori
 				else ok = IRC_WriteStrClient( Origin, ERR_NOPRIVILEGES_MSG, Client_ID( Origin ));
 				break;
 
+			case 'c': /* Receive connect notices
+				   * (only settable by IRC operators!) */
+				if(!set || Client_OperByMe(Origin)
+				   || Client_Type(Client) == CLIENT_SERVER)
+					x[0] = 'c';
+				else
+					ok = IRC_WriteStrClient(Origin,
+							ERR_NOPRIVILEGES_MSG,
+							Client_ID(Origin));
+				break;
 			case 'o': /* IRC operator (only unsettable!) */
 				if(( ! set ) || ( Client_Type( Client ) == CLIENT_SERVER ))
 				{