diff options
author | Baylac-Jacqué Félix <felix@alternativebit.fr> | 2017-09-13 17:25:27 +0200 |
---|---|---|
committer | Baylac-Jacqué Félix <felix@alternativebit.fr> | 2017-09-16 17:11:27 +0200 |
commit | 544fb266e00229f9960b13dda864408a3500dd27 (patch) | |
tree | 544aa70c64ae6ad20d3509fa857f195324a629c2 /src/Network | |
parent | Implemented RPC set's payload parser. (diff) | |
download | wireguard-hs-544fb266e00229f9960b13dda864408a3500dd27.tar.xz wireguard-hs-544fb266e00229f9960b13dda864408a3500dd27.zip |
Implemented rpc request parser.
Diffstat (limited to 'src/Network')
-rw-r--r-- | src/Network/WireGuard/Internal/Data/RpcTypes.hs | 4 | ||||
-rw-r--r-- | src/Network/WireGuard/Internal/RpcParsers.hs | 12 |
2 files changed, 8 insertions, 8 deletions
diff --git a/src/Network/WireGuard/Internal/Data/RpcTypes.hs b/src/Network/WireGuard/Internal/Data/RpcTypes.hs index a78d9df..088bbb5 100644 --- a/src/Network/WireGuard/Internal/Data/RpcTypes.hs +++ b/src/Network/WireGuard/Internal/Data/RpcTypes.hs @@ -17,7 +17,7 @@ import Network.WireGuard.Internal.Data.Types (PublicKey, KeyPair, -- | Kind of client operation. -- -- See <https://www.wireguard.com/xplatform/#configuration-protocol> for more informations. -data OpType = Get | Set +data OpType = Get | Set deriving (Eq, Show) -- | Request wrapper. The payload is set only for Set operations. -- @@ -25,7 +25,7 @@ data OpType = Get | Set data RpcRequest = RpcRequest { opType :: !OpType, payload :: !(Maybe RpcSetPayload) -} +} deriving (Eq, Show) -- | Payload sent together with a set RPC operation. data RpcSetPayload = RpcSetPayload { diff --git a/src/Network/WireGuard/Internal/RpcParsers.hs b/src/Network/WireGuard/Internal/RpcParsers.hs index e5e38d1..d2eac92 100644 --- a/src/Network/WireGuard/Internal/RpcParsers.hs +++ b/src/Network/WireGuard/Internal/RpcParsers.hs @@ -38,15 +38,15 @@ import Network.WireGuard.Internal.Data.RpcTypes (OpType(..), requestParser :: Parser RpcRequest requestParser = do op <- requestTypeParser - let p = case op of - Set -> undefined - Get -> Nothing - _ <- string $ BC.pack "\n\n" + p <- case op of + Set -> Just <$> setPayloadParser + Get -> return Nothing + _ <- string $ BC.pack "\n" return $ RpcRequest op p requestTypeParser :: Parser OpType -requestTypeParser = "get=1" *> return Get - <|> "set=1" *> return Set +requestTypeParser = "get=1\n" *> return Get + <|> "set=1\n" *> return Set setPayloadParser :: Parser RpcSetPayload setPayloadParser = do |