• unknown's avatar
    WL2278 Dynamic ports - Impl 6, "deal with mgm server restart and multiple mgm servers" · 6bd9c85a
    unknown authored
    - when connecting to a mgm server as a transporter, create a NdbMgmHandle
      - over this mgm handle, report the dynamic ports
      - then turn it into a transporter
    - this will re-report dynamic ports to mgmds when they restart (as we'll have to
    set up our transporter again). This will also report it to all mgmds (as we'll
    have transporters to all of them).
    
    
    ndb/include/mgmapi/mgmapi.h:
      Add ndb_mgm_convert_to_transporter
       - converts to a transporter connect
       - destroys the handle (without disconnecting)
       - returns socket
    ndb/include/transporter/TransporterRegistry.hpp:
      Add prototype for connect_ndb_mgmd
    ndb/include/util/SocketClient.hpp:
      Remove connect_without_auth
      
      Add get_port() and get_server_name()
    ndb/src/common/transporter/Transporter.cpp:
      use TransporterRegistry::connect_ndb_mgmd() to make the connection if isMgmConnection
    ndb/src/common/transporter/TransporterRegistry.cpp:
      Impliment TransporterRegistry::connect_ndb_mgmd
      
      - takes a SocketClient and constructs a connectstring.
      - uses this connect string to make a NdbMgmHandle
      - send dynamic ports to this mgm server
      - transform into a transporter connect
      - return socket
    ndb/src/common/util/SocketClient.cpp:
      Remove connect_without_auth
    ndb/src/kernel/main.cpp:
      Don't relay dynamic ports. We now do this on transporter connect
    ndb/src/mgmapi/mgmapi.cpp:
      Impliment ndb_mgm_convert_to_transporter
      - converts the mgm connection into a transporter connection
      - destroys the handle
      - returns the socket that should now be used as a transporter
    6bd9c85a
mgmapi.cpp 52.7 KB