diff options
| -rw-r--r-- | .travis.yml | 2 | ||||
| -rw-r--r-- | docker/DockerfileARMv7 | 45 | ||||
| -rw-r--r-- | mitmproxy/net/websockets/frame.py | 2 | ||||
| -rwxr-xr-x | release/cibuild.py | 12 | ||||
| -rw-r--r-- | test/mitmproxy/net/websockets/test_frame.py | 2 | ||||
| -rw-r--r-- | test/pathod/language/test_websockets.py | 6 |
6 files changed, 59 insertions, 10 deletions
diff --git a/.travis.yml b/.travis.yml index 1b60d2bc..97a26f4e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,7 +49,7 @@ matrix: - python: 3.6 env: NAME=docs TOXENV=docs install: - - wget https://github.com/gohugoio/hugo/releases/download/v0.37/hugo_0.37_Linux-64bit.deb + - wget https://github.com/gohugoio/hugo/releases/download/v0.41/hugo_0.41_Linux-64bit.deb - sudo dpkg -i hugo*.deb - pip install tox virtualenv setuptools - pyenv global system 3.6 diff --git a/docker/DockerfileARMv7 b/docker/DockerfileARMv7 new file mode 100644 index 00000000..2988b5e4 --- /dev/null +++ b/docker/DockerfileARMv7 @@ -0,0 +1,45 @@ +FROM resin/raspberrypi3-alpine:3.7 + +ENV LANG=en_US.UTF-8 + +ARG WHEEL_MITMPROXY +ARG WHEEL_BASENAME_MITMPROXY + +COPY $WHEEL_MITMPROXY /home/mitmproxy/ + +RUN [ "cross-build-start" ] + +# Add our user first to make sure the ID get assigned consistently, +# regardless of whatever dependencies get added. +RUN addgroup -S mitmproxy && adduser -S -G mitmproxy mitmproxy \ + && apk add --no-cache \ + su-exec \ + git \ + g++ \ + libffi \ + libffi-dev \ + libstdc++ \ + openssl \ + openssl-dev \ + python3 \ + python3-dev \ + && python3 -m ensurepip \ + && LDFLAGS=-L/lib pip3 install -U /home/mitmproxy/${WHEEL_BASENAME_MITMPROXY} \ + && apk del --purge \ + git \ + g++ \ + libffi-dev \ + openssl-dev \ + python3-dev \ + && rm -rf ~/.cache/pip /home/mitmproxy/${WHEEL_BASENAME_MITMPROXY} + +RUN [ "cross-build-end" ] + +VOLUME /home/mitmproxy/.mitmproxy + +COPY docker/docker-entrypoint.sh /usr/local/bin/ +ENTRYPOINT ["docker-entrypoint.sh"] + +EXPOSE 8080 8081 + +CMD ["mitmproxy"] diff --git a/mitmproxy/net/websockets/frame.py b/mitmproxy/net/websockets/frame.py index ac6a0812..7b93bc24 100644 --- a/mitmproxy/net/websockets/frame.py +++ b/mitmproxy/net/websockets/frame.py @@ -71,7 +71,7 @@ class FrameHeader: else: self.length_code = length_code - if mask is DEFAULT and masking_key is DEFAULT: + if (mask is DEFAULT and masking_key is DEFAULT) or mask == 0 or mask is False: self.mask = False self.masking_key = b"" elif mask is DEFAULT: diff --git a/release/cibuild.py b/release/cibuild.py index 17fb8554..2d11d69a 100755 --- a/release/cibuild.py +++ b/release/cibuild.py @@ -287,7 +287,7 @@ def build_wheel(be: BuildEnviron): # pragma: no cover def build_docker_image(be: BuildEnviron, whl: str): # pragma: no cover - click.echo("Building Docker image...") + click.echo("Building Docker images...") subprocess.check_call([ "docker", "build", @@ -297,6 +297,15 @@ def build_docker_image(be: BuildEnviron, whl: str): # pragma: no cover "--file", "docker/Dockerfile", "." ]) + subprocess.check_call([ + "docker", + "build", + "--tag", be.docker_tag + "-ARMv7", + "--build-arg", "WHEEL_MITMPROXY={}".format(whl), + "--build-arg", "WHEEL_BASENAME_MITMPROXY={}".format(os.path.basename(whl)), + "--file", "docker/DockerfileARMv7", + "." + ]) def build_pyinstaller(be: BuildEnviron): # pragma: no cover @@ -498,6 +507,7 @@ def upload(): # pragma: no cover "-p", be.docker_password, ]) subprocess.check_call(["docker", "push", be.docker_tag]) + subprocess.check_call(["docker", "push", be.docker_tag + "-ARMv7"]) if __name__ == "__main__": # pragma: no cover diff --git a/test/mitmproxy/net/websockets/test_frame.py b/test/mitmproxy/net/websockets/test_frame.py index 2a5bd556..f5c29c21 100644 --- a/test/mitmproxy/net/websockets/test_frame.py +++ b/test/mitmproxy/net/websockets/test_frame.py @@ -122,7 +122,7 @@ class TestFrameHeader: f = websockets.FrameHeader(masking_key=b"foob", mask=0) assert not f.mask - assert f.masking_key + assert not f.masking_key class TestFrame: diff --git a/test/pathod/language/test_websockets.py b/test/pathod/language/test_websockets.py index ed766bca..64ff024c 100644 --- a/test/pathod/language/test_websockets.py +++ b/test/pathod/language/test_websockets.py @@ -123,12 +123,6 @@ class TestWebsocketFrame: assert not frm.header.mask assert not frm.header.masking_key - frm = self.fr("wf:b'foo':-mask:k'abcd'", is_client=True) - assert not frm.header.mask - # We're reading back a corrupted frame - the first 3 characters of the - # mask is mis-interpreted as the payload - assert frm.payload == b"abc" - def test_knone(self): with pytest.raises(Exception, match="Expected 4 bytes"): self.fr("wf:b'foo':mask:knone") |
