From 9ececa637d69ee3991fbc82f3cd64ae781a86f5d Mon Sep 17 00:00:00 2001 From: Thomas Kriechbaumer Date: Mon, 8 Jun 2015 15:28:19 +0200 Subject: http2: add warning for missing ALPN support --- libpathod/pathoc.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'libpathod/pathoc.py') diff --git a/libpathod/pathoc.py b/libpathod/pathoc.py index ba06b2f1..e9bd5f56 100644 --- a/libpathod/pathoc.py +++ b/libpathod/pathoc.py @@ -216,6 +216,10 @@ class Pathoc(tcp.TCPClient): self.ws_framereader = None if self.use_http2: + if not OpenSSL._util.lib.Cryptography_HAS_ALPN: # pragma: nocover + print >> sys.stderr, "HTTP/2 requires ALPN support. Please use OpenSSL >= 1.0.2." + print >> sys.stderr, "Pathoc might not be working as expected without ALPN." + self.protocol = http2.HTTP2Protocol(self) else: # TODO: create HTTP or Websockets protocol @@ -259,7 +263,7 @@ class Pathoc(tcp.TCPClient): an HTTP CONNECT request. """ if self.use_http2 and not self.ssl: - raise ValueError("HTTP2 without SSL is not supported.") + raise NotImplementedError("HTTP2 without SSL is not supported.") tcp.TCPClient.connect(self) -- cgit v1.2.3 From a0d8afd0fcc3c678da0dc956c5a80d4e07d5ac3e Mon Sep 17 00:00:00 2001 From: Thomas Kriechbaumer Date: Thu, 11 Jun 2015 16:13:22 +0200 Subject: http2: add request-response to pathod --- libpathod/pathoc.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'libpathod/pathoc.py') diff --git a/libpathod/pathoc.py b/libpathod/pathoc.py index e9bd5f56..9c021360 100644 --- a/libpathod/pathoc.py +++ b/libpathod/pathoc.py @@ -155,13 +155,14 @@ class Pathoc(tcp.TCPClient): # SSL ssl=None, sni=None, - sslversion=4, + sslversion='SSLv23', clientcert=None, ciphers=None, # HTTP/2 use_http2=False, http2_skip_connection_preface=False, + http2_framedump = False, # Websockets ws_read_limit = None, @@ -199,6 +200,7 @@ class Pathoc(tcp.TCPClient): self.use_http2 = use_http2 self.http2_skip_connection_preface = http2_skip_connection_preface + self.http2_framedump = http2_framedump self.ws_read_limit = ws_read_limit @@ -219,7 +221,6 @@ class Pathoc(tcp.TCPClient): if not OpenSSL._util.lib.Cryptography_HAS_ALPN: # pragma: nocover print >> sys.stderr, "HTTP/2 requires ALPN support. Please use OpenSSL >= 1.0.2." print >> sys.stderr, "Pathoc might not be working as expected without ALPN." - self.protocol = http2.HTTP2Protocol(self) else: # TODO: create HTTP or Websockets protocol @@ -298,7 +299,7 @@ class Pathoc(tcp.TCPClient): if self.use_http2: self.protocol.check_alpn() if not self.http2_skip_connection_preface: - self.protocol.perform_connection_preface() + self.protocol.perform_client_connection_preface() if self.timeout: self.settimeout(self.timeout) @@ -466,6 +467,7 @@ def main(args): # pragma: nocover ciphers = args.ciphers, use_http2 = args.use_http2, http2_skip_connection_preface = args.http2_skip_connection_preface, + http2_framedump = args.http2_framedump, showreq = args.showreq, showresp = args.showresp, explain = args.explain, -- cgit v1.2.3 From 408b4ffef0a784bea7ec08c252e757bca6e28134 Mon Sep 17 00:00:00 2001 From: Thomas Kriechbaumer Date: Tue, 16 Jun 2015 13:52:41 +0200 Subject: http2: implement Headers for request & response improve test coverage fix super ctor call fix legacy httpversion simpliy SSLInfo without ALPN --- libpathod/pathoc.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'libpathod/pathoc.py') diff --git a/libpathod/pathoc.py b/libpathod/pathoc.py index 9c021360..c42cc82a 100644 --- a/libpathod/pathoc.py +++ b/libpathod/pathoc.py @@ -30,13 +30,8 @@ class SSLInfo: self.certchain, self.cipher, self.alp = certchain, cipher, alp def __str__(self): - if self.alp: - alp = self.alp - else: - alp = '' - parts = [ - "Application Layer Protocol: %s" % alp, + "Application Layer Protocol: %s" % self.alp, "Cipher: %s, %s bit, %s" % self.cipher, "SSL certificate chain:" ] -- cgit v1.2.3