Index: session.scm ================================================================== --- session.scm +++ session.scm @@ -693,23 +693,27 @@ (if (< (length tail) 1) ;; true if done (string-intersperse newresult "&") (loop (car tail)(cadr tail)(cddr tail) newresult)))))) (define (session:link-to self page params) - (let* ((server (or (get-environment-variable "HTTPS_HOST") ;; Assuming HTTPS_HOST is only set if available - (get-environment-variable "HTTP_HOST") - (get-environment-variable "SERVER_NAME"))) + (let* ((https-host (get-environment-variable "HTTPS_HOST")) + (server (or https-host ;; Assuming HTTPS_HOST is only set if available + (get-environment-variable "HTTP_HOST") + (get-environment-variable "SERVER_NAME"))) (force-script (sdat-get-script self)) - (script (or force-script - (let ((script-name (string-split (get-environment-variable "SCRIPT_NAME") "/"))) - (if (> (length script-name) 1) - (string-append (car script-name) "/" (cadr script-name)) - (get-environment-variable "SCRIPT_NAME"))))) ;; build script name from first two elements. This is a hangover from before I used ? in the URL.) - (session-key (sdat-get-session-key self)) - (paramstr (session:param->string params))) + (script (or force-script + (let ((script-name (string-split (get-environment-variable "SCRIPT_NAME") "/"))) + (if (> (length script-name) 1) + (string-append (car script-name) "/" (cadr script-name)) + (get-environment-variable "SCRIPT_NAME"))))) ;; build script name from first two elements. This is a hangover from before I used ? in the URL.) + (session-key (sdat-get-session-key self)) + (paramstr (session:param->string params))) ;; (session:log self "server=" server " script=" script " page=" page) - (string-append "http://" server "/" script "/" page "?" paramstr))) ;; "/sn=" session-key))) + (string-append (if https-host + "https://" + "http://") + server "/" script "/" page "?" paramstr))) ;; "/sn=" session-key))) (define (session:cgi-out self) (let* ((content (list (sdat-get-content-type self))) ;; '("Content-type: text/html; charset=iso-8859-1\n\n")) (header (let ((cookie (sdat-get-session-cookie self))) (if cookie