Index: commonmod.scm ================================================================== --- commonmod.scm +++ commonmod.scm @@ -390,11 +390,10 @@ *db-api-call-time* *no-sync-db* *my-signature* *transport-type* *logged-in-clients* -*server-info* *server-run* *run-id* *server-kind-run* *home-host* *heartbeat-mutex* @@ -974,12 +973,10 @@ ;; replaced by *rmt:remote* ;; (define *runremote* #f) ;; if set up for server communication this will hold ;; (define *max-cache-size* 0) (define *logged-in-clients* (make-hash-table)) ;; (define *server-id* #f) -(define *server-info* #f) ;; good candidate for easily convert to non-global -;; (define *time-to-exit* #f) (define *server-run* #t) (define *run-id* #f) (define *server-kind-run* (make-hash-table)) (define *home-host* #f) ;; (define *total-non-write-delay* 0) Index: rmtmod.scm ================================================================== --- rmtmod.scm +++ rmtmod.scm @@ -1638,18 +1638,20 @@ (define (rmt:run hostn) ;; ;; Configurations for server ;; (tcp-buffer-size 2048) ;; (max-connections 2048) (debug:print 2 *default-log-port* "PID: "(current-process-id)". Attempting to start the server ...") - (if *db-serv-info* + (if (and *db-serv-info* + (servdat-uconn *db-serv-info*)) (let* ((uconn (servdat-uconn *db-serv-info*))) (wait-and-close uconn)) (let* ((port (portlogger:open-run-close portlogger:find-port)) (handler-proc (lambda (rem-host-port qrykey cmd params) ;; (api:execute-requests *dbstruct-db* cmd params)))) ;; (api:process-request *dbstuct-db* - (set! *db-serv-info* (make-servdat host: hostn port: port)) + (if (not *db-serv-info*) + (set! *db-serv-info* (make-servdat host: hostn port: port))) (let* ((uconn (run-listener handler-proc port)) (rport (udat-port uconn))) ;; the real port (servdat-host-set! *db-serv-info* hostn) (servdat-port-set! *db-serv-info* rport) (servdat-uconn-set! *db-serv-info* uconn) Index: tests/unittests/basicserver.scm ================================================================== --- tests/unittests/basicserver.scm +++ tests/unittests/basicserver.scm @@ -45,10 +45,15 @@ ;; get-viable-servers ;; get-best-candidate ;; api:run-server-process ;; rmt:run ;; rmt:try-start-server + ;; + ;; ulex + ;; + wait-and-close + run-listener ) (test #f #t (servdat? (let ((s (make-servdat))) (set! *servdat* s) s))) @@ -57,21 +62,24 @@ (define th1 (make-thread (lambda () (rmt:run (get-host-name))) "rmt:run thread")) (thread-start! th1) (thread-sleep! 0.5) ;; give things some time to get going -(test #f #t (ulex-listener? *server-info*)) -(test #f #t (string? (udat-host-port *server-info*))) -(exit) -(test #f #t (server-ready? *server-info* (udat-host-port *server-info*))) - -(test #f #t (rmt:open-main-connection *servdat* *toppath*)) -;; (pp (hash-table->alist (remotedat-conns *servdat*))) -(test #f #t (conndat? (rmt:get-conn *servdat* *toppath* ".db/main.db"))) +;; switch to *db-serv-info* instead of *servdat* +(define *uconn* (servdat-uconn *db-serv-info*)) +(print "*uconn*: " *uconn*) +(test #f #t (ulex-listener? (servdat-uconn *db-serv-info*))) +(test #f #t (string? (udat-host-port *uconn*))) + +(test #f #t (server-ready? *db-serv-dat* (udat-host-port *db-serv-dat*))) + +(test #f #t (rmt:open-main-connection *db-serv-info* *toppath*)) +;; (pp (hash-table->alist (remotedat-conns *db-serv-info*))) +(test #f #t (conndat? (rmt:get-conn *db-serv-info* *toppath* ".db/main.db"))) (exit) -(define *main* (rmt:get-conn *servdat* *toppath* ".db/main.db")) +(define *main* (rmt:get-conn *db-serv-info* *toppath* ".db/main.db")) ;; (for-each (lambda (tdat) ;; (test #f tdat (loop-test (rmt:conn-ipaddr *main*) ;; (rmt:conn-port *main*) tdat))) ;; (list 'a @@ -81,13 +89,13 @@ (define *db* (db:setup ".db/main.db")) ;; these let me cut and paste from source easily (define apath *toppath*) (define dbname ".db/2.db") -(define remote *servdat*) +(define remote *db-serv-info*) (define keyvals '(("SYSTEM" "a")("RELEASE" "b"))) (test #f '() (string->sexpr "()")) (test #f 'server-started (api:execute-requests *db* 'get-server (list *toppath* ".db/2.db"))) (set! *dbstruct-db* #f) (exit)