Index: session.scm ================================================================== --- session.scm +++ session.scm @@ -139,10 +139,11 @@ (sdat-set-pagevars-before! self (make-hash-table)) (sdat-set-sessionvars-before! self (make-hash-table)) (sdat-set-globalvars-before! self (make-hash-table)) (sdat-set-domain! self "locahost") ;; end of defaults (sdat-set-script! self #f) + (sdat-set-force-ssl! self #f) (let* ((rawconfigdat (session:read-config self)) (configdat (if rawconfigdat (eval rawconfigdat) '())) (sroot (s:find-param 'sroot configdat)) (logfile (s:find-param 'logfile configdat)) (dbtype (s:find-param 'dbtype configdat)) @@ -699,23 +700,23 @@ (loop (car tail)(cadr tail)(cddr tail) newresult)))))) (define (session:link-to self page params) (let* ((https-host (get-environment-variable "HTTPS_HOST")) (force-ssl (sdat-get-force-ssl self)) - (server (or (sdat-get-domain self) - https-host ;; Assuming HTTPS_HOST is only set if available + (server (or https-host ;; Assuming HTTPS_HOST is only set if available (get-environment-variable "HTTP_HOST") - (get-environment-variable "SERVER_NAME"))) + (get-environment-variable "SERVER_NAME") + (sdat-get-domain self))) (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))) - ;; (session:log self "server=" server " script=" script " page=" page) + (session:log self "server=" server " script=" script " page=" page) (string-append (if (or https-host force-ssl) "https://" "http://") server "/" script "/" page "?" paramstr))) ;; "/sn=" session-key)))