2
0
Эх сурвалжийг харах

core: exported script flags functions to kemi

- alternative related to GH #666
Daniel-Constantin Mierla 9 жил өмнө
parent
commit
46334c18bd
1 өөрчлөгдсөн 61 нэмэгдсэн , 0 устгасан
  1. 61 0
      kemi.c

+ 61 - 0
kemi.c

@@ -298,6 +298,52 @@ static int sr_kemi_core_isbflagset(sip_msg_t *msg, int flag)
 	return sr_kemi_core_isbiflagset(msg, flag, 0);
 }
 
+/**
+ *
+ */
+static int sr_kemi_core_setsflag(sip_msg_t *msg, int flag)
+{
+	if (!flag_in_range(flag)) {
+		LM_ERR("invalid flag parameter %d\n", flag);
+		return SR_KEMI_FALSE;
+	}
+
+	setsflag(flag);
+	return SR_KEMI_TRUE;
+}
+
+/**
+ *
+ */
+static int sr_kemi_core_resetsflag(sip_msg_t *msg, int flag)
+{
+	if (!flag_in_range(flag)) {
+		LM_ERR("invalid flag parameter %d\n", flag);
+		return SR_KEMI_FALSE;
+	}
+
+	resetsflag(flag);
+	return SR_KEMI_TRUE;
+}
+
+/**
+ *
+ */
+static int sr_kemi_core_issflagset(sip_msg_t *msg, int flag)
+{
+	int ret;
+
+	if (!flag_in_range(flag)) {
+		LM_ERR("invalid flag parameter %d\n", flag);
+		return SR_KEMI_FALSE;
+	}
+
+	ret = issflagset(flag);
+	if(ret>0)
+		return SR_KEMI_TRUE;
+	return SR_KEMI_FALSE;
+}
+
 /**
  *
  */
@@ -526,6 +572,21 @@ static sr_kemi_t _sr_kemi_core[] = {
 		{ SR_KEMIP_INT, SR_KEMIP_NONE, SR_KEMIP_NONE,
 			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
 	},
+	{ str_init(""), str_init("setsflag"),
+		SR_KEMIP_BOOL, sr_kemi_core_setsflag,
+		{ SR_KEMIP_INT, SR_KEMIP_NONE, SR_KEMIP_NONE,
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+	},
+	{ str_init(""), str_init("resetsflag"),
+		SR_KEMIP_BOOL, sr_kemi_core_resetsflag,
+		{ SR_KEMIP_INT, SR_KEMIP_NONE, SR_KEMIP_NONE,
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+	},
+	{ str_init(""), str_init("issflagset"),
+		SR_KEMIP_BOOL, sr_kemi_core_issflagset,
+		{ SR_KEMIP_INT, SR_KEMIP_NONE, SR_KEMIP_NONE,
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+	},
 	{ str_init(""), str_init("seturi"),
 		SR_KEMIP_BOOL, sr_kemi_core_seturi,
 		{ SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,