summaryrefslogtreecommitdiff
path: root/addons/document/ftpserver/__init__.py
diff options
context:
space:
mode:
authorrpa (Open ERP) <rpa@tinyerp.com>2009-11-24 13:00:28 +0530
committerrpa (Open ERP) <rpa@tinyerp.com>2009-11-24 13:00:28 +0530
commitc87beca6f8a56d2edd6a27eded371cfdceb0b07b (patch)
tree06462c88c22ccaaacd6501349e05200eebfb74b5 /addons/document/ftpserver/__init__.py
parentcfb529099677673a90ac86dc0deeda4a2decc6b7 (diff)
parentfc896c18e1770ef9d508a87393f2da06ddb8da0c (diff)
[Merge]: merge with trunk addons
bzr revid: rpa@tinyerp.com-20091124073028-ti0erem7cpnzd68r
Diffstat (limited to 'addons/document/ftpserver/__init__.py')
-rw-r--r--addons/document/ftpserver/__init__.py42
1 files changed, 6 insertions, 36 deletions
diff --git a/addons/document/ftpserver/__init__.py b/addons/document/ftpserver/__init__.py
index 759a4e923f6..47615a442a6 100644
--- a/addons/document/ftpserver/__init__.py
+++ b/addons/document/ftpserver/__init__.py
@@ -26,6 +26,7 @@ import abstracted_fs
import netsvc
from tools import config
+from tools.misc import detect_ip_addr
HOST = ''
PORT = int(config.get('ftp_server_port', 8021))
PASSIVE_PORTS = None
@@ -38,41 +39,6 @@ class ftp_server(threading.Thread):
logger = netsvc.Logger()
logger.notifyChannel('FTP', level, message)
- def detect_ip_addr(self):
- def _detect_ip_addr():
- from array import array
- import socket
- from struct import pack, unpack
-
- try:
- import fcntl
- except ImportError:
- fcntl = None
-
- if not fcntl: # not UNIX:
- hostname = socket.gethostname()
- ip_addr = socket.gethostbyname(hostname)
- else: # UNIX:
- # get all interfaces:
- nbytes = 128 * 32
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- names = array('B', '\0' * nbytes)
- outbytes = unpack('iL', fcntl.ioctl( s.fileno(), 0x8912, pack('iL', nbytes, names.buffer_info()[0])))[0]
- namestr = names.tostring()
- ifaces = [namestr[i:i+32].split('\0', 1)[0] for i in range(0, outbytes, 32)]
-
- for ifname in [iface for iface in ifaces if iface != 'lo']:
- ip_addr = socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, pack('256s', ifname[:15]))[20:24])
- break
- return ip_addr
-
- try:
- ip_addr = _detect_ip_addr()
- except:
- ip_addr = ''
- return ip_addr
-
-
def run(self):
autho = authorizer.authorizer()
ftpserver.FTPHandler.authorizer = autho
@@ -86,11 +52,15 @@ class ftp_server(threading.Thread):
ftpserver.logline = lambda msg: None
ftpserver.logerror = lambda msg: self.log(netsvc.LOG_ERROR, msg)
- HOST = self.detect_ip_addr()
+ HOST = config.get('ftp_server_address', detect_ip_addr())
+ PORT = int(config.get('ftp_server_port', '8021'))
+
address = (HOST, PORT)
ftpd = ftpserver.FTPServer(address, ftpserver.FTPHandler)
ftpd.serve_forever()
+
ds = ftp_server()
ds.start()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+