X-Git-Url: http://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fnet_setup.c;h=c181df9472e78c07f0e1ea6efae2d27259d9d574;hb=86c2990327fdf7ec1197aa73cb2b9a926a734db4;hp=28e086440ee168c1a305cd217f262e3e577e9cf8;hpb=d7bf63c63ab397cf3e5ca4a065922364925788e7;p=tinc diff --git a/src/net_setup.c b/src/net_setup.c index 28e08644..c181df94 100644 --- a/src/net_setup.c +++ b/src/net_setup.c @@ -596,6 +596,8 @@ static bool setup_myself(void) { devops = dummy_devops; else if(!strcasecmp(type, "raw_socket")) devops = raw_socket_devops; + else if(!strcasecmp(type, "multicast")) + devops = multicast_devops; #ifdef ENABLE_UML else if(!strcasecmp(type, "uml")) devops = uml_devops; @@ -645,12 +647,25 @@ static bool setup_myself(void) { if(cfg) cfg = lookup_config_next(config_tree, cfg); + char *port = myport; + + if(address) { + char *space = strchr(address, ' '); + if(space) { + *space++ = 0; + port = space; + } + + if(!strcmp(address, "*")) + *address = 0; + } + hint.ai_family = addressfamily; hint.ai_socktype = SOCK_STREAM; hint.ai_protocol = IPPROTO_TCP; hint.ai_flags = AI_PASSIVE; - err = getaddrinfo(address, myport, &hint, &ai); + err = getaddrinfo(address && *address ? address : NULL, port, &hint, &ai); free(address); if(err || !ai) {