Просмотр исходного кода

dispatcher: option to set add socket as string in the dst xavp

- bit 2 has to be set for xavp_dst_mode modparam
Daniel-Constantin Mierla 5 лет назад
Родитель
Сommit
8507efe864
3 измененных файлов с 14 добавлено и 0 удалено
  1. 11 0
      src/modules/dispatcher/dispatch.c
  2. 2 0
      src/modules/dispatcher/dispatch.h
  3. 1 0
      src/modules/dispatcher/dispatcher.c

+ 11 - 0
src/modules/dispatcher/dispatch.c

@@ -1925,6 +1925,17 @@ int ds_add_xavp_record(ds_set_t *dsidx, int pos, int set, int alg,
 			LM_ERR("failed to add destination sock xavp field\n");
 			LM_ERR("failed to add destination sock xavp field\n");
 			return -1;
 			return -1;
 		}
 		}
+		if((ds_xavp_dst_mode & DS_XAVP_DST_ADD_SOCKSTR)
+				&& (dsidx->dlist[pos].attrs.socket.len > 0)) {
+			memset(&nxval, 0, sizeof(sr_xval_t));
+			nxval.type = SR_XTYPE_STR;
+			nxval.v.s = dsidx->dlist[pos].attrs.socket;
+			if(xavp_add_value(&ds_xavp_dst_socket, &nxval, &nxavp)==NULL) {
+				xavp_destroy_list(&nxavp);
+				LM_ERR("failed to add destination attrs xavp field\n");
+				return -1;
+			}
+		}
 	}
 	}
 
 
 	if(alg == DS_ALG_CALLLOAD) {
 	if(alg == DS_ALG_CALLLOAD) {

+ 2 - 0
src/modules/dispatcher/dispatch.h

@@ -67,6 +67,7 @@
 #define DS_USE_NEXT			1
 #define DS_USE_NEXT			1
 
 
 #define DS_XAVP_DST_SKIP_ATTRS	1
 #define DS_XAVP_DST_SKIP_ATTRS	1
+#define DS_XAVP_DST_ADD_SOCKSTR	(1<<1)
 
 
 #define DS_XAVP_CTX_SKIP_CNT	1
 #define DS_XAVP_CTX_SKIP_CNT	1
 
 
@@ -95,6 +96,7 @@ extern str ds_xavp_dst_grp;
 extern str ds_xavp_dst_dstid;
 extern str ds_xavp_dst_dstid;
 extern str ds_xavp_dst_attrs;
 extern str ds_xavp_dst_attrs;
 extern str ds_xavp_dst_sock;
 extern str ds_xavp_dst_sock;
+extern str ds_xavp_dst_socket;
 
 
 extern str ds_xavp_ctx_cnt;
 extern str ds_xavp_ctx_cnt;
 
 

+ 1 - 0
src/modules/dispatcher/dispatcher.c

@@ -85,6 +85,7 @@ str ds_xavp_dst_grp = str_init("grp");
 str ds_xavp_dst_dstid = str_init("dstid");
 str ds_xavp_dst_dstid = str_init("dstid");
 str ds_xavp_dst_attrs = str_init("attrs");
 str ds_xavp_dst_attrs = str_init("attrs");
 str ds_xavp_dst_sock = str_init("sock");
 str ds_xavp_dst_sock = str_init("sock");
+str ds_xavp_dst_socket = str_init("socket");
 
 
 str ds_xavp_ctx_cnt = str_init("cnt");
 str ds_xavp_ctx_cnt = str_init("cnt");