summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhengchao <[email protected]>2018-12-09 12:24:58 +0600
committerzhengchao <[email protected]>2018-12-09 12:24:58 +0600
commit74b1f6d63698f8325c04ea91d840cf25303c7b3a (patch)
tree7d4d914fc9bc54c7735d04d6f3245b153216b594
parent1665395160274983bc16d7abaa23ea4a48fc4624 (diff)
修复 #4 ,将sd和fd初始化为-1,并在select前判断。
-rw-r--r--src/main.c4
-rw-r--r--src/message.c10
2 files changed, 11 insertions, 3 deletions
diff --git a/src/main.c b/src/main.c
index 85fc03d..2f9294e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1079,7 +1079,9 @@ int main(int argc, char **argv)
uint32_t i=0;
void *main_conf_handle=NULL, *rssb_conf_handle=NULL;
- memset(&g_frag_run, 0, sizeof(frag_rssb_parameter_t));
+ memset(&g_frag_run, 0, sizeof(frag_rssb_parameter_t));
+ g_frag_run.recv_msg_fd=-1;
+ g_frag_run.recv_msg_sd=-1;
memset(&g_frag_cfg, 0, sizeof(frag_rssb_configure_t));
memset(&g_frag_stat, 0, sizeof(frag_rssb_status_t));
diff --git a/src/message.c b/src/message.c
index f3a1a07..a12759a 100644
--- a/src/message.c
+++ b/src/message.c
@@ -1081,8 +1081,14 @@ void* recv_response_msg(void *param)
{
/*recv msg*/
FD_ZERO(&rset);
- FD_SET(g_frag_run.recv_msg_fd,&rset);
- FD_SET(g_frag_run.recv_msg_sd,&rset);
+ if(g_frag_run.recv_msg_fd>=0)
+ {
+ FD_SET(g_frag_run.recv_msg_fd,&rset);
+ }
+ if(g_frag_run.recv_msg_sd>=0)
+ {
+ FD_SET(g_frag_run.recv_msg_sd,&rset);
+ }
if(-1==select(maxfdpl,&rset,NULL,NULL,NULL))
{
MESA_handle_runtime_log(g_frag_run.logger, RLOG_LV_FATAL, FRAG_REASSEMBLY_MODULE_NAME,