commit - 360a254be0e55e975998d0f3a5ff301ac3346f72
commit + c2b39fdedef18b7cb634509bb3f1dd67bf47c214
blob - cd0a1666ae58a7696c27f7c5aeac40fcfeea565b
blob + 27eecf1d169f10a2aa124d7d2363e6bf54601aea
--- src/ngircd/defines.h
+++ src/ngircd/defines.h
#endif
/** Supported user modes. */
-#define USERMODES "acCiorRswx"
+#define USERMODES "aBcCiorRswx"
/** Supported channel modes. */
#define CHANMODES "beiIklmnoOPrRstvz"
blob - 0ea85874862b7114b6cd355d59467371055a4013
blob + f5139d07ebed78c68953bc56b19ed04424b9c884
--- src/ngircd/irc-info.c
+++ src/ngircd/irc-info.c
/* IRC-Operator? */
if (Client_HasMode(c, 'o') &&
!IRC_WriteStrClient(from, RPL_WHOISOPERATOR_MSG,
+ Client_ID(from), Client_ID(c)))
+ return DISCONNECTED;
+
+ /* IRC-Bot? */
+ if (Client_HasMode(c, 'B') &&
+ !IRC_WriteStrClient(from, RPL_WHOISBOT_MSG,
Client_ID(from), Client_ID(c)))
return DISCONNECTED;
blob - fa35cdd0f29d7742d92c169f6ce992a56eaa1ca5
blob + 9cad32493d84b2ddb55520913b64e6628e0cfc7e
--- src/ngircd/irc-mode.c
+++ src/ngircd/irc-mode.c
} else
ok = IRC_WriteStrClient(Origin,
ERR_NOPRIVILEGES_MSG,
+ Client_ID(Origin));
+ break;
+ case 'B': /* Bot */
+ if (Client_HasMode(Client, 'r'))
+ ok = IRC_WriteStrClient(Origin,
+ ERR_RESTRICTED_MSG,
Client_ID(Origin));
+ else
+ x[0] = 'B';
break;
case 'c': /* Receive connect notices
* (only settable by IRC operators!) */
blob - 9ad6be1763d569f7af3b486e3620930f15127516
blob + 4858fea91af9589c7865715b6d15cfbf99e446d5
--- src/ngircd/messages.h
+++ src/ngircd/messages.h
#define RPL_NOTOPIC_MSG "331 %s %s :No topic is set"
#define RPL_TOPIC_MSG "332 %s %s :%s"
#define RPL_TOPICSETBY_MSG "333 %s %s %s %u"
+#define RPL_WHOISBOT_MSG "335 %s %s :is a IRC Bot"
#define RPL_INVITING_MSG "341 %s %s %s%s"
#define RPL_INVITELIST_MSG "346 %s %s %s"
#define RPL_ENDOFINVITELIST_MSG "347 %s %s :End of channel invite list"