HCoop
/
hcoop
/
domtool2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Specifying encoding on database creation
[hcoop/domtool2.git]
/
src
/
msg.sml
diff --git
a/src/msg.sml
b/src/msg.sml
index
a8aea97
..
5eacaa2
100644
(file)
--- a/
src/msg.sml
+++ b/
src/msg.sml
@@
-23,12
+23,14
@@
structure Msg :> MSG = struct
open OpenSSL MsgTypes Slave
val a2i = fn Add => 0
open OpenSSL MsgTypes Slave
val a2i = fn Add => 0
- | Delete => 1
+ | Delete
true
=> 1
| Modify => 2
| Modify => 2
+ | Delete false => 3
val i2a = fn 0 => Add
val i2a = fn 0 => Add
- | 1 => Delete
+ | 1 => Delete
true
| 2 => Modify
| 2 => Modify
+ | 3 => Delete false
| _ => raise OpenSSL.OpenSSL "Bad action number to deserialize"
fun sendAcl (bio, {user, class, value}) =
| _ => raise OpenSSL.OpenSSL "Bad action number to deserialize"
fun sendAcl (bio, {user, class, value}) =
@@
-171,9
+173,10
@@
fun send (bio, m) =
| MsgCreateDbUser {dbtype, passwd} => (OpenSSL.writeInt (bio, 16);
OpenSSL.writeString (bio, dbtype);
sendOption OpenSSL.writeString (bio, passwd))
| MsgCreateDbUser {dbtype, passwd} => (OpenSSL.writeInt (bio, 16);
OpenSSL.writeString (bio, dbtype);
sendOption OpenSSL.writeString (bio, passwd))
- | MsgCreateDbTable {dbtype, dbname} => (OpenSSL.writeInt (bio, 17);
- OpenSSL.writeString (bio, dbtype);
- OpenSSL.writeString (bio, dbname))
+ | MsgCreateDb {dbtype, dbname, encoding} => (OpenSSL.writeInt (bio, 17);
+ OpenSSL.writeString (bio, dbtype);
+ OpenSSL.writeString (bio, dbname);
+ sendOption OpenSSL.writeString (bio, encoding))
| MsgNewMailbox {domain, user, passwd, mailbox} =>
(OpenSSL.writeInt (bio, 18);
OpenSSL.writeString (bio, domain);
| MsgNewMailbox {domain, user, passwd, mailbox} =>
(OpenSSL.writeInt (bio, 18);
OpenSSL.writeString (bio, domain);
@@
-228,6
+231,11
@@
fun send (bio, m) =
| MsgGrantDb {dbtype, dbname} => (OpenSSL.writeInt (bio, 37);
OpenSSL.writeString (bio, dbtype);
OpenSSL.writeString (bio, dbname))
| MsgGrantDb {dbtype, dbname} => (OpenSSL.writeInt (bio, 37);
OpenSSL.writeString (bio, dbtype);
OpenSSL.writeString (bio, dbname))
+ | MsgMysqlFixperms => OpenSSL.writeInt (bio, 38)
+ | MsgDescribe dom => (OpenSSL.writeInt (bio, 39);
+ OpenSSL.writeString (bio, dom))
+ | MsgDescription s => (OpenSSL.writeInt (bio, 40);
+ OpenSSL.writeString (bio, s))
fun checkIt v =
case v of
fun checkIt v =
case v of
@@
-282,9
+290,9
@@
fun recv bio =
(SOME dbtype, SOME passwd) =>
SOME (MsgCreateDbUser {dbtype = dbtype, passwd = passwd})
| _ => NONE)
(SOME dbtype, SOME passwd) =>
SOME (MsgCreateDbUser {dbtype = dbtype, passwd = passwd})
| _ => NONE)
- | 17 => (case (OpenSSL.readString bio, OpenSSL.readString bio) of
- (SOME dbtype, SOME dbname) =>
- SOME (MsgCreateDb
Table {dbtype = dbtype, dbname = dbname
})
+ | 17 => (case (OpenSSL.readString bio, OpenSSL.readString bio
, recvOption OpenSSL.readString bio
) of
+ (SOME dbtype, SOME dbname
, SOME encoding
) =>
+ SOME (MsgCreateDb
{dbtype = dbtype, dbname = dbname, encoding = encoding
})
| _ => NONE)
| 18 => (case (OpenSSL.readString bio, OpenSSL.readString bio,
OpenSSL.readString bio, OpenSSL.readString bio) of
| _ => NONE)
| 18 => (case (OpenSSL.readString bio, OpenSSL.readString bio,
OpenSSL.readString bio, OpenSSL.readString bio) of
@@
-337,6
+345,9
@@
fun recv bio =
(SOME dbtype, SOME dbname) =>
SOME (MsgGrantDb {dbtype = dbtype, dbname = dbname})
| _ => NONE)
(SOME dbtype, SOME dbname) =>
SOME (MsgGrantDb {dbtype = dbtype, dbname = dbname})
| _ => NONE)
+ | 38 => SOME MsgMysqlFixperms
+ | 39 => Option.map MsgDescribe (OpenSSL.readString bio)
+ | 40 => Option.map MsgDescription (OpenSSL.readString bio)
| _ => NONE)
end
| _ => NONE)
end