}
}
-static int validate_address(const struct config_state attribute((unused)) *cs,
+static int validate_port(const struct config_state attribute((unused)) *cs,
int nvec,
char attribute((unused)) **vec) {
switch(nvec) {
case 2:
return 0;
default:
- error(0, "%s:%d: expected ADDRESS PORT",
+ error(0, "%s:%d: expected [ADDRESS] PORT",
cs->path, cs->line);
return -1;
}
{ C(alias), &type_string, validate_alias },
{ C(allow), &type_stringlist_accum, validate_allow },
{ C(broadcast), &type_stringlist, validate_addrport },
- { C(broadcast_from), &type_stringlist, validate_address },
+ { C(broadcast_from), &type_stringlist, validate_addrport },
{ C(channel), &type_string, validate_channel },
{ C(checkpoint_kbyte), &type_integer, validate_non_negative },
{ C(checkpoint_min), &type_integer, validate_non_negative },
{ C(gap), &type_integer, validate_non_negative },
{ C(history), &type_integer, validate_positive },
{ C(home), &type_string, validate_isdir },
- { C(listen), &type_stringlist, validate_addrport },
+ { C(listen), &type_stringlist, validate_port },
{ C(lock), &type_boolean, validate_any },
{ C(mixer), &type_string, validate_ischr },
+ { C(multicast_ttl), &type_integer, validate_non_negative },
{ C(namepart), &type_namepart, validate_any },
{ C2(nice, nice_rescan), &type_integer, validate_non_negative },
{ C(nice_rescan), &type_integer, validate_non_negative },
c->sample_format.byte_format = AO_FMT_NATIVE;
c->queue_pad = 10;
c->speaker_backend = -1;
+ c->multicast_ttl = 1;
return c;
}