From b41849d9cb4ccb856905a26bfc36b6ac7c5b1f32 Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Fri, 17 Jun 2016 13:31:28 +0800 Subject: Work around buggy mysql package It uses unsafeUseAsCString for no reason and causes heisenbugs. See https://github.com/bos/mysql/pull/23 --- src/Server.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/Server.hs') diff --git a/src/Server.hs b/src/Server.hs index 14ecd9c..6c91a59 100644 --- a/src/Server.hs +++ b/src/Server.hs @@ -5,7 +5,6 @@ module Server import Control.Exception.Base (throwIO, catch, bracket) import Data.Bits ((.|.)) -import Data.ByteString.Lazy (fromStrict) import Data.List (find) import Data.Maybe (fromJust) import Data.Pool (createPool, destroyAllResources) @@ -22,6 +21,7 @@ import System.IO (hPutStrLn, stderr) import System.IO.Error (isDoesNotExistError) import System.Posix.Files (removeLink, setFileMode, socketMode, ownerReadMode, ownerWriteMode, groupReadMode, groupWriteMode) +import qualified Data.ByteString.Lazy as LBS import qualified Data.HashMap.Lazy as HM import qualified Database.MySQL.Simple as MySQL @@ -52,7 +52,8 @@ getGroup ci = decodeUtf8 . getName . fromJust . find isGroup . connectOptions $ where isGroup (ReadDefaultGroup _) = True isGroup _ = False - getName (ReadDefaultGroup n) = fromStrict n + -- FIXME: Removing trailing zero added for buggy mysql in Main.hs. + getName (ReadDefaultGroup n) = LBS.takeWhile (0 /=) . LBS.fromStrict $ n getName _ = error "Cannot happen" -- cgit v1.2.3