aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYingjoe Chen <yingjoe.chen@mediatek.com>2015-10-16 13:29:27 +0800
committerMister Oyster <oysterized@gmail.com>2016-12-19 10:30:09 +0100
commit872455bc759cfe9c4f67293c1ee0d3dc7321e25b (patch)
treeef292f1e46286f3f5f2e301bd7e18eb54c60c673
parent480c09f61c489e65f366e3a5a637fa4f1baa9746 (diff)
revert "Network: reset onnection by UID"
This reverts commit 3860aeacee01 ("Network:Reset Connection by UID") Change-Id: I842aec64f563ba9d0b2b6f460b6d683bde30361e CR-Id: ALPS02210363 Signed-off-by: Yingjoe Chen <yingjoe.chen@mediatek.com>
-rw-r--r--include/net/tcp.h12
-rw-r--r--include/uapi/linux/sockios.h1
-rw-r--r--net/ipv4/tcp.c20
-rw-r--r--net/ipv4/tcp_ipv4.c109
4 files changed, 0 insertions, 142 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 6fb38a05f..373488814 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1542,15 +1542,6 @@ struct tcp_iter_state {
loff_t last_pos;
};
-/* MTK_NET_CHANGES */
-/*
- * reset tcp connection by uid
- */
-struct uid_err {
- int appuid;
- int errNum;
-};
-
extern int tcp_proc_register(struct net *net, struct tcp_seq_afinfo *afinfo);
extern void tcp_proc_unregister(struct net *net, struct tcp_seq_afinfo *afinfo);
@@ -1570,9 +1561,6 @@ extern int tcp_gro_complete(struct sk_buff *skb);
extern int tcp4_gro_complete(struct sk_buff *skb);
extern int tcp_nuke_addr(struct net *net, struct sockaddr *addr);
-/* MTK_NET_CHANGES */
-extern void tcp_v4_reset_connections_by_uid(struct uid_err uid_e);
-extern void tcp_v4_handle_retrans_time_by_uid(struct uid_err uid_e);
#ifdef CONFIG_PROC_FS
extern int tcp4_proc_init(void);
diff --git a/include/uapi/linux/sockios.h b/include/uapi/linux/sockios.h
index 6456f27cb..f7ffe36db 100644
--- a/include/uapi/linux/sockios.h
+++ b/include/uapi/linux/sockios.h
@@ -66,7 +66,6 @@
#define SIOCSIFHWBROADCAST 0x8937 /* set hardware broadcast addr */
#define SIOCGIFCOUNT 0x8938 /* get number of devices */
#define SIOCKILLADDR 0x8939 /* kill sockets with this local addr */
-#define SIOCKILLSOCK 0x893a /* MTK_NET_CHANGES kill socket with by uid */
#define SIOCGIFBR 0x8940 /* Bridging support */
#define SIOCSIFBR 0x8941 /* Set bridging options */
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index a0b04a1f2..5f0ac2122 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -580,26 +580,6 @@ int tcp_ioctl(struct sock *sk, int cmd, unsigned long arg)
else
answ = tp->write_seq - tp->snd_nxt;
break;
- /* MTK_NET_CHANGES */
- case SIOCKILLSOCK:
- {
- struct uid_err uid_e;
- if (copy_from_user(&uid_e, (char __user *)arg, sizeof(uid_e)))
- return -EFAULT;
- printk(KERN_WARNING "SIOCKILLSOCK uid = %d , err = %d",
- uid_e.appuid, uid_e.errNum);
- if (uid_e.errNum == 0)
- {
- // handle BR release problem
- tcp_v4_handle_retrans_time_by_uid(uid_e);
- }
- else
- {
- tcp_v4_reset_connections_by_uid(uid_e);
- }
-
- return 0;
- }
default:
return -ENOIOCTLCMD;
}
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index 1bbdff22f..8eb98f447 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -2223,115 +2223,6 @@ void tcp_v4_destroy_sock(struct sock *sk)
}
EXPORT_SYMBOL(tcp_v4_destroy_sock);
-void tcp_v4_handle_retrans_time_by_uid(struct uid_err uid_e)
-{
- unsigned int bucket;
- uid_t skuid = (uid_t)(uid_e.appuid);
- struct inet_connection_sock *icsk = NULL;//inet_csk(sk);
-
-
- for (bucket = 0; bucket < tcp_hashinfo.ehash_mask; bucket++) {
- struct hlist_nulls_node *node;
- struct sock *sk;
- spinlock_t *lock = inet_ehash_lockp(&tcp_hashinfo, bucket);
-
- spin_lock_bh(lock);
- sk_nulls_for_each(sk, node, &tcp_hashinfo.ehash[bucket].chain) {
-
- if (sysctl_ip_dynaddr && sk->sk_state == TCP_SYN_SENT)
- continue;
- if (sock_flag(sk, SOCK_DEAD))
- continue;
-
- if(sk->sk_socket){
- if(SOCK_INODE(sk->sk_socket)->i_uid != skuid)
- continue;
- else
- printk("[mmspb] tcp_v4_handle_retrans_time_by_uid socket uid(%d) match!",
- SOCK_INODE(sk->sk_socket)->i_uid);
- } else{
- continue;
- }
-
- sock_hold(sk);
- spin_unlock_bh(lock);
-
- local_bh_disable();
- bh_lock_sock(sk);
-
- // update sk time out value
- icsk = inet_csk(sk);
- printk("[mmspb] tcp_v4_handle_retrans_time_by_uid update timer\n");
-
- sk_reset_timer(sk, &icsk->icsk_retransmit_timer, jiffies + 2);
- icsk->icsk_rto = sysctl_tcp_rto_min * 30;
- icsk->icsk_MMSRB = 1;
-
- bh_unlock_sock(sk);
- local_bh_enable();
- spin_lock_bh(lock);
- sock_put(sk);
-
- }
- spin_unlock_bh(lock);
- }
-
-}
-
-
-/*
- * tcp_v4_nuke_addr_by_uid - destroy all sockets of spcial uid
- */
-void tcp_v4_reset_connections_by_uid(struct uid_err uid_e)
-{
- unsigned int bucket;
- uid_t skuid = (uid_t)(uid_e.appuid);
-
- for (bucket = 0; bucket < tcp_hashinfo.ehash_mask; bucket++) {
- struct hlist_nulls_node *node;
- struct sock *sk;
- spinlock_t *lock = inet_ehash_lockp(&tcp_hashinfo, bucket);
-
-restart:
- spin_lock_bh(lock);
- sk_nulls_for_each(sk, node, &tcp_hashinfo.ehash[bucket].chain) {
-
- if (sysctl_ip_dynaddr && sk->sk_state == TCP_SYN_SENT)
- continue;
- if (sock_flag(sk, SOCK_DEAD))
- continue;
-
- if(sk->sk_socket){
- if(SOCK_INODE(sk->sk_socket)->i_uid != skuid)
- continue;
- else
- printk(KERN_INFO "SIOCKILLSOCK socket uid(%d) match!",
- SOCK_INODE(sk->sk_socket)->i_uid);
- } else{
- continue;
- }
-
- sock_hold(sk);
- spin_unlock_bh(lock);
-
- local_bh_disable();
- bh_lock_sock(sk);
- sk->sk_err = uid_e.errNum;
- printk(KERN_INFO "SIOCKILLSOCK set sk err == %d!! \n", sk->sk_err);
- sk->sk_error_report(sk);
-
- tcp_done(sk);
- bh_unlock_sock(sk);
- local_bh_enable();
- sock_put(sk);
-
- goto restart;
- }
- spin_unlock_bh(lock);
- }
-}
-
-
#ifdef CONFIG_PROC_FS
/* Proc filesystem TCP sock list dumping. */