open DataStructures
-val validDbname = CharVector.all Char.isAlpha
+val validDbname = CharVector.all (fn ch => Char.isAlphaNum ch orelse ch = #"_")
type handler = {getpass : (unit -> Client.passwd_result) option,
adduser : {user : string, passwd : string option} -> string option,
let
val (user, bio) = requestBio (fn () => ())
in
- Msg.send (bio, MsgCreateDbTable p);
+ Msg.send (bio, MsgCreateDb p);
case Msg.recv bio of
NONE => print "Server closed connection unexpectedly.\n"
| SOME m =>
SOME ("Error adding user: " ^ msg)))
(fn () => ())
- | MsgCreateDbTable {dbtype, dbname} =>
+ | MsgCreateDb {dbtype, dbname} =>
doIt (fn () =>
if Dbms.validDbname dbname then
case Dbms.lookup dbtype of
| 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} => (OpenSSL.writeInt (bio, 17);
+ OpenSSL.writeString (bio, dbtype);
+ OpenSSL.writeString (bio, dbname))
| MsgNewMailbox {domain, user, passwd, mailbox} =>
(OpenSSL.writeInt (bio, 18);
OpenSSL.writeString (bio, domain);
| _ => NONE)
| 17 => (case (OpenSSL.readString bio, OpenSSL.readString bio) of
(SOME dbtype, SOME dbname) =>
- SOME (MsgCreateDbTable {dbtype = dbtype, dbname = dbname})
+ SOME (MsgCreateDb {dbtype = dbtype, dbname = dbname})
| _ => NONE)
| 18 => (case (OpenSSL.readString bio, OpenSSL.readString bio,
OpenSSL.readString bio, OpenSSL.readString bio) of
* that user and no one else has rights. *)
| MsgCreateDbUser of {dbtype : string, passwd : string option}
(* Request creation of a user for the named DBMS type *)
- | MsgCreateDbTable of {dbtype : string, dbname : string}
+ | MsgCreateDb of {dbtype : string, dbname : string}
(* Request creation of a DBMS database *)
| MsgDropDb of {dbtype : string, dbname : string}
(* Request dropping of a DBMS database *)