1. 15 Jan, 2021 27 commits
  2. 14 Jan, 2021 2 commits
  3. 13 Jan, 2021 10 commits
    • Kirill Smelkov's avatar
      . · 883a1bbc
      Kirill Smelkov authored
      883a1bbc
    • Kirill Smelkov's avatar
      . · 1e41597e
      Kirill Smelkov authored
      1e41597e
    • Kirill Smelkov's avatar
      . · 17daf48d
      Kirill Smelkov authored
      17daf48d
    • Kirill Smelkov's avatar
      . · 0983b672
      Kirill Smelkov authored
      0983b672
    • Kirill Smelkov's avatar
      . · aae27bf2
      Kirill Smelkov authored
      aae27bf2
    • Kirill Smelkov's avatar
      . · c541c99c
      Kirill Smelkov authored
      c541c99c
    • Kirill Smelkov's avatar
      55476bd0
    • Kirill Smelkov's avatar
      . · b9009ed2
      Kirill Smelkov authored
      b9009ed2
    • Kirill Smelkov's avatar
      Merge branch 'master' into t · aea23d6c
      Kirill Smelkov authored
      * master:
        go/neo/neonet: Fix thinko in recvPkt
      aea23d6c
    • Kirill Smelkov's avatar
      Y ssl: Don't ignore non-ragged EOF · 8628699c
      Kirill Smelkov authored
      Testing NEO/go client wrt NEO/py server revealed a bug in NEO/py SSL
      handling: proper non-ragged EOF from a peer is ignored, and so leads to
      hang in infinite loop inside _SSL.receive with read_buf memory growing
      indefinitely. Details are below:
      
      NEO/py wraps raw sockets with
      
      	ssl.wrap_socket(suppress_ragged_eofs=False)
      
      which instructs SSL layer to convert unexpected EOF when receiving a TLS
      record into SSLEOFError exception. However when remote peer properly
      closes its side of the connection, socket.read() still returns b'' to
      report non-ragged regular EOF:
      
      https://github.com/python/cpython/blob/v2.7.18/Lib/ssl.py#L630-L650
      
      The code was handling SSLEOFError but not b'' return from socket recv.
      Thus after NEO/go client was disconnecting and properly closing its side
      of the connection, the code started to loop indefinitely in _SSL.receive
      under `while 1` with  b'' returned by self.socket.recv() appended to
      read_buf again and again.
      
      -> Fix it by detecting non-ragged EOF as well and, similarly to how
      SSLEOFError is handled, converting them into self._error('recv', None).
      8628699c
  4. 12 Jan, 2021 1 commit