[sr-dev] git:master:d7c1520a: jsonrpc-s: take in consideration run_dir value if fifo path is not absolute

Daniel-Constantin Mierla miconda at gmail.com
Mon May 4 21:23:22 CEST 2015


Module: kamailio
Branch: master
Commit: d7c1520ad4dd83e949ebe1b64ec07c6963982390
URL: https://github.com/kamailio/kamailio/commit/d7c1520ad4dd83e949ebe1b64ec07c6963982390

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2015-05-04T21:20:42+02:00

jsonrpc-s: take in consideration run_dir value if fifo path is not absolute

---

Modified: modules/jsonrpc-s/jsonrpc-s_mod.c

---

Diff:  https://github.com/kamailio/kamailio/commit/d7c1520ad4dd83e949ebe1b64ec07c6963982390.diff
Patch: https://github.com/kamailio/kamailio/commit/d7c1520ad4dd83e949ebe1b64ec07c6963982390.patch

---

diff --git a/modules/jsonrpc-s/jsonrpc-s_mod.c b/modules/jsonrpc-s/jsonrpc-s_mod.c
index eb84b62..a5c877b 100644
--- a/modules/jsonrpc-s/jsonrpc-s_mod.c
+++ b/modules/jsonrpc-s/jsonrpc-s_mod.c
@@ -893,6 +893,10 @@ static void jsonrpc_clean_context(jsonrpc_ctx_t* ctx)
 
 static int mod_init(void)
 {
+	int sep;
+	int len;
+	char *p;
+
 	/* bind the XHTTP API */
 	if(jsonrpc_transport==0 || jsonrpc_transport==1) {
 		if (xhttp_load_api(&xhttp_api) < 0) {
@@ -905,6 +909,28 @@ static int mod_init(void)
 		}
 	}
 	if(jsonrpc_transport==0 || jsonrpc_transport==2) {
+		if(jsonrpc_fifo != NULL && *jsonrpc_fifo!=0) {
+			if(*jsonrpc_fifo != '/') {
+				if(runtime_dir!=NULL && *runtime_dir!=0) {
+					len = strlen(runtime_dir);
+					sep = 0;
+					if(runtime_dir[len-1]!='/') {
+						sep = 1;
+					}
+					len += sep + strlen(jsonrpc_fifo);
+					p = pkg_malloc(len + 1);
+					if(p==NULL) {
+						LM_ERR("no more pkg\n");
+						return -1;
+					}
+					strcpy(p, runtime_dir);
+					if(sep) strcat(p, "/");
+					strcat(p, jsonrpc_fifo);
+					jsonrpc_fifo = p;
+					LM_DBG("fifo path is [%s]\n", jsonrpc_fifo);
+				}
+			}
+		}
 		if(jsonrpc_init_fifo_file()<0) {
 			if(jsonrpc_transport==2) {
 				LM_ERR("cannot initialize fifo transport\n");




More information about the sr-dev mailing list