- OCDevAddr rdPubAddr = m_devAddr;
- OICStrcpy(rdPubAddr.addr, sizeof(rdPubAddr.addr), payload->baseURI);
- rdPubAddr.port = res->port;
+ OCDevAddr rdPubAddr = currentDevAddr;
+
+ std::string baseURI = std::string(payload->baseURI);
+ size_t len = baseURI.length();
+ int addressLen = baseURI.find_first_of(":");
+ std::string ipaddress = baseURI.substr(0, addressLen);
+ int port = atoi(baseURI.substr(addressLen + 1, len).c_str());
+ OICStrcpy(rdPubAddr.addr, addressLen + 1, ipaddress.c_str());
+ rdPubAddr.port = port;