Initial import to Tizen
[profile/ivi/python-twisted.git] / twisted / tap / socks.py
1
2 # Copyright (c) Twisted Matrix Laboratories.
3 # See LICENSE for details.
4
5
6 """
7 I am a support module for making SOCKSv4 servers with twistd.
8 """
9
10 from twisted.protocols import socks
11 from twisted.python import usage
12 from twisted.application import internet
13 import sys
14
15 class Options(usage.Options):
16     synopsis = "[-i <interface>] [-p <port>] [-l <file>]"
17     optParameters = [["interface", "i", "127.0.0.1", "local interface to which we listen"],
18                   ["port", "p", 1080, "Port on which to listen"],
19                   ["log", "l", None, "file to log connection data to"]]
20
21     compData = usage.Completions(
22         optActions={"log": usage.CompleteFiles("*.log"),
23                     "interface": usage.CompleteNetInterfaces()}
24         )
25
26     longdesc = "Makes a SOCKSv4 server."
27
28 def makeService(config):
29     if config["interface"] != "127.0.0.1":
30         print
31         print "WARNING:"
32         print "  You have chosen to listen on a non-local interface."
33         print "  This may allow intruders to access your local network"
34         print "  if you run this on a firewall."
35         print
36     t = socks.SOCKSv4Factory(config['log'])
37     portno = int(config['port'])
38     return internet.TCPServer(portno, t, interface=config['interface'])