--- a/lib/vdomain/set.cc Sun Jan 20 00:12:17 2008 +0100
+++ b/lib/vdomain/set.cc Sun Jan 20 00:22:09 2008 +0100
@@ -18,8 +18,7 @@
#include "vdomain.h"
#include "misc/maildir.h"
-response vdomain::set(const vpwentry* vpw, bool onlyadd,
- mystring maildir)
+response vdomain::set(const vpwentry* vpw, bool onlyadd)
{
if(!vpw)
RETURN(err, "Internal error: no vpwentry");
@@ -27,14 +26,13 @@
RETURN(bad, "Virtual user or alias name contains invalid characters");
if(!validate_password(vpw->pass))
RETURN(bad, "Password field contains invalid characters");
- if(!!maildir && !make_maildir(maildir.c_str()))
- RETURN(err, "Can't create the mail directory '" + maildir + "'");
+ if(mkdirp(vpw->directory, 0700) == -1)
+ RETURN(err, "Can't create the user directory '" + vpw->directory + "'");
+ if(vpw->has_mailbox && !make_maildir(vpw->directory))
+ RETURN(err, "Can't create the mail directory '" + vpw->directory + "'");
if(!table()->put(vpw, onlyadd)) {
- if(!!maildir)
- delete_directory(maildir.c_str());
+ delete_directory(vpw->directory);
RETURN(err, "Can't add the user to the password file");
}
- RETURN(ok, !maildir
- ? "Alias added successfully"
- : "User added successfully");
+ RETURN(ok, "User added successfully");
}