px

An HTTP proxy server to automatically authenticate through an NTLM proxy

MIT License

Downloads
1.2K
Stars
942
Committers
17
px - Px v0.9.2 Latest Release

Published by genotrance 8 months ago

  • Fixed issue with libcurl binary on Windows - #212
px - Px v0.9.1

Published by genotrance 8 months ago

  • Fixed issue with logging not working when set from px.ini - #204
  • Fixed issue with environment variables not propagating to all processes in Linux
  • Documented how to install binary version of Px on Windows without running in a
    console window - #203
  • Fixed issue with quickjs crashing in PAC mode with multiple threads - #198 / #206
px - Px v0.9.0

Published by genotrance 9 months ago

  • Added support for domains in noproxy - #2
  • Expanded noproxy to work in all proxy modes - #177
  • Added --test to verify Px configuration
  • Windows binary now created with embeddable Python to avoid being flagged
    by virus scanners - #182 #197
  • Added support for Python 3.11 and 3.12, removed Python 2.7
  • Fixed #183 - keyring import on OSX
  • Fixed #187 - removed dependency on keyring_jeepney which is deprecated
  • Fixed #188 - removed keyrings.alt and added docs for leveraging third
    party keyring backends
  • Added support to load Px flags from environment variables and dotenv files
  • Changed loading order of px.ini - from CLI flag first, environment next,
    working directory and finally from the Px directory
  • Fixed #200 - print debug messages when --gateway or --hostonly overrides
    listen and allow rules
  • Fixed #199 - cache auth mechanism that libcurl discovers and uses with
    upstream proxy - speeds up transactions and avoids POST/PUT rewind issue
  • Added support to log to the working directory - #189. Logging destination now
    configurable via CLI, env and px.ini.
  • Added --restart to quit Px and start a new instance - #185
  • Fixed #184 - PAC proxy list was including blank entries
  • Fixed #152 - increased number of default threads from 5 to 32
  • Fixed issue leading to connection reuse by client after HTTPS connection was
    closed by server
  • Mapped additional libcurl errors to HTTP errors to inform client
  • Added support to listen on multiple interfaces - #195
  • Added support for --auth=NONE which defers all authentication to the client,
    allowing multiple instances of Px to be chained together to access an upstream
    proxy that is not directly connected
  • Fixed issue with getting all interfaces correctly for --hostonly
  • Fixed issue with HTTP PUT not working in some scenarios
  • Added support for client authentication - support for NEGOTIATE, NTLM, DIGEST
    and BASIC auth with SSPI when available - #117
  • Refined --quit to directly communicate with running instances instead of looking
    for process matches - fixed issue on OSX where Px was not quitting in script and
    pip modes
px - Px v0.8.4

Published by genotrance over 1 year ago

  • Support for specifying PAC file encoding - #167
  • Fixed #164 - PAC function myIpAddress() was broken
  • Fixed #161 - PAC regex search was failing
  • Fixed #171 - Verbose output implies --foreground
px - Px v0.8.3

Published by genotrance over 2 years ago

  • Fixed #157 - libcurl wrapper was missing socket definitions for OSX
  • Fixed #158 - win32ctypes was not being included in Windows binary
  • Fixed #160 - need to convert PAC return values into CURLOPT_PROXY schemes
px - Px v0.8.2

Published by genotrance over 2 years ago

  • Fixed #155 - prevent SSL connection reuse for libcurl < v7.45
px - Px v0.8.1

Published by genotrance over 2 years ago

  • Fixed #154 - improved SSL connection handling with libcurl by querying active
    socket to get the sock_fd in select() instead of relying on sockopt_callback()
    which does not get called when connections get reused
  • Fixed keyring dependencies on Linux
  • Added infrastructure to generate and post binary wheels for Px and all its
    dependencies for offline installation
px - Px v0.8.0

Published by genotrance over 2 years ago

  • Added PAC file support for Linux
  • Local PAC files on Windows are now processed using QuickJS instead of WinHttp
  • Added CAINFO bundle in Windows builds
px - Px v0.7.2

Published by genotrance over 2 years ago

  • Fixed #152 - handle connection errors in select loop gracefully
  • Fixed #151 - handle libcurl 7.29 on Centos7
px - Px v0.7.1

Published by genotrance over 2 years ago

  • Fixed #146 - px --install was broken when run in cmd.exe, also when
    run as python -m px
  • Fixed #148 - 407 proxy required was not being detected generically
  • Fixed #151 - handle older versions of libcurl gracefully
  • Fixed issues with --quit not exiting child processes or working correctly
    in binary mode
px - Px v0.7.0

Published by genotrance over 2 years ago

  • Switched to using libcurl for all outbound HTTP connections and proxy auth
  • Removed dependency on ntlm-auth, pywin32 and winkerberos
  • Added --password to prompt and save password to default keyring for non single
    sign-on use cases
  • Px is no longer involved in and hence unable to cache the proxy authentication
    mechanism used by libcurl for subsequent connections
  • Added --verbose to log to stdout but not write to files
  • Logging output now includes more details of the call tree
  • Fixed issue where debug output from child processes on Linux were duplicated
    to the main process log
  • Package structure has changed significantly to meet Python / pip requirements
  • Updated release process to post Windows binary wheels containing libcurl and
    the full README in markdown format as the description on Pypi.org
  • Vendoring https://github.com/karpierz/libcurl with minor changes until upstream
    officially supports Linux
px - Px v0.6.3

Published by genotrance over 2 years ago

  • Fixed #139, #141 - bug in noproxy parsing
px - Px v0.6.2

Published by genotrance over 2 years ago

  • Fixed #137 - quit() and save() don't work on Windows
px - Px v0.6.1

Published by genotrance over 2 years ago

  • Enabled multiprocessing on Linux
px - Px v0.6.0

Published by genotrance over 2 years ago

  • Moved all Windows proxy detection code into wproxy.py, eventually to be made
    an independent module
  • Moved debugging code into separate debug.py module
  • Removed support for file:// PAC files configured in network settings since
    Windows 10 no longer supports this scheme (see https://bit.ly/3JKPgjR)
  • Added support in wproxy to detect proxies defined via environment variables
  • Added support for Linux - only NTLM and BASIC authentication are supported
    for now, PAC files are not supported and Px is limited to a single process
px - Px for Windows

Published by genotrance over 2 years ago

  • Fixed #128 - IP:port split once from the right
  • Binary is now built using Nuitka
  • Moved PyInstaller build script to tools.py
  • Removed px.ico from PyInstaller build since it upsets anti-virus tools
px - Px for Windows

Published by genotrance over 2 years ago

  • Added support for issue #58 - authentication with user/password when SSPI is
    unavailable or not preferred.
  • Pulled PR #68 to handle case where no longer behind PAC proxy
  • Fixed minor bug in file:// PAC file handling
  • Implemented #65 - support for specifying PAC in INI
  • Implemented #73 - force auth mechanism in INI
  • Merged PR #85 - sanitize authorization header, shutdown socket, defer
    connection header during auth (#71), drop completely for CONNECT, forward
    error body, 2.7 fix
  • Switched to Python 3.7, drop 3.4 support
  • Merged PR #80 - fallback to DIRECT if no proxy found via auto or PAC discovery
  • Added basic auth support (PR #82)
  • Fixed issue where an empty domain was breaking password access
  • Fixed #88, issue 2 in #71, PR #83 - use auth mechanism in order
  • Added code to keep-alive during authentication - issue 3 in #71
  • Fixed #108 - case sensitive authentication response
  • Fixed #116 - Python 3.0 deprecation compatibility
  • Fixed #122 - pywin32 import order
  • Resolved #72 via documentation update
  • Minor changes to improve client and proxy disconnects
px - Px for Windows

Published by genotrance over 5 years ago

  • Implemented #65 - support for specifying PAC in INI
  • Implemented #73 - force auth mechanism in INI
  • Merged PR #85 - sanitize authorization header, shutdown socket, defer
    connection header during auth (#71), drop completely for CONNECT, forward
    error body, 2.7 fix
  • Switched to Python 3.7, drop 3.4 support
  • Merged PR #80 - fallback to DIRECT if no proxy found via auto or PAC discovery
  • Added basic auth support (PR #82)
  • Fixed issue where an empty domain was breaking password access
  • Fixed #88, issue 2 in #71, PR #83 - use auth mechanism in order
  • Added code to keep-alive during authentication - issue 3 in #71
px - Px for Windows

Published by genotrance almost 6 years ago

  • Add support for issue #58 - authentication with user/password when SSPI is
    unavailable or not preferred.
  • Pull PR #68 to handle case where no longer behind PAC proxy
  • Fix minor bug in file:// PAC file handling
px - Px for Windows

Published by genotrance about 6 years ago

  • Add support for issue #58 - authentication with user/password when SSPI is
    unavailable or not preferred.
Package Rankings
Top 9.0% on Pypi.org
Top 29.11% on Conda-forge.org
Top 7.52% on Proxy.golang.org
Badges
Extracted from project README
Chat on Gitter Chat on Matrix
Related Projects