Hello, On 02/05/2018 08:08 PM, Sebastian Ramacher wrote: >> I am using Slackware. >> >> Bye, Robert > >> mbedtls 2.6.1 libraries/mbedtls >> mbedtls-2.6.1-i586-1_SBo >> bctoolbox 0.6.0 libraries/bctoolbox >> bctoolbox-0.6.0-i586-1_SBo >> mbedtls 2.6.1 libraries/mbedtls >> mbedtls-2.6.1-i586-1_SBo >> bctoolbox 0.6.0 libraries/bctoolbox >> bctoolbox-0.6.0-i586-1_SBo >> jdk 8u162 development/jdk >> jdk-7u80-i586-1 >> libantlr3c 3.4 libraries/libantlr3c >> libantlr3c-3.4-i486-1_SBo >> mbedtls 2.6.1 libraries/mbedtls >> mbedtls-2.6.1-i586-1_SBo >> belle-sip 1.6.3 libraries/belle-sip >> belle-sip-1.6.3-i586-1_SBo >> mbedtls 2.6.1 libraries/mbedtls >> mbedtls-2.6.1-i586-1_SBo >> bctoolbox 0.6.0 libraries/bctoolbox >> bctoolbox-0.6.0-i586-1_SBo >> mbedtls 2.6.1 libraries/mbedtls >> mbedtls-2.6.1-i586-1_SBo >> bzrtp 1.0.6 libraries/bzrtp >> bzrtp-1.0.6-i586-1_SBo >> ffmpeg 3.2.4 multimedia/ffmpeg >> ffmpeg-2.6.8-i686_custom-1_SBo >> libsrtp 1.6.0 libraries/libsrtp >> libsrtp-1.6.0-i586-1_SBo >> libupnp 1.8.3 libraries/libupnp >> libupnp-1.8.3-i586-1_SBo >> mbedtls 2.6.1 libraries/mbedtls >> mbedtls-2.6.1-i586-1_SBo >> speex 1.2.0 audio/speex >> speex-1.2.0-i486-1_SBo >> linphone 3.12.0 network/linphone >> linphone-3.12.0-i586-1_SBo >> x264 20170225 multimedia/x264 >> x264-20131101-i486-2_SBo >> msx264 1.5.3 libraries/msx264 >> msx264-1.5.3-i586-1_SBo > >> diff --git a/linphone-3.12.0/mediastreamer2/src/upnp/upnp_igd.c >> b/linphone-3.12.0/mediastreamer2/src/upnp/upnp_igd.c >> index 4f7d161..cee436c 100644 >> --- a/linphone-3.12.0/mediastreamer2/src/upnp/upnp_igd.c >> +++ b/linphone-3.12.0/mediastreamer2/src/upnp/upnp_igd.c >> @@ -395,7 +395,7 @@ int upnp_igd_send_action(upnp_igd_context* igd_ctxt, >> upnp_igd_device_node *devic >> * d_event -- event associated with the new device >> * >> >> ********************************************************************************/ >> -void upnp_igd_add_device(upnp_igd_context *igd_ctxt, IXML_Document >> *desc_doc, struct Upnp_Discovery *d_event) { >> +void upnp_igd_add_device(upnp_igd_context *igd_ctxt, IXML_Document >> *desc_doc, UpnpDiscovery *d_event) { >> upnp_igd_device_node *deviceNode, *tmpdevnode; >> int found = 0; >> int ret; >> @@ -423,7 +423,7 @@ void upnp_igd_add_device(upnp_igd_context *igd_ctxt, >> IXML_Document *desc_doc, st >> baseURL = upnp_igd_get_first_document_item(igd_ctxt, desc_doc, >> "URLBase"); >> relURL = upnp_igd_get_first_document_item(igd_ctxt, desc_doc, >> "presentationURL"); >> >> - ret = UpnpResolveURL((baseURL ? baseURL : d_event->Location), relURL, >> presURL); >> + ret = UpnpResolveURL((baseURL ? baseURL : >> UpnpString_get_String(UpnpDiscovery_get_Location(d_event))), relURL, >> presURL);
The third parameter to the ?: operator can be simplified to: UpnpDiscovery_get_Location_cstr(d_event) >> if (UPNP_E_SUCCESS != ret) { >> upnp_igd_print(igd_ctxt, UPNP_IGD_ERROR, "Error generating >> presURL from %s + %s", baseURL, relURL); >> @@ -444,7 +444,7 @@ void upnp_igd_add_device(upnp_igd_context *igd_ctxt, >> IXML_Document *desc_doc, st >> if (found) { >> /* The device is already there, so just update >> */ >> /* the advertisement timeout field */ >> - tmpdevnode->device.advr_time_out = >> d_event->Expires; >> + tmpdevnode->device.advr_time_out = >> UpnpDiscovery_get_Expires(d_event); >> upnp_igd_print(igd_ctxt, UPNP_IGD_DEBUG, "IGD >> device: %s[%s] | Update expires(%d)", friendlyName, UDN, >> tmpdevnode->device.advr_time_out); >> } else { >> upnp_igd_print(igd_ctxt, UPNP_IGD_MESSAGE, "Add >> IGD device: %s[%s]", friendlyName, UDN); >> @@ -453,12 +453,12 @@ void upnp_igd_add_device(upnp_igd_context *igd_ctxt, >> IXML_Document *desc_doc, st >> deviceNode = (upnp_igd_device_node *) >> malloc(sizeof(upnp_igd_device_node)); >> memset(deviceNode->device.services, '\0', >> sizeof(upnp_igd_service) * IGD_SERVICE_SERVCOUNT); >> strncpy(deviceNode->device.udn, UDN, >> sizeof(deviceNode->device.udn)); >> - strncpy(deviceNode->device.desc_doc_url, >> d_event->Location, sizeof(deviceNode->device.desc_doc_url)); >> + strncpy(deviceNode->device.desc_doc_url, >> UpnpString_get_String(UpnpDiscovery_get_Location(d_event)), >> sizeof(deviceNode->device.desc_doc_url)); ditto and a few more times also for UpnpActionComplete_get_CtrlUrl and UpnpDiscovery_get_DeviceID. >> strncpy(deviceNode->device.friendly_name, >> friendlyName, sizeof(deviceNode->device.friendly_name)); >> strncpy(deviceNode->device.model_name, >> modelName, sizeof(deviceNode->device.model_name)); >> strncpy(deviceNode->device.model_number, >> modelNumber, sizeof(deviceNode->device.model_number)); >> strncpy(deviceNode->device.pres_url, presURL, >> sizeof(deviceNode->device.pres_url)); >> - deviceNode->device.advr_time_out = >> d_event->Expires; >> + deviceNode->device.advr_time_out = >> UpnpDiscovery_get_Expires(d_event); >> >> // Reset values >> serviceId = NULL; >> @@ -468,7 +468,7 @@ void upnp_igd_add_device(upnp_igd_context *igd_ctxt, >> IXML_Document *desc_doc, st >> >> for (service = 0; service < >> IGD_SERVICE_SERVCOUNT; >> service++) { >> - if >> (upnp_igd_get_find_and_parse_service(igd_ctxt, desc_doc, d_event->Location, >> + if >> (upnp_igd_get_find_and_parse_service(igd_ctxt, desc_doc, >> UpnpString_get_String(UpnpDiscovery_get_Location(d_event)), >> >> IGDServiceType[service], &serviceId, &event_url, &controlURL)) { >> upnp_igd_print(igd_ctxt, >> UPNP_IGD_DEBUG, "Subscribing to EventURL %s...",event_url); >> ret = >> @@ -891,16 +891,16 @@ int upnp_igd_callback(Upnp_EventType event_type, void* >> event, void *cookie) { >> switch(event_type) { >> case UPNP_DISCOVERY_ADVERTISEMENT_ALIVE: >> case UPNP_DISCOVERY_SEARCH_RESULT: { >> - struct Upnp_Discovery *d_event = (struct Upnp_Discovery >> *)event; >> + UpnpDiscovery *d_event = (UpnpDiscovery *)event; >> IXML_Document *desc_doc = NULL; >> int ret; >> >> - if (d_event->ErrCode != UPNP_E_SUCCESS) { >> - upnp_igd_print(igd_ctxt, UPNP_IGD_ERROR, "Error >> in Discovery Callback -- %d", d_event->ErrCode); >> + if (UpnpDiscovery_get_ErrCode(d_event) != >> UPNP_E_SUCCESS) { >> + upnp_igd_print(igd_ctxt, UPNP_IGD_ERROR, "Error >> in Discovery Callback -- %d", UpnpDiscovery_get_ErrCode(d_event)); >> } >> - ret = UpnpDownloadXmlDoc(d_event->Location, &desc_doc); >> + ret = >> UpnpDownloadXmlDoc(UpnpString_get_String(UpnpDiscovery_get_Location(d_event)), >> &desc_doc); >> if (ret != UPNP_E_SUCCESS) { >> - upnp_igd_print(igd_ctxt, UPNP_IGD_ERROR, "Error >> obtaining device description from %s -- error = %d", d_event->Location, ret); >> + upnp_igd_print(igd_ctxt, UPNP_IGD_ERROR, "Error >> obtaining device description from %s -- error = %d", >> UpnpString_get_String(UpnpDiscovery_get_Location(d_event)), ret); >> } else { >> upnp_igd_add_device(igd_ctxt, desc_doc, >> d_event); >> } >> @@ -910,64 +910,64 @@ int upnp_igd_callback(Upnp_EventType event_type, void* >> event, void *cookie) { >> } >> break; >> case UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE: { >> - struct Upnp_Discovery *d_event = (struct Upnp_Discovery >> *)event; >> - if (d_event->ErrCode != UPNP_E_SUCCESS) { >> - upnp_igd_print(igd_ctxt, UPNP_IGD_ERROR, "Error >> in Discovery ByeBye Callback -- %d", d_event->ErrCode); >> + UpnpDiscovery *d_event = (UpnpDiscovery *)event; >> + if (UpnpDiscovery_get_ErrCode(d_event) != >> UPNP_E_SUCCESS) { >> + upnp_igd_print(igd_ctxt, UPNP_IGD_ERROR, "Error >> in Discovery ByeBye Callback -- %d", UpnpDiscovery_get_ErrCode(d_event)); >> } >> - upnp_igd_remove_device(igd_ctxt, d_event->DeviceId); >> + upnp_igd_remove_device(igd_ctxt, >> UpnpString_get_String((d_event))); This looks wrong. UpnpEvent_get_DeviceId_cstr? >> } >> break; >> /* SOAP Stuff */ >> case UPNP_CONTROL_ACTION_COMPLETE: { >> - struct Upnp_Action_Complete *a_event = (struct >> Upnp_Action_Complete *)event; >> + UpnpActionComplete *a_event = (UpnpActionComplete >> *)event; >> >> - if (a_event->ErrCode != UPNP_E_SUCCESS) { >> - upnp_igd_print(igd_ctxt, UPNP_IGD_ERROR, "Error >> in Action Complete Callback -- %d", a_event->ErrCode); >> + if (UpnpActionComplete_get_ErrCode(a_event) != >> UPNP_E_SUCCESS) { >> + upnp_igd_print(igd_ctxt, UPNP_IGD_ERROR, "Error >> in Action Complete Callback -- %d", >> UpnpActionComplete_get_ErrCode(a_event)); >> } else { >> - upnp_igd_handle_send_action(igd_ctxt, >> UPNP_STRING(a_event->CtrlUrl), a_event->ActionRequest, I guess UPNP_STRING is here to handle Debian's CtrlUrl being different than upstream. When this is converted to UpnpActionComplete_get_CtrlUrl_cstr it should be possible to drop it. a_event->ActionResult); >> + upnp_igd_handle_send_action(igd_ctxt, >> UPNP_STRING(UpnpActionComplete_get_CtrlUrl(a_event)), >> UpnpActionComplete_get_ActionRequest(a_event), >> UpnpActionComplete_get_ActionResult(a_event)); Best regards Uwe
signature.asc
Description: OpenPGP digital signature