Mercurial > pidgin
diff libpurple/upnp.c @ 15822:32c366eeeb99
sed -ie 's/gaim/purple/g'
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Mon, 19 Mar 2007 07:01:17 +0000 |
parents | 58ff9a0ffce0 |
children | 1a12ce76c4f4 |
line wrap: on
line diff
--- a/libpurple/upnp.c Mon Mar 19 06:11:46 2007 +0000 +++ b/libpurple/upnp.c Mon Mar 19 07:01:17 2007 +0000 @@ -2,9 +2,9 @@ * @file upnp.c UPnP Implementation * @ingroup core * - * gaim + * purple * - * Gaim is the legal property of its developers, whose names are too numerous + * Purple is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * @@ -84,7 +84,7 @@ "</s:Envelope>" #define PORT_MAPPING_LEASE_TIME "0" -#define PORT_MAPPING_DESCRIPTION "GAIM_UPNP_PORT_FORWARD" +#define PORT_MAPPING_DESCRIPTION "PURPLE_UPNP_PORT_FORWARD" #define ADD_PORT_MAPPING_PARAMS \ "<NewRemoteHost></NewRemoteHost>\r\n" \ @@ -106,24 +106,24 @@ "<NewProtocol>%s</NewProtocol>\r\n" typedef enum { - GAIM_UPNP_STATUS_UNDISCOVERED = -1, - GAIM_UPNP_STATUS_UNABLE_TO_DISCOVER, - GAIM_UPNP_STATUS_DISCOVERING, - GAIM_UPNP_STATUS_DISCOVERED -} GaimUPnPStatus; + PURPLE_UPNP_STATUS_UNDISCOVERED = -1, + PURPLE_UPNP_STATUS_UNABLE_TO_DISCOVER, + PURPLE_UPNP_STATUS_DISCOVERING, + PURPLE_UPNP_STATUS_DISCOVERED +} PurpleUPnPStatus; typedef struct { - GaimUPnPStatus status; + PurpleUPnPStatus status; gchar* control_url; gchar service_type[20]; char publicip[16]; char internalip[16]; time_t lookup_time; -} GaimUPnPControlInfo; +} PurpleUPnPControlInfo; typedef struct { - guint inpa; /* gaim_input_add handle */ - guint tima; /* gaim_timeout_add handle */ + guint inpa; /* purple_input_add handle */ + guint tima; /* purple_timeout_add handle */ int fd; struct sockaddr_in server; gchar service_type[25]; @@ -136,19 +136,19 @@ unsigned short portmap; gchar protocol[4]; gboolean add; - GaimUPnPCallback cb; + PurpleUPnPCallback cb; gpointer cb_data; - guint tima; /* gaim_timeout_add handle */ - GaimUtilFetchUrlData *gfud; + guint tima; /* purple_timeout_add handle */ + PurpleUtilFetchUrlData *gfud; }; -static GaimUPnPControlInfo control_info = { - GAIM_UPNP_STATUS_UNDISCOVERED, +static PurpleUPnPControlInfo control_info = { + PURPLE_UPNP_STATUS_UNDISCOVERED, NULL, "\0", "\0", "\0", 0}; static GSList *discovery_callbacks = NULL; -static void gaim_upnp_discover_send_broadcast(UPnPDiscoveryData *dd); +static void purple_upnp_discover_send_broadcast(UPnPDiscoveryData *dd); static void lookup_public_ip(void); static void lookup_internal_ip(void); @@ -157,7 +157,7 @@ { while(discovery_callbacks) { gpointer data; - GaimUPnPCallback cb = discovery_callbacks->data; + PurpleUPnPCallback cb = discovery_callbacks->data; discovery_callbacks = g_slist_remove(discovery_callbacks, cb); data = discovery_callbacks->data; discovery_callbacks = g_slist_remove(discovery_callbacks, data); @@ -166,7 +166,7 @@ } static gboolean -gaim_upnp_compare_device(const xmlnode* device, const gchar* deviceType) +purple_upnp_compare_device(const xmlnode* device, const gchar* deviceType) { xmlnode* deviceTypeNode = xmlnode_get_child(device, "deviceType"); char *tmp; @@ -184,7 +184,7 @@ } static gboolean -gaim_upnp_compare_service(const xmlnode* service, const gchar* serviceType) +purple_upnp_compare_service(const xmlnode* service, const gchar* serviceType) { xmlnode* serviceTypeNode; char *tmp; @@ -208,7 +208,7 @@ } static gchar* -gaim_upnp_parse_description_response(const gchar* httpResponse, gsize len, +purple_upnp_parse_description_response(const gchar* httpResponse, gsize len, const gchar* httpURL, const gchar* serviceType) { gchar *xmlRoot, *baseURL, *controlURL, *service; @@ -217,14 +217,14 @@ /* make sure we have a valid http response */ if(g_strstr_len(httpResponse, len, HTTP_OK) == NULL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "parse_description_response(): Failed In HTTP_OK\n"); return NULL; } /* find the root of the xml document */ if((xmlRoot = g_strstr_len(httpResponse, len, "<root")) == NULL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "parse_description_response(): Failed finding root\n"); return NULL; } @@ -232,7 +232,7 @@ /* create the xml root node */ if((xmlRootNode = xmlnode_from_str(xmlRoot, len - (xmlRoot - httpResponse))) == NULL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "parse_description_response(): Could not parse xml root node\n"); return NULL; } @@ -248,13 +248,13 @@ /* get urn:schemas-upnp-org:device:InternetGatewayDevice:1 and its devicelist */ serviceTypeNode = xmlnode_get_child(xmlRootNode, "device"); - while(!gaim_upnp_compare_device(serviceTypeNode, + while(!purple_upnp_compare_device(serviceTypeNode, "urn:schemas-upnp-org:device:InternetGatewayDevice:1") && serviceTypeNode != NULL) { serviceTypeNode = xmlnode_get_next_twin(serviceTypeNode); } if(serviceTypeNode == NULL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "parse_description_response(): could not get serviceTypeNode 1\n"); g_free(baseURL); xmlnode_free(xmlRootNode); @@ -262,7 +262,7 @@ } serviceTypeNode = xmlnode_get_child(serviceTypeNode, "deviceList"); if(serviceTypeNode == NULL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "parse_description_response(): could not get serviceTypeNode 2\n"); g_free(baseURL); xmlnode_free(xmlRootNode); @@ -271,13 +271,13 @@ /* get urn:schemas-upnp-org:device:WANDevice:1 and its devicelist */ serviceTypeNode = xmlnode_get_child(serviceTypeNode, "device"); - while(!gaim_upnp_compare_device(serviceTypeNode, + while(!purple_upnp_compare_device(serviceTypeNode, "urn:schemas-upnp-org:device:WANDevice:1") && serviceTypeNode != NULL) { serviceTypeNode = xmlnode_get_next_twin(serviceTypeNode); } if(serviceTypeNode == NULL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "parse_description_response(): could not get serviceTypeNode 3\n"); g_free(baseURL); xmlnode_free(xmlRootNode); @@ -285,7 +285,7 @@ } serviceTypeNode = xmlnode_get_child(serviceTypeNode, "deviceList"); if(serviceTypeNode == NULL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "parse_description_response(): could not get serviceTypeNode 4\n"); g_free(baseURL); xmlnode_free(xmlRootNode); @@ -294,12 +294,12 @@ /* get urn:schemas-upnp-org:device:WANConnectionDevice:1 and its servicelist */ serviceTypeNode = xmlnode_get_child(serviceTypeNode, "device"); - while(serviceTypeNode && !gaim_upnp_compare_device(serviceTypeNode, + while(serviceTypeNode && !purple_upnp_compare_device(serviceTypeNode, "urn:schemas-upnp-org:device:WANConnectionDevice:1")) { serviceTypeNode = xmlnode_get_next_twin(serviceTypeNode); } if(serviceTypeNode == NULL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "parse_description_response(): could not get serviceTypeNode 5\n"); g_free(baseURL); xmlnode_free(xmlRootNode); @@ -307,7 +307,7 @@ } serviceTypeNode = xmlnode_get_child(serviceTypeNode, "serviceList"); if(serviceTypeNode == NULL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "parse_description_response(): could not get serviceTypeNode 6\n"); g_free(baseURL); xmlnode_free(xmlRootNode); @@ -317,14 +317,14 @@ /* get the serviceType variable passed to this function */ service = g_strdup_printf(SEARCH_REQUEST_DEVICE, serviceType); serviceTypeNode = xmlnode_get_child(serviceTypeNode, "service"); - while(!gaim_upnp_compare_service(serviceTypeNode, service) && + while(!purple_upnp_compare_service(serviceTypeNode, service) && serviceTypeNode != NULL) { serviceTypeNode = xmlnode_get_next_twin(serviceTypeNode); } g_free(service); if(serviceTypeNode == NULL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "parse_description_response(): could not get serviceTypeNode 7\n"); g_free(baseURL); xmlnode_free(xmlRootNode); @@ -334,7 +334,7 @@ /* get the controlURL of the service */ if((controlURLNode = xmlnode_get_child(serviceTypeNode, "controlURL")) == NULL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "parse_description_response(): Could not find controlURL\n"); g_free(baseURL); xmlnode_free(xmlRootNode); @@ -342,8 +342,8 @@ } tmp = xmlnode_get_data(controlURLNode); - if(baseURL && !gaim_str_has_prefix(tmp, "http://") && - !gaim_str_has_prefix(tmp, "HTTP://")) { + if(baseURL && !purple_str_has_prefix(tmp, "http://") && + !purple_str_has_prefix(tmp, "HTTP://")) { /* Handle absolute paths in a relative URL. This probably * belongs in util.c. */ if (tmp[0] == '/') { @@ -367,25 +367,25 @@ } static void -upnp_parse_description_cb(GaimUtilFetchUrlData *url_data, gpointer user_data, +upnp_parse_description_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, const gchar *httpResponse, gsize len, const gchar *error_message) { UPnPDiscoveryData *dd = user_data; gchar *control_url = NULL; if (len > 0) - control_url = gaim_upnp_parse_description_response( + control_url = purple_upnp_parse_description_response( httpResponse, len, dd->full_url, dd->service_type); g_free(dd->full_url); if(control_url == NULL) { - gaim_debug_error("upnp", - "gaim_upnp_parse_description(): control URL is NULL\n"); + purple_debug_error("upnp", + "purple_upnp_parse_description(): control URL is NULL\n"); } - control_info.status = control_url ? GAIM_UPNP_STATUS_DISCOVERED - : GAIM_UPNP_STATUS_UNABLE_TO_DISCOVER; + control_info.status = control_url ? PURPLE_UPNP_STATUS_DISCOVERED + : PURPLE_UPNP_STATUS_UNABLE_TO_DISCOVER; control_info.lookup_time = time(NULL); control_info.control_url = control_url; strncpy(control_info.service_type, dd->service_type, @@ -403,7 +403,7 @@ } static void -gaim_upnp_parse_description(const gchar* descriptionURL, UPnPDiscoveryData *dd) +purple_upnp_parse_description(const gchar* descriptionURL, UPnPDiscoveryData *dd) { gchar* httpRequest; gchar* descriptionXMLAddress; @@ -414,7 +414,7 @@ example description URL: http://192.168.1.1:5678/rootDesc.xml */ /* parse the url into address, port, path variables */ - if(!gaim_url_parse(descriptionURL, &descriptionAddress, + if(!purple_url_parse(descriptionURL, &descriptionAddress, &port, &descriptionXMLAddress, NULL, NULL)) { return; } @@ -438,10 +438,10 @@ /* Remove the timeout because everything it is waiting for has * successfully completed */ - gaim_timeout_remove(dd->tima); + purple_timeout_remove(dd->tima); dd->tima = 0; - gaim_util_fetch_url_request(descriptionURL, TRUE, NULL, TRUE, httpRequest, + purple_util_fetch_url_request(descriptionURL, TRUE, NULL, TRUE, httpRequest, TRUE, upnp_parse_description_cb, dd); g_free(httpRequest); @@ -449,7 +449,7 @@ } static void -gaim_upnp_parse_discover_response(const gchar* buf, unsigned int buf_len, +purple_upnp_parse_discover_response(const gchar* buf, unsigned int buf_len, UPnPDiscoveryData *dd) { gchar* startDescURL; @@ -457,13 +457,13 @@ gchar* descURL; if(g_strstr_len(buf, buf_len, HTTP_OK) == NULL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "parse_discover_response(): Failed In HTTP_OK\n"); return; } if((startDescURL = g_strstr_len(buf, buf_len, "http://")) == NULL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "parse_discover_response(): Failed In finding http://\n"); return; } @@ -474,7 +474,7 @@ endDescURL = g_strstr_len(startDescURL, buf_len - (startDescURL - buf), "\n"); if(endDescURL == NULL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "parse_discover_response(): Failed In endDescURL\n"); return; } @@ -482,38 +482,38 @@ /* XXX: I'm not sure how this could ever happen */ if(endDescURL == startDescURL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "parse_discover_response(): endDescURL == startDescURL\n"); return; } descURL = g_strndup(startDescURL, endDescURL - startDescURL); - gaim_upnp_parse_description(descURL, dd); + purple_upnp_parse_description(descURL, dd); g_free(descURL); } static gboolean -gaim_upnp_discover_timeout(gpointer data) +purple_upnp_discover_timeout(gpointer data) { UPnPDiscoveryData* dd = data; if (dd->inpa) - gaim_input_remove(dd->inpa); + purple_input_remove(dd->inpa); dd->inpa = 0; dd->tima = 0; if (dd->retry_count < NUM_UDP_ATTEMPTS) { /* TODO: We probably shouldn't be incrementing retry_count in two places */ dd->retry_count++; - gaim_upnp_discover_send_broadcast(dd); + purple_upnp_discover_send_broadcast(dd); } else { if (dd->fd) close(dd->fd); - control_info.status = GAIM_UPNP_STATUS_UNABLE_TO_DISCOVER; + control_info.status = PURPLE_UPNP_STATUS_UNABLE_TO_DISCOVER; control_info.lookup_time = time(NULL); control_info.service_type[0] = '\0'; g_free(control_info.control_url); @@ -528,7 +528,7 @@ } static void -gaim_upnp_discover_udp_read(gpointer data, gint sock, GaimInputCondition cond) +purple_upnp_discover_udp_read(gpointer data, gint sock, PurpleInputCondition cond) { int len; UPnPDiscoveryData *dd = data; @@ -547,20 +547,20 @@ } } while (errno == EINTR); - gaim_input_remove(dd->inpa); + purple_input_remove(dd->inpa); dd->inpa = 0; close(dd->fd); dd->fd = 0; /* parse the response, and see if it was a success */ - gaim_upnp_parse_discover_response(buf, len, dd); + purple_upnp_parse_discover_response(buf, len, dd); /* We'll either time out or continue successfully */ } static void -gaim_upnp_discover_send_broadcast(UPnPDiscoveryData *dd) +purple_upnp_discover_send_broadcast(UPnPDiscoveryData *dd) { gchar *sendMessage = NULL; gsize totalSize; @@ -595,10 +595,10 @@ g_free(sendMessage); if(sentSuccess) { - dd->tima = gaim_timeout_add(DISCOVERY_TIMEOUT, - gaim_upnp_discover_timeout, dd); - dd->inpa = gaim_input_add(dd->fd, GAIM_INPUT_READ, - gaim_upnp_discover_udp_read, dd); + dd->tima = purple_timeout_add(DISCOVERY_TIMEOUT, + purple_upnp_discover_timeout, dd); + dd->inpa = purple_input_add(dd->fd, PURPLE_INPUT_READ, + purple_upnp_discover_udp_read, dd); return; } @@ -606,11 +606,11 @@ /* We have already done all our retries. Make sure that the callback * doesn't get called before the original function returns */ - gaim_timeout_add(10, gaim_upnp_discover_timeout, dd); + purple_timeout_add(10, purple_upnp_discover_timeout, dd); } void -gaim_upnp_discover(GaimUPnPCallback cb, gpointer cb_data) +purple_upnp_discover(PurpleUPnPCallback cb, gpointer cb_data) { /* Socket Setup Variables */ int sock; @@ -619,7 +619,7 @@ /* UDP RECEIVE VARIABLES */ UPnPDiscoveryData *dd; - if (control_info.status == GAIM_UPNP_STATUS_DISCOVERING) { + if (control_info.status == PURPLE_UPNP_STATUS_DISCOVERING) { if (cb) { discovery_callbacks = g_slist_append( discovery_callbacks, cb); @@ -639,11 +639,11 @@ /* Set up the sockets */ sock = socket(AF_INET, SOCK_DGRAM, 0); if(sock == -1) { - gaim_debug_error("upnp", - "gaim_upnp_discover(): Failed In sock creation\n"); + purple_debug_error("upnp", + "purple_upnp_discover(): Failed In sock creation\n"); /* Short circuit the retry attempts */ dd->retry_count = NUM_UDP_ATTEMPTS; - gaim_timeout_add(10, gaim_upnp_discover_timeout, dd); + purple_timeout_add(10, purple_upnp_discover_timeout, dd); return; } @@ -651,11 +651,11 @@ /* TODO: Non-blocking! */ if((hp = gethostbyname(HTTPMU_HOST_ADDRESS)) == NULL) { - gaim_debug_error("upnp", - "gaim_upnp_discover(): Failed In gethostbyname\n"); + purple_debug_error("upnp", + "purple_upnp_discover(): Failed In gethostbyname\n"); /* Short circuit the retry attempts */ dd->retry_count = NUM_UDP_ATTEMPTS; - gaim_timeout_add(10, gaim_upnp_discover_timeout, dd); + purple_timeout_add(10, purple_upnp_discover_timeout, dd); return; } @@ -664,17 +664,17 @@ memcpy(&(dd->server.sin_addr), hp->h_addr_list[0], hp->h_length); dd->server.sin_port = htons(HTTPMU_HOST_PORT); - control_info.status = GAIM_UPNP_STATUS_DISCOVERING; + control_info.status = PURPLE_UPNP_STATUS_DISCOVERING; - gaim_upnp_discover_send_broadcast(dd); + purple_upnp_discover_send_broadcast(dd); } -static GaimUtilFetchUrlData* -gaim_upnp_generate_action_message_and_send(const gchar* actionName, - const gchar* actionParams, GaimUtilFetchUrlCallback cb, +static PurpleUtilFetchUrlData* +purple_upnp_generate_action_message_and_send(const gchar* actionName, + const gchar* actionParams, PurpleUtilFetchUrlCallback cb, gpointer cb_data) { - GaimUtilFetchUrlData* gfud; + PurpleUtilFetchUrlData* gfud; gchar* soapMessage; gchar* totalSendMessage; gchar* pathOfControl; @@ -682,9 +682,9 @@ int port = 0; /* parse the url into address, port, path variables */ - if(!gaim_url_parse(control_info.control_url, &addressOfControl, + if(!purple_url_parse(control_info.control_url, &addressOfControl, &port, &pathOfControl, NULL, NULL)) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "generate_action_message_and_send(): Failed In Parse URL\n"); /* XXX: This should probably be async */ if(cb) @@ -706,7 +706,7 @@ g_free(pathOfControl); g_free(soapMessage); - gfud = gaim_util_fetch_url_request(control_info.control_url, FALSE, NULL, TRUE, + gfud = purple_util_fetch_url_request(control_info.control_url, FALSE, NULL, TRUE, totalSendMessage, TRUE, cb, cb_data); g_free(totalSendMessage); @@ -716,24 +716,24 @@ } const gchar * -gaim_upnp_get_public_ip() +purple_upnp_get_public_ip() { - if (control_info.status == GAIM_UPNP_STATUS_DISCOVERED + if (control_info.status == PURPLE_UPNP_STATUS_DISCOVERED && control_info.publicip && strlen(control_info.publicip) > 0) return control_info.publicip; /* Trigger another UPnP discovery if 5 minutes have elapsed since the * last one, and it wasn't successful */ - if (control_info.status < GAIM_UPNP_STATUS_DISCOVERING + if (control_info.status < PURPLE_UPNP_STATUS_DISCOVERING && (time(NULL) - control_info.lookup_time) > 300) - gaim_upnp_discover(NULL, NULL); + purple_upnp_discover(NULL, NULL); return NULL; } static void -looked_up_public_ip_cb(GaimUtilFetchUrlData *url_data, gpointer user_data, +looked_up_public_ip_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, const gchar *httpResponse, gsize len, const gchar *error_message) { gchar* temp, *temp2; @@ -744,17 +744,17 @@ /* extract the ip, or see if there is an error */ if((temp = g_strstr_len(httpResponse, len, "<NewExternalIPAddress")) == NULL) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "looked_up_public_ip_cb(): Failed Finding <NewExternalIPAddress\n"); return; } if(!(temp = g_strstr_len(temp, len - (temp - httpResponse), ">"))) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "looked_up_public_ip_cb(): Failed In Finding >\n"); return; } if(!(temp2 = g_strstr_len(temp, len - (temp - httpResponse), "<"))) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "looked_up_public_ip_cb(): Failed In Finding <\n"); return; } @@ -763,30 +763,30 @@ strncpy(control_info.publicip, temp + 1, sizeof(control_info.publicip)); - gaim_debug_info("upnp", "NAT Returned IP: %s\n", control_info.publicip); + purple_debug_info("upnp", "NAT Returned IP: %s\n", control_info.publicip); } static void lookup_public_ip() { - gaim_upnp_generate_action_message_and_send("GetExternalIPAddress", "", + purple_upnp_generate_action_message_and_send("GetExternalIPAddress", "", looked_up_public_ip_cb, NULL); } /* TODO: This could be exported */ static const gchar * -gaim_upnp_get_internal_ip() +purple_upnp_get_internal_ip() { - if (control_info.status == GAIM_UPNP_STATUS_DISCOVERED + if (control_info.status == PURPLE_UPNP_STATUS_DISCOVERED && control_info.internalip && strlen(control_info.internalip) > 0) return control_info.internalip; /* Trigger another UPnP discovery if 5 minutes have elapsed since the * last one, and it wasn't successful */ - if (control_info.status < GAIM_UPNP_STATUS_DISCOVERING + if (control_info.status < PURPLE_UPNP_STATUS_DISCOVERING && (time(NULL) - control_info.lookup_time) > 300) - gaim_upnp_discover(NULL, NULL); + purple_upnp_discover(NULL, NULL); return NULL; } @@ -796,13 +796,13 @@ { if (source) { strncpy(control_info.internalip, - gaim_network_get_local_system_ip(source), + purple_network_get_local_system_ip(source), sizeof(control_info.internalip)); - gaim_debug_info("upnp", "Local IP: %s\n", + purple_debug_info("upnp", "Local IP: %s\n", control_info.internalip); close(source); } else - gaim_debug_info("upnp", "Unable to look up local IP\n"); + purple_debug_info("upnp", "Unable to look up local IP\n"); } @@ -812,9 +812,9 @@ gchar* addressOfControl; int port = 0; - if(!gaim_url_parse(control_info.control_url, &addressOfControl, &port, + if(!purple_url_parse(control_info.control_url, &addressOfControl, &port, NULL, NULL, NULL)) { - gaim_debug_error("upnp", + purple_debug_error("upnp", "lookup_internal_ip(): Failed In Parse URL\n"); return; } @@ -822,10 +822,10 @@ port = DEFAULT_HTTP_PORT; } - if(gaim_proxy_connect(NULL, NULL, addressOfControl, port, + if(purple_proxy_connect(NULL, NULL, addressOfControl, port, looked_up_internal_ip_cb, NULL) == NULL) { - gaim_debug_error("upnp", "Get Local IP Connect Failed: Address: %s @@@ Port %d\n", + purple_debug_error("upnp", "Get Local IP Connect Failed: Address: %s @@@ Port %d\n", addressOfControl, port); } @@ -833,7 +833,7 @@ } static void -done_port_mapping_cb(GaimUtilFetchUrlData *url_data, gpointer user_data, +done_port_mapping_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, const gchar *httpResponse, gsize len, const gchar *error_message) { UPnPMappingAddRemove *ar = user_data; @@ -844,12 +844,12 @@ if ((error_message != NULL) || (httpResponse == NULL) || (g_strstr_len(httpResponse, len, HTTP_OK) == NULL)) { - gaim_debug_error("upnp", - "gaim_upnp_set_port_mapping(): Failed HTTP_OK\n%s\n", + purple_debug_error("upnp", + "purple_upnp_set_port_mapping(): Failed HTTP_OK\n%s\n", httpResponse ? httpResponse : "(null)"); success = FALSE; } else - gaim_debug_info("upnp", "Successfully completed port mapping operation\n"); + purple_debug_info("upnp", "Successfully completed port mapping operation\n"); if (ar->cb) ar->cb(success, ar->cb_data); @@ -867,9 +867,9 @@ if(ar->add) { const gchar *internal_ip; /* get the internal IP */ - if(!(internal_ip = gaim_upnp_get_internal_ip())) { - gaim_debug_error("upnp", - "gaim_upnp_set_port_mapping(): couldn't get local ip\n"); + if(!(internal_ip = purple_upnp_get_internal_ip())) { + purple_debug_error("upnp", + "purple_upnp_set_port_mapping(): couldn't get local ip\n"); /* UGLY */ if (ar->cb) ar->cb(FALSE, ar->cb_data); @@ -889,7 +889,7 @@ ar->portmap, ar->protocol); } - ar->gfud = gaim_upnp_generate_action_message_and_send(action_name, + ar->gfud = purple_upnp_generate_action_message_and_send(action_name, action_params, done_port_mapping_cb, ar); g_free(action_params); @@ -909,7 +909,7 @@ return FALSE; } -void gaim_upnp_cancel_port_mapping(UPnPMappingAddRemove *ar) +void purple_upnp_cancel_port_mapping(UPnPMappingAddRemove *ar) { GSList *l; @@ -927,17 +927,17 @@ } if (ar->tima > 0) - gaim_timeout_remove(ar->tima); + purple_timeout_remove(ar->tima); if (ar->gfud) - gaim_util_fetch_url_cancel(ar->gfud); + purple_util_fetch_url_cancel(ar->gfud); g_free(ar); } UPnPMappingAddRemove * -gaim_upnp_set_port_mapping(unsigned short portmap, const gchar* protocol, - GaimUPnPCallback cb, gpointer cb_data) +purple_upnp_set_port_mapping(unsigned short portmap, const gchar* protocol, + PurpleUPnPCallback cb, gpointer cb_data) { UPnPMappingAddRemove *ar; @@ -949,7 +949,7 @@ strncpy(ar->protocol, protocol, sizeof(ar->protocol)); /* If we're waiting for a discovery, add to the callbacks list */ - if(control_info.status == GAIM_UPNP_STATUS_DISCOVERING) { + if(control_info.status == PURPLE_UPNP_STATUS_DISCOVERING) { /* TODO: This will fail because when this cb is triggered, * the internal IP lookup won't be complete */ discovery_callbacks = g_slist_append( @@ -961,15 +961,15 @@ /* If we haven't had a successful UPnP discovery, check if 5 minutes has * elapsed since the last try, try again */ - if(control_info.status == GAIM_UPNP_STATUS_UNDISCOVERED || - (control_info.status == GAIM_UPNP_STATUS_UNABLE_TO_DISCOVER + if(control_info.status == PURPLE_UPNP_STATUS_UNDISCOVERED || + (control_info.status == PURPLE_UPNP_STATUS_UNABLE_TO_DISCOVER && (time(NULL) - control_info.lookup_time) > 300)) { - gaim_upnp_discover(do_port_mapping_cb, ar); + purple_upnp_discover(do_port_mapping_cb, ar); return ar; - } else if(control_info.status == GAIM_UPNP_STATUS_UNABLE_TO_DISCOVER) { + } else if(control_info.status == PURPLE_UPNP_STATUS_UNABLE_TO_DISCOVER) { if (cb) { /* Asynchronously trigger a failed response */ - ar->tima = gaim_timeout_add(10, fire_port_mapping_failure_cb, ar); + ar->tima = purple_timeout_add(10, fire_port_mapping_failure_cb, ar); } else { /* No need to do anything if nobody expects a response*/ g_free(ar); @@ -983,8 +983,8 @@ } UPnPMappingAddRemove * -gaim_upnp_remove_port_mapping(unsigned short portmap, const char* protocol, - GaimUPnPCallback cb, gpointer cb_data) +purple_upnp_remove_port_mapping(unsigned short portmap, const char* protocol, + PurpleUPnPCallback cb, gpointer cb_data) { UPnPMappingAddRemove *ar; @@ -996,7 +996,7 @@ strncpy(ar->protocol, protocol, sizeof(ar->protocol)); /* If we're waiting for a discovery, add to the callbacks list */ - if(control_info.status == GAIM_UPNP_STATUS_DISCOVERING) { + if(control_info.status == PURPLE_UPNP_STATUS_DISCOVERING) { discovery_callbacks = g_slist_append( discovery_callbacks, do_port_mapping_cb); discovery_callbacks = g_slist_append( @@ -1006,15 +1006,15 @@ /* If we haven't had a successful UPnP discovery, check if 5 minutes has * elapsed since the last try, try again */ - if(control_info.status == GAIM_UPNP_STATUS_UNDISCOVERED || - (control_info.status == GAIM_UPNP_STATUS_UNABLE_TO_DISCOVER + if(control_info.status == PURPLE_UPNP_STATUS_UNDISCOVERED || + (control_info.status == PURPLE_UPNP_STATUS_UNABLE_TO_DISCOVER && (time(NULL) - control_info.lookup_time) > 300)) { - gaim_upnp_discover(do_port_mapping_cb, ar); + purple_upnp_discover(do_port_mapping_cb, ar); return ar; - } else if(control_info.status == GAIM_UPNP_STATUS_UNABLE_TO_DISCOVER) { + } else if(control_info.status == PURPLE_UPNP_STATUS_UNABLE_TO_DISCOVER) { if (cb) { /* Asynchronously trigger a failed response */ - ar->tima = gaim_timeout_add(10, fire_port_mapping_failure_cb, ar); + ar->tima = purple_timeout_add(10, fire_port_mapping_failure_cb, ar); } else { /* No need to do anything if nobody expects a response*/ g_free(ar);