Author: achiumenti Date: Tue Dec 30 17:36:00 2008 New Revision: 176
Log: base path bugfix (when path are empty string for sesisons and lisplets)
Modified: trunk/main/claw-as/src/lisplet.lisp trunk/main/claw-as/src/server.lisp
Modified: trunk/main/claw-as/src/lisplet.lisp ============================================================================== --- trunk/main/claw-as/src/lisplet.lisp (original) +++ trunk/main/claw-as/src/lisplet.lisp Tue Dec 30 17:36:00 2008 @@ -125,7 +125,7 @@ (defmethod claw-server-register-lisplet ((claw-server claw-server) (lisplet lisplet)) (let ((lisplets (claw-server-lisplets claw-server)) (location (lisplet-base-path lisplet))) - (unless (string= "/" (subseq location 0 1)) + (when (or (string= "" location) (not (starts-with-subseq "/" location))) (setf location (concatenate 'string "/" location))) (setf (lisplet-server-address lisplet) (claw-server-address claw-server) (claw-server-lisplets claw-server) (sort-by-location (pushnew-location
Modified: trunk/main/claw-as/src/server.lisp ============================================================================== --- trunk/main/claw-as/src/server.lisp (original) +++ trunk/main/claw-as/src/server.lisp Tue Dec 30 17:36:00 2008 @@ -308,8 +308,6 @@ (*server-path* (or (when (claw-proxified-p) (claw-server-reverse-proxy-path claw-server)) (claw-server-base-path claw-server))) - (rel-script-name) - (rel-script-name-libs) (http-result nil)) (handler-case (progn @@ -317,23 +315,21 @@ (catch 'handler-done (progn (setf (claw-return-code) +http-not-found+) - (if (starts-with-subseq base-path script-name) - (progn - (setf rel-script-name (subseq script-name (length base-path)) - rel-script-name-libs (subseq script-name (length base-path))) - (setf http-result (or - (loop for dispatcher in *claw-libraries-resources* - for url = (car dispatcher) - for action = (cdr dispatcher) - do (when (starts-with-subseq url rel-script-name-libs) - (setf (claw-return-code) +http-ok+) - (funcall action))) - (loop for lisplet-cons in lisplets - for url = (car lisplet-cons) - for lisplet = (cdr lisplet-cons) - do (when (starts-with-subseq url rel-script-name) - (setf (claw-return-code) +http-ok+) - (return (funcall #'lisplet-dispatch-method lisplet))))))))))) + (when (or (string= "" script-name) (starts-with-subseq base-path script-name)) + (let ((rel-script-name (subseq script-name (length base-path)))) + (setf http-result (or + (loop for dispatcher in *claw-libraries-resources* + for url = (car dispatcher) + for action = (cdr dispatcher) + do (when (starts-with-subseq url rel-script-name) + (setf (claw-return-code) +http-ok+) + (funcall action))) + (loop for lisplet-cons in lisplets + for url = (car lisplet-cons) + for lisplet = (cdr lisplet-cons) + do (when (starts-with-subseq url rel-script-name) + (setf (claw-return-code) +http-ok+) + (return (funcall #'lisplet-dispatch-method lisplet))))))))))) (or http-result (and (>= (claw-return-code) 400) (or @@ -353,8 +349,7 @@ (if (= return-code +http-ok+) nil return-code)) - +http-not-found+))))) - )) + +http-not-found+))))))) (error (cond) (logger-log (claw-server-log-manager claw-server) :error "~a" cond) (with-output-to-string (*standard-output*) (error-renderer claw-server :error-code +http-internal-server-error+))))))