This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Undernet IRC Server Source Code.".
The branch, u2_10_12_branch has been updated
via 894ccd3b8d5acb0067562d26bf72228d3e617203 (commit)
via 2cf13869e6194d21a1f245aa251b33cb03b77bb6 (commit)
via 799a75d7db8e63bec3e93ea00b018d3dd4d2f823 (commit)
via 35fdd100a6c9e9ab362980d22e140ea18b793a6d (commit)
via fa78a87f4d4bf4411effdb4e3ba1072625294a9a (commit)
via 72b0c799c590095ad78de705f36e9553bd41fa67 (commit)
via 384fa2237ccf0348190d655a6ea4cb8131d05354 (commit)
via c3e49ba3f999d28a480f8f66cc633d9ea968099f (commit)
via bf526bb00c2fb89a400b330a9bbab71845a6b119 (commit)
via 541252724db32192e85571306ebc60949048a093 (commit)
via 9f3569b567de6a5585cffde153885d1611f6c7b6 (commit)
via dc84c4782beab4f9ed5e63f988fc9e4c73141da0 (commit)
via 9a5a983eb43fc918ad5835622afa382817b3ecc5 (commit)
from 246a65025b51a3c5fb6900b2af4cbf22793d1416 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 894ccd3b8d5acb0067562d26bf72228d3e617203
Author: Michael Poole <[email protected]>
Date: Mon Nov 5 21:48:21 2012 -0500
Add a parameter to IPcheck_connect_fail() to support IAuth IP spoofing.
Before, the "connected" count for the client's true IP address would be
incremented but never decremented. This matches them up properly.
diff --git a/ChangeLog b/ChangeLog
index 972cefe..e9291bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2012-10-15 Michael Poole <[email protected]>
+
+ * include/IPcheck.h (IPcheck_connect_fail): Add new 'disconnect'
+ parameter. This treats the failure as a disconnection from the
+ client's current IP address.
+
+ * ircd/IPcheck.c (ip_registry_connect_fail): Likewise.
+ (IPcheck_connect_fail): Pass it through.
+
+ * ircd/m_nick.c (m_nick): Pass zero for the new parameter.
+ (ms_nick): Likewise.
+
+ * ircd/s_auth.c (preregister_user): Likewise.
+ (iauth_cmd_ip_address): Pass one for the new parameter.
+
2012-06-20 Michael Poole <[email protected]>
* ircd/ircd_string.c (ipmask_parse): Return zero if there is junk
diff --git a/include/IPcheck.h b/include/IPcheck.h
index 493ef43..91693ac 100644
--- a/include/IPcheck.h
+++ b/include/IPcheck.h
@@ -18,7 +18,7 @@ struct irc_in_addr;
*/
extern void IPcheck_init(void);
extern int IPcheck_local_connect(const struct irc_in_addr *ip, time_t
*next_target_out);
-extern void IPcheck_connect_fail(const struct Client *cptr);
+extern void IPcheck_connect_fail(const struct Client *cptr, int disconnect);
extern void IPcheck_connect_succeeded(struct Client *cptr);
extern int IPcheck_remote_connect(struct Client *cptr, int is_burst);
extern void IPcheck_disconnect(struct Client *cptr);
diff --git a/ircd/IPcheck.c b/ircd/IPcheck.c
index 373958e..67b3485 100644
--- a/ircd/IPcheck.c
+++ b/ircd/IPcheck.c
@@ -373,13 +373,20 @@ int ip_registry_check_remote(struct Client* cptr, int
is_burst)
* of their own. This "undoes" the effect of ip_registry_check_local()
* so the client's address is not penalized for the failure.
* @param[in] addr Address of rejected client.
+ * @param[in] disconnect If true, also count the client as disconnecting.
*/
-void ip_registry_connect_fail(const struct irc_in_addr *addr)
+void ip_registry_connect_fail(const struct irc_in_addr *addr, int disconnect)
{
struct IPRegistryEntry* entry = ip_registry_find(addr);
- if (entry && 0 == --entry->attempts) {
- Debug((DEBUG_DNS, "IPcheck noting local connection failure for %s.",
ircd_ntoa(&entry->addr)));
- ++entry->attempts;
+ if (entry) {
+ if (0 == --entry->attempts) {
+ Debug((DEBUG_DNS, "IPcheck noting local connection failure for %s.",
ircd_ntoa(&entry->addr)));
+ ++entry->attempts;
+ }
+ if (disconnect) {
+ assert(entry->connected > 0);
+ entry->connected--;
+ }
}
}
@@ -521,11 +528,12 @@ int IPcheck_remote_connect(struct Client *cptr, int
is_burst)
* of their own. This "undoes" the effect of ip_registry_check_local()
* so the client's address is not penalized for the failure.
* @param[in] cptr Client who has been rejected.
+ * @param[in] disconnect If true, also count the client as disconnecting.
*/
-void IPcheck_connect_fail(const struct Client *cptr)
+void IPcheck_connect_fail(const struct Client *cptr, int disconnect)
{
assert(IsIPChecked(cptr));
- ip_registry_connect_fail(&cli_ip(cptr));
+ ip_registry_connect_fail(&cli_ip(cptr), disconnect);
}
/** Handle a client that has successfully connected.
diff --git a/ircd/m_nick.c b/ircd/m_nick.c
index fe13d4e..b612f86 100644
--- a/ircd/m_nick.c
+++ b/ircd/m_nick.c
@@ -246,7 +246,7 @@ int m_nick(struct Client* cptr, struct Client* sptr, int
parc, char* parv[])
*/
if (IsUnknown(acptr) && MyConnect(acptr)) {
ServerStats->is_ref++;
- IPcheck_connect_fail(acptr);
+ IPcheck_connect_fail(acptr, 0);
exit_client(cptr, acptr, &me, "Overridden by other sign on");
return set_nick_name(cptr, sptr, nick, parc, parv);
}
@@ -376,7 +376,7 @@ int ms_nick(struct Client* cptr, struct Client* sptr, int
parc, char* parv[])
if (IsUnknown(acptr) && MyConnect(acptr))
{
ServerStats->is_ref++;
- IPcheck_connect_fail(acptr);
+ IPcheck_connect_fail(acptr, 0);
exit_client(cptr, acptr, &me, "Overridden by other sign on");
return set_nick_name(cptr, sptr, nick, parc, parv);
}
diff --git a/ircd/s_auth.c b/ircd/s_auth.c
index e250ae6..924bd50 100644
--- a/ircd/s_auth.c
+++ b/ircd/s_auth.c
@@ -529,7 +529,7 @@ static int preregister_user(struct Client *cptr)
/* Can this ever happen? */
case ACR_BAD_SOCKET:
++ServerStats->is_ref;
- IPcheck_connect_fail(cptr);
+ IPcheck_connect_fail(cptr, 0);
return exit_client(cptr, cptr, &me, "Unknown error -- Try again");
}
return 0;
@@ -1828,7 +1828,7 @@ static int iauth_cmd_ip_address(struct IAuth *iauth,
struct Client *cli,
memcpy(&auth->original, &cli_ip(cli), sizeof(auth->original));
/* Undo original IP connection in IPcheck. */
- IPcheck_connect_fail(cli);
+ IPcheck_connect_fail(cli, 1);
ClearIPChecked(cli);
/* Update the IP and charge them as a remote connect. */
commit 2cf13869e6194d21a1f245aa251b33cb03b77bb6
Author: Michael Poole <[email protected]>
Date: Wed Jun 20 20:20:25 2012 -0400
Improve ipmask_parse()'s handling of invalid IPv6 inputs.
diff --git a/ChangeLog b/ChangeLog
index 2548586..972cefe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-20 Michael Poole <[email protected]>
+
+ * ircd/ircd_string.c (ipmask_parse): Return zero if there is junk
+ after eight valid IPv6 address elements.
+
2012-06-13 Michael Poole <[email protected]>
* ircd/s_stats.c (stats_configured_links): Correctly distinguish
diff --git a/ircd/ircd_string.c b/ircd/ircd_string.c
index b5b32cf..f27db15 100644
--- a/ircd/ircd_string.c
+++ b/ircd/ircd_string.c
@@ -622,6 +622,8 @@ ipmask_parse(const char *input, struct irc_in_addr *ip,
unsigned char *pbits)
default:
return 0;
}
+ if (input[pos] != '\0')
+ return 0;
finish:
if (colon < 8) {
unsigned int jj;
commit 799a75d7db8e63bec3e93ea00b018d3dd4d2f823
Author: Michael Poole <[email protected]>
Date: Wed Jun 13 21:38:53 2012 -0400
Fix the display of local Operator blocks in /stats o.
This only makes a difference for Operator blocks with "local = yes;"
that use a Class block with "local = no;", but that is a supported
way to set things up.
diff --git a/ChangeLog b/ChangeLog
index 840e3db..2548586 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-13 Michael Poole <[email protected]>
+
+ * ircd/s_stats.c (stats_configured_links): Correctly distinguish
+ local Operator blocks from global Operator blocks.
+
2012-05-31 Michael Poole <[email protected]>
* ircd/m_gline.c (ms_gline): If the mask was empty after removing
diff --git a/ircd/s_stats.c b/ircd/s_stats.c
index b373c91..7a600ce 100644
--- a/ircd/s_stats.c
+++ b/ircd/s_stats.c
@@ -114,12 +114,13 @@ stats_configured_links(struct Client *sptr, const struct
StatDesc* sd,
(name[0] == ':' ? "0" : ""), (tmp->name ? tmp->name : "*"),
port, get_conf_class(tmp));
else if (tmp->status & CONF_OPERATOR)
- send_reply(sptr, RPL_STATSOLINE,
- ((FlagHas(&tmp->privs_dirty, PRIV_PROPAGATE)
- && FlagHas(&tmp->privs, PRIV_PROPAGATE))
- || (FlagHas(&tmp->conn_class->privs_dirty, PRIV_PROPAGATE)
- && FlagHas(&tmp->conn_class->privs, PRIV_PROPAGATE)))
- ? 'O' : 'o', username, host, name, get_conf_class(tmp));
+ {
+ int global = FlagHas(&tmp->privs_dirty, PRIV_PROPAGATE)
+ ? FlagHas(&tmp->privs, PRIV_PROPAGATE)
+ : FlagHas(&tmp->conn_class->privs, PRIV_PROPAGATE);
+ send_reply(sptr, RPL_STATSOLINE, global ? 'O' : 'o',
+ username, host, name, get_conf_class(tmp));
+ }
}
}
}
commit 35fdd100a6c9e9ab362980d22e140ea18b793a6d
Author: Michael Poole <[email protected]>
Date: Thu May 31 22:39:43 2012 -0400
Reject G-line masks like + (with no target). Fixes SF#2965021.
diff --git a/ChangeLog b/ChangeLog
index d955283..840e3db 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2012-05-31 Michael Poole <[email protected]>
+ * ircd/m_gline.c (ms_gline): If the mask was empty after removing
+ the command character(s), reject the command.
+ (mo_gline): Likewise.
+
+2012-05-31 Michael Poole <[email protected]>
+
* include/channel.h (infochanmodes): Add +d channel mode.
* include/client.h (infousermodes): Add +O user mode.
diff --git a/ircd/m_gline.c b/ircd/m_gline.c
index 18bc31d..9b6f661 100644
--- a/ircd/m_gline.c
+++ b/ircd/m_gline.c
@@ -167,6 +167,10 @@ ms_gline(struct Client *cptr, struct Client *sptr, int
parc, char *parv[])
break;
}
+ /* Is there no mask left? */
+ if (mask[0] == '\0')
+ return need_more_params(sptr, "GLINE");
+
/* Now, let's figure out if it's a local or global G-line */
if (action == GLINE_LOCAL_ACTIVATE || action == GLINE_LOCAL_DEACTIVATE ||
(target[0] == '*' && target[1] == '\0'))
@@ -477,6 +481,10 @@ mo_gline(struct Client *cptr, struct Client *sptr, int
parc, char *parv[])
break;
}
+ /* Is there no mask left? */
+ if (mask[0] == '\0')
+ return need_more_params(sptr, "GLINE");
+
/* Now let's figure out which is the target server */
if (!target) /* no target, has to be me... */
acptr = &me;
commit fa78a87f4d4bf4411effdb4e3ba1072625294a9a
Author: Michael Poole <[email protected]>
Date: Thu May 31 22:34:12 2012 -0400
Add missing modes from RPL_MYINFO (SF#2967675).
In particular, add the +d channel mode and +O user mode.
diff --git a/ChangeLog b/ChangeLog
index f3e6f8e..d955283 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2012-05-31 Michael Poole <[email protected]>
+ * include/channel.h (infochanmodes): Add +d channel mode.
+
+ * include/client.h (infousermodes): Add +O user mode.
+
+2012-05-31 Michael Poole <[email protected]>
+
* ircd/gline.c (gline_add): Add length checks for badchan and
realname G-lines, comparable to the existing check for traditional
G-lines.
diff --git a/include/channel.h b/include/channel.h
index 7cafdf8..57ed5dc 100644
--- a/include/channel.h
+++ b/include/channel.h
@@ -117,7 +117,7 @@ struct Client;
#define MODE_WPARAS
(MODE_CHANOP|MODE_VOICE|MODE_BAN|MODE_KEY|MODE_LIMIT|MODE_APASS|MODE_UPASS)
/** Available Channel modes */
-#define infochanmodes feature_bool(FEAT_OPLEVELS) ? "AbiklmnopstUvrDR" :
"biklmnopstvrDR"
+#define infochanmodes feature_bool(FEAT_OPLEVELS) ? "AbiklmnopstUvrDdR" :
"biklmnopstvrDdR"
/** Available Channel modes that take parameters */
#define infochanmodeswithparams feature_bool(FEAT_OPLEVELS) ? "AbkloUv" :
"bklov"
diff --git a/include/client.h b/include/client.h
index d889fd3..f93a3ee 100644
--- a/include/client.h
+++ b/include/client.h
@@ -90,7 +90,7 @@ typedef unsigned long flagpage_t;
#define FlagClr(set,flag) ((set)->bits[FLAGSET_INDEX(flag)] &=
~FLAGSET_MASK(flag))
/** String containing valid user modes, in no particular order. */
-#define infousermodes "dioswkgx"
+#define infousermodes "diOoswkgx"
/** Operator privileges. */
enum Priv
commit 72b0c799c590095ad78de705f36e9553bd41fa67
Author: Michael Poole <[email protected]>
Date: Thu May 31 22:41:28 2012 -0400
Add more G-line length tests. Resolves SF#2985922.
Also remove the extra space noted in the same bug report.
diff --git a/ChangeLog b/ChangeLog
index ac1643b..f3e6f8e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2012-05-31 Michael Poole <[email protected]>
+ * ircd/gline.c (gline_add): Add length checks for badchan and
+ realname G-lines, comparable to the existing check for traditional
+ G-lines.
+
+ * ircd/s_err.c (ERR_LONGMASK): Remove extra space in format string.
+
+2012-05-31 Michael Poole <[email protected]>
+
* ircd/m_server.c (check_loop_and_lh): Mention the mechanism used
to control HUB.
diff --git a/ircd/gline.c b/ircd/gline.c
index 4f95526..9c3d297 100644
--- a/ircd/gline.c
+++ b/ircd/gline.c
@@ -24,6 +24,7 @@
#include "config.h"
#include "gline.h"
+#include "channel.h"
#include "client.h"
#include "ircd.h"
#include "ircd_alloc.h"
@@ -448,13 +449,21 @@ gline_add(struct Client *cptr, struct Client *sptr, char
*userhost,
if (*userhost == '#' || *userhost == '&') {
if ((flags & GLINE_LOCAL) && !HasPriv(sptr, PRIV_LOCAL_BADCHAN))
return send_reply(sptr, ERR_NOPRIVILEGES);
+ /* Allow maximum channel name length, plus margin for wildcards. */
+ if (strlen(userhost+1) >= CHANNELLEN + 6)
+ return send_reply(sptr, ERR_LONGMASK);
flags |= GLINE_BADCHAN;
user = userhost;
host = NULL;
} else if (*userhost == '$') {
switch (userhost[1]) {
- case 'R': flags |= GLINE_REALNAME; break;
+ case 'R':
+ /* Allow REALLEN for the real name, plus margin for wildcards. */
+ if (strlen(userhost+2) >= REALLEN + 6)
+ return send_reply(sptr, ERR_LONGMASK);
+ flags |= GLINE_REALNAME;
+ break;
default:
/* uh, what to do here? */
/* The answer, my dear Watson, is we throw a protocol_violation()
diff --git a/ircd/s_err.c b/ircd/s_err.c
index b05affb..dc45c2e 100644
--- a/ircd/s_err.c
+++ b/ircd/s_err.c
@@ -1068,7 +1068,7 @@ static Numeric replyTable[] = {
/* 517 */
{ ERR_DISABLED, "%s :Command disabled.", "517" },
/* 518 */
- { ERR_LONGMASK, " :Mask is too long", "518" },
+ { ERR_LONGMASK, ":Mask is too long", "518" },
/* 519 */
{ ERR_TOOMANYUSERS, "%d :Too many users affected by mask", "519" },
/* 520 */
commit 384fa2237ccf0348190d655a6ea4cb8131d05354
Author: Michael Poole <[email protected]>
Date: Thu May 31 21:19:37 2012 -0400
Clarify the "I'm a leaf, define HUB" message.
diff --git a/ChangeLog b/ChangeLog
index 6400d2d..ac1643b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-05-31 Michael Poole <[email protected]>
+
+ * ircd/m_server.c (check_loop_and_lh): Mention the mechanism used
+ to control HUB.
+
2012-05-09 Michael Poole <[email protected]>
* ircd/s_user.c (set_user_mode): When a user deopers, revoke their
diff --git a/ircd/m_server.c b/ircd/m_server.c
index a38b7b8..aae44c5 100644
--- a/ircd/m_server.c
+++ b/ircd/m_server.c
@@ -429,7 +429,7 @@ check_loop_and_lh(struct Client* cptr, struct Client *sptr,
time_t *ghost, const
else /* I_AM_NOT_HUB */
{
ServerStats->is_ref++;
- return exit_client(cptr, LHcptr, &me, "I'm a leaf, define HUB");
+ return exit_client(cptr, LHcptr, &me, "I'm a leaf, define the HUB
feature");
}
}
commit c3e49ba3f999d28a480f8f66cc633d9ea968099f
Author: Michael Poole <[email protected]>
Date: Thu May 31 21:18:55 2012 -0400
Clear privileges when deopering.
ircd/s_user.c (set_user_mode): When a user deopers, revoke their oper
privileges in addition to their oper user mode.
diff --git a/ChangeLog b/ChangeLog
index 988981e..6400d2d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2012-05-09 Michael Poole <[email protected]>
+ * ircd/s_user.c (set_user_mode): When a user deopers, revoke their
+ oper privileges in addition to their oper user mode.
+
+2012-05-09 Michael Poole <[email protected]>
+
* ircd/m_who.c (m_who): Only set WHOSELECT_EXTRA for current
opers. Because privileges are kept after -o, this would let
de-opered clients use WHOX.
diff --git a/ircd/s_user.c b/ircd/s_user.c
index a19691d..1f0e0d9 100644
--- a/ircd/s_user.c
+++ b/ircd/s_user.c
@@ -1128,7 +1128,10 @@ int set_user_mode(struct Client *cptr, struct Client
*sptr, int parc,
{
if ((FlagHas(&setflags, FLAG_OPER) || FlagHas(&setflags, FLAG_LOCOP)) &&
!IsAnOper(sptr))
+ {
det_confs_butmask(sptr, CONF_CLIENT & ~CONF_OPERATOR);
+ client_set_privs(sptr, NULL);
+ }
if (SendServNotice(sptr))
{
commit bf526bb00c2fb89a400b330a9bbab71845a6b119
Author: Michael Poole <[email protected]>
Date: Thu May 31 21:22:49 2012 -0400
Only allow current opers to WHOX.
ircd/m_who.c (m_who): Only set WHOSELECT_EXTRA for current opers.
diff --git a/ChangeLog b/ChangeLog
index aa32341..988981e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-05-09 Michael Poole <[email protected]>
+
+ * ircd/m_who.c (m_who): Only set WHOSELECT_EXTRA for current
+ opers. Because privileges are kept after -o, this would let
+ de-opered clients use WHOX.
+
2012-05-07 Michael Poole <[email protected]>
* include/client.h (cli_account): New helper macro to return the
diff --git a/ircd/m_who.c b/ircd/m_who.c
index f344e6f..49df475 100644
--- a/ircd/m_who.c
+++ b/ircd/m_who.c
@@ -184,10 +184,11 @@ int m_who(struct Client* cptr, struct Client* sptr, int
parc, char* parv[])
continue;
case 'x':
case 'X':
- bitsel |= WHOSELECT_EXTRA;
- if (HasPriv(sptr, PRIV_WHOX))
- log_write(LS_WHO, L_INFO, LOG_NOSNOTICE, "%#C WHO %s %s", sptr,
- (BadPtr(parv[3]) ? parv[1] : parv[3]), parv[2]);
+ if (HasPriv(sptr, PRIV_WHOX) && IsAnOper(sptr)) {
+ bitsel |= WHOSELECT_EXTRA;
+ log_write(LS_WHO, L_INFO, LOG_NOSNOTICE, "%#C WHO %s %s", sptr,
+ (BadPtr(parv[3]) ? parv[1] : parv[3]), parv[2]);
+ }
continue;
case 'n':
case 'N':
commit 541252724db32192e85571306ebc60949048a093
Author: Michael Poole <[email protected]>
Date: Thu May 31 21:22:21 2012 -0400
Log account rather than ident upon exit.
This fixes SourceForge bug #2992882.
diff --git a/ChangeLog b/ChangeLog
index 9d8aa47..aa32341 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2012-05-07 Michael Poole <[email protected]>
+ * include/client.h (cli_account): New helper macro to return the
+ client's account name, or "0" for unstamped clients.
+
+ * ircd/s_misc.c (exit_client): Use that when logging the client's
+ exit.
+
+2012-05-07 Michael Poole <[email protected]>
+
* ircd/gline.c (count_users): Use the client's real host, rather
than their masked host, for +x users.
diff --git a/include/client.h b/include/client.h
index 26f0481..d889fd3 100644
--- a/include/client.h
+++ b/include/client.h
@@ -317,6 +317,8 @@ struct Client {
#define cli_username(cli) ((cli)->cli_username)
/** Get client realname (information field). */
#define cli_info(cli) ((cli)->cli_info)
+/** Get client account string. */
+#define cli_account(cli) (cli_user(cli) ? cli_user(cli)->account : "0")
/** Get number of incoming bytes queued for client. */
#define cli_count(cli) con_count(cli_connect(cli))
diff --git a/ircd/s_misc.c b/ircd/s_misc.c
index b5324fa..111e9c7 100644
--- a/ircd/s_misc.c
+++ b/ircd/s_misc.c
@@ -389,7 +389,7 @@ int exit_client(struct Client *cptr,
cli_firsttime(victim), on_for,
cli_user(victim)->username, cli_sockhost(victim),
ircd_ntoa(&cli_ip(victim)),
- IsAccount(victim) ? cli_username(victim) : "0",
+ cli_account(victim),
NumNick(victim), /* two %s's */
cli_name(victim), cli_info(victim));
commit 9f3569b567de6a5585cffde153885d1611f6c7b6
Author: Michael Poole <[email protected]>
Date: Thu May 31 21:22:03 2012 -0400
Make gline.c's count_users() use real host for masked users.
This fixes SourceForge bug #2992886.
diff --git a/ChangeLog b/ChangeLog
index eb65436..9d8aa47 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-05-07 Michael Poole <[email protected]>
+
+ * ircd/gline.c (count_users): Use the client's real host, rather
+ than their masked host, for +x users.
+
2012-04-29 Michael Poole <[email protected]>
* ircd/crule.c (crule_connected): Fix logic for ignoring
diff --git a/ircd/gline.c b/ircd/gline.c
index d25dbfa..4f95526 100644
--- a/ircd/gline.c
+++ b/ircd/gline.c
@@ -371,7 +371,7 @@ count_users(char *mask, int flags)
continue;
ircd_snprintf(0, namebuf, sizeof(namebuf), "%s@%s",
- cli_user(acptr)->username, cli_user(acptr)->host);
+ cli_user(acptr)->username, cli_user(acptr)->realhost);
ircd_snprintf(0, ipbuf, sizeof(ipbuf), "%s@%s", cli_user(acptr)->username,
ircd_ntoa(&cli_ip(acptr)));
commit dc84c4782beab4f9ed5e63f988fc9e4c73141da0
Author: Michael Poole <[email protected]>
Date: Thu May 31 21:21:28 2012 -0400
Correctly skip non-servers when evaluating C-rules.
IsMe(acptr) implies !IsServer(acptr), contrary to the apparent
assumption in crule_connected() and crule_via().
diff --git a/ChangeLog b/ChangeLog
index f2f8282..eb65436 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2012-04-29 Michael Poole <[email protected]>
+ * ircd/crule.c (crule_connected): Fix logic for ignoring
+ non-server Client structures.
+ (crule_via): Likewise.
+
+2012-04-29 Michael Poole <[email protected]>
+
* */.cvsignore: Rename to .gitignore.
* ircd/.cvsignore: Likewise, and add *.o because git does not
diff --git a/ircd/crule.c b/ircd/crule.c
index 6cfb8ab..1a1fd21 100644
--- a/ircd/crule.c
+++ b/ircd/crule.c
@@ -228,7 +228,7 @@ static int crule_connected(int numargs, void *crulearg[])
/* taken from m_links */
for (acptr = GlobalClientList; acptr; acptr = cli_next(acptr))
{
- if (!IsServer(acptr) && !IsMe(acptr))
+ if (!IsServer(acptr) || IsMe(acptr))
continue;
if (match((char *)crulearg[0], cli_name(acptr)))
continue;
@@ -276,7 +276,7 @@ static int crule_via(int numargs, void *crulearg[])
/* adapted from m_links */
for (acptr = GlobalClientList; acptr; acptr = cli_next(acptr))
{
- if (!IsServer(acptr) && !IsMe(acptr))
+ if (!IsServer(acptr) || IsMe(acptr))
continue;
if (match((char *)crulearg[1], cli_name(acptr)))
continue;
commit 9a5a983eb43fc918ad5835622afa382817b3ecc5
Author: Michael Poole <[email protected]>
Date: Thu May 31 21:20:58 2012 -0400
Rename .cvsignore files to .gitignore.
Also add *.o to ircd/.gitignore because git does not ignore that
pattern by default.
diff --git a/.cvsignore b/.gitignore
similarity index 100%
rename from .cvsignore
rename to .gitignore
diff --git a/ChangeLog b/ChangeLog
index 2699fe6..f2f8282 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,11 @@
-2011-01-23 Michael Poole <[email protected]>
+2012-04-29 Michael Poole <[email protected]>
+
+ * */.cvsignore: Rename to .gitignore.
+
+ * ircd/.cvsignore: Likewise, and add *.o because git does not
+ ignore any patterns by default.
+
+2012-01-23 Michael Poole <[email protected]>
* ircd/ircd_res.c (proc_answer): Delete unread variable
query_class.
@@ -16,12 +23,12 @@
* ircd/s_stats.c (stats_configured_links): Delete unread variable
pass.
-2011-01-23 Michael Poole <[email protected]>
+2012-01-23 Michael Poole <[email protected]>
* ircd/gline.c (gline_modify): Notify opers using SNO_AUTO rather
than SNO_GLINE if a G-line had, and still has, an AUTO prefix.
-2011-01-19 Michael Poole <[email protected]>
+2012-01-19 Michael Poole <[email protected]>
* doc/readme.iauth: Document the new 'd' IAuth command.
@@ -31,7 +38,7 @@
(iauth_cmd_soft_done): New IAuth command handler.
(iauth_parse): Call it.
-2011-01-19 Michael Poole <[email protected]>
+2012-01-19 Michael Poole <[email protected]>
* ircd/s_auth.c (start_auth): Call start_dns_query() and
start_auth_query() after start_iauth_query() rather than
diff --git a/include/.cvsignore b/include/.gitignore
similarity index 100%
rename from include/.cvsignore
rename to include/.gitignore
diff --git a/ircd/.cvsignore b/ircd/.gitignore
similarity index 96%
rename from ircd/.cvsignore
rename to ircd/.gitignore
index 5e6f631..e20d06c 100644
--- a/ircd/.cvsignore
+++ b/ircd/.gitignore
@@ -1,3 +1,4 @@
+*.o
Makefile
stamp-m
version.c
diff --git a/ircd/test/.cvsignore b/ircd/test/.gitignore
similarity index 100%
rename from ircd/test/.cvsignore
rename to ircd/test/.gitignore
-----------------------------------------------------------------------
Summary of changes:
.cvsignore => .gitignore | 0
ChangeLog | 95 ++++++++++++++++++++++++++++++++--
include/{.cvsignore => .gitignore} | 0
include/IPcheck.h | 2 +-
include/channel.h | 2 +-
include/client.h | 4 +-
ircd/{.cvsignore => .gitignore} | 1 +
ircd/IPcheck.c | 20 +++++--
ircd/crule.c | 4 +-
ircd/gline.c | 13 ++++-
ircd/ircd_string.c | 2 +
ircd/m_gline.c | 8 +++
ircd/m_nick.c | 4 +-
ircd/m_server.c | 2 +-
ircd/m_who.c | 9 ++--
ircd/s_auth.c | 4 +-
ircd/s_err.c | 2 +-
ircd/s_misc.c | 2 +-
ircd/s_stats.c | 13 +++--
ircd/s_user.c | 3 +
ircd/test/{.cvsignore => .gitignore} | 0
21 files changed, 156 insertions(+), 34 deletions(-)
rename .cvsignore => .gitignore (100%)
rename include/{.cvsignore => .gitignore} (100%)
rename ircd/{.cvsignore => .gitignore} (96%)
rename ircd/test/{.cvsignore => .gitignore} (100%)
hooks/post-receive
--
Undernet IRC Server Source Code.
_______________________________________________
Patches mailing list
[email protected]
http://undernet.sbg.org/mailman/listinfo/patches