Megatest

Diff
Login

Differences From Artifact [5508c67588]:

To Artifact [68db235c39]:


90
91
92
93
94
95
96
97
98
99
100
101
102
103
104








105
106
107
108
109
110
111
90
91
92
93
94
95
96








97
98
99
100
101
102
103
104
105
106
107
108
109
110
111







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







   (lambda (var curr)
     (or curr var curr))
   #f
   db
   "SELECT (port) FROM ports WHERE state='released' LIMIT 1;"))

(define (portlogger:find-port db)
  (let ((lowport (let ((val (configf:lookup *configdat* "server" "lowport")))
		   (if (and val 
			    (string->number val))
		       (string->number val)
		       32768)))
	(portnum (or (portlogger:get-prev-used-port db)
		     (+ lowport ;; top of registered ports is 49152 but lets use ports in the registered range
			(random (- 64000 lowport))))))
  (let* ((lowport (let ((val (configf:lookup *configdat* "server" "lowport")))
		    (if (and val 
			     (string->number val))
			(string->number val)
			32768)))
	 (portnum (or (portlogger:get-prev-used-port db)
		      (+ lowport ;; top of registered ports is 49152 but lets use ports in the registered range
			 (random (- 64000 lowport))))))
    (portlogger:take-port db portnum)
    portnum))

;; set port to "released", "failed" etc.
;; 
(define (portlogger:set-port db portnum value)
  (sqlite3:execute db "UPDATE ports SET state=?,update_time=strftime('%s','now') WHERE port=?;" value portnum))