浏览代码

Removed the constraint in siptrace to have the tm and sl modules loaded beforehand.

The explicitly module specifies these dependencies as being optional.
Marius Bucur 13 年之前
父节点
当前提交
68d282e289
共有 1 个文件被更改,包括 20 次插入26 次删除
  1. 20 26
      modules_k/siptrace/siptrace.c

+ 20 - 26
modules_k/siptrace/siptrace.c

@@ -327,42 +327,36 @@ static int mod_init(void)
 	*xheaders_read_flag = xheaders_read;
 
 	/* register callbacks to TM */
-	if (load_tm_api(&tmb)!=0)
-	{
-		LM_ERR("can't load tm api. Is module tm loaded?\n");
-		return -1;
-	}
-
-	if(tmb.register_tmcb( 0, 0, TMCB_REQUEST_IN, trace_onreq_in, 0, 0) <=0)
-	{
+	if (load_tm_api(&tmb)!=0) {
+		LM_WARN("can't load tm api. Will not install tm callbacks.\n");
+	} else if(tmb.register_tmcb( 0, 0, TMCB_REQUEST_IN, trace_onreq_in, 0, 0) <=0) {
 		LM_ERR("can't register trace_onreq_in\n");
 		return -1;
 	}
 
 	/* bind the SL API */
 	if (sl_load_api(&slb)!=0) {
-		LM_ERR("cannot bind to SL API\n");
-		return -1;
-	}
-
-	/* register sl callbacks */
-	memset(&slcb, 0, sizeof(sl_cbelem_t));
-
-	slcb.type = SLCB_REPLY_READY;
-	slcb.cbf  = trace_sl_onreply_out;
-	if (slb.register_cb(&slcb) != 0) {
-		LM_ERR("can't register for SLCB_REPLY_READY\n");
-		return -1;
-	}
+		LM_WARN("cannot bind to SL API. Will not install sl callbacks.\n");
+	} else {
+		/* register sl callbacks */
+		memset(&slcb, 0, sizeof(sl_cbelem_t));
 
-	if(trace_sl_acks)
-	{
-		slcb.type = SLCB_ACK_FILTERED;
-		slcb.cbf  = trace_sl_ack_in;
+		slcb.type = SLCB_REPLY_READY;
+		slcb.cbf  = trace_sl_onreply_out;
 		if (slb.register_cb(&slcb) != 0) {
-			LM_ERR("can't register for SLCB_ACK_FILTERED\n");
+			LM_ERR("can't register for SLCB_REPLY_READY\n");
 			return -1;
 		}
+
+		if(trace_sl_acks)
+		{
+			slcb.type = SLCB_ACK_FILTERED;
+			slcb.cbf  = trace_sl_ack_in;
+			if (slb.register_cb(&slcb) != 0) {
+				LM_ERR("can't register for SLCB_ACK_FILTERED\n");
+				return -1;
+			}
+		}
 	}
 
 	if(dup_uri_str.s!=0)