X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=ircd%2Fircd_features.c;h=f49539cbddf79257a6cdf7864364ebec76e2f3e0;hp=b54fae827c38e948f0f1162cca1eebcbed9d7622;hb=7fbb742f7d849cb57b23f2a76d90950174094719;hpb=53db8a34fb699436ab64a51fe5ac88e88e8c1bec diff --git a/ircd/ircd_features.c b/ircd/ircd_features.c index b54fae8..f49539c 100644 --- 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. @@ -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_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),