Merge branch 'umode-B'
This patch series allows ngIRCd to support the user mode "B" ("Bot flasg"): it is settable and unsettable by every (non-restricted) client. According to DNS777, this is how Unreal and InspIRCd do behave, so do we :-) By Alexander Barton (1) and DNS777 (1) * umode-B: Add new user mode "B" to doc/Modes.txt Implement an Unreal-like user mode "B" ("Bot mode")
This commit is contained in:
commit
1d3def0cc6
|
@ -2,7 +2,7 @@
|
||||||
ngIRCd - Next Generation IRC Server
|
ngIRCd - Next Generation IRC Server
|
||||||
http://ngircd.barton.de/
|
http://ngircd.barton.de/
|
||||||
|
|
||||||
(c)2001-2011 Alexander Barton and Contributors.
|
(c)2001-2012 Alexander Barton and Contributors.
|
||||||
ngIRCd is free software and published under the
|
ngIRCd is free software and published under the
|
||||||
terms of the GNU General Public License.
|
terms of the GNU General Public License.
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ channels he is using at the moment.
|
||||||
mode since description
|
mode since description
|
||||||
|
|
||||||
a 0.3.0 User is away.
|
a 0.3.0 User is away.
|
||||||
|
B 20 User is flagged as a "bot".
|
||||||
c 17 IRC operator wants to receive connect/disconnect NOTICEs.
|
c 17 IRC operator wants to receive connect/disconnect NOTICEs.
|
||||||
C 19 Only users that share a channel are allowed to send messages.
|
C 19 Only users that share a channel are allowed to send messages.
|
||||||
i 0.0.1 User is "invisible".
|
i 0.0.1 User is "invisible".
|
||||||
|
|
|
@ -161,7 +161,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** Supported user modes. */
|
/** Supported user modes. */
|
||||||
#define USERMODES "acCiorRswx"
|
#define USERMODES "aBcCiorRswx"
|
||||||
|
|
||||||
/** Supported channel modes. */
|
/** Supported channel modes. */
|
||||||
#define CHANMODES "beiIklmMnoOPrRstvz"
|
#define CHANMODES "beiIklmMnoOPrRstvz"
|
||||||
|
|
|
@ -1111,6 +1111,12 @@ IRC_WHOIS_SendReply(CLIENT *Client, CLIENT *from, CLIENT *c)
|
||||||
Client_ID(from), Client_ID(c)))
|
Client_ID(from), Client_ID(c)))
|
||||||
return DISCONNECTED;
|
return DISCONNECTED;
|
||||||
|
|
||||||
|
/* IRC-Bot? */
|
||||||
|
if (Client_HasMode(c, 'B') &&
|
||||||
|
!IRC_WriteStrClient(from, RPL_WHOISBOT_MSG,
|
||||||
|
Client_ID(from), Client_ID(c)))
|
||||||
|
return DISCONNECTED;
|
||||||
|
|
||||||
/* Connected using SSL? */
|
/* Connected using SSL? */
|
||||||
if (Conn_UsesSSL(Client_Conn(c)) &&
|
if (Conn_UsesSSL(Client_Conn(c)) &&
|
||||||
!IRC_WriteStrClient(from, RPL_WHOISSSL_MSG, Client_ID(from),
|
!IRC_WriteStrClient(from, RPL_WHOISSSL_MSG, Client_ID(from),
|
||||||
|
|
|
@ -229,6 +229,14 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CLIENT *Target )
|
||||||
ERR_NOPRIVILEGES_MSG,
|
ERR_NOPRIVILEGES_MSG,
|
||||||
Client_ID(Origin));
|
Client_ID(Origin));
|
||||||
break;
|
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
|
case 'c': /* Receive connect notices
|
||||||
* (only settable by IRC operators!) */
|
* (only settable by IRC operators!) */
|
||||||
if (!set || Client_Type(Client) == CLIENT_SERVER
|
if (!set || Client_Type(Client) == CLIENT_SERVER
|
||||||
|
|
|
@ -72,6 +72,7 @@
|
||||||
#define RPL_NOTOPIC_MSG "331 %s %s :No topic is set"
|
#define RPL_NOTOPIC_MSG "331 %s %s :No topic is set"
|
||||||
#define RPL_TOPIC_MSG "332 %s %s :%s"
|
#define RPL_TOPIC_MSG "332 %s %s :%s"
|
||||||
#define RPL_TOPICSETBY_MSG "333 %s %s %s %u"
|
#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_INVITING_MSG "341 %s %s %s%s"
|
||||||
#define RPL_INVITELIST_MSG "346 %s %s %s"
|
#define RPL_INVITELIST_MSG "346 %s %s %s"
|
||||||
#define RPL_ENDOFINVITELIST_MSG "347 %s %s :End of channel invite list"
|
#define RPL_ENDOFINVITELIST_MSG "347 %s %s :End of channel invite list"
|
||||||
|
|
Loading…
Reference in New Issue