diff options
author | Joey Hess <joey@kitenet.net> | 2013-03-06 16:29:19 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-03-06 16:29:19 -0400 |
commit | dc82128f6f0ffef9f6973baed3ad63d89802c898 (patch) | |
tree | 93ff21057d04f9d1c48e4c9e2fa75de092dc1908 /Utility/Base64.hs | |
parent | 49b88039e597ec761227d00ddf125f8ebe5c6a4f (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.hs | 12 |
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" |