diff options
| -rwxr-xr-x | bin/repl.bat | 2 | ||||
| -rwxr-xr-x | src/cookie_login.clj | 5 | ||||
| -rwxr-xr-x | src/site.clj | 33 |
3 files changed, 29 insertions, 11 deletions
diff --git a/bin/repl.bat b/bin/repl.bat index 2417315..ffa0230 100755 --- a/bin/repl.bat +++ b/bin/repl.bat @@ -1,3 +1,3 @@ REM Windows REPL script -java -server -cp lib/commons-io-1.4.jar;lib/commons-fileupload-1.2.1.jar;lib/commons-codec-1.3.jar;lib/clojure.jar;lib/clojure-contrib.jar;lib/compojure-3.2v1.jar;lib/jetty-6.1.14.jar;lib/jetty-util-6.1.14.jar;lib/servlet-api-2.5-6.1.14.jar;lib/jline-0.9.94.jar;lib/postgresql-8.4-701.jdbc4.jar;lib/stringtemplate-3.2.1.jar;lib/antlr-2.7.7.jar;src/ jline.ConsoleRunner clojure.lang.Repl %1
\ No newline at end of file +java -Xmx256m -server -cp lib/commons-io-1.4.jar;lib/commons-fileupload-1.2.1.jar;lib/commons-codec-1.3.jar;lib/clojure.jar;lib/clojure-contrib.jar;lib/compojure-3.2v1.jar;lib/jetty-6.1.14.jar;lib/jetty-util-6.1.14.jar;lib/servlet-api-2.5-6.1.14.jar;lib/jline-0.9.94.jar;lib/postgresql-8.4-701.jdbc4.jar;lib/stringtemplate-3.2.1.jar;lib/antlr-2.7.7.jar;src/ jline.ConsoleRunner clojure.lang.Repl %1
\ No newline at end of file diff --git a/src/cookie_login.clj b/src/cookie_login.clj index e507876..8c948a6 100755 --- a/src/cookie_login.clj +++ b/src/cookie_login.clj @@ -38,7 +38,7 @@ "Middleware to support automatic cookie login. Must be placed after the with-session middleware. -Must be given three arguments: + Must be given three arguments: - process-login-token? Function to apply to request map to determine whether to process login token or not. If a false value is returned, @@ -56,8 +56,7 @@ Must be given three arguments: - *login-token-expiry* The number of milliseconds a login token is valid for. - Defaults to one week. -" + Defaults to one week." [handler process-login-token? token-maker token-reader] (let [login-token-key *login-token-key* login-token-expiry *login-token-expiry*] diff --git a/src/site.clj b/src/site.clj index 4ffa3cf..4db69e8 100755 --- a/src/site.clj +++ b/src/site.clj @@ -13,8 +13,10 @@ clojure.contrib.json.write clojure.contrib.sql compojure + utils cookie-login - utils)) + session-sweeper + feed)) (def *run-flusher* true) (def *flusher-sleep-ms* 4000) @@ -33,9 +35,7 @@ (def rooms (ref {})) (def flusher (agent nil)) -(defn flush! [x] - (when *run-flusher* - (send-off *agent* #'flush!)) +(defn flush-inactive-users! [x] (doseq [[rid room] @rooms] (dosync (let [users (room :users) @@ -43,9 +43,14 @@ alive? (fn [[n u]] (> (u :last-seen) (- now *user-timeout-ms*)))] (ref-set users (into {} (filter alive? @users)))))) - (. Thread (sleep *flusher-sleep-ms*)) + (Thread/sleep *flusher-sleep-ms*) + (when *run-flusher* + (send *agent* #'flush-inactive-users!)) x) +(defn start-user-flusher! [] + (send flusher flush-inactive-users!)) + ;; Configuration (def *server-url* @@ -578,8 +583,7 @@ (defn serve-static [dir path] ; TODO: cache policy for other static files (js, css, etc.) (let [cache-header (if (re-find pic-regex path) - {:headers {"Cache-Control" - "post-check=3600,pre-check=43200"}} + {:headers {"Cache-Control" "max-age=604800,public"}} {})] [cache-header (serve-file dir path)])) @@ -659,6 +663,7 @@ (doseq [room-db (fetch-rooms)] (alter rooms assoc (room-db :key) (build-room-map-from-db room-db)))) +<<<<<<< HEAD (run-server {:port 8080} "/static/*" (servlet static) @@ -668,3 +673,17 @@ "/*" (servlet pichat)) (send-off flusher flush!) +======= + +(defn start-server + ([port] (run-server {:port port} + "/static/*" (servlet static) + "/images/*" (servlet static) + "/upload" (servlet multipart) + "/*" (servlet pichat))) + ([] (start-server 8080))) + +(start-server) +(start-user-flusher!) +(start-session-pruner!) +>>>>>>> 8003ba27e49a630b24090f3af01426f35e85af67 |
