Fu Juntang
2021-09-01 8dead3c23da957fce542d8483c7bce7d5a7232ed
Fix the buf data parse issue.
1个文件已修改
22 ■■■■■ 已修改文件
src/bh_api.cpp 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/bh_api.cpp
@@ -344,6 +344,8 @@
      
      logger->error("in BHRegisterTopics: Out of memory!\n");
      
      pthread_mutex_unlock(&mutex);
      goto exit_entry;
    }
    memset(topics_buf, 0x00, total);
@@ -365,13 +367,14 @@
#else 
    memcpy(topics_buf, topics, topics_len);
    count = topics_len;
#endif 
    rv = net_mod_socket_reg(gNetmod_socket, topics_buf, strlen(topics_buf) + 1, NULL, 0, timeout_ms, PROC_REG_TCS);
    rv = net_mod_socket_reg(gNetmod_socket, topics_buf, count, NULL, 0, timeout_ms, PROC_REG_TCS);
    memset(errString, 0x00, sizeof(errString));
    strncpy(errString, bus_strerror(rv), sizeof(errString));
    free(topics_buf);
    pthread_mutex_unlock(&mutex);
  
@@ -475,7 +478,7 @@
    buf = const_cast<void *>(topic);
    strncpy(topics_buf, (const char *)buf, min);
#endif 
    rv = net_mod_socket_reg(gNetmod_socket, topics_buf, strlen(topics_buf) + 1, &buf, &size, timeout_ms, PROC_QUE_TCS);
    rv = net_mod_socket_reg(gNetmod_socket, topics_buf, min, &buf, &size, timeout_ms, PROC_QUE_TCS);
   
    memset(errString, 0x00, sizeof(errString));
    strncpy(errString, bus_strerror(rv), sizeof(errString));
@@ -789,7 +792,9 @@
      strncpy(errString, bus_strerror(rv), sizeof(errString));
      
      logger->error("in BHSubscribeTopics: Out of memory!\n");
      pthread_mutex_unlock(&mutex);
      goto exit_entry;
    }
    memset(topics_buf, 0x00, total);
@@ -810,21 +815,22 @@
#else 
    memcpy(topics_buf, topics, topics_len);
    count = topics_len;
#endif 
    if (timeout_ms > 0) {
    
      sec = timeout_ms / 1000;
      nsec = (timeout_ms - sec * 1000) * 1000 * 1000;
      rv = net_mod_socket_sub_timeout(gNetmod_socket, topics_buf, strlen(topics_buf) + 1, sec, nsec);
      rv = net_mod_socket_sub_timeout(gNetmod_socket, topics_buf, count, sec, nsec);
    } else if (timeout_ms == 0) {
    
      rv = net_mod_socket_sub_nowait(gNetmod_socket, topics_buf, strlen(topics_buf) + 1);
      rv = net_mod_socket_sub_nowait(gNetmod_socket, topics_buf, count);
    
    } else {
    
      rv = net_mod_socket_sub(gNetmod_socket, topics_buf, strlen(topics_buf) + 1);
      rv = net_mod_socket_sub(gNetmod_socket, topics_buf, count);
    
    }
   
@@ -1115,8 +1121,6 @@
    memcpy(*proc_id, topics_buf, *proc_id_len);
    
#endif 
    pthread_mutex_unlock(&mutex);
  } else {