def test_openvpn_circumvent(self):
def addResultToReport(result):
log.debug("request_successful")
self.report['body'] = result
self.report['success'] = True
def addFailureToReport(failure):
log.debug("Failed: %s" % failureToString(failure))
self.report['failure'] = failureToString(failure)
self.report['success'] = False
def doRequest(noreason):
"""Make a HTTP request over initialized VPN connection"""
agent = Agent(reactor)
log.debug("Doing HTTP request to the OpenVPN subnet: %s" % self.url)
request = agent.request("GET", self.url)
request.addCallback(readBody)
request.addCallback(addResultToReport)
request.addErrback(addFailureToReport)
return request
log.debug("Spawning OpenVPN")
self.d = self.run(self.command)
# Monkeypatch inConnectionLost and processExited to log when OpenVPN exits early
self.processDirector.inConnectionLost = self.inConnectionLost
self.processDirector.processExited = self.processExited
# Try to make a request when the OpenVPN connection successfully bootstraps
self.bootstrapped.addCallback(doRequest)
# Fire failure if OpenVPN connection fails
self.bootstrapped.addErrback(addFailureToReport)
# Close OpenVPN after each successful or failed test
self.bootstrapped.addBoth(self.stop)
return self.d
评论列表
文章目录