Index: http-transportmod.scm ================================================================== --- http-transportmod.scm +++ http-transportmod.scm @@ -470,11 +470,11 @@ (define (server-ready? host port) ;; server-address is host:port ;; ping the server and ask it ;; if it ready (let* ((sdat (servdat-init #f host port #f))) - (http-transport:send-receive sdat 'ping '()))) + (http-transport:send-receive sdat "abc" 'ping '()))) ;; from the pkts return servers associated with dbpath ;; NOTE: Only one can be alive - have to check on each ;; in the list of pkts returned ;; @@ -489,16 +489,16 @@ (cons spkt res) res)))))) ;; from viable servers get one that is alive and ready ;; -(define (get-the-server serv-pkts dbpath) +(define (get-the-server serv-pkts) (let loop ((tail serv-pkts)) (if (null? tail) #f (let* ((spkt (car tail)) - (host (alist-ref 'host spkt)) + (host (alist-ref 'ipaddr spkt)) (port (alist-ref 'port spkt)) (addr (server-address spkt))) (if (server-ready? host port) spkt (loop (cdr tail))))))) Index: rmtmod.scm ================================================================== --- rmtmod.scm +++ rmtmod.scm @@ -178,25 +178,27 @@ (if (and conn (> (current-seconds) (rmt:conn-expires conn))) conn #f))) - -;; (rmt:general-open-connection remote apath dbname)))) +(define (rmt:find-main-server apath dbname) + (let* ((pktsdir (get-pkts-dir apath)) + (all-srvpkts (get-all-server-pkts pktsdir *srvpktspec*)) + (dbpath (conc apath "/" dbname)) + (viable-srvs (get-viable-servers all-srvpkts dbpath))) + (get-the-server viable-srvs))) ;; looks for a connection to main ;; connections for other servers happens by requesting from main ;; (define (rmt:open-main-connection remote apath) - (let* ((pktsdir (get-pkts-dir apath)) - (all-srvpkts (get-all-server-pkts pktsdir *srvpktspec*)) - (viable-srvs (get-viable-servers all-srvpkts apath)) - (the-srv (get-the-server viable-srvs apath)) - (dbname (db:run-id->dbname #f)) + (let* ((dbname (db:run-id->dbname #f)) + (the-srv (rmt:find-main-server apath dbname)) (start-main-srv (lambda () ;; srv not ready, delay a little and try again - (system (conc "nbfake megatest -server - -area "apath" -db "dbname)) + (system (conc "nbfake megatest -server - -area "apath + " -db "dbname)) (thread-sleep! 1.5) (rmt:open-main-connection remote apath) ;; TODO: Add limit to number of tries ))) (if the-srv ;; yes, we have a server, now try connecting to it (let* ((srv-addr (server-address the-srv))