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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to