Add bind-backup option

This commit is contained in:
Adrien Gallouët
2016-11-28 11:02:06 +00:00
parent adb791d3ba
commit 3656ab9e2a
2 changed files with 31 additions and 18 deletions

2
mud

Submodule mud updated: 72d0573c95...662fe83173

View File

@@ -239,6 +239,7 @@ int main (int argc, char **argv)
long port = 5000;
char *bind_list = NULL;
char *bind_backup = NULL;
long bind_port = 5000;
char *dev = NULL;
@@ -262,6 +263,7 @@ int main (int argc, char **argv)
{ "host", &host, option_str },
{ "port", &port, option_long },
{ "bind", &bind_list, option_str },
{ "bind-backup", &bind_backup, option_str },
{ "bind-port", &bind_port, option_long },
{ "dev", &dev, option_str },
{ "mtu", &mtu, option_long },
@@ -357,26 +359,37 @@ int main (int argc, char **argv)
if (time_tolerance > 0)
mud_set_time_tolerance_sec(mud, time_tolerance);
if (host && port && bind_list) {
if (host && port) {
if (bind_backup) {
if (mud_peer(mud, bind_backup, host, port, 1)) {
perror("mud_peer (backup)");
return 1;
}
}
if (bind_list) {
char tmp[1024];
char *name = &tmp[0];
size_t size = str_cpy(tmp, bind_list, sizeof(tmp)-1);
str_cpy(tmp, bind_list, sizeof(tmp)-1);
for (size_t i=0; i<size; i++) {
if (tmp[i]!=',')
continue;
while (*name) {
char *p = name;
tmp[i] = 0;
while (*p && *p!=',')
p++;
if (mud_peer(mud, name, host, port))
if (*p)
*p++ = 0;
if (mud_peer(mud, name, host, port, 0)) {
perror("mud_peer");
return 1;
name = &tmp[i+1];
}
if (name[0] && mud_peer(mud, name, host, port))
return 1;
name = p;
}
}
}
int mud_fd = mud_get_fd(mud);