Mercurial > pidgin
comparison libpurple/network.c @ 32216:d2ef8926b960
Remove deprecated purple_network_listen_map_external().
Update purple_network_listen() and purple_network_listen_range() to have a boolean
parameter that indicates if the port should be mapped externally.
author | andrew.victor@mxit.com |
---|---|
date | Sat, 24 Sep 2011 21:10:41 +0000 |
parents | 32b2a17d2f92 |
children | 490ad537b77f |
comparison
equal
deleted
inserted
replaced
32215:32b2a17d2f92 | 32216:d2ef8926b960 |
---|---|
389 purple_network_listen_cancel(listen_data); | 389 purple_network_listen_cancel(listen_data); |
390 | 390 |
391 return FALSE; | 391 return FALSE; |
392 } | 392 } |
393 | 393 |
394 static gboolean listen_map_external = TRUE; | |
395 void purple_network_listen_map_external(gboolean map_external) | |
396 { | |
397 listen_map_external = map_external; | |
398 } | |
399 | |
400 static PurpleNetworkListenData * | 394 static PurpleNetworkListenData * |
401 purple_network_do_listen(unsigned short port, int socket_family, int socket_type, PurpleNetworkListenCallback cb, gpointer cb_data) | 395 purple_network_do_listen(unsigned short port, int socket_family, int socket_type, gboolean map_external, |
396 PurpleNetworkListenCallback cb, gpointer cb_data) | |
402 { | 397 { |
403 int listenfd = -1; | 398 int listenfd = -1; |
404 int flags; | 399 int flags; |
405 const int on = 1; | 400 const int on = 1; |
406 PurpleNetworkListenData *listen_data; | 401 PurpleNetworkListenData *listen_data; |
501 listen_data->retry = TRUE; | 496 listen_data->retry = TRUE; |
502 listen_data->cb = cb; | 497 listen_data->cb = cb; |
503 listen_data->cb_data = cb_data; | 498 listen_data->cb_data = cb_data; |
504 listen_data->socket_type = socket_type; | 499 listen_data->socket_type = socket_type; |
505 | 500 |
506 if (!purple_socket_speaks_ipv4(listenfd) || !listen_map_external || | 501 if (!purple_socket_speaks_ipv4(listenfd) || !map_external || |
507 !purple_prefs_get_bool("/purple/network/map_ports")) | 502 !purple_prefs_get_bool("/purple/network/map_ports")) |
508 { | 503 { |
509 purple_debug_info("network", "Skipping external port mapping.\n"); | 504 purple_debug_info("network", "Skipping external port mapping.\n"); |
510 /* The pmp_map_cb does what we want to do */ | 505 /* The pmp_map_cb does what we want to do */ |
511 listen_data->timer = purple_timeout_add(0, purple_network_finish_pmp_map_cb, listen_data); | 506 listen_data->timer = purple_timeout_add(0, purple_network_finish_pmp_map_cb, listen_data); |
529 | 524 |
530 return listen_data; | 525 return listen_data; |
531 } | 526 } |
532 | 527 |
533 PurpleNetworkListenData * | 528 PurpleNetworkListenData * |
534 purple_network_listen(unsigned short port, int socket_family, | 529 purple_network_listen(unsigned short port, int socket_family, int socket_type, |
535 int socket_type, PurpleNetworkListenCallback cb, | 530 gboolean map_external, PurpleNetworkListenCallback cb, |
536 gpointer cb_data) | 531 gpointer cb_data) |
537 { | 532 { |
538 g_return_val_if_fail(port != 0, NULL); | 533 g_return_val_if_fail(port != 0, NULL); |
539 | 534 |
540 return purple_network_do_listen(port, socket_family, socket_type, | 535 return purple_network_do_listen(port, socket_family, socket_type, map_external, |
541 cb, cb_data); | 536 cb, cb_data); |
542 } | 537 } |
543 | 538 |
544 PurpleNetworkListenData * | 539 PurpleNetworkListenData * |
545 purple_network_listen_range(unsigned short start, unsigned short end, | 540 purple_network_listen_range(unsigned short start, unsigned short end, |
546 int socket_family, int socket_type, | 541 int socket_family, int socket_type, gboolean map_external, |
547 PurpleNetworkListenCallback cb, | 542 PurpleNetworkListenCallback cb, |
548 gpointer cb_data) | 543 gpointer cb_data) |
549 { | 544 { |
550 PurpleNetworkListenData *ret = NULL; | 545 PurpleNetworkListenData *ret = NULL; |
551 | 546 |
556 if (end < start) | 551 if (end < start) |
557 end = start; | 552 end = start; |
558 } | 553 } |
559 | 554 |
560 for (; start <= end; start++) { | 555 for (; start <= end; start++) { |
561 ret = purple_network_do_listen(start, AF_UNSPEC, socket_type, cb, cb_data); | 556 ret = purple_network_do_listen(start, AF_UNSPEC, socket_type, map_external, cb, cb_data); |
562 if (ret != NULL) | 557 if (ret != NULL) |
563 break; | 558 break; |
564 } | 559 } |
565 | 560 |
566 return ret; | 561 return ret; |