| | |
| | | #include "../proto/source/bhome_msg.pb.h" |
| | | #include "../proto/source/bhome_msg_api.pb.h" |
| | | |
| | | #define TIME_WAIT 3 |
| | | |
| | | static Logger *logger = LoggerFactory::getLogger(); |
| | | |
| | | static int gRun_stat = 0; |
| | |
| | | |
| | | static pthread_mutex_t mutex; |
| | | |
| | | static char errString[100] = { 0x00 }; |
| | | static pthread_t gTids; |
| | | |
| | | static void *client_run_check(void *skptr) { |
| | | |
| | | pthread_detach(pthread_self()); |
| | | |
| | | int data; |
| | | int sec, nsec; |
| | | int rv; |
| | | int key; |
| | | char buf[MAX_STR_LEN] = { 0x00 }; |
| | | void *buf_temp = NULL; |
| | | int size; |
| | | |
| | | sec = TIME_WAIT; |
| | | nsec = 0; |
| | | sprintf(buf, "%s", "Success"); |
| | | data = net_mod_socket_int_get(gNetmod_socket); |
| | | while(true) { |
| | | |
| | | rv = net_mod_socket_recvfrom(gNetmod_socket, &buf_temp, &size, &key, SVR_STR, data); |
| | | if (rv == 0) { |
| | | |
| | | BHFree(buf_temp, size); |
| | | |
| | | rv = net_mod_socket_sendto_timeout(gNetmod_socket, buf, strlen(buf), key, sec, nsec, SVR_STR, data); |
| | | if (rv != 0) { |
| | | logger->error("the process check response failed with error: %s!\n", bus_strerror(rv)); |
| | | } |
| | | |
| | | } else { |
| | | |
| | | logger->error("the process check failed with error: %s!\n", bus_strerror(rv)); |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | int BHRegister(const void *proc_info, const int proc_info_len, void **reply, int *reply_len, const int timeout_ms) |
| | | { |
| | |
| | | int count = 0; |
| | | void *buf = NULL; |
| | | int min = 0; |
| | | char *errString = NULL; |
| | | ProcInfo pData; |
| | | |
| | | #if defined(PRO_DE_SERIALIZE) |
| | |
| | | ::bhome_msg::ProcInfo input; |
| | | if ((!input.ParseFromArray(proc_info, proc_info_len)) || (reply == NULL) || (reply_len == NULL)) { |
| | | rv = EBUS_INVALID_PARA; |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | #else |
| | | if ((proc_info == NULL) || (proc_info_len == 0) || (reply == NULL) || (reply_len == NULL)) { |
| | | rv = EBUS_INVALID_PARA; |
| | | |
| | | memset(errString, 0x90, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | logger->error("the process has already registered!\n"); |
| | | |
| | | rv = EBUS_RES_BUSY; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | } |
| | | #endif |
| | | |
| | | if (pData.proc_id == NULL) { |
| | | rv = EBUS_INVALID_PARA; |
| | | |
| | | bus_errorset(rv); |
| | | |
| | | pthread_mutex_unlock(&mutex); |
| | | |
| | | return false; |
| | | } |
| | | |
| | | gNetmod_socket = net_mod_socket_open(); |
| | | hashtable_t *hashtable = mm_get_hashtable(); |
| | | key = hashtable_alloc_key(hashtable); |
| | |
| | | |
| | | rv = net_mod_socket_reg(gNetmod_socket, &pData, sizeof(ProcInfo), NULL, 0, timeout_ms, PROC_REG); |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | pthread_mutex_unlock(&mutex); |
| | | |
| | | } else { |
| | | |
| | | rv = EBUS_RES_BUSY; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | | |
| | | errString = bus_strerror(0, 1); |
| | | |
| | | #if defined(PRO_DE_SERIALIZE) |
| | | ::bhome_msg::MsgCommonReply mcr; |
| | |
| | | |
| | | #endif |
| | | |
| | | pthread_create(&gTids, NULL, client_run_check, NULL); |
| | | |
| | | return true; |
| | | |
| | | } |
| | |
| | | int rv; |
| | | int min; |
| | | void *buf = NULL; |
| | | char *errString = NULL; |
| | | |
| | | #if defined(PRO_DE_SERIALIZE) |
| | | struct _ProcInfo_proto |
| | |
| | | if(!input.ParseFromArray(proc_info, proc_info_len) || (reply == NULL) || (reply_len == NULL)) { |
| | | |
| | | rv = EBUS_INVALID_PARA; |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | #else |
| | | if ((reply == NULL) || (reply_len == NULL)) { |
| | | rv = EBUS_INVALID_PARA; |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | logger->error("the process has not been registered yet!\n"); |
| | | |
| | | rv = EBUS_RES_NO; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | gRun_stat = 0; |
| | | |
| | | } |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | pthread_mutex_unlock(&mutex); |
| | | |
| | | } else { |
| | | |
| | | rv = EBUS_RES_BUSY; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | | |
| | | errString = bus_strerror(0, 1); |
| | | #if defined(PRO_DE_SERIALIZE) |
| | | ::bhome_msg::MsgCommonReply mcr; |
| | | mcr.mutable_errmsg()->set_errcode(::bhome_msg::ErrorCode(rv)); |
| | |
| | | void *buf = NULL; |
| | | int total = 0; |
| | | int count = 0; |
| | | char *errString = NULL; |
| | | char *topics_buf = NULL; |
| | | |
| | | #if defined(PRO_DE_SERIALIZE) |
| | |
| | | if(!input.ParseFromArray(topics, topics_len) || (reply == NULL) || (reply_len == NULL)) { |
| | | |
| | | rv = EBUS_INVALID_PARA; |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | if ((topics == NULL) || (topics_len == 0) || (reply == NULL) || (reply_len == NULL)) { |
| | | |
| | | rv = EBUS_INVALID_PARA; |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | logger->error("the process has not been registered yet!\n"); |
| | | |
| | | rv = EBUS_RES_NO; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | if (topics_buf == NULL) { |
| | | |
| | | rv = EBUS_NO_MEM; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | logger->error("in BHRegisterTopics: Out of memory!\n"); |
| | | |
| | |
| | | |
| | | 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); |
| | | |
| | | bus_errorset(rv); |
| | | errString = bus_strerror(0, 1); |
| | | |
| | | #if defined(PRO_DE_SERIALIZE) |
| | | ::bhome_msg::MsgCommonReply mcr; |
| | |
| | | int min; |
| | | void *buf = NULL; |
| | | int size; |
| | | char *errString = NULL; |
| | | char topics_buf[MAX_STR_LEN] = { 0x00 }; |
| | | ProcInfo_query *ptr = NULL; |
| | | ProcInfo *Proc_ptr = NULL; |
| | |
| | | ::bhome_msg::MsgQueryTopic input1; |
| | | if (!input0.ParseFromArray(remote, remote_len) || !input1.ParseFromArray(topic, topic_len) || (reply == NULL) || (reply_len == NULL)) { |
| | | rv = EBUS_INVALID_PARA; |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | #else |
| | | if ((topic == NULL) || (topic_len == 0) || (reply == NULL) || (reply_len == NULL)) { |
| | | rv = EBUS_INVALID_PARA; |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | logger->error("the process has not been registered yet!\n"); |
| | | |
| | | rv = EBUS_RES_NO; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | #endif |
| | | 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)); |
| | | |
| | | bus_errorset(rv); |
| | | #if defined(PRO_DE_SERIALIZE) |
| | | |
| | | struct _MsgQueryTopicReply |
| | |
| | | mtr_list[i].port = 5000; |
| | | } |
| | | } |
| | | |
| | | errString = bus_strerror(0, 1); |
| | | |
| | | ::bhome_msg::MsgQueryTopicReply mtr; |
| | | mtr.mutable_errmsg()->set_errcode(::bhome_msg::ErrorCode(rv)); |
| | |
| | | void *buf = NULL; |
| | | int size; |
| | | int min; |
| | | char *errString = NULL; |
| | | ProcInfo_sum *Proc_ptr = NULL; |
| | | char data_buf[MAX_STR_LEN] = { 0x00 }; |
| | | |
| | |
| | | if (!input0.ParseFromArray(remote, remote_len) || !input1.ParseFromArray(query, query_len) || (reply == NULL) || (reply_len == NULL)) { |
| | | |
| | | rv = EBUS_INVALID_PARA; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | #else |
| | | if ((reply == NULL) || (reply_len == NULL)) { |
| | | rv = EBUS_INVALID_PARA; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | logger->error("the process has not been registered yet!\n"); |
| | | |
| | | rv = EBUS_RES_NO; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | } |
| | | |
| | | rv = net_mod_socket_reg(gNetmod_socket, data_buf, strlen(data_buf), &buf, &size, timeout_ms, PROC_QUE_ATCS); |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | #if defined(PRO_DE_SERIALIZE) |
| | | struct _MsgQueryProcReply |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | errString = bus_strerror(0, 1); |
| | | |
| | | ::bhome_msg::MsgQueryProcReply mpr; |
| | | mpr.mutable_errmsg()->set_errcode(::bhome_msg::ErrorCode(rv)); |
| | |
| | | int count = 0; |
| | | int len, i; |
| | | void *buf = NULL; |
| | | char *errString = NULL; |
| | | char *topics_buf = NULL; |
| | | |
| | | #if defined(PRO_DE_SERIALIZE) |
| | |
| | | if(!input.ParseFromArray(topics, topics_len) || (reply == NULL) || (reply_len == NULL)) { |
| | | |
| | | rv = EBUS_INVALID_PARA; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | #else |
| | | if ((topics == NULL) || (topics_len == 0) || (reply == NULL) || (reply_len == NULL)) { |
| | | rv = EBUS_INVALID_PARA; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | logger->error("the process has not been registered yet!\n"); |
| | | |
| | | rv = EBUS_RES_NO; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | if (topics_buf == NULL) { |
| | | |
| | | rv = EBUS_NO_MEM; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | logger->error("in BHSubscribeTopics: Out of memory!\n"); |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | errString = bus_strerror(0, 1); |
| | | |
| | | free(topics_buf); |
| | | |
| | |
| | | int BHHeartbeat(const void *proc_info, const int proc_info_len, void **reply, int *reply_len, const int timeout_ms) |
| | | { |
| | | int rv; |
| | | char *errString = NULL; |
| | | |
| | | #if defined(PRO_DE_SERIALIZE) |
| | | struct _ProcInfo_proto |
| | |
| | | if(!input.ParseFromArray(proc_info,proc_info_len)) { |
| | | |
| | | rv = EBUS_INVALID_PARA; |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | _input.private_info = input.private_info().c_str(); |
| | | |
| | | rv = 0; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | errString = bus_strerror(0, 1); |
| | | |
| | | ::bhome_msg::MsgCommonReply mcr; |
| | | mcr.mutable_errmsg()->set_errcode(::bhome_msg::ErrorCode(rv)); |
| | |
| | | if(!input.ParseFromArray(msgpub, msgpub_len)) { |
| | | |
| | | rv = EBUS_INVALID_PARA; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | if ((topic == NULL) || (content == NULL)) { |
| | | |
| | | rv = EBUS_INVALID_PARA; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | logger->error("the process has not been registered yet!\n"); |
| | | |
| | | rv = EBUS_RES_NO; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | if (rv > 0) |
| | | return true; |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | logger->error("the process has not been registered yet!\n"); |
| | | |
| | | rv = EBUS_RES_NO; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | | |
| | | if ((msgpub == NULL) || (msgpub_len == NULL)) { |
| | | rv = EBUS_INVALID_PARA; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | if (topics_buf == NULL) { |
| | | |
| | | rv = EBUS_NO_MEM; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | logger->error("in BHRequest: Out of memory!\n"); |
| | | |
| | |
| | | if (data_buf == NULL) { |
| | | |
| | | rv = EBUS_NO_MEM; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | logger->error("in BHRequest: Out of memory!\n"); |
| | | |
| | |
| | | |
| | | } else { |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | } |
| | | |
| | | if (rv == 0) |
| | |
| | | if (!input0.ParseFromArray(remote, remote_len) || !input1.ParseFromArray(request, request_len)) { |
| | | |
| | | rv = EBUS_INVALID_PARA; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | if ((request == NULL) || (request_len == 0)) { |
| | | |
| | | rv = EBUS_INVALID_PARA; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | logger->error("the process has not been registered yet!\n"); |
| | | |
| | | rv = EBUS_RES_NO; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | if (topics_buf == NULL) { |
| | | |
| | | rv = EBUS_NO_MEM; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | logger->error("in BHRequest: Out of memory!\n"); |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | |
| | | bus_errorset(rv); |
| | | if((msg_id == NULL) || (msg_id_len == NULL)) { |
| | | if (rv == 0) |
| | | return true; |
| | |
| | | net_mod_recv_msg_t *recv_arr; |
| | | net_mod_err_t *errarr; |
| | | int errarr_size = 0; |
| | | char *errString = NULL; |
| | | char buf_temp[MAX_STR_LEN] = { 0x00 }; |
| | | char *topics_buf = NULL; |
| | | |
| | |
| | | if (!input0.ParseFromArray(remote, remote_len) || !input1.ParseFromArray(request, request_len) || (reply == NULL) || (reply_len == NULL)) { |
| | | |
| | | rv = EBUS_INVALID_PARA; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | if ((request == NULL) || (request_len == 0) || (reply == NULL) || (reply_len == NULL)) { |
| | | |
| | | rv = EBUS_INVALID_PARA; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | logger->error("the process has not been registered yet!\n"); |
| | | |
| | | rv = EBUS_RES_NO; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | if (topics_buf == NULL) { |
| | | |
| | | rv = EBUS_NO_MEM; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | logger->error("in BHRequest: Out of memory!\n"); |
| | | |
| | |
| | | free(topics_buf); |
| | | } |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | |
| | | bus_errorset(rv); |
| | | if (rv == 0) { |
| | | if ((proc_id != NULL) && (proc_id_len != NULL)) { |
| | | memset(buf_temp, 0x00, sizeof(buf_temp)); |
| | |
| | | if (topics_buf == NULL) { |
| | | |
| | | rv = EBUS_NO_MEM; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | logger->error("in BHRequest: Out of memory!\n"); |
| | | |
| | |
| | | free(buf); |
| | | free(topics_buf); |
| | | } |
| | | |
| | | errString = bus_strerror(0, 1); |
| | | |
| | | #if defined(PRO_DE_SERIALIZE) |
| | | if (rv == 0) { |
| | |
| | | logger->error("the process has not been registered yet!\n"); |
| | | |
| | | rv = EBUS_RES_NO; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | | |
| | | if ((request == NULL) || (request_len == 0) || (src == NULL)) { |
| | | rv = EBUS_INVALID_PARA; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | if (topics_buf == NULL) { |
| | | |
| | | rv = EBUS_NO_MEM; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | logger->error("in BHReadRequest: Out of memory!\n"); |
| | | |
| | |
| | | *src = buf; |
| | | } |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | if (rv == 0) |
| | | return true; |
| | |
| | | { |
| | | int rv; |
| | | int data; |
| | | int sec = 3; |
| | | int nsec = 0; |
| | | const char *_input; |
| | | |
| | | #if defined(PRO_DE_SERIALIZE) |
| | |
| | | if (!input.ParseFromArray(reply, reply_len) || (src == NULL)) { |
| | | |
| | | rv = EBUS_INVALID_PARA; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | if ((src == NULL) || (reply == NULL) || (reply_len == 0)) { |
| | | |
| | | rv = EBUS_INVALID_PARA; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | |
| | | logger->error("the process has not been registered yet!\n"); |
| | | |
| | | rv = EBUS_RES_NO; |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | return false; |
| | | } |
| | | |
| | | data = net_mod_socket_svr_get(gNetmod_socket); |
| | | rv = net_mod_socket_sendto(gNetmod_socket, _input, strlen(_input), *(int *)src, SVR_STR, data); |
| | | rv = net_mod_socket_sendto_timeout(gNetmod_socket, _input, strlen(_input), *(int *)src, sec, nsec, SVR_STR, data); |
| | | |
| | | memset(errString, 0x00, sizeof(errString)); |
| | | strncpy(errString, bus_strerror(rv), sizeof(errString)); |
| | | bus_errorset(rv); |
| | | |
| | | if (rv == 0) |
| | | return true; |
| | |
| | | int BHGetLastError(void **msg, int *msg_len) |
| | | { |
| | | void *buf = NULL; |
| | | char *errString = bus_strerror(0, 1); |
| | | |
| | | buf = malloc(strlen(errString) + 1); |
| | | |