示例#1
0
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);
}
示例#2
0
/** 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);
}
示例#3
0
/** 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);
}
示例#4
0
/** Set CHANNELLEN, self explanatory */
static void
set_isupport_channellen(void)
{
    /* uint */
    add_isupport_i("CHANNELLEN", feature_int(FEAT_CHANNELLEN));
}
示例#5
0
/** Set NICKLEN, self explanatory */
static void
set_isupport_nicklen(void)
{
    /* uint */
    add_isupport_i("NICKLEN", feature_int(FEAT_NICKLEN));
}
示例#6
0
/** Set MAXBANS, self explanatory */
static void
set_isupport_maxbans(void)
{
    add_isupport_i("MAXBANS", feature_int(FEAT_MAXBANS));
}
示例#7
0
/** Set MAXCHANNNELS, self explanatory */
static void
set_isupport_maxchannels(void)
{
    /* uint */
    add_isupport_i("MAXCHANNELS", feature_int(FEAT_MAXCHANNELSPERUSER));
}
示例#8
0
/** Set MAXSILES (maximum silences). */
static void
set_isupport_maxsiles(void)
{
    add_isupport_i("SILENCE", feature_int(FEAT_MAXSILES));
}
示例#9
0
/** Set WATCH if they are enabled. */
static void
set_isupport_watchs(void)
{
    add_isupport_i("WATCH", feature_int(FEAT_MAXWATCHS));
}