• Kirill Smelkov's avatar
    go/zodb/zeo: Add support for protocols preceding ZEO5 · 5f30b4c0
    Kirill Smelkov authored
    In particular try to support ZEO4:
    
    - during handshake we now first wait for remote server to announce its
      preferred protocol, and only then send the version we select to use.
      This is the procedure original ZEO server-client do.
    
    - teach rpc.call to decode exceptions not only for how ZEO5 encodes them
      (marking via 2 flag in "async" field), but also on how ZEO4 and
      earlier encode them: via replying with (exc_type, exc_inst) and
      expecting client to dynamically check exc_type is a subtype of
      Exception.
    
    - handle other protocol differences - e.g. ZEO5 returns last_tid on
      register(), while earlier versions return nothing there.
    
    Tests pending.
    5f30b4c0
zrpc.go 11.9 KB