portblock: PORT '{' portitems '}' ';' {
struct ListenerFlags flags_here;
struct SLink *link;
+ if (hosts == NULL) {
+ struct SLink *link;
+ link = make_link();
+ DupString(link->value.cp, "*");
+ link->flags = 0;
+ link->next = hosts;
+ hosts = link;
+ }
for (link = hosts; link != NULL; link = link->next) {
memcpy(&flags_here, &listen_flags, sizeof(&flags_here));
switch (link->flags & (USE_IPV4 | USE_IPV6)) {
parse_error("Missing name in pseudo %s block", smap->command);
else if (!smap->services)
parse_error("Missing nick in pseudo %s block", smap->command);
+ else if (!strIsAlpha(smap->command))
+ parse_error("Pseudo command %s invalid: must all be letters", smap->command);
else
valid = 1;
if (valid && register_mapping(smap))
{
auth_spawn(stringno, stringlist);
while (stringno > 0)
- MyFree(stringlist[--stringno]);
+ {
+ --stringno;
+ MyFree(stringlist[stringno]);
+ }
};
iauthitems: iauthitem iauthitems | iauthitem;
iauthprogram: PROGRAM '='
{
while (stringno > 0)
- MyFree(stringlist[--stringno]);
+ {
+ --stringno;
+ MyFree(stringlist[stringno]);
+ }
} stringlist ';';