Quellcode durchsuchen

Merge "wlan: Ieac82961ecacaae8f862a4eefaf335239c31fe73"

qctecmdr vor 4 Jahren
Ursprung
Commit
dc46c7e10e

+ 2 - 1
wlan/rmnet_wlan.h

@@ -32,6 +32,7 @@ DATARMNETf0d9de7e2f,struct genl_info*DATARMNET54338da2ff);int
 DATARMNETc97c6a4265(__be16 DATARMNETf0d9de7e2f,struct genl_info*
 DATARMNET54338da2ff);bool DATARMNETa8b2566e6a(struct sk_buff*DATARMNET543491eb0f
 ,struct DATARMNETb89ecedefc*DATARMNET3396919a68,int DATARMNET611d08d671);int 
-DATARMNET078f6bd384(void);void DATARMNETfae36afa03(void);
+DATARMNET078f6bd384(void);void DATARMNETfae36afa03(void);char*
+DATARMNET934406764d(void);
 #endif
 

+ 60 - 4
wlan/rmnet_wlan_connection.c

@@ -18,6 +18,7 @@
 #include <net/netfilter/nf_conntrack.h>
 #include "rmnet_wlan.h"
 #include "rmnet_wlan_connection.h"
+#include "rmnet_wlan_stats.h"
 #define DATARMNET5da8c68c19 (2000000000)
 #define DATARMNET8fc07fbb24 ((0xeb7+1158-0x132d))
 #define DATARMNETeaf0945284 \
@@ -51,10 +52,64 @@ unsigned long DATARMNETfb0677cc3c;if(!DATARMNET543491eb0f||DATARMNET543491eb0f->
 pkt_type==PACKET_LOOPBACK)goto DATARMNETbf4095f79e;if(DATARMNET543491eb0f->dev&&
 strncmp(DATARMNET543491eb0f->dev->name,
 "\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61\x30",IFNAMSIZ))nf_ct_set(
-DATARMNET543491eb0f,NULL,IP_CT_UNTRACKED);if(DATARMNET543491eb0f->protocol==
-htons(ETH_P_IP)){struct iphdr*DATARMNET86f1f2cdc9,DATARMNETbf6548198e;
+DATARMNET543491eb0f,NULL,IP_CT_UNTRACKED);if((DATARMNET543491eb0f->protocol==
+htons(ETH_P_IP))&&!(strncmp(DATARMNET543491eb0f->dev->name,
+"\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61\x30",IFNAMSIZ))){struct iphdr*
+DATARMNET86f1f2cdc9,DATARMNETbf6548198e;struct net_device*DATARMNET813ca18d06=
+NULL;struct flowi4 DATARMNET099aa93adc={};struct rtable*DATARMNET066b8bd537;
+struct neighbour*DATARMNET3f85732c70;int DATARMNET268a8314cf=(0xd2d+202-0xdf7);
 DATARMNET86f1f2cdc9=skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),
-sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto 
+sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9){
+DATARMNET17f6bc1be5(DATARMNETd1c349b9fc);goto DATARMNETc1174a0f45;}
+DATARMNET813ca18d06=dev_get_by_name_rcu(&init_net,DATARMNET934406764d());if(!
+DATARMNET813ca18d06){DATARMNET17f6bc1be5(DATARMNETfa4b3dd44a);goto 
+DATARMNETc1174a0f45;}memcpy(&DATARMNET099aa93adc.saddr,&DATARMNET86f1f2cdc9->
+saddr,sizeof(__be32));memcpy(&DATARMNET099aa93adc.daddr,&DATARMNET86f1f2cdc9->
+daddr,sizeof(__be32));DATARMNET066b8bd537=ip_route_output_key(&init_net,&
+DATARMNET099aa93adc);if(IS_ERR(DATARMNET066b8bd537)){DATARMNET17f6bc1be5(
+DATARMNET72ab5e86d8);goto DATARMNETc1174a0f45;}DATARMNET3f85732c70=
+dst_neigh_lookup(&DATARMNET066b8bd537->dst,&DATARMNET099aa93adc.daddr);ip_rt_put
+(DATARMNET066b8bd537);if(!DATARMNET3f85732c70){DATARMNET17f6bc1be5(
+DATARMNET0e6bd55b8b);goto DATARMNETc1174a0f45;}DATARMNET543491eb0f->dev=
+DATARMNET813ca18d06;DATARMNET268a8314cf=dev_hard_header(DATARMNET543491eb0f,
+DATARMNET813ca18d06,ETH_P_IP,&DATARMNET3f85732c70->ha,NULL,DATARMNET543491eb0f->
+len);if(DATARMNET268a8314cf<=(0xd2d+202-0xdf7)){neigh_release(
+DATARMNET3f85732c70);DATARMNET17f6bc1be5(DATARMNET64aecaa865);goto 
+DATARMNETc1174a0f45;}DATARMNET268a8314cf=dev_queue_xmit(DATARMNET543491eb0f);
+neigh_release(DATARMNET3f85732c70);if(likely(DATARMNET268a8314cf==
+NET_XMIT_SUCCESS||DATARMNET268a8314cf==NET_XMIT_CN)){DATARMNET17f6bc1be5(
+DATARMNETc1b437465b);}else{DATARMNET17f6bc1be5(DATARMNET43a65c0be7);}return 
+RX_HANDLER_CONSUMED;}else if((DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6))
+&&!(strncmp(DATARMNET543491eb0f->dev->name,
+"\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61\x30",IFNAMSIZ))){struct 
+ipv6hdr*DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;struct net_device*
+DATARMNET813ca18d06=NULL;struct flowi6 DATARMNET8fbe36a2fa={};struct neighbour*
+DATARMNET3f85732c70;struct dst_entry*dst;int DATARMNET268a8314cf=
+(0xd2d+202-0xdf7);DATARMNETbf55123e5b=skb_header_pointer(DATARMNET543491eb0f,
+(0xd2d+202-0xdf7),sizeof(*DATARMNETbf55123e5b),&DATARMNETcf1d9e2c1e);if(!
+DATARMNETbf55123e5b){DATARMNET17f6bc1be5(DATARMNET72f4fdd48a);goto 
+DATARMNETc1174a0f45;}DATARMNET813ca18d06=dev_get_by_name_rcu(&init_net,
+DATARMNET934406764d());if(!DATARMNET813ca18d06){DATARMNET17f6bc1be5(
+DATARMNET9cff15f94d);goto DATARMNETc1174a0f45;}DATARMNET543491eb0f->dev=
+DATARMNET813ca18d06;memcpy(&DATARMNET8fbe36a2fa.saddr,&DATARMNETbf55123e5b->
+saddr,sizeof(struct in6_addr));memcpy(&DATARMNET8fbe36a2fa.daddr,&
+DATARMNETbf55123e5b->daddr,sizeof(struct in6_addr));dst=ipv6_stub->
+ipv6_dst_lookup_flow(&init_net,NULL,&DATARMNET8fbe36a2fa,NULL);if(IS_ERR(dst)){
+DATARMNET17f6bc1be5(DATARMNETbf6e6853f9);goto DATARMNETc1174a0f45;}
+DATARMNET3f85732c70=dst_neigh_lookup(dst,&DATARMNET8fbe36a2fa.daddr);dst_release
+(dst);if(!DATARMNET3f85732c70){DATARMNET17f6bc1be5(DATARMNETa0da722329);goto 
+DATARMNETc1174a0f45;}DATARMNET268a8314cf=dev_hard_header(DATARMNET543491eb0f,
+DATARMNET813ca18d06,ETH_P_IPV6,&DATARMNET3f85732c70->ha,NULL,DATARMNET543491eb0f
+->len);if(DATARMNET268a8314cf<=(0xd2d+202-0xdf7)){neigh_release(
+DATARMNET3f85732c70);DATARMNET17f6bc1be5(DATARMNET729e252fb9);goto 
+DATARMNETc1174a0f45;}DATARMNET268a8314cf=dev_queue_xmit(DATARMNET543491eb0f);
+neigh_release(DATARMNET3f85732c70);if(likely(DATARMNET268a8314cf==
+NET_XMIT_SUCCESS||DATARMNET268a8314cf==NET_XMIT_CN)){DATARMNET17f6bc1be5(
+DATARMNET04311361a2);}else{DATARMNET17f6bc1be5(DATARMNET13bbe5f5c5);}return 
+RX_HANDLER_CONSUMED;}if(DATARMNET543491eb0f->protocol==htons(ETH_P_IP)){struct 
+iphdr*DATARMNET86f1f2cdc9,DATARMNETbf6548198e;DATARMNET86f1f2cdc9=
+skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),sizeof(*
+DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto 
 DATARMNETbf4095f79e;if(DATARMNET86f1f2cdc9->protocol==IPPROTO_TCP)goto 
 DATARMNET9b3d23a43b;if(DATARMNET86f1f2cdc9->protocol!=IPPROTO_ICMP)goto 
 DATARMNETbf4095f79e;DATARMNETa76763310b.DATARMNETdfe430c2d6=DATARMNET86f1f2cdc9
@@ -94,7 +149,8 @@ DATARMNET5da8c68c19,HRTIMER_MODE_REL);hash_add_rcu(DATARMNET5413d6f8ec,&
 DATARMNET63b1a086d5->DATARMNETe8608dd267,DATARMNETa76763310b.DATARMNET2cb607d686
 );spin_unlock_irqrestore(&DATARMNET820642743b,DATARMNETfb0677cc3c);
 DATARMNETbf4095f79e:return RX_HANDLER_PASS;DATARMNET9b3d23a43b:
-DATARMNET7ca470d54b(DATARMNET543491eb0f,TCP_FLAG_SYN);return RX_HANDLER_PASS;}
+DATARMNET7ca470d54b(DATARMNET543491eb0f,TCP_FLAG_SYN);return RX_HANDLER_PASS;
+DATARMNETc1174a0f45:kfree_skb(DATARMNET543491eb0f);return RX_HANDLER_CONSUMED;}
 static void DATARMNETbc6bd11f47(struct net_device*DATARMNET00dcb79bc4){struct 
 DATARMNET4f49486833*DATARMNET63b1a086d5;int DATARMNET5c2fd31d7b;rcu_read_lock();
 hash_for_each_rcu(DATARMNET5413d6f8ec,DATARMNET5c2fd31d7b,DATARMNET63b1a086d5,

+ 2 - 2
wlan/rmnet_wlan_genl.c

@@ -111,7 +111,7 @@ GENL_SET_ERR_MSG(DATARMNET54338da2ff,
 "\x4d\x75\x73\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x46\x57\x44\x20\x64\x65\x76\x69\x63\x65\x20\x61\x6e\x64\x20\x61\x64\x64\x72\x65\x73\x73"
 );return-EINVAL;}DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[
 DATARMNETea4b56dc2b];DATARMNETd7f4d7c495=nla_data(DATARMNETef7cdd7b6b);if(strchr
-(DATARMNETd7f4d7c495,((char)(0x320+8738-0x2508)))){if(in6_pton(
+(DATARMNETd7f4d7c495,((char)(0x9fd+2830-0x14d1)))){if(in6_pton(
 DATARMNETd7f4d7c495,nla_len(DATARMNETef7cdd7b6b),DATARMNET2d4b4cfc9e.
 DATARMNET5700daac01.s6_addr,-(0xd26+209-0xdf6),NULL)!=(0xd26+209-0xdf6)){
 GENL_SET_ERR_MSG(DATARMNET54338da2ff,
@@ -138,7 +138,7 @@ GENL_SET_ERR_MSG(DATARMNET54338da2ff,
 "\x4d\x75\x73\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x46\x57\x44\x20\x64\x65\x76\x69\x63\x65\x20\x61\x6e\x64\x20\x61\x64\x64\x72\x65\x73\x73"
 );return-EINVAL;}DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[
 DATARMNETea4b56dc2b];DATARMNETd7f4d7c495=nla_data(DATARMNETef7cdd7b6b);if(strchr
-(DATARMNETd7f4d7c495,((char)(0x1cbd+647-0x1f0a)))){if(in6_pton(
+(DATARMNETd7f4d7c495,((char)(0x2ff+2319-0xbd4)))){if(in6_pton(
 DATARMNETd7f4d7c495,nla_len(DATARMNETef7cdd7b6b),DATARMNET2d4b4cfc9e.
 DATARMNET5700daac01.s6_addr,-(0xd26+209-0xdf6),NULL)!=(0xd26+209-0xdf6)){
 GENL_SET_ERR_MSG(DATARMNET54338da2ff,

+ 2 - 1
wlan/rmnet_wlan_main.c

@@ -394,4 +394,5 @@ DATARMNET543491eb0f,DATARMNET611d08d671+sizeof(*DATARMNET75be5f3406),sizeof(*
 DATARMNETdf2dbc641f),&DATARMNET6c56902362);if(!DATARMNETdf2dbc641f)return false;
 return!!(*DATARMNETdf2dbc641f);}int DATARMNET078f6bd384(void){
 DATARMNETbb4efa5b3d();return(0xd2d+202-0xdf7);}void DATARMNETfae36afa03(void){
-DATARMNETbb4efa5b3d();}
+DATARMNETbb4efa5b3d();}char*DATARMNET934406764d(void){return DATARMNET30500ba48c
+;}

+ 6 - 2
wlan/rmnet_wlan_stats.c

@@ -8,7 +8,11 @@
 #include <linux/moduleparam.h>
 #include "rmnet_wlan_stats.h"
 static u64 DATARMNET24d235c444[DATARMNETc6bf075f65];module_param_array_named(
-rmnet_wlan_stat,DATARMNET24d235c444,ullong,NULL,(0xcb7+5769-0x221c));void 
-DATARMNET5ca94dbc3c(u32 DATARMNET248f120dd5){if(DATARMNET248f120dd5<
+rmnet_wlan_stat,DATARMNET24d235c444,ullong,NULL,(0xcb7+5769-0x221c));static u64 
+DATARMNET9f5801b25f[DATARMNETfe1714cc0e];module_param_array_named(
+rmnet_wlan_forward_stat,DATARMNET9f5801b25f,ullong,NULL,(0xcb7+5769-0x221c));
+void DATARMNET5ca94dbc3c(u32 DATARMNET248f120dd5){if(DATARMNET248f120dd5<
 DATARMNETc6bf075f65)DATARMNET24d235c444[DATARMNET248f120dd5]+=(0xd26+209-0xdf6);
+}void DATARMNET17f6bc1be5(u32 DATARMNET248f120dd5){if(DATARMNET248f120dd5<
+DATARMNETfe1714cc0e)DATARMNET9f5801b25f[DATARMNET248f120dd5]+=(0xd26+209-0xdf6);
 }

+ 6 - 1
wlan/rmnet_wlan_stats.h

@@ -12,6 +12,11 @@ enum{DATARMNET12d881921a,DATARMNET9f24b86462,DATARMNET735bb8578c,
 DATARMNETf4c2a83526,DATARMNET591885a019,DATARMNETd8273aa7e1,DATARMNET7a58a5c1fc,
 DATARMNETba232077da,DATARMNETe75ad1a949,DATARMNETd691057b85,DATARMNETd1ad664d00,
 DATARMNETef2af4f071,DATARMNETebc1b87b7d,DATARMNET21bdbe6a27,DATARMNETc6bf075f65,
-};void DATARMNET5ca94dbc3c(u32 DATARMNET248f120dd5);
+};enum{DATARMNETc1b437465b,DATARMNET04311361a2,DATARMNET43a65c0be7,
+DATARMNET13bbe5f5c5,DATARMNETd1c349b9fc,DATARMNETfa4b3dd44a,DATARMNET72ab5e86d8,
+DATARMNET0e6bd55b8b,DATARMNET64aecaa865,DATARMNET72f4fdd48a,DATARMNET9cff15f94d,
+DATARMNETbf6e6853f9,DATARMNETa0da722329,DATARMNET729e252fb9,DATARMNETfe1714cc0e,
+};void DATARMNET5ca94dbc3c(u32 DATARMNET248f120dd5);void DATARMNET17f6bc1be5(u32
+ DATARMNET248f120dd5);
 #endif