Manage spamassassin preferences in shared space
[hcoop/domtool2.git] / src / msg.sml
index 3e028c1..cbb9059 100644 (file)
@@ -1,5 +1,6 @@
 (* HCoop Domtool (http://hcoop.sourceforge.net/)
  * Copyright (c) 2006, Adam Chlipala
+ * Copyright (c) 2011,2014 Clinton Ebadi <clinton@unknownlamer.org>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -117,8 +118,11 @@ fun sendQuery (bio, q) =
                           OpenSSL.writeString (bio, s))
       | QSocket s => (OpenSSL.writeInt (bio, 4);
                      OpenSSL.writeString (bio, s))
-      | QFirewall s => (OpenSSL.writeInt (bio, 5);
-                       OpenSSL.writeString (bio, s))
+      | QFirewall {node, user} => (OpenSSL.writeInt (bio, 5);
+                                  OpenSSL.writeString (bio, node);
+                                  OpenSSL.writeString (bio, user))
+      | QAptExists s => (OpenSSL.writeInt (bio, 6);
+                        OpenSSL.writeString (bio, s))
 
 fun recvQuery bio =
     case OpenSSL.readInt bio of
@@ -129,7 +133,10 @@ fun recvQuery bio =
           | 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)
+          | 5 => (case ((OpenSSL.readString bio), (OpenSSL.readString bio)) of
+                     (SOME node, SOME user) => SOME (QFirewall { node = node, user = user })
+                   | _ => NONE)
+          | 6 => Option.map QAptExists (OpenSSL.readString bio)
           | _ => NONE)
       | NONE => NONE
 
@@ -237,6 +244,12 @@ fun send (bio, m) =
       | MsgDescription s => (OpenSSL.writeInt (bio, 40);
                             OpenSSL.writeString (bio, s))
       | MsgReUsers => OpenSSL.writeInt (bio, 41)
+      | MsgVmailChanged => OpenSSL.writeInt (bio, 42)
+      | MsgFirewallRegen => OpenSSL.writeInt (bio, 43)
+      | MsgAptQuery {section, description} => (OpenSSL.writeInt (bio, 44);
+                                              OpenSSL.writeString (bio, section);
+                                              OpenSSL.writeString (bio, description))
+      | MsgSaChanged => OpenSSL.writeInt (bio, 45)
 
 fun checkIt v =
     case v of
@@ -350,6 +363,12 @@ fun recv bio =
                   | 39 => Option.map MsgDescribe (OpenSSL.readString bio)
                   | 40 => Option.map MsgDescription (OpenSSL.readString bio)
                   | 41 => SOME MsgReUsers
+                  | 42 => SOME MsgVmailChanged
+                  | 43 => SOME MsgFirewallRegen
+                  | 44 => (case (OpenSSL.readString bio, OpenSSL.readString bio) of
+                               (SOME section, SOME description) => SOME (MsgAptQuery {section = section, description = description})
+                             | _ => NONE)
+                  | 45 => SOME MsgSaChanged
                   | _ => NONE)
         
 end