aboutsummaryrefslogtreecommitdiff
path: root/Utility/Base64.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-03-06 16:29:19 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-03-06 16:29:19 -0400
commitdc82128f6f0ffef9f6973baed3ad63d89802c898 (patch)
tree93ff21057d04f9d1c48e4c9e2fa75de092dc1908 /Utility/Base64.hs
parent49b88039e597ec761227d00ddf125f8ebe5c6a4f (diff)
tag xmpp pushes with jid
This fixes the issue mentioned in the last commit. Turns out just collecting UUID of clients behind a XMPP remote is insufficient (although I should probably still do it for other reasons), because a single remote repo might be connected via both XMPP and local pairing. So a way is needed to know when a push was received from any client using a given XMPP remote over XMPP, as opposed to via ssh.
Diffstat (limited to 'Utility/Base64.hs')
-rw-r--r--Utility/Base64.hs12
1 files changed, 9 insertions, 3 deletions
diff --git a/Utility/Base64.hs b/Utility/Base64.hs
index ed803a00a..ec660108a 100644
--- a/Utility/Base64.hs
+++ b/Utility/Base64.hs
@@ -5,14 +5,20 @@
- Licensed under the GNU GPL version 3 or higher.
-}
-module Utility.Base64 (toB64, fromB64) where
+module Utility.Base64 (toB64, fromB64Maybe, fromB64) where
import Codec.Binary.Base64
import Data.Bits.Utils
+import Control.Applicative
+import Data.Maybe
toB64 :: String -> String
toB64 = encode . s2w8
+fromB64Maybe :: String -> Maybe String
+fromB64Maybe s = w82s <$> decode s
+
fromB64 :: String -> String
-fromB64 s = maybe bad w82s $ decode s
- where bad = error "bad base64 encoded data"
+fromB64 = fromMaybe bad . fromB64Maybe
+ where
+ bad = error "bad base64 encoded data"