on master help sign in
Fixed UTF8 cleanpath handling
commit367442db7a5a04430331902abd5093384db65657 authorMichael Snoyman <michael@snoyman.com> dateSat 14 Aug 2010, 21:52 (16 years ago) parent734c696
2 files changed+5−3
Network/Wai/Middleware/CleanPath.hs+2−1 wai-extra.cabal+3−2
Network/Wai/Middleware/CleanPath.hs+2−1
@@ -10,6 +10,7 @@ import Network.Wai
1010import qualified Data.ByteString.Char8 as B
1111import qualified Data.ByteString.Lazy as L
1212import Network.URI (unEscapeString)
13+import qualified Data.ByteString.UTF8 as BSU
1314
1415cleanPathFunc :: (B.ByteString -> Either B.ByteString [String])
1516 -> B.ByteString
@@ -52,7 +53,7 @@ splitPath :: B.ByteString -> Either B.ByteString [String]
5253splitPath s =
5354 let corrected = B.pack $ rts $ ats $ rds $ B.unpack s
5455 in if corrected == s
55− then Right $ map (unEscapeString . B.unpack)
56+ then Right $ map (BSU.toString . B.pack . unEscapeString . B.unpack)
5657 $ filter (not . B.null)
5758 $ B.split '/' s
5859 else Left corrected
wai-extra.cabal+3−2
@@ -1,5 +1,5 @@
11Name: wai-extra
2−Version: 0.2.2
2+Version: 0.2.2.1
33Synopsis: Provides some basic WAI handlers and middleware.
44Description: The goal here is to provide common features without many dependencies.
55License: BSD3
@@ -23,7 +23,8 @@ Library
2323 time >= 1.1.4 && < 1.3,
2424 sendfile >= 0.6.1 && < 0.7,
2525 network >= 2.2.1.5 && < 2.3,
26− directory >= 1.0.1 && < 1.1
26+ directory >= 1.0.1 && < 1.1,
27+ utf8-string >= 0.3.4 && < 0.4
2728 Exposed-modules: Network.Wai.Handler.CGI
2829 Network.Wai.Handler.SimpleServer
2930 Network.Wai.Middleware.CleanPath