Browse code

kemix: added functions to get proto string and id

Daniel-Constantin Mierla authored on 08/07/2019 15:28:46
Showing 1 changed files
... ...
@@ -450,6 +450,38 @@ static sr_kemi_xval_t* ki_kx_get_rcvport(sip_msg_t *msg)
450 450
 	return &_sr_kemi_kx_xval;
451 451
 }
452 452
 
453
+/**
454
+ *
455
+ */
456
+static sr_kemi_xval_t* ki_kx_get_proto(sip_msg_t *msg)
457
+{
458
+	memset(&_sr_kemi_kx_xval, 0, sizeof(sr_kemi_xval_t));
459
+	if(msg==NULL) {
460
+		sr_kemi_xval_null(&_sr_kemi_kx_xval, SR_KEMI_XVAL_NULL_EMPTY);
461
+		return &_sr_kemi_kx_xval;
462
+	}
463
+
464
+	_sr_kemi_kx_xval.vtype = SR_KEMIP_STR;
465
+	if(get_valid_proto_string(msg->rcv.proto, 0, 0, &_sr_kemi_kx_xval.v.s)<0) {
466
+		sr_kemi_xval_null(&_sr_kemi_kx_xval, SR_KEMI_XVAL_NULL_EMPTY);
467
+	}
468
+
469
+	return &_sr_kemi_kx_xval;
470
+}
471
+
472
+/**
473
+ *
474
+ */
475
+static int ki_kx_get_protoid(sip_msg_t *msg)
476
+{
477
+	if(msg==NULL) {
478
+		return -1;
479
+	}
480
+
481
+	_sr_kemi_kx_xval.vtype = SR_KEMIP_STR;
482
+	return (int)msg->rcv.proto;
483
+}
484
+
453 485
 /**
454 486
  *
455 487
  */
... ...
@@ -570,6 +602,16 @@ static sr_kemi_t sr_kemi_kx_exports[] = {
570 602
 		{ SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE,
571 603
 			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
572 604
 	},
605
+	{ str_init("kx"), str_init("get_proto"),
606
+		SR_KEMIP_XVAL, ki_kx_get_proto,
607
+		{ SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE,
608
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
609
+	},
610
+	{ str_init("kx"), str_init("get_protoid"),
611
+		SR_KEMIP_INT, ki_kx_get_protoid,
612
+		{ SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE,
613
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
614
+	},
573 615
 
574 616
 	{ {0, 0}, {0, 0}, 0, NULL, { 0, 0, 0, 0, 0, 0 } }
575 617
 };