static void feature_notify_excepts(void) { char imaxlist[BUFSIZE] = ""; char cmodebuf[BUFSIZE] = ""; if (feature_bool(FEAT_EXCEPTS)) { add_isupport_s("EXCEPTS", "e"); add_isupport_i("MAXEXCEPTS", feature_int(FEAT_MAXEXCEPTS)); } else { del_isupport("EXCEPTS"); del_isupport("MAXEXCEPTS"); } /* "be,AkU,Ll,aCcDdiMmNnOpQRrSsTtZz" */ ircd_snprintf(0, cmodebuf, BUFSIZE, "b%s,%sk%s,Ll,aCcDdiMmNnOpQRrSsTtZz", feature_bool(FEAT_EXCEPTS) ? "e" : "", feature_bool(FEAT_OPLEVELS) ? "A" : "", feature_bool(FEAT_OPLEVELS) ? "U" : ""); add_isupport_s("CHANMODES", cmodebuf); strcat(imaxlist, "b:"); strcat(imaxlist, itoa(feature_int(FEAT_MAXBANS))); if (feature_bool(FEAT_EXCEPTS)) { strcat(imaxlist, ",e:"); strcat(imaxlist, itoa(feature_int(FEAT_MAXEXCEPTS))); } add_isupport_s("MAXLIST", imaxlist); }
/** Set MAXBANS, self explanatory */ static void set_isupport_maxbans(void) { char imaxlist[BUFSIZE] = ""; add_isupport_i("MAXBANS", feature_int(FEAT_MAXBANS)); strcat(imaxlist, "b:"); strcat(imaxlist, itoa(feature_int(FEAT_MAXBANS))); if (feature_bool(FEAT_EXCEPTS)) { strcat(imaxlist, ",e:"); strcat(imaxlist, itoa(feature_int(FEAT_MAXEXCEPTS))); } add_isupport_s("MAXLIST", imaxlist); }
/** Set EXCEPTS, MAXEXCEPTS, and CHANMODES based on if HALFOPS are enabled or not */ static void set_isupport_excepts(void) { char imaxlist[BUFSIZE] = ""; if (feature_bool(FEAT_EXCEPTS)) { add_isupport_s("EXCEPTS", "e"); add_isupport_i("MAXEXCEPTS", feature_int(FEAT_MAXEXCEPTS)); } else { del_isupport("EXCEPTS"); del_isupport("MAXEXCEPTS"); } add_isupport_s("CHANMODES", feature_bool(FEAT_EXCEPTS) ? "be,k,lL,acimnprstzCMNOQSTZ" : "b,k,lL,acimnprstzCMNOQSTZ"); strcat(imaxlist, "b:"); strcat(imaxlist, itoa(feature_int(FEAT_MAXBANS))); if (feature_bool(FEAT_EXCEPTS)) { strcat(imaxlist, ",e:"); strcat(imaxlist, itoa(feature_int(FEAT_MAXEXCEPTS))); } add_isupport_s("MAXLIST", imaxlist); }
/** Set CHANNELLEN, self explanatory */ static void set_isupport_channellen(void) { /* uint */ add_isupport_i("CHANNELLEN", feature_int(FEAT_CHANNELLEN)); }
/** Set NICKLEN, self explanatory */ static void set_isupport_nicklen(void) { /* uint */ add_isupport_i("NICKLEN", feature_int(FEAT_NICKLEN)); }
/** Set MAXBANS, self explanatory */ static void set_isupport_maxbans(void) { add_isupport_i("MAXBANS", feature_int(FEAT_MAXBANS)); }
/** Set MAXCHANNNELS, self explanatory */ static void set_isupport_maxchannels(void) { /* uint */ add_isupport_i("MAXCHANNELS", feature_int(FEAT_MAXCHANNELSPERUSER)); }
/** Set MAXSILES (maximum silences). */ static void set_isupport_maxsiles(void) { add_isupport_i("SILENCE", feature_int(FEAT_MAXSILES)); }
/** Set WATCH if they are enabled. */ static void set_isupport_watchs(void) { add_isupport_i("WATCH", feature_int(FEAT_MAXWATCHS)); }