pass geoip path if found
This commit is contained in:
parent
e58f5b1e95
commit
65f02fdd13
1 changed files with 19 additions and 5 deletions
24
oml/tor.py
24
oml/tor.py
|
@ -44,17 +44,18 @@ SocksPort 9830
|
||||||
ControlPort 9831
|
ControlPort 9831
|
||||||
CookieAuthentication 1
|
CookieAuthentication 1
|
||||||
'''.strip())
|
'''.strip())
|
||||||
|
tor_data = os.path.join(settings.data_path, 'TorData')
|
||||||
if not os.path.exists(torrc):
|
if not os.path.exists(torrc):
|
||||||
with open(torrc, 'w') as fd:
|
with open(torrc, 'w') as fd:
|
||||||
fd.write('''
|
fd.write('''
|
||||||
DataDirectory {base}/TorData
|
DataDirectory {tor_data}
|
||||||
DirReqStatistics 0
|
DirReqStatistics 0
|
||||||
'''.strip().format(base=settings.data_path))
|
'''.strip().format(tor_data=tor_data))
|
||||||
else:
|
else:
|
||||||
with open(torrc, 'r') as fd:
|
with open(torrc, 'r') as fd:
|
||||||
data = fd.read()
|
data = fd.read()
|
||||||
modified_data = re.sub('DataDirectory.*?/TorData',
|
modified_data = re.sub('DataDirectory.*?TorData',
|
||||||
'DataDirectory {base}/TorData'.format(base=settings.data_path), data)
|
'DataDirectory {tor_data}'.format(tor_data=tor_data), data)
|
||||||
if data != modified_data:
|
if data != modified_data:
|
||||||
with open(torrc, 'w') as fd:
|
with open(torrc, 'w') as fd:
|
||||||
fd.write(modified_data)
|
fd.write(modified_data)
|
||||||
|
@ -63,6 +64,7 @@ DirReqStatistics 0
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
defaults, torrc = self.create_torrc()
|
defaults, torrc = self.create_torrc()
|
||||||
|
tor_data = os.path.join(settings.data_path, 'TorData')
|
||||||
tor = get_tor()
|
tor = get_tor()
|
||||||
if not tor:
|
if not tor:
|
||||||
self._status.append('No tor binary found. Please install TorBrowser or tor')
|
self._status.append('No tor binary found. Please install TorBrowser or tor')
|
||||||
|
@ -77,7 +79,8 @@ DirReqStatistics 0
|
||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
env = None
|
env = None
|
||||||
cmd = [tor, '--defaults-torrc', defaults, '-f', torrc]
|
cmd = [tor, '--defaults-torrc', defaults, '-f', torrc, 'DataDirectory', tor_data]
|
||||||
|
cmd += self.geoip(tor)
|
||||||
while self.running:
|
while self.running:
|
||||||
self.p = subprocess.Popen(cmd, stdout=subprocess.PIPE, bufsize=1,
|
self.p = subprocess.Popen(cmd, stdout=subprocess.PIPE, bufsize=1,
|
||||||
universal_newlines=True, start_new_session=True, env=env)
|
universal_newlines=True, start_new_session=True, env=env)
|
||||||
|
@ -87,6 +90,17 @@ DirReqStatistics 0
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
self.p = None
|
self.p = None
|
||||||
|
|
||||||
|
def geoip(self, tor):
|
||||||
|
geo = []
|
||||||
|
tordir = os.path.dirname(os.path.dirname(tor))
|
||||||
|
gepipfile = os.path.join(tordir, 'Data', 'Tor', 'geoip')
|
||||||
|
gepipv6file = os.path.join(tordir, 'Data', 'Tor', 'geoip6')
|
||||||
|
if os.path.exists(gepipfile):
|
||||||
|
geo += ['GeoIPFile', gepipfile]
|
||||||
|
if os.path.exists(gepipv6file):
|
||||||
|
geo += ['GeoIPv6File', gepipv6file]
|
||||||
|
return geo
|
||||||
|
|
||||||
def kill(self):
|
def kill(self):
|
||||||
self.running = False
|
self.running = False
|
||||||
if self.p:
|
if self.p:
|
||||||
|
|
Loading…
Reference in a new issue