#define CMD_SGLINE "SGLINE"
#define CMD_SHUN "SHUN"
#define CMD_SILENCE "SILENCE"
+#define CMD_SMO "SMO"
#define CMD_SNO "SNO"
#define CMD_SSHUN "SSHUN"
#define CMD_SQUERY "SQUERY"
#define TOK_SGLINE "SGL"
#define TOK_SHUN "SU"
#define TOK_SILENCE "U"
+#define TOK_SMO "SMO"
#define TOK_SNO "SNO"
#define TOK_SSHUN "SSU"
#define TOK_SQUERY "SQUERY"
#define P10_SGLINE TYPE(SGLINE)
#define P10_SHUN TYPE(SHUN)
#define P10_SILENCE TYPE(SILENCE)
+#define P10_SMO TYPE(SMO)
#define P10_SNO TYPE(SNO)
#define P10_SSHUN TYPE(SSHUN)
#define P10_SQUERY TYPE(SQUERY)
inttobase64(extranum, srv->num_mask, (srv->numeric[1] || (srv->num_mask >= 64*64)) ? 3 : 2);
if (srv == self) {
- putsock(P10_SERVER " %s %d %li %li J10 %s%s +s6 :%s",
+ putsock(P10_SERVER " %s %d " FMT_TIME_T " " FMT_TIME_T " J10 %s%s +s6 :%s",
srv->name, srv->hops+1, srv->boot, srv->link, srv->numeric, extranum, srv->description);
} else {
- putsock("%s " P10_SERVER " %s %d %li %li %c10 %s%s +s6 :%s",
+ putsock("%s " P10_SERVER " %s %d " FMT_TIME_T " " FMT_TIME_T " %c10 %s%s +s6 :%s",
self->numeric, srv->name, srv->hops+1, srv->boot, srv->link, (srv->self_burst ? 'J' : 'P'), srv->numeric, extranum, srv->description);
}
}
modes[modelen] = 0;
/* we don't need to put the + in modes because it's in the format string. */
- putsock("%s " P10_NICK " %s %d %li %s %s +%s %s %s :%s",
+ putsock("%s " P10_NICK " %s %d " FMT_TIME_T " %s %s +%s %s %s :%s",
user->uplink->numeric, user->nick, user->uplink->hops+1, user->timestamp, user->ident, user->hostname, modes, b64ip, user->numeric, user->info);
} else {
- putsock("%s " P10_NICK " %s %d %li %s %s %s %s :%s",
+ putsock("%s " P10_NICK " %s %d " FMT_TIME_T " %s %s %s %s :%s",
user->uplink->numeric, user->nick, user->uplink->hops+1, user->timestamp, user->ident, user->hostname, b64ip, user->numeric, user->info);
}
}
irc_account(struct userNode *user, const char *stamp, time_t timestamp)
{
if(extended_accounts)
- putsock("%s " P10_ACCOUNT " %s R %s %lu", self->numeric, user->numeric, stamp, timestamp);
+ putsock("%s " P10_ACCOUNT " %s R %s "FMT_TIME_T, self->numeric, user->numeric, stamp, timestamp);
else
- putsock("%s " P10_ACCOUNT " %s %s %lu", self->numeric, user->numeric, stamp, timestamp);
+ putsock("%s " P10_ACCOUNT " %s %s "FMT_TIME_T, self->numeric, user->numeric, stamp, timestamp);
}
void
void
irc_gline(struct server *srv, struct gline *gline, int silent)
{
- putsock("%s " P10_GLINE " %s +%s %ld %ld :%s<%s> %s",
+ putsock("%s " P10_GLINE " %s +%s " FMT_TIME_T " " FMT_TIME_T " :%s<%s> %s",
self->numeric, (srv ? srv->numeric : "*"), gline->target, gline->expires-now, now, silent ? "AUTO " : "", gline->issuer, gline->reason);
}
void
irc_shun(struct server *srv, struct shun *shun)
{
- putsock("%s " P10_SHUN " %s +%s %ld :<%s> %s",
+ putsock("%s " P10_SHUN " %s +%s " FMT_TIME_T " :<%s> %s",
self->numeric, (srv ? srv->numeric : "*"), shun->target, shun->expires-now, shun->issuer, shun->reason);
}
irc_join(struct userNode *who, struct chanNode *what)
{
if (what->members.used == 1) {
- putsock("%s " P10_CREATE " %s %lu",
+ putsock("%s " P10_CREATE " %s "FMT_TIME_T,
who->numeric, what->name, what->timestamp);
} else {
- putsock("%s " P10_JOIN " %s %lu", who->numeric, what->name, what->timestamp);
+ putsock("%s " P10_JOIN " %s "FMT_TIME_T, who->numeric, what->name, what->timestamp);
}
}
if((hi = loc_auth(argv[4], argv[5], NULL)))
{
/* Return a AC A */
- putsock("%s " P10_ACCOUNT " %s A %s %lu", self->numeric, server->numeric , argv[3], hi->registered);
+ putsock("%s " P10_ACCOUNT " %s A %s "FMT_TIME_T, self->numeric, server->numeric , argv[3], hi->registered);
}
else
if((hi = loc_auth(argv[5], argv[6], argv[4] )))
{
/* Return a AC A */
- putsock("%s " P10_ACCOUNT " %s A %s %lu", self->numeric, server->numeric , argv[3], hi->registered);
+ putsock("%s " P10_ACCOUNT " %s A %s "FMT_TIME_T, self->numeric, server->numeric , argv[3], hi->registered);
}
else
static CMD_FUNC(cmd_num_gline)
{
- if (argc < 6)
- return 0;
- gline_add(origin, argv[3], atoi(argv[4])-now, argv[5], now, 0, 0);
+ if (argc < 7) {
+ if (argc < 6)
+ return 0;
+ else
+ gline_add(origin, argv[3], atoi(argv[4])-now, argv[5], now, 0, 0);
+ } else {
+ if (!strcmp(argv[5], "+"))
+ gline_add(origin, argv[3], atoi(argv[4])-now, argv[6], now, 0, 0);
+ }
return 1;
}
static CMD_FUNC(cmd_num_shun)
{
- if (argc < 6)
- return 0;
- shun_add(origin, argv[3], atoi(argv[4])-now, argv[5], now, 0);
+ if (argc < 7) {
+ if (argc < 6)
+ return 0;
+ else
+ shun_add(origin, argv[3], atoi(argv[4])-now, argv[5], now, 0);
+ } else {
+ if (!strcmp(argv[5], "+"))
+ shun_add(origin, argv[3], atoi(argv[4])-now, argv[6], now, 0);
+ }
return 1;
}
if (!(sender = GetServerH(origin)))
return 0;
- gline_add(origin, argv[1], strtoul(argv[2], NULL, 0), argv[argc-1], now, 0, 0);
+ gline_add(origin, argv[1], strtoul(argv[2], NULL, 0), argv[argc-1], now, 1, 0);
return 1;
}
if (!(sender = GetServerH(origin)))
return 0;
- shun_add(origin, argv[1], strtoul(argv[2], NULL, 0), argv[argc-1], now, 0);
+ shun_add(origin, argv[1], strtoul(argv[2], NULL, 0), argv[argc-1], now, 1);
return 1;
}
dict_insert(irc_func_dict, TOK_VERSION, cmd_version);
dict_insert(irc_func_dict, CMD_ADMIN, cmd_admin);
dict_insert(irc_func_dict, TOK_ADMIN, cmd_admin);
+ dict_insert(irc_func_dict, CMD_SMO, cmd_dummy);
+ dict_insert(irc_func_dict, TOK_SMO, cmd_dummy);
dict_insert(irc_func_dict, CMD_SNO, cmd_dummy);
dict_insert(irc_func_dict, TOK_SNO, cmd_dummy);
case 'Q': do_chan_mode(MODE_NOQUITMSGS); break;
case 'T': do_chan_mode(MODE_NOAMSG); break;
case 'O': do_chan_mode(MODE_OPERSONLY); break;
+ case 'a': do_chan_mode(MODE_ADMINSONLY); break;
case 'Z': do_chan_mode(MODE_SSLONLY); break;
case 'L': do_chan_mode(MODE_HIDEMODE); break;
case 'z':
case 'Q': remove |= MODE_NOQUITMSGS; break;
case 'T': remove |= MODE_NOAMSG; break;
case 'O': remove |= MODE_OPERSONLY; break;
+ case 'a': remove |= MODE_ADMINSONLY; break;
case 'z': remove |= MODE_REGISTERED; break;
case 'Z': remove |= MODE_SSLONLY; break;
case 'L': remove |= MODE_HIDEMODE; break;