X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/75585a67831244a20e460b7336d440d4cabe3b41..a95a01077068e27009d4240aa0fc0c8f58908c6b:/src/msg.sml diff --git a/src/msg.sml b/src/msg.sml index 555b079..5bf11f3 100644 --- a/src/msg.sml +++ b/src/msg.sml @@ -88,6 +88,19 @@ fun recvBool bio = | SOME 1 => SOME true | _ => NONE +fun sendQuery (bio, q) = + case q of + QApt s => (OpenSSL.writeInt (bio, 0); + OpenSSL.writeString (bio, s)) + +fun recvQuery bio = + case OpenSSL.readInt bio of + SOME n => + (case n of + 0 => Option.map QApt (OpenSSL.readString bio) + | _ => NONE) + | NONE => NONE + fun send (bio, m) = case m of MsgOk => OpenSSL.writeInt (bio, 1) @@ -172,8 +185,8 @@ fun send (bio, m) = | MsgShutdown => OpenSSL.writeInt (bio, 29) | MsgYes => OpenSSL.writeInt (bio, 30) | MsgNo => OpenSSL.writeInt (bio, 31) - | MsgApt s => (OpenSSL.writeInt (bio, 32); - OpenSSL.writeString (bio, s)) + | MsgQuery q => (OpenSSL.writeInt (bio, 32); + sendQuery (bio, q)) fun checkIt v = case v of @@ -271,7 +284,7 @@ fun recv bio = | 29 => SOME MsgShutdown | 30 => SOME MsgYes | 31 => SOME MsgNo - | 32 => Option.map MsgApt (OpenSSL.readString bio) + | 32 => Option.map MsgQuery (recvQuery bio) | _ => NONE) end