| &$unknown_298151 <= -1 | 197 | | GIOChannel *dcc_listen(GIOChannel *iface, IPADDR *ip, int *port) | | | 198 | | { | | | 199 | | GIOChannel *handle; | | &$unknown_298157 <= -1 | 200 | | IPADDR *listen_ip = NULL;
| | | 201 | | const char *dcc_port, *p, *own_ip; | | | 202 | | int first, last; | | | 203 | | | | &$unknown_298163 <= -1 | 204 | | if (net_getsockname(iface, ip, NULL) == -1)
| | | 205 | | return NULL;
| | | 206 | | | | | 207 | | | | | 208 | | | | &$unknown_298196 <= -1 | 209 | | own_ip = settings_get_str("dcc_own_ip"); | | &$unknown_298210 <= -1 | 210 | | if (*own_ip != '\0') { | | &$unknown_298213 <= -1 | 211 | | if (is_ipv4_address(own_ip)) | | &$unknown_298225 <= -1 | 212 | | listen_ip = &ip4_any; | | | 213 | | } else { | | | 214 | | if (!IPADDR_IS_V6(ip))
| | | 215 | | listen_ip = &ip4_any; | | | 216 | | } | | | 217 | | | | | 218 | | | | &$unknown_298228 <= -1 | 219 | | dcc_port = settings_get_str("dcc_port"); | | &$unknown_298238 <= -1 | 220 | | first = atoi(dcc_port); | | | 221 | | if (first == 0) { | | | 222 | | | | | 223 | | *port = 0; | | | 224 | | return net_listen(listen_ip, port); | | | 225 | | } | | | 226 | | | | | 227 | | | | | 228 | | p = strchr(dcc_port, ' '); | | | 229 | | if (p == NULL) p = strchr(dcc_port, '-');
| | | 230 | | | | | 231 | | dcc_port = p; | | | 232 | | if (dcc_port == NULL)
| | | 233 | | last = first; | | | 234 | | else { | | | 235 | | last = atoi(dcc_port+1); | | | 236 | | if (last == 0) | | | 237 | | last = first; | | | 238 | | } | | | 239 | | | | | 240 | | | | first <= -1 | 241 | | for (*port = first; *port <= last; (*port)++) { |
|