#define IFF_SLAVE 0
#endif
-static void guess_interface(DSI *dsi, const char *hostname)
+static void guess_interface(DSI *dsi, const char *hostname, const char *port)
{
int fd;
char **start, **list;
memset(&dsi->server, 0, sizeof(struct sockaddr_storage));
sa->sin_family = AF_INET;
- sa->sin_port = htons(548);
+ sa->sin_port = htons(atoi(port));
sa->sin_addr = ((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr;
- LOG(log_info, logtype_dsi, "dsi_tcp: '%s' on interface '%s' will be used instead.",
- getip_string((struct sockaddr *)&dsi->server), ifr.ifr_name);
+ LOG(log_info, logtype_dsi, "dsi_tcp: '%s:%s' on interface '%s' will be used instead.",
+ getip_string((struct sockaddr *)&dsi->server), port, ifr.ifr_name);
goto iflist_done;
}
LOG(log_info, logtype_dsi, "dsi_tcp (Chooser will not select afp/tcp) "
freeaddrinfo(servinfo);
interfaces:
- guess_interface(dsi, hostname);
+ guess_interface(dsi, hostname, port ? port : "548");
return 1;
}