#!/bin/sh
lock /var/lock/vigor_conntrack
sleep $1

# backup original values
var1=$(sysctl -n net.ipv4.netfilter.ip_conntrack_generic_timeout)
var2=$(sysctl -n net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent)
if [ $var1 -eq 0 ] || [ $var2 -eq 0 ]; then
	lock -u /var/lock/vigor_conntrack
	return
fi
var3=$(sysctl -n net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv)
var4=$(sysctl -n net.ipv4.netfilter.ip_conntrack_tcp_timeout_established)
var5=$(sysctl -n net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait)
var6=$(sysctl -n net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait)
var7=$(sysctl -n net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack)
var8=$(sysctl -n net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait)
var9=$(sysctl -n net.ipv4.netfilter.ip_conntrack_tcp_timeout_close)
var10=$(sysctl -n net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans)
var11=$(sysctl -n net.ipv4.netfilter.ip_conntrack_udp_timeout)
var12=$(sysctl -n net.ipv4.netfilter.ip_conntrack_udp_timeout_stream)
var13=$(sysctl -n net.ipv4.netfilter.ip_conntrack_icmp_timeout)

# set timeout value as zero
sysctl -w net.ipv4.netfilter.ip_conntrack_generic_timeout=0>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent=0>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv=0>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=0>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=0>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=0>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack=0>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=0>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_close=0>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans=0>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_udp_timeout=0>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_udp_timeout_stream=0>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_icmp_timeout=0>/dev/null

sleep 5
#sleep 10

# restore timeout value
sysctl -w net.ipv4.netfilter.ip_conntrack_generic_timeout=$var1>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent=$var2>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv=$var3>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=$var4>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=$var5>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=$var6>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack=$var7>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=$var8>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_close=$var9>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans=$var10>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_udp_timeout=$var11>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_udp_timeout_stream=$var12>/dev/null
sysctl -w net.ipv4.netfilter.ip_conntrack_icmp_timeout=5 >/dev/null

lock -u /var/lock/vigor_conntrack