projects
/
ircu2.10.12-pk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Author: Michael Poole <mdpoole@troilus.org>
[ircu2.10.12-pk.git]
/
ircd
/
ircd_features.c
diff --git
a/ircd/ircd_features.c
b/ircd/ircd_features.c
index 0ffad1a201728cc2d4c607ca9966fa22c5e2a46a..f49539cbddf79257a6cdf7864364ebec76e2f3e0 100644
(file)
--- a/
ircd/ircd_features.c
+++ b/
ircd/ircd_features.c
@@
-207,6
+207,17
@@
feature_log_get(struct Client* from, const char* const* fields, int count)
}
}
}
}
+/** Update whether #me is a hub or not.
+ */
+static void
+feature_notify_hub(void)
+{
+ if (feature_bool(FEAT_HUB))
+ SetHub(&me);
+ else
+ ClearHub(&me);
+}
+
/** Sets a feature to the given value.
* @param[in] from Client trying to set parameters.
* @param[in] fields Array of parameters to set.
/** Sets a feature to the given value.
* @param[in] from Client trying to set parameters.
* @param[in] fields Array of parameters to set.
@@
-298,7
+309,7
@@
static struct FeatureDesc {
F_S(PROVIDER, FEAT_NULL, 0, 0),
F_B(KILL_IPMISMATCH, FEAT_OPER, 0, 0),
F_B(IDLE_FROM_MSG, 0, 1, 0),
F_S(PROVIDER, FEAT_NULL, 0, 0),
F_B(KILL_IPMISMATCH, FEAT_OPER, 0, 0),
F_B(IDLE_FROM_MSG, 0, 1, 0),
- F_B(HUB, 0, 0,
0
),
+ F_B(HUB, 0, 0,
feature_notify_hub
),
F_B(WALLOPS_OPER_ONLY, 0, 0, 0),
F_B(NODNS, 0, 0, 0),
F_N(RANDOM_SEED, FEAT_NODISP, random_seed_set, 0, 0, 0, 0, 0, 0),
F_B(WALLOPS_OPER_ONLY, 0, 0, 0),
F_B(NODNS, 0, 0, 0),
F_N(RANDOM_SEED, FEAT_NODISP, random_seed_set, 0, 0, 0, 0, 0, 0),
@@
-312,6
+323,7
@@
static struct FeatureDesc {
F_B(ZANNELS, 0, 1, 0),
F_B(LOCAL_CHANNELS, 0, 1, 0),
F_B(TOPIC_BURST, 0, 0, 0),
F_B(ZANNELS, 0, 1, 0),
F_B(LOCAL_CHANNELS, 0, 1, 0),
F_B(TOPIC_BURST, 0, 0, 0),
+ F_B(DISABLE_GLINES, 0, 0, 0),
/* features that probably should not be touched */
F_I(KILLCHASETIMELIMIT, 0, 30, 0),
/* features that probably should not be touched */
F_I(KILLCHASETIMELIMIT, 0, 30, 0),
@@
-388,6
+400,7
@@
static struct FeatureDesc {
F_B(HIS_STATS_x, 0, 1, 0),
F_B(HIS_STATS_y, 0, 1, 0),
F_B(HIS_STATS_z, 0, 1, 0),
F_B(HIS_STATS_x, 0, 1, 0),
F_B(HIS_STATS_y, 0, 1, 0),
F_B(HIS_STATS_z, 0, 1, 0),
+ F_B(HIS_STATS_IAUTH, 0, 1, 0),
F_B(HIS_WHOIS_SERVERNAME, 0, 1, 0),
F_B(HIS_WHOIS_IDLETIME, 0, 1, 0),
F_B(HIS_WHOIS_LOCALCHAN, 0, 1, 0),
F_B(HIS_WHOIS_SERVERNAME, 0, 1, 0),
F_B(HIS_WHOIS_IDLETIME, 0, 1, 0),
F_B(HIS_WHOIS_LOCALCHAN, 0, 1, 0),
@@
-406,6
+419,7
@@
static struct FeatureDesc {
/* Misc. random stuff */
F_S(NETWORK, 0, "UnderNet", 0),
F_S(URL_CLIENTS, 0, "ftp://ftp.undernet.org/pub/irc/clients", 0),
/* Misc. random stuff */
F_S(NETWORK, 0, "UnderNet", 0),
F_S(URL_CLIENTS, 0, "ftp://ftp.undernet.org/pub/irc/clients", 0),
+ F_S(URLREG, 0, "http://cservice.undernet.org/live/", 0),
#undef F_S
#undef F_B
#undef F_S
#undef F_B
@@
-587,6
+601,9
@@
feature_set(struct Client* from, const char* const* fields, int count)
if (change && feat->notify) /* call change notify function */
(*feat->notify)();
if (change && feat->notify) /* call change notify function */
(*feat->notify)();
+
+ if (from)
+ return feature_get(from, fields, count);
}
return 0;
}
return 0;
@@
-650,6
+667,9
@@
feature_reset(struct Client* from, const char* const* fields, int count)
if (change && feat->notify) /* call change notify function */
(*feat->notify)();
if (change && feat->notify) /* call change notify function */
(*feat->notify)();
+
+ if (from)
+ return feature_get(from, fields, count);
}
return 0;
}
return 0;