Megatest

Check-in [ad7092727d]
Login
Overview
Comment:wip
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.70-captain-ulex | v1.70-defunct-try
Files: files | file ages | folders
SHA1: ad7092727d0240cb20788979b288e60014e238cb
User & Date: mrwellan on 2020-01-02 19:48:57
Other Links: branch diff | manifest | tags
Context
2020-01-02
21:39
wip check-in: b95526b7f3 user: matt tags: v1.70-captain-ulex, v1.70-defunct-try
19:48
wip check-in: ad7092727d user: mrwellan tags: v1.70-captain-ulex, v1.70-defunct-try
2020-01-01
23:28
wip check-in: 852e127507 user: matt tags: v1.70-captain-ulex, v1.70-defunct-try
Changes

Modified ulex/ulex.scm from [b8061e96e6] to [d39aeae93d].

168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
;; create a tcp listener and return a populated udat struct with
;; my port, address, hostname, pid etc.
;; return #f if fail to find a port to allocate.
;;
(define (start-server-find-port udata #!optional (port 4242)) 
  (handle-exceptions
      exn
      (if (< port 65535)(connect-server-find-port udata (+ port 1)) #f)
    (connect-server udata port)))

(define (connect-server udata port)
  ;; (tcp-listener-socket LISTENER)(socket-name so)
  ;; sockaddr-address, sockaddr-port, sockaddr->string
  (let* ((tlsn (tcp-listen port 1000 #f)) ;; (tcp-listen TCPPORT [BACKLOG [HOST]])
	 (addr (get-my-best-address))) ;; (hostinfo-addresses (host-information (current-hostname)))







|







168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
;; create a tcp listener and return a populated udat struct with
;; my port, address, hostname, pid etc.
;; return #f if fail to find a port to allocate.
;;
(define (start-server-find-port udata #!optional (port 4242)) 
  (handle-exceptions
      exn
      (if (< port 65535)(start-server-find-port udata (+ port 1)) #f)
    (connect-server udata port)))

(define (connect-server udata port)
  ;; (tcp-listener-socket LISTENER)(socket-name so)
  ;; sockaddr-address, sockaddr-port, sockaddr->string
  (let* ((tlsn (tcp-listen port 1000 #f)) ;; (tcp-listen TCPPORT [BACKLOG [HOST]])
	 (addr (get-my-best-address))) ;; (hostinfo-addresses (host-information (current-hostname)))
253
254
255
256
257
258
259
260



261
262
263
264
265
266
267
268
269
270
271
		 handler " "
		 (udat-my-address  udata) ":" (udat-my-port udata) " "
		 (udat-my-hostname udata) " "
		 (udat-my-pid      udata) " "
		 qrykey)
		oup)
    (write-line data oup))) ;; we must send a second line - for the ack let it be the qrykey 
  



;; send back ack
;;
(define (send-ack udata host-port qrykey #!optional (hostname #f)(pid #f))
  (reply udata "ack" qrykey oup qrykey hostname pid)) ;; we must send a second line - for the ack let it be the qrykey 
  
;; 
;;
(define (ulex-handler udata)
  (let* ((serv-listener (udat-serv-listener udata)))
    (let-values (((inp oup)(tcp-accept serv-listener)))
      ;; data comes as two lines







|
>
>
>



|







253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
		 handler " "
		 (udat-my-address  udata) ":" (udat-my-port udata) " "
		 (udat-my-hostname udata) " "
		 (udat-my-pid      udata) " "
		 qrykey)
		oup)
    (write-line data oup))) ;; we must send a second line - for the ack let it be the qrykey 

(define (add-to-work-queue udata . blah)
  #f)

;; send back ack
;;
(define (send-ack udata host-port qrykey #!optional (hostname #f)(pid #f))
  (reply udata "ack" qrykey qrykey hostname pid)) ;; we must send a second line - for the ack let it be the qrykey 
  
;; 
;;
(define (ulex-handler udata)
  (let* ((serv-listener (udat-serv-listener udata)))
    (let-values (((inp oup)(tcp-accept serv-listener)))
      ;; data comes as two lines
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
	       ((ack)(print "Got ack!"))
	       ((rucaptain)
		(reply udata host:port "iamcaptain" qrykey (if (udat-my-cpkt-key udata)
							       "yes"
							       "no")))
	       (else
		(send-ack udata host:port qrykey hostname pid)
		(add-to-work-queue (get-peer-dat udata host:port) handlerkey data)))
	     (else (print "BAD DATA? handler=" handler " data=" data)))))
	(loop state)))))

;;======================================================================
;; connection setup and management functions
;;======================================================================

;; find or become the captain, return a ulex object







|
|







283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
	       ((ack)(print "Got ack!"))
	       ((rucaptain)
		(reply udata host:port "iamcaptain" qrykey (if (udat-my-cpkt-key udata)
							       "yes"
							       "no")))
	       (else
		(send-ack udata host:port qrykey hostname pid)
		(add-to-work-queue udata (get-peer-dat udata host:port) handlerkey data)))
	     (else (print "BAD DATA? handler=" handlerkey " data=" data)))))
	(loop state)))))

;;======================================================================
;; connection setup and management functions
;;======================================================================

;; find or become the captain, return a ulex object