mysql-fixperms
[hcoop/domtool2.git] / src / msg.sml
index bd7b5ee..64837b9 100644 (file)
@@ -88,6 +88,21 @@ fun recvBool bio =
       | SOME 1 => SOME true
       | _ => NONE
 
+fun sendSockPerm (bio, p) =
+    case p of
+       Any => OpenSSL.writeInt (bio, 0)
+      | Client => OpenSSL.writeInt (bio, 1)
+      | Server => OpenSSL.writeInt (bio, 2)
+      | Nada => OpenSSL.writeInt (bio, 3)
+
+fun recvSockPerm bio =
+    case OpenSSL.readInt bio of
+       SOME 0 => SOME Any
+      | SOME 1 => SOME Client
+      | SOME 2 => SOME Server
+      | SOME 3 => SOME Nada
+      | _ => NONE
+
 fun sendQuery (bio, q) =
     case q of
        QApt s => (OpenSSL.writeInt (bio, 0);
@@ -98,6 +113,10 @@ fun sendQuery (bio, q) =
                   OpenSSL.writeString (bio, s))
       | QTrustedPath s => (OpenSSL.writeInt (bio, 3);
                           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
@@ -107,6 +126,8 @@ fun recvQuery bio =
           | 1 => Option.map QCron (OpenSSL.readString 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)
           | _ => NONE)
       | NONE => NONE
 
@@ -196,6 +217,18 @@ fun send (bio, m) =
       | MsgNo => OpenSSL.writeInt (bio, 31)
       | MsgQuery q => (OpenSSL.writeInt (bio, 32);
                       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)
+      | MsgDropDb {dbtype, dbname} => (OpenSSL.writeInt (bio, 36);
+                                      OpenSSL.writeString (bio, dbtype);
+                                      OpenSSL.writeString (bio, dbname))
+      | MsgGrantDb {dbtype, dbname} => (OpenSSL.writeInt (bio, 37);
+                                       OpenSSL.writeString (bio, dbtype);
+                                       OpenSSL.writeString (bio, dbname))
+      | MsqMysqlFixperms => OpenSSL.writeInt (bio, 38)
 
 fun checkIt v =
     case v of
@@ -294,6 +327,18 @@ fun recv bio =
                   | 30 => SOME MsgYes
                   | 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
+                  | 36 => (case (OpenSSL.readString bio, OpenSSL.readString bio) of
+                               (SOME dbtype, SOME dbname) =>
+                               SOME (MsgDropDb {dbtype = dbtype, dbname = dbname})
+                             | _ => NONE)
+                  | 37 => (case (OpenSSL.readString bio, OpenSSL.readString bio) of
+                               (SOME dbtype, SOME dbname) =>
+                               SOME (MsgGrantDb {dbtype = dbtype, dbname = dbname})
+                             | _ => NONE)
+                  | 38 => SOME MsgMysqlFixperms
                   | _ => NONE)
         
 end