+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
+