summaryrefslogtreecommitdiff
path: root/src/compiler/GFServer.hs
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2011-10-12 18:27:46 +0000
committerhallgren <hallgren@chalmers.se>2011-10-12 18:27:46 +0000
commit8266df8f5898ea8c3a6a5179e905f8a2c5c950a7 (patch)
treeb9323aca57c6bcd8317e9d1966866d50810becee /src/compiler/GFServer.hs
parent44d1a5a9f71b03d9aceeccd760a63fcdc45f8bad (diff)
Bug fixes for gf -server mode and setup
Diffstat (limited to 'src/compiler/GFServer.hs')
-rw-r--r--src/compiler/GFServer.hs15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/compiler/GFServer.hs b/src/compiler/GFServer.hs
index bc5bdbdaf..4b796efce 100644
--- a/src/compiler/GFServer.hs
+++ b/src/compiler/GFServer.hs
@@ -25,21 +25,22 @@ import GF.Infra.UseIO(readBinaryFile,writeBinaryFile)
import qualified PGFService as PS
import qualified ExampleService as ES
import Paths_gf(getDataDir)
-import RunHTTP(Options(..),cgiHandler)
+import RunHTTP(cgiHandler)
-- * HTTP server
server execute1 state0 =
do state <- newMVar M.empty
cache <- PS.newPGFCache
datadir <- getDataDir
- let options = Options { documentRoot = datadir</>"www", port = 41296 }
+ let root = datadir</>"www"
+ port = 41296
putStrLn $ "Starting HTTP server, open http://localhost:"
- ++show (port options)++"/ in your web browser."
- initServer (port options)
- (modifyMVar state . handle options state0 cache execute1)
+ ++show port++"/ in your web browser."
+ setCurrentDirectory root
+ initServer port (modifyMVar state . handle state0 cache execute1)
-- * HTTP request handler
-handle options state0 cache execute1
+handle state0 cache execute1
rq@(Request method URI{uriPath=upath,uriQuery=q} hdrs body) state =
do let qs = decodeQ $
case method of
@@ -63,7 +64,7 @@ handle options state0 cache execute1
where path = translatePath rpath
_ -> return (state,resp400 upath)
where
- root = documentRoot options
+ root = "."
translatePath rpath = root</>rpath -- hmm, check for ".."