Megatest

Diff
Login

Differences From Artifact [52a482f03f]:

To Artifact [62d94099bf]:


68
69
70
71
72
73
74


75
76
77
78
79







80
81
82
83
84
85
86
68
69
70
71
72
73
74
75
76





77
78
79
80
81
82
83
84
85
86
87
88
89
90







+
+
-
-
-
-
-
+
+
+
+
+
+
+







			(configf:lookup *configdat* "server" "transport")
			"rpc"))))
	(set! *transport-type* ttype)
	ttype)))
	    
;; Generate a unique signature for this server
(define (server:mk-signature)
  (if *server-id*
      *server-id*
  (message-digest-string (md5-primitive) 
			 (with-output-to-string
			   (lambda ()
			     (write (list (current-directory)
					  (argv)))))))
      (let ((sig (message-digest-string (md5-primitive) 
                                        (with-output-to-string
                                          (lambda ()
                                            (write (list (current-directory)
                                                         (argv))))))))
        (set! *server-id* sig)
        sig)))

;; When using zmq this would send the message back (two step process)
;; with spiffy or rpc this simply returns the return data to be returned
;; 
(define (server:reply return-addr query-sig success/fail result)
  (debug:print-info 11 *default-log-port* "server:reply return-addr=" return-addr ", result=" result)
  ;; (send-message pubsock target send-more: #t)
407
408
409
410
411
412
413





414
415
416
417
418
419
420
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429







+
+
+
+
+







		 (server-dat (http-transport:client-connect iface port))
		 (login-res  (rmt:login-no-auto-client-setup server-dat)))
	    (if (and (list? login-res)
		     (car login-res))
		(begin
		  ;; (print "LOGIN_OK")
		  (if do-exit (exit 0))
                  (if (> (length login-res) 2) ;; we are expecting ( #t "message" "serversig" )
                      (begin
                        (set! *server-id* (caddr login-res))
                        (debug:print-info 1 *default-log-port* "Connected to server " *server-id*))
                      (debug:print 0 *default-log-port* "ERROR: connected to server but no server signature provided."))
		  #t)
		(begin
		  ;; (print "LOGIN_FAILED")
		  (if do-exit (exit 1))
		  #f)))))))

;; run ping in separate process, safest way in some cases