1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
#!/bin/sh
# Configurable stuff. You only ever need to change the IP addresses
# if your LAN already uses 192.168.0.0/24.
TTY=/dev/ttyS2 # serial port to use
BAUD=9600 # must match baud rate in fujichat.cfg on the Atari
LOCAL_IP=192.168.0.1 # SLIP IP address for Linux ("peer") host
REMOTE_IP=192.168.0.2 # SLIP IP address for Atari host
# You want these two enabled, unless you're running an IRC server locally,
# and don't want to connect FujiChat to the real Internet:
IP_FORWARD=yes # Route packets for the Atari? (you want this, unless
# you're running an IRC server locally)
IP_MASQUERADE=yes # NAT for the Atari?
DUMP_PACKETS=yes # Run tcpdump on sl0 interface?
# Optional. Autodetected, if you leave these commented out (recommended).
#SLATTACH=a8_slattach # slattach binary (possibly patched). if not set,
# search $PATH for a8_slattach, then fall back to
# regular slattach.
SLATTACH=slattach
#MASQ_IFACE=eth1 # if NATing, our main (LAM or internet) interface
# (if not set, detect automagically)
#SLIP_IFACE=sl0 # don't change this unless you know exactly why
# you need to!
# DELAY may not be needed on all systems...
# No delay:
#DELAY="true"
# 1 second:
#DELAY="sleep 1"
# 1/4 second (may not work on old Linux installs):
DELAY="usleep 250000"
# End of config section, start of code:
# Just in case:
/sbin/modprobe slip 2>/dev/null
if [ "$SLATTACH" = "" ]; then
SLATTACH="$( which a8_slattach 2>/dev/null )"
if [ "$SLATTACH" = "" ]; then
SLATTACH="$( which slattach 2>/dev/null )"
fi
fi
echo "Using SLATTACH=$SLATTACH"
# Warning: this assumes nothing else is using SLIP. Probably a safe
# assumption in the 21st century.
SLIP_IFACE="${SLIP_IFACE:-sl0}"
ifconfig $SLIP_IFACE down 2>/dev/null
killall $SLATTACH 2>/dev/null
fuser -k $TTY 2>/dev/null # make sure nobody's using the port...
$DELAY
fuser -k -9 $TTY 2>/dev/null # Just in case...
$DELAY
echo "Starting SLIP on $SLIP_IFACE, local $LOCAL_IP, remote $REMOTE_IP"
$SLATTACH -L -p slip -s $BAUD $TTY &
$DELAY
ifconfig $SLIP_IFACE $LOCAL_IP mtu 576
ifconfig $SLIP_IFACE $LOCAL_IP pointopoint $REMOTE_IP
if [ "$IP_MASQUERADE" = "yes" ]; then
if [ "$MASQ_IFACE" = "" ]; then
MASQ_IFACE="$(/sbin/ip route show 2>/dev/null | sed -n 's,^default.*dev *\([^ ]*\).*$,\1,p')"
if [ "$MASQ_IFACE" = "" ]; then
MASQ_IFACE="$(/sbin/route -n | grep '^0.0.0.0' | rev | cut -d' ' -f1 |rev)"
if [ "$MASQ_IFACE" = "" ]; then
echo "Can't autodetect default interface, guessing eth0"
MASQ_IFACE="eth0"
fi
fi
fi
echo "IP Masquerading enabled on device $MASQ_IFACE"
iptables -F
iptables -t nat -F
iptables -t nat -A POSTROUTING -o $MASQ_IFACE -j MASQUERADE
fi
if [ "$IP_FORWARD" = "yes" ]; then
echo "IP Forwarding enabled"
echo "1" > /proc/sys/net/ipv4/ip_forward
fi
if [ "$DUMP_PACKETS" = "yes" ]; then
tcpdump -i $SLIP_IFACE -X -n -vvv -s 0
fi
|