getxattr: получить расширенное значение атрибута не работает - PullRequest
0 голосов
/ 25 июня 2019

getXAddr (this-> soap) возвращает адрес по умолчанию вместо фактического адреса eth0

Добавлены библиотеки ниже

#include <sys/types.h>
#include <attr/xattr.h>

int DeviceBindingService::GetServices(_tds__GetServices *tds__GetServices, _tds__GetServicesResponse &tds__GetServicesResponse)
{
    DEBUG_MSG("Device: %s\n", __FUNCTION__);


    ServiceContext* ctx = (ServiceContext*)this->soap->user;

    std::string XAddr = ctx->getXAddr(this->soap);



    std::cout << "XAddr:%s" << XAddr << std::endl;
    std::cout << "XAddr:%s" << ctx->getXAddr(this->soap) << std::endl;

    //Device Service
    tds__GetServicesResponse.Service.push_back(soap_new_tds__Service(this->soap));
    tds__GetServicesResponse.Service.back()->Namespace  = "http://www.onvif.org/ver10/device/wsdl";
    tds__GetServicesResponse.Service.back()->XAddr      = XAddr;
    tds__GetServicesResponse.Service.back()->Version    = soap_new_req_tt__OnvifVersion(this->soap, 2, 5);
    if( tds__GetServices->IncludeCapability )
    {
        tds__GetServicesResponse.Service.back()->Capabilities        = soap_new__tds__Service_Capabilities(this->soap);
        tds__DeviceServiceCapabilities *capabilities                 = ctx->getDeviceServiceCapabilities(this->soap);
        tds__GetServicesResponse.Service.back()->Capabilities->__any = soap_dom_element(this->soap, NULL, "tds:Capabilities", capabilities, capabilities->soap_type());
    }


    tds__GetServicesResponse.Service.push_back(soap_new_tds__Service(this->soap));
    tds__GetServicesResponse.Service.back()->Namespace  = "http://www.onvif.org/ver10/media/wsdl";
    tds__GetServicesResponse.Service.back()->XAddr      = XAddr;
    tds__GetServicesResponse.Service.back()->Version    = soap_new_req_tt__OnvifVersion(this->soap, 2, 6);
    if (tds__GetServices->IncludeCapability)
    {
        tds__GetServicesResponse.Service.back()->Capabilities        = soap_new__tds__Service_Capabilities(this->soap);
        trt__Capabilities *capabilities                              = ctx->getMediaServiceCapabilities(this->soap);
        tds__GetServicesResponse.Service.back()->Capabilities->__any = soap_dom_element(this->soap, NULL, "trt:Capabilities", capabilities, capabilities->soap_type());
    }


    return SOAP_OK;
}

Ожидаемый результат - фактический IP-адрес и номер порта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...