@@ -418,20 +418,22 @@ ;; oldest server alive determines host then choose random of youngest ;; five servers on that host ;; (define (server:get-servers-info areapath) - (let* ((servinfodir (conc *toppath*"/.servinfo")) - (allfiles (glob (conc servinfodir"/*"))) - (res (make-hash-table))) - (for-each - (lambda (f) - (let* ((hostport (pathname-strip-directory f)) - (serverdat (server:logf-get-start-info f))) - (hash-table-set! res hostport serverdat))) - allfiles) - res)) + (let* ((servinfodir (conc *toppath*"/.servinfo"))) + (if (not (file-exists? servinfodir)) + (create-directory servinfodir)) + (let* ((allfiles (glob (conc servinfodir"/*"))) + (res (make-hash-table))) + (for-each + (lambda (f) + (let* ((hostport (pathname-strip-directory f)) + (serverdat (server:logf-get-start-info f))) + (hash-table-set! res hostport serverdat))) + allfiles) + res))) ;; oldest server alive determines host then choose random of youngest ;; five servers on that host ;; ;; mode: @@ -491,11 +493,13 @@ (debug:print 0 *default-log-port* "ERROR: invalid command "mode) #f))) (begin (server:run areapath) (thread-sleep! 3) - #f)))) + (case mode + ((homehost) (cons #f #f)) + (else #f)))))) ;; kind start up of server, wait before allowing another server for a given ;; area to be launched ;;