diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2016-06-07 17:12:52 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2016-06-07 17:12:52 +1200 |
commit | 1ffc273c9433fc8840b71c79879ae427c93313bd (patch) | |
tree | a656cb3f336a64d37967dbd4c36cad040370d72a /netlib | |
parent | b180bfcf35302cb37f93be60ff954c6d645002b0 (diff) | |
download | mitmproxy-1ffc273c9433fc8840b71c79879ae427c93313bd.tar.gz mitmproxy-1ffc273c9433fc8840b71c79879ae427c93313bd.tar.bz2 mitmproxy-1ffc273c9433fc8840b71c79879ae427c93313bd.zip |
Utils cleanups
- Move more stuff that belongs in netlib.human
- Move some stuff to near the only use
- Zap mitmproxy.utils.timestamp(). I see the rationale, but we used it
interchangeably with time.time() throughout the project. Since time.time()
dominates in the codebase and timestamp() is such low utility, away it goes.
Diffstat (limited to 'netlib')
-rw-r--r-- | netlib/http/http1/assemble.py | 4 | ||||
-rw-r--r-- | netlib/http/url.py | 15 | ||||
-rw-r--r-- | netlib/human.py | 14 | ||||
-rw-r--r-- | netlib/utils.py | 15 |
4 files changed, 30 insertions, 18 deletions
diff --git a/netlib/http/http1/assemble.py b/netlib/http/http1/assemble.py index 00d1563b..511328f1 100644 --- a/netlib/http/http1/assemble.py +++ b/netlib/http/http1/assemble.py @@ -1,6 +1,6 @@ from __future__ import absolute_import, print_function, division -from netlib import utils +import netlib.http.url from netlib import exceptions @@ -82,7 +82,7 @@ def _assemble_request_headers(request_data): """ headers = request_data.headers.copy() if "host" not in headers and request_data.scheme and request_data.host and request_data.port: - headers["host"] = utils.hostport( + headers["host"] = netlib.http.url.hostport( request_data.scheme, request_data.host, request_data.port diff --git a/netlib/http/url.py b/netlib/http/url.py index 5d461387..2fc6e7ee 100644 --- a/netlib/http/url.py +++ b/netlib/http/url.py @@ -78,7 +78,7 @@ def unparse(scheme, host, port, path=""): """ if path == "*": path = "" - return "%s://%s%s" % (scheme, utils.hostport(scheme, host, port), path) + return "%s://%s%s" % (scheme, hostport(scheme, host, port), path) def encode(s): @@ -94,3 +94,16 @@ def decode(s): Takes a urlencoded string and returns a list of (key, value) tuples. """ return urllib.parse.parse_qsl(s, keep_blank_values=True) + + +def hostport(scheme, host, port): + """ + Returns the host component, with a port specifcation if needed. + """ + if (port, scheme) in [(80, "http"), (443, "https"), (80, b"http"), (443, b"https")]: + return host + else: + if isinstance(host, six.binary_type): + return b"%s:%d" % (host, port) + else: + return "%s:%d" % (host, port) diff --git a/netlib/human.py b/netlib/human.py index a007adc7..72e96d30 100644 --- a/netlib/human.py +++ b/netlib/human.py @@ -1,3 +1,6 @@ +import datetime +import time + SIZE_TABLE = [ ("b", 1024 ** 0), @@ -48,3 +51,14 @@ def pretty_duration(secs): return formatter.format(secs) # less than 1 sec return "{:.0f}ms".format(secs * 1000) + + +def format_timestamp(s): + s = time.localtime(s) + d = datetime.datetime.fromtimestamp(time.mktime(s)) + return d.strftime("%Y-%m-%d %H:%M:%S") + + +def format_timestamp_with_milli(s): + d = datetime.datetime.fromtimestamp(s) + return d.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3] diff --git a/netlib/utils.py b/netlib/utils.py index b4b99679..79340cbd 100644 --- a/netlib/utils.py +++ b/netlib/utils.py @@ -4,8 +4,6 @@ import re import importlib import inspect -import six - def setbit(byte, offset, value): """ @@ -94,16 +92,3 @@ def is_valid_host(host): def is_valid_port(port): return 0 <= port <= 65535 - - -def hostport(scheme, host, port): - """ - Returns the host component, with a port specifcation if needed. - """ - if (port, scheme) in [(80, "http"), (443, "https"), (80, b"http"), (443, b"https")]: - return host - else: - if isinstance(host, six.binary_type): - return b"%s:%d" % (host, port) - else: - return "%s:%d" % (host, port) |