|
@@ -25,17 +25,18 @@
|
|
|
#include "rmnet_wlan_stats.h"
|
|
|
#include "rmnet_wlan_fragment.h"
|
|
|
#include "rmnet_wlan_connection.h"
|
|
|
-static char*verinfo[]={"\x32\x31\x39\x38\x30\x64\x66\x62",
|
|
|
-"\x61\x33\x31\x34\x63\x62\x32\x35","\x34\x33\x62\x62\x38\x34\x39\x39",
|
|
|
-"\x32\x66\x33\x36\x30\x30\x31\x34","\x62\x64\x66\x66\x39\x32\x62\x33",
|
|
|
-"\x34\x36\x35\x36\x30\x62\x31\x34","\x64\x33\x37\x61\x30\x39\x63\x63",
|
|
|
-"\x65\x32\x31\x38\x66\x34\x35\x31","\x30\x65\x33\x34\x62\x31\x39\x31",
|
|
|
-"\x39\x66\x33\x66\x31\x31\x33\x30","\x62\x31\x62\x63\x64\x66\x66\x61",
|
|
|
-"\x61\x33\x33\x33\x36\x37\x61\x31","\x37\x34\x31\x35\x39\x32\x31\x63",
|
|
|
-"\x33\x35\x36\x63\x34\x39\x31\x63","\x34\x64\x32\x32\x34\x33\x36\x33",
|
|
|
-"\x61\x34\x31\x63\x39\x64\x37\x62","\x38\x66\x32\x66\x65\x64\x32\x66",
|
|
|
-"\x63\x30\x32\x62\x61\x39\x30\x65"};module_param_array(verinfo,charp,NULL,
|
|
|
-(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo,
|
|
|
+static char*verinfo[]={"\x30\x32\x39\x33\x31\x66\x62\x66",
|
|
|
+"\x32\x31\x39\x38\x30\x64\x66\x62","\x61\x33\x31\x34\x63\x62\x32\x35",
|
|
|
+"\x34\x33\x62\x62\x38\x34\x39\x39","\x32\x66\x33\x36\x30\x30\x31\x34",
|
|
|
+"\x62\x64\x66\x66\x39\x32\x62\x33","\x34\x36\x35\x36\x30\x62\x31\x34",
|
|
|
+"\x64\x33\x37\x61\x30\x39\x63\x63","\x65\x32\x31\x38\x66\x34\x35\x31",
|
|
|
+"\x30\x65\x33\x34\x62\x31\x39\x31","\x39\x66\x33\x66\x31\x31\x33\x30",
|
|
|
+"\x62\x31\x62\x63\x64\x66\x66\x61","\x61\x33\x33\x33\x36\x37\x61\x31",
|
|
|
+"\x37\x34\x31\x35\x39\x32\x31\x63","\x33\x35\x36\x63\x34\x39\x31\x63",
|
|
|
+"\x34\x64\x32\x32\x34\x33\x36\x33","\x61\x34\x31\x63\x39\x64\x37\x62",
|
|
|
+"\x38\x66\x32\x66\x65\x64\x32\x66","\x63\x30\x32\x62\x61\x39\x30\x65"};
|
|
|
+module_param_array(verinfo,charp,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
|
|
|
+verinfo,
|
|
|
"\x56\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x72\x69\x76\x65\x72"
|
|
|
);
|
|
|
#define DATARMNETaf49b04806 ((0xeb7+1158-0x132d))
|
|
@@ -247,9 +248,9 @@ int DATARMNET5c2fd31d7b;mutex_lock(&DATARMNET954bef55d0);hash_for_each_safe(
|
|
|
DATARMNET133502ca0e,DATARMNET5c2fd31d7b,DATARMNET0386f6f82a,DATARMNET63b1a086d5,
|
|
|
DATARMNETe8608dd267){hash_del_rcu(&DATARMNET63b1a086d5->DATARMNETe8608dd267);
|
|
|
kfree_rcu(DATARMNET63b1a086d5,DATARMNET28bfe9e6ad);}mutex_unlock(&
|
|
|
-DATARMNET954bef55d0);}static rx_handler_result_t DATARMNET37a92021f9(struct
|
|
|
-sk_buff**DATARMNET89946cec52){struct DATARMNET0ca9d8ead7 DATARMNETa76763310b={};
|
|
|
-struct DATARMNETb89ecedefc DATARMNET3396919a68={};struct DATARMNET41b426061d*
|
|
|
+DATARMNET954bef55d0);}rx_handler_result_t DATARMNET37a92021f9(struct sk_buff**
|
|
|
+DATARMNET89946cec52){struct DATARMNET0ca9d8ead7 DATARMNETa76763310b={};struct
|
|
|
+DATARMNETb89ecedefc DATARMNET3396919a68={};struct DATARMNET41b426061d*
|
|
|
DATARMNET72f0eefdce;struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e,
|
|
|
DATARMNET54338da2ff;struct sk_buff*DATARMNET543491eb0f=*DATARMNET89946cec52;
|
|
|
rx_handler_result_t DATARMNET1dec89a127=RX_HANDLER_PASS;int DATARMNET611d08d671;
|
|
@@ -318,36 +319,27 @@ DATARMNET2d4b4cfc9e))DATARMNET1dec89a127=RX_HANDLER_CONSUMED;DATARMNETbf4095f79e
|
|
|
struct notifier_block*DATARMNET272c159b3c,unsigned long DATARMNET7f045a1e6e,void
|
|
|
*data){struct net_device*DATARMNET00dcb79bc4=netdev_notifier_info_to_dev(data);
|
|
|
if(!DATARMNET00dcb79bc4||DATARMNETaba2beb199(DATARMNET00dcb79bc4->name,
|
|
|
-DATARMNET30500ba48c,IFNAMSIZ))return NOTIFY_DONE;switch(DATARMNET7f045a1e6e){
|
|
|
-case NETDEV_UNREGISTER:netdev_rx_handler_unregister(DATARMNET00dcb79bc4);break;
|
|
|
-case NETDEV_REGISTER:if(netdev_rx_handler_register(DATARMNET00dcb79bc4,
|
|
|
+DATARMNET30500ba48c,IFNAMSIZ))return NOTIFY_DONE;if(!DATARMNETaba2beb199(
|
|
|
+DATARMNET00dcb79bc4->name,"\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61",
|
|
|
+(0xd27+224-0xdfd))){pr_info(
|
|
|
+"\x25\x73\x28\x29\x3a\x20\x74\x68\x65\x20\x67\x6f\x6f\x66\x73\x21\x20\x74\x68\x65\x20\x67\x61\x66\x66\x73\x21\x20\x73\x6f\x6d\x65\x6f\x6e\x65\x20\x68\x61\x73\x20\x71\x75\x69\x74\x65\x20\x74\x68\x65\x20\x6e\x61\x6d\x69\x6e\x67\x20\x73\x63\x68\x65\x6d\x65\x21\x21" "\n"
|
|
|
+,__func__);return NOTIFY_DONE;}switch(DATARMNET7f045a1e6e){case
|
|
|
+NETDEV_UNREGISTER:netdev_rx_handler_unregister(DATARMNET00dcb79bc4);break;case
|
|
|
+NETDEV_REGISTER:if(netdev_rx_handler_register(DATARMNET00dcb79bc4,
|
|
|
DATARMNET37a92021f9,NULL))pr_err(
|
|
|
"\x25\x73\x28\x29\x3a\x20\x52\x65\x67\x69\x73\x74\x65\x72\x69\x6e\x67\x20\x68\x61\x6e\x64\x6c\x65\x72\x20\x66\x61\x69\x6c\x65\x64" "\n"
|
|
|
-,__func__);break;default:break;}return NOTIFY_DONE;}static int
|
|
|
-DATARMNET6512527d9c(struct notifier_block*DATARMNET272c159b3c,unsigned long
|
|
|
-DATARMNET7f045a1e6e,void*data){struct net_device*DATARMNET00dcb79bc4=
|
|
|
-netdev_notifier_info_to_dev(data);if(!DATARMNET00dcb79bc4||DATARMNETaba2beb199(
|
|
|
-DATARMNET00dcb79bc4->name,DATARMNET755f0f0df8,IFNAMSIZ))return NOTIFY_DONE;
|
|
|
-switch(DATARMNET7f045a1e6e){case NETDEV_UNREGISTER:netdev_rx_handler_unregister(
|
|
|
-DATARMNET00dcb79bc4);break;case NETDEV_REGISTER:if(netdev_rx_handler_register(
|
|
|
-DATARMNET00dcb79bc4,DATARMNET37a92021f9,NULL))pr_err(
|
|
|
-"\x25\x73\x28\x29\x3a\x20\x52\x65\x67\x69\x73\x74\x65\x72\x69\x6e\x67\x20\x68\x61\x6e\x64\x6c\x65\x72\x20\x66\x61\x69\x6c\x65\x64" "\n"
|
|
|
,__func__);break;default:break;}return NOTIFY_DONE;}static struct notifier_block
|
|
|
- DATARMNETa1726000d8={.notifier_call=DATARMNET0ed065ddb7,};static struct
|
|
|
-notifier_block DATARMNET2c4484aef5={.notifier_call=DATARMNET6512527d9c,};static
|
|
|
-int DATARMNET116f9a46aa(void){int DATARMNET268a8314cf;if(!DATARMNET30500ba48c[
|
|
|
+ DATARMNETa1726000d8={.notifier_call=DATARMNET0ed065ddb7,};static int
|
|
|
+DATARMNET116f9a46aa(void){int DATARMNET268a8314cf;if(!DATARMNET30500ba48c[
|
|
|
(0xd2d+202-0xdf7)])return(0xd2d+202-0xdf7);DATARMNET268a8314cf=
|
|
|
unregister_netdevice_notifier(&DATARMNETa1726000d8);if(!DATARMNET268a8314cf)
|
|
|
DATARMNET30500ba48c[(0xd2d+202-0xdf7)]=(0xd2d+202-0xdf7);return
|
|
|
-DATARMNET268a8314cf;}static int DATARMNET56777c5470(void){int
|
|
|
-DATARMNET268a8314cf;if(!DATARMNET755f0f0df8[(0xd2d+202-0xdf7)])return
|
|
|
-(0xd2d+202-0xdf7);DATARMNET268a8314cf=unregister_netdevice_notifier(&
|
|
|
-DATARMNET2c4484aef5);if(!DATARMNET268a8314cf)DATARMNET755f0f0df8[
|
|
|
-(0xd2d+202-0xdf7)]=(0xd2d+202-0xdf7);return DATARMNET268a8314cf;}static void
|
|
|
-DATARMNETbb4efa5b3d(void){DATARMNET116f9a46aa();DATARMNET1f36d4813c();
|
|
|
-DATARMNET8c0e010dfb();DATARMNETe5b03fe375();DATARMNETad43e44c7e();
|
|
|
-DATARMNET56fde5181e();}static int DATARMNET38ebe8f319(struct sk_buff*
|
|
|
-DATARMNET543491eb0f,int DATARMNET1faf88208b){if(!pskb_may_pull(
|
|
|
+DATARMNET268a8314cf;}static int DATARMNET56777c5470(void){DATARMNET755f0f0df8[
|
|
|
+(0xd2d+202-0xdf7)]=(0xd2d+202-0xdf7);return(0xd2d+202-0xdf7);}static void
|
|
|
+DATARMNETbb4efa5b3d(void){DATARMNET116f9a46aa();DATARMNET56777c5470();
|
|
|
+DATARMNET1f36d4813c();DATARMNET8c0e010dfb();DATARMNETe5b03fe375();
|
|
|
+DATARMNETad43e44c7e();DATARMNET56fde5181e();}static int DATARMNET38ebe8f319(
|
|
|
+struct sk_buff*DATARMNET543491eb0f,int DATARMNET1faf88208b){if(!pskb_may_pull(
|
|
|
DATARMNET543491eb0f,DATARMNET1faf88208b))return-ENOMEM;if(!skb_cloned(
|
|
|
DATARMNET543491eb0f)||skb_clone_writable(DATARMNET543491eb0f,DATARMNET1faf88208b
|
|
|
))return(0xd2d+202-0xdf7);return pskb_expand_head(DATARMNET543491eb0f,
|
|
@@ -493,48 +485,45 @@ DATARMNET54338da2ff,
|
|
|
DATARMNET268a8314cf){GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
|
|
"\x4b\x65\x72\x6e\x65\x6c\x20\x65\x72\x72\x6f\x72\x2c\x20\x6e\x6f\x74\x69\x66\x69\x65\x72\x20\x75\x6e\x72\x65\x67\x69\x73\x74\x65\x72\x20\x66\x61\x69\x6c\x65\x64"
|
|
|
);return DATARMNET268a8314cf;}strlcpy(DATARMNET755f0f0df8,DATARMNET852d4d00e2,
|
|
|
-IFNAMSIZ);DATARMNET268a8314cf=register_netdevice_notifier(&DATARMNET2c4484aef5);
|
|
|
-if(DATARMNET268a8314cf){GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
|
|
-"\x4b\x65\x72\x6e\x65\x6c\x20\x65\x72\x72\x6f\x72\x2c\x20\x6e\x6f\x74\x69\x66\x69\x65\x72\x20\x66\x61\x69\x6c\x65\x64"
|
|
|
-);DATARMNET755f0f0df8[(0xd2d+202-0xdf7)]=(0xd2d+202-0xdf7);}return
|
|
|
-DATARMNET268a8314cf;}int DATARMNETa903cd5994(char*DATARMNET852d4d00e2,struct
|
|
|
-genl_info*DATARMNET54338da2ff){return DATARMNET116f9a46aa();}int
|
|
|
-DATARMNET9d7bb9a63d(char*DATARMNET852d4d00e2,struct genl_info*
|
|
|
-DATARMNET54338da2ff){return DATARMNET56777c5470();}int DATARMNET947eb110d2(
|
|
|
-struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e,struct genl_info*
|
|
|
-DATARMNET54338da2ff){int DATARMNET268a8314cf;mutex_lock(&DATARMNETf46fb02ac6);
|
|
|
-DATARMNET268a8314cf=DATARMNET1ac13d5a2a(DATARMNET2d4b4cfc9e,DATARMNET54338da2ff)
|
|
|
-;mutex_unlock(&DATARMNETf46fb02ac6);return DATARMNET268a8314cf;}int
|
|
|
-DATARMNETb8b35fdc18(struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e,struct
|
|
|
+IFNAMSIZ);return DATARMNET268a8314cf;}int DATARMNETa903cd5994(char*
|
|
|
+DATARMNET852d4d00e2,struct genl_info*DATARMNET54338da2ff){return
|
|
|
+DATARMNET116f9a46aa();}int DATARMNET9d7bb9a63d(char*DATARMNET852d4d00e2,struct
|
|
|
+genl_info*DATARMNET54338da2ff){return DATARMNET56777c5470();}int
|
|
|
+DATARMNET947eb110d2(struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e,struct
|
|
|
genl_info*DATARMNET54338da2ff){int DATARMNET268a8314cf;mutex_lock(&
|
|
|
-DATARMNETf46fb02ac6);DATARMNET268a8314cf=DATARMNET6b6be8e27f(DATARMNET2d4b4cfc9e
|
|
|
+DATARMNETf46fb02ac6);DATARMNET268a8314cf=DATARMNET1ac13d5a2a(DATARMNET2d4b4cfc9e
|
|
|
,DATARMNET54338da2ff);mutex_unlock(&DATARMNETf46fb02ac6);return
|
|
|
-DATARMNET268a8314cf;}int DATARMNET8d5a5a7047(__be16 DATARMNETf0d9de7e2f,struct
|
|
|
-genl_info*DATARMNET54338da2ff){int DATARMNET268a8314cf;mutex_lock(&
|
|
|
-DATARMNET954bef55d0);DATARMNET268a8314cf=DATARMNET3b10d1c14b(DATARMNETf0d9de7e2f
|
|
|
-,DATARMNET54338da2ff);mutex_unlock(&DATARMNET954bef55d0);return
|
|
|
-DATARMNET268a8314cf;}int DATARMNETc97c6a4265(__be16 DATARMNETf0d9de7e2f,struct
|
|
|
-genl_info*DATARMNET54338da2ff){int DATARMNET268a8314cf;mutex_lock(&
|
|
|
-DATARMNET954bef55d0);DATARMNET268a8314cf=DATARMNETc023021120(DATARMNETf0d9de7e2f
|
|
|
-,DATARMNET54338da2ff);mutex_unlock(&DATARMNET954bef55d0);return
|
|
|
-DATARMNET268a8314cf;}bool DATARMNETa8b2566e6a(struct sk_buff*DATARMNET543491eb0f
|
|
|
-,struct DATARMNETb89ecedefc*DATARMNET3396919a68,int DATARMNET611d08d671){struct
|
|
|
-udphdr*DATARMNET75be5f3406,DATARMNETc82d2f4e16;__be32*DATARMNETdf2dbc641f,
|
|
|
-DATARMNET6c56902362;if(DATARMNET3396919a68->DATARMNET4924e79411!=IPPROTO_UDP||!
|
|
|
-DATARMNET7490934ea9(DATARMNET3396919a68->DATARMNETf0d9de7e2f))return false;
|
|
|
-DATARMNET75be5f3406=skb_header_pointer(DATARMNET543491eb0f,DATARMNET611d08d671,
|
|
|
-sizeof(*DATARMNET75be5f3406),&DATARMNETc82d2f4e16);if(!DATARMNET75be5f3406)
|
|
|
-return false;if(DATARMNET75be5f3406->source==htons((0xdf7+6169-0x241c)))return
|
|
|
-false;DATARMNETdf2dbc641f=skb_header_pointer(DATARMNET543491eb0f,
|
|
|
-DATARMNET611d08d671+sizeof(*DATARMNET75be5f3406),sizeof(*DATARMNETdf2dbc641f),&
|
|
|
-DATARMNET6c56902362);if(!DATARMNETdf2dbc641f)return false;return!!(*
|
|
|
-DATARMNETdf2dbc641f);}bool DATARMNET0a4704e5e0(struct DATARMNETb89ecedefc*
|
|
|
-DATARMNET3396919a68){return DATARMNETa96214b53c(DATARMNET3396919a68->
|
|
|
-DATARMNETf0d9de7e2f);}int DATARMNET4c1c11d8a5(struct DATARMNETe117226f58*
|
|
|
-DATARMNET3396919a68){int DATARMNET268a8314cf;mutex_lock(&DATARMNET38726379d1);
|
|
|
-DATARMNET268a8314cf=DATARMNET51f60f2fd3(DATARMNET3396919a68);mutex_unlock(&
|
|
|
-DATARMNET38726379d1);return DATARMNET268a8314cf;}int DATARMNET56fde5181e(void){
|
|
|
-int DATARMNET268a8314cf;mutex_lock(&DATARMNET38726379d1);DATARMNET268a8314cf=
|
|
|
+DATARMNET268a8314cf;}int DATARMNETb8b35fdc18(struct DATARMNET8d3c2559ca*
|
|
|
+DATARMNET2d4b4cfc9e,struct genl_info*DATARMNET54338da2ff){int
|
|
|
+DATARMNET268a8314cf;mutex_lock(&DATARMNETf46fb02ac6);DATARMNET268a8314cf=
|
|
|
+DATARMNET6b6be8e27f(DATARMNET2d4b4cfc9e,DATARMNET54338da2ff);mutex_unlock(&
|
|
|
+DATARMNETf46fb02ac6);return DATARMNET268a8314cf;}int DATARMNET8d5a5a7047(__be16
|
|
|
+DATARMNETf0d9de7e2f,struct genl_info*DATARMNET54338da2ff){int
|
|
|
+DATARMNET268a8314cf;mutex_lock(&DATARMNET954bef55d0);DATARMNET268a8314cf=
|
|
|
+DATARMNET3b10d1c14b(DATARMNETf0d9de7e2f,DATARMNET54338da2ff);mutex_unlock(&
|
|
|
+DATARMNET954bef55d0);return DATARMNET268a8314cf;}int DATARMNETc97c6a4265(__be16
|
|
|
+DATARMNETf0d9de7e2f,struct genl_info*DATARMNET54338da2ff){int
|
|
|
+DATARMNET268a8314cf;mutex_lock(&DATARMNET954bef55d0);DATARMNET268a8314cf=
|
|
|
+DATARMNETc023021120(DATARMNETf0d9de7e2f,DATARMNET54338da2ff);mutex_unlock(&
|
|
|
+DATARMNET954bef55d0);return DATARMNET268a8314cf;}bool DATARMNETa8b2566e6a(struct
|
|
|
+ sk_buff*DATARMNET543491eb0f,struct DATARMNETb89ecedefc*DATARMNET3396919a68,int
|
|
|
+DATARMNET611d08d671){struct udphdr*DATARMNET75be5f3406,DATARMNETc82d2f4e16;
|
|
|
+__be32*DATARMNETdf2dbc641f,DATARMNET6c56902362;if(DATARMNET3396919a68->
|
|
|
+DATARMNET4924e79411!=IPPROTO_UDP||!DATARMNET7490934ea9(DATARMNET3396919a68->
|
|
|
+DATARMNETf0d9de7e2f))return false;DATARMNET75be5f3406=skb_header_pointer(
|
|
|
+DATARMNET543491eb0f,DATARMNET611d08d671,sizeof(*DATARMNET75be5f3406),&
|
|
|
+DATARMNETc82d2f4e16);if(!DATARMNET75be5f3406)return false;if(DATARMNET75be5f3406
|
|
|
+->source==htons((0xdf7+6169-0x241c)))return false;DATARMNETdf2dbc641f=
|
|
|
+skb_header_pointer(DATARMNET543491eb0f,DATARMNET611d08d671+sizeof(*
|
|
|
+DATARMNET75be5f3406),sizeof(*DATARMNETdf2dbc641f),&DATARMNET6c56902362);if(!
|
|
|
+DATARMNETdf2dbc641f)return false;return!!(*DATARMNETdf2dbc641f);}bool
|
|
|
+DATARMNET0a4704e5e0(struct DATARMNETb89ecedefc*DATARMNET3396919a68){return
|
|
|
+DATARMNETa96214b53c(DATARMNET3396919a68->DATARMNETf0d9de7e2f);}int
|
|
|
+DATARMNET4c1c11d8a5(struct DATARMNETe117226f58*DATARMNET3396919a68){int
|
|
|
+DATARMNET268a8314cf;mutex_lock(&DATARMNET38726379d1);DATARMNET268a8314cf=
|
|
|
+DATARMNET51f60f2fd3(DATARMNET3396919a68);mutex_unlock(&DATARMNET38726379d1);
|
|
|
+return DATARMNET268a8314cf;}int DATARMNET56fde5181e(void){int
|
|
|
+DATARMNET268a8314cf;mutex_lock(&DATARMNET38726379d1);DATARMNET268a8314cf=
|
|
|
DATARMNETb9c7621157();mutex_unlock(&DATARMNET38726379d1);return
|
|
|
DATARMNET268a8314cf;}static int DATARMNETed41dd2d3f(struct sk_buff*
|
|
|
DATARMNET543491eb0f,struct DATARMNETb89ecedefc*DATARMNET3396919a68){struct
|