aboutsummaryrefslogtreecommitdiffstats
path: root/src/Network
diff options
context:
space:
mode:
authorBaylac-Jacqué Félix <felix@alternativebit.fr>2017-09-13 17:25:27 +0200
committerBaylac-Jacqué Félix <felix@alternativebit.fr>2017-09-16 17:11:27 +0200
commit544fb266e00229f9960b13dda864408a3500dd27 (patch)
tree544aa70c64ae6ad20d3509fa857f195324a629c2 /src/Network
parentImplemented RPC set's payload parser. (diff)
downloadwireguard-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.hs4
-rw-r--r--src/Network/WireGuard/Internal/RpcParsers.hs12
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