Kaynağa Gözat

core: new core event executed when a non sip packet is received

- event type SREV_RCV_NOSIP
Daniel-Constantin Mierla 11 yıl önce
ebeveyn
işleme
ac0bd3790b
2 değiştirilmiş dosya ile 15 ekleme ve 1 silme
  1. 13 0
      events.c
  2. 2 1
      events.h

+ 13 - 0
events.c

@@ -152,6 +152,11 @@ int sr_event_register_cb(int type, sr_event_cb_f f)
 					_sr_events_list.stun_in = f;
 				else return -1;
 			break;
+		case SREV_RCV_NOSIP:
+				if(_sr_events_list.rcv_nosip==0)
+					_sr_events_list.rcv_nosip = f;
+				else return -1;
+			break;
 		default:
 			return -1;
 	}
@@ -255,6 +260,12 @@ int sr_event_exec(int type, void *data)
 					ret = _sr_events_list.stun_in(data);
 					return ret;
 				} else return 1;
+		case SREV_RCV_NOSIP:
+				if(unlikely(_sr_events_list.rcv_nosip!=0))
+				{
+					ret = _sr_events_list.rcv_nosip(data);
+					return ret;
+				} else return 1;
 		default:
 			return -1;
 	}
@@ -288,6 +299,8 @@ int sr_event_enabled(int type)
 				return (_sr_events_list.tcp_ws_frame_out!=0)?1:0;
 		case SREV_STUN_IN:
 				return (_sr_events_list.stun_in!=0)?1:0;
+		case SREV_RCV_NOSIP:
+				return (_sr_events_list.rcv_nosip!=0)?1:0;
 	}
 	return 0;
 }

+ 2 - 1
events.h

@@ -28,7 +28,7 @@
 #define SREV_CORE_STATS			3
 #define SREV_CFG_RUN_ACTION		4
 #define SREV_PKG_UPDATE_STATS	5
-/*		6 - not used anymore */
+#define SREV_RCV_NOSIP			6
 #define SREV_NET_DGRAM_IN		7
 #define SREV_TCP_HTTP_100C		8
 #define SREV_TCP_MSRP_FRAME		9
@@ -51,6 +51,7 @@ typedef struct sr_event_cb {
 	sr_event_cb_f tcp_ws_frame_in;
 	sr_event_cb_f tcp_ws_frame_out;
 	sr_event_cb_f stun_in;
+	sr_event_cb_f rcv_nosip;
 } sr_event_cb_t;
 
 void sr_event_cb_init(void);