string Service::ENDPOINT_PROPERTY = "se";
Result_Base *Service::Resulturi = NULL;
-ServiceInfo Service::serviceval;
Service Service::local_service;
string Service::remote_device_id = "";
std::map<std::string, std::string> Service::dev_id_map;
-string Service::curl_data = "";
-
Service::Service()
{
//Resulturi = NULL;
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Accept: application/json");
headers = curl_slist_append(headers, "Content-Type: application/json");
+ char* read_data = NULL;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_TIMEOUT_MS, timeout);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Service::createdata);
+ curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&read_data);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
res = curl_easy_perform(curl);
- if (res != CURLE_OK) {
- MSF_DBG("curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
- createdata_process("", dev_result_ptr);
- } else {
- createdata_process(curl_data, dev_result_ptr);
- curl_data.clear();
- }
+ if ((res != CURLE_OK) || (read_data == NULL)) {
+ MSF_DBG("curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
+ createdata_process("", dev_result_ptr);
+ if (read_data)
+ free(read_data);
+ } else {
+ createdata_process(string(read_data), dev_result_ptr);
+ free(read_data);
+ }
curl_easy_cleanup(curl);
}
size_t Service::createdata(char *buf, size_t size, size_t nmemb, void *up)
{
- if (buf != NULL) {
- curl_data.append(buf, size*nmemb);
- } else {
- MSF_DBG("createdata() buf is null");
- }
-
- return size*nmemb;
+ char** read_data = (char**)up;
+ *read_data = (char*)calloc(size*nmemb + 1, sizeof(char));
+ if ((buf != NULL) && (*read_data != NULL)) {
+ memcpy(*read_data, buf, size*nmemb);
+ } else {
+ MSF_DBG("createdata() buf is null");
+ }
+
+ return size*nmemb;
}
void Service::createdata_process(string data, void *dev_result_ptr)
MSF_DBG("json_parsing error");
}
+ ServiceInfo serviceval;
JsonObject *root = json_node_get_object(json_parser_get_root(parser));
if (json_object_has_member(root, "id")) {
serviceval.infoId = json_object_get_string_member(root, "id");
+ MSF_DBG("id:%s", serviceval.infoId.c_str());
}
if (json_object_has_member(root, "version")) {