Ver código fonte

core: added more flexible processing for nonsip_hook messages

Alexandr Dubovikov 9 anos atrás
pai
commit
6291db5522
2 arquivos alterados com 4 adições e 4 exclusões
  1. 1 1
      parser/parse_fline.c
  2. 3 3
      receive.c

+ 1 - 1
parser/parse_fline.c

@@ -254,7 +254,7 @@ error:
 	};
 	};
 error1:
 error1:
 	fl->type=SIP_INVALID;
 	fl->type=SIP_INVALID;
-	LOG(L_ERR, "parse_first_line: bad message (offset: %d)\n", offset);
+	LOG(cfg_get(core, core_cfg, corelog), "parse_first_line: bad message (offset: %d)\n", offset);
 	/* skip  line */
 	/* skip  line */
 	nl=eat_line(buffer,len);
 	nl=eat_line(buffer,len);
 	return nl;
 	return nl;

+ 3 - 3
receive.c

@@ -172,14 +172,14 @@ int receive_msg(char* buf, unsigned int len, struct receive_info* rcv_info)
 	if(likely(sr_msg_time==1)) msg_set_time(msg);
 	if(likely(sr_msg_time==1)) msg_set_time(msg);
 
 
 	if (parse_msg(buf,len, msg)!=0){
 	if (parse_msg(buf,len, msg)!=0){
-		if(sr_event_exec(SREV_RCV_NOSIP, (void*)msg)!=0) {
+		if((ret=sr_event_exec(SREV_RCV_NOSIP, (void*)msg))<NONSIP_MSG_DROP) {
 			LOG(cfg_get(core, core_cfg, corelog),
 			LOG(cfg_get(core, core_cfg, corelog),
 				"core parsing of SIP message failed (%s:%d/%d)\n",
 				"core parsing of SIP message failed (%s:%d/%d)\n",
 				ip_addr2a(&msg->rcv.src_ip), (int)msg->rcv.src_port,
 				ip_addr2a(&msg->rcv.src_ip), (int)msg->rcv.src_port,
 				(int)msg->rcv.proto);
 				(int)msg->rcv.proto);
 			sr_core_ert_run(msg, SR_CORE_ERT_RECEIVE_PARSE_ERROR);
 			sr_core_ert_run(msg, SR_CORE_ERT_RECEIVE_PARSE_ERROR);
-		}
-		goto error02;
+		}		
+		else if(ret == NONSIP_MSG_DROP) goto error02;
 	}
 	}
 	LM_DBG("After parse_msg...\n");
 	LM_DBG("After parse_msg...\n");