From bd56b879a743bd8926522bbe62d4612a3e1e5808 Mon Sep 17 00:00:00 2001 From: Martin Potier Date: Sun, 1 Nov 2015 22:47:38 +0100 Subject: [PATCH] Initial commit --- Main.hs | 22 ++++++++++++++++++++++ http-request.cabal | 28 ++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 Main.hs create mode 100644 http-request.cabal diff --git a/Main.hs b/Main.hs new file mode 100644 index 0000000..25ff3c7 --- /dev/null +++ b/Main.hs @@ -0,0 +1,22 @@ +import Network.HTTP.Server +import Network.HTTP.Server.Logger +import Network.HTTP.Base +import Network.HTTP.Headers +import Network.Socket.Internal +import Network.URL + +displayListHdr :: [Header] -> [Char] +displayListHdr = concatMap show + +copyHeaders :: SockAddr -> URL -> Request [Char] -> IO (Response [Char]) +copyHeaders addr url req = + return Response {rspCode = (2,0,0) + ,rspReason = "OK" + ,rspHeaders = [Header HdrConnection "close"] + ,rspBody = displayListHdr $ rqHeaders req} + +main = serverWith config copyHeaders + where + config = Config { srvLog = quietLogger + , srvHost = "menf.in" + , srvPort = 8000 } diff --git a/http-request.cabal b/http-request.cabal new file mode 100644 index 0000000..f68490f --- /dev/null +++ b/http-request.cabal @@ -0,0 +1,28 @@ +-- Initial http-request.cabal generated by cabal init. For further +-- documentation, see http://haskell.org/cabal/users-guide/ + +name: http-request +version: 0.1.0.0 +synopsis: Displays the full http request your browser (and ISP) made for you +-- description: +license: PublicDomain +license-file: LICENSE +author: Martin Potier +maintainer: mpo.framacode@marvid.fr +-- copyright: +-- category: +build-type: Simple +-- extra-source-files: +cabal-version: >=1.10 + +executable http-request + main-is: Main.hs + -- other-modules: + -- other-extensions: + build-depends: base >=4.8 && <4.9 + , http-server + , url + , network + , HTTP + -- hs-source-dirs: + default-language: Haskell2010