• Kirill Smelkov's avatar
    X go/zodb/zeo: Add support for protocols preceding ZEO5 · 60c4ddbe
    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.
    60c4ddbe
zrpc.go 11.9 KB