OpenSSL.writeString (bio, s))
| QSocket s => (OpenSSL.writeInt (bio, 4);
OpenSSL.writeString (bio, s))
+ | QFirewall s => (OpenSSL.writeInt (bio, 5);
+ OpenSSL.writeString (bio, s))
fun recvQuery bio =
case OpenSSL.readInt bio of
| 2 => Option.map QFtp (OpenSSL.readString bio)
| 3 => Option.map QTrustedPath (OpenSSL.readString bio)
| 4 => Option.map QSocket (OpenSSL.readString bio)
+ | 5 => Option.map QFirewall (OpenSSL.readString bio)
| _ => NONE)
| NONE => NONE
sendQuery (bio, q))
| MsgSocket p => (OpenSSL.writeInt (bio, 33);
sendSockPerm (bio, p))
+ | MsgFirewall ls => (OpenSSL.writeInt (bio, 34);
+ sendList OpenSSL.writeString (bio, ls))
+ | MsgRegenerateTc => OpenSSL.writeInt (bio, 35)
fun checkIt v =
case v of
| 31 => SOME MsgNo
| 32 => Option.map MsgQuery (recvQuery bio)
| 33 => Option.map MsgSocket (recvSockPerm bio)
+ | 34 => Option.map MsgFirewall (recvList OpenSSL.readString bio)
+ | 35 => SOME MsgRegenerateTc
| _ => NONE)
end