abrasive / nxBender

Open source client for netExtender SSL VPNs
BSD 3-Clause "New" or "Revised" License
41 stars 20 forks source link

Crash due to removal of ssl.wrap_socket #22

Open flinti opened 4 months ago

flinti commented 4 months ago

ssl.wrap_socket is deprecated since Python 3.7 and has recently been removed in Python 3.12.

On Python 3.12, nxBender therefore fails with:

Traceback (most recent call last):
  File "/usr/local/bin/nxBender", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/opt/nxBender/lib/python3.12/site-packages/nxbender/__init__.py", line 69, in main
    sess.run()
  File "/opt/nxBender/lib/python3.12/site-packages/nxbender/nx.py", line 103, in run
    self.tunnel()
  File "/opt/nxBender/lib/python3.12/site-packages/nxbender/nx.py", line 216, in tunnel
    pppd.run()
  File "/opt/nxBender/lib/python3.12/site-packages/nxbender/ppp.py", line 51, in run
    self.tunsock = sslconn.SSLTunnel(self.session_id, self.options, self.options.server, self.options.port)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/nxBender/lib/python3.12/site-packages/nxbender/sslconn.py", line 38, in __init__
    super(SSLTunnel, self).__init__(*args, **kwargs)
  File "/opt/nxBender/lib/python3.12/site-packages/nxbender/sslconn.py", line 17, in __init__
    self.s = ssl.wrap_socket(sock)
             ^^^^^^^^^^^^^^^
AttributeError: module 'ssl' has no attribute 'wrap_socket'
flinti commented 4 months ago

I created a PR to fix this: #23