i...think it's ready to test.
This commit is contained in:
@@ -10,6 +10,7 @@ import requests.auth
|
||||
from pyroute2 import IPRoute
|
||||
##
|
||||
from . import config
|
||||
from . import tunnel
|
||||
|
||||
|
||||
class TunnelBroker(object):
|
||||
@@ -40,14 +41,16 @@ class TunnelBroker(object):
|
||||
if os.path.isfile(self.ip_cache):
|
||||
with open(self.ip_cache, 'r') as fh:
|
||||
self.cached_ips = [(datetime.datetime.fromtimestamp(i[0]),
|
||||
config.IP4(i[1], 32)) for i in json.loads(fh.read())]
|
||||
tunnel.IP4(i[1], 32)) for i in json.loads(fh.read())]
|
||||
else:
|
||||
os.makedirs(os.path.dirname(self.ip_cache), exist_ok = True, mode = 0o0700)
|
||||
if self.wan:
|
||||
logger.debug('WAN IP tunneling enabled; fetching WAN IP.')
|
||||
req = requests.get(self.url_ip, params = self.params_ip)
|
||||
if not req.ok:
|
||||
logger.error('Could not fetch self IP. Request returned {0}.'.format(req.status_code))
|
||||
raise RuntimeError('Could not fetch self IP')
|
||||
self.my_ip = config.IP4(req.json()['ip'], 32)
|
||||
self.my_ip = tunnel.IP4(req.json()['ip'], 32)
|
||||
logger.debug('Set my_ip to {0}.'.format(self.my_ip.str))
|
||||
else:
|
||||
logger.debug('WAN IP tunneling disabled; fetching LAN IP.')
|
||||
@@ -56,7 +59,7 @@ class TunnelBroker(object):
|
||||
if len(_defrt) != 1: # This (probably) WILL fail on multipath systems.
|
||||
logger.error('Could not determine default route. Does this machine have a single default route?')
|
||||
raise RuntimeError('Could not determine default IPv4 route')
|
||||
self.my_ip = config.IP4(_defrt[0]['attrs']['RTA_PREFSRC'], 32)
|
||||
self.my_ip = tunnel.IP4(_defrt[0]['attrs']['RTA_PREFSRC'], 32)
|
||||
ipr.close()
|
||||
logger.debug('Set my_ip to {0}.'.format(self.my_ip.str))
|
||||
chk_tuple = (datetime.datetime.utcnow(), self.my_ip)
|
||||
@@ -204,7 +207,7 @@ class TunnelBroker(object):
|
||||
def update(self):
|
||||
if not self.my_ip:
|
||||
self._get_my_ip()
|
||||
auth_handler = requests.auth.HTTPBasicAuth(self.tun.creds.user, self.tun.creds.key)
|
||||
auth_handler = requests.auth.HTTPBasicAuth(self.tun.creds.user, self.tun.creds.update_key)
|
||||
logger.debug('Set auth handler.')
|
||||
logger.debug('Requesting IP update at provider.')
|
||||
req = requests.get(self.url_api,
|
||||
|
||||
Reference in New Issue
Block a user