On mine are incorrectly created aliases at creation of users.
It should seems to me it to be so: (see attach)
Index: db.c
===================================================================
RCS file: /cvsroot-dbmail/dbmail/db.c,v
retrieving revision 1.37.2.1
diff -c -r1.37.2.1 db.c
*** db.c 2004/04/15 13:05:51 1.37.2.1
--- db.c 2004/04/15 22:55:25
***************
*** 412,417 ****
--- 412,419 ----
int db_addalias(u64_t user_idnr, const char *alias, u64_t clientid)
{
+ const char *query_result;
+
/* check if this alias already exists */
snprintf(query, DEF_QUERYSIZE,
"SELECT alias_idnr FROM aliases "
***************
*** 436,444 ****
}
db_free_result();
snprintf(query, DEF_QUERYSIZE,
"INSERT INTO aliases (alias,deliver_to,client_idnr) "
! "VALUES ('%s','%llu','%llu')", alias, user_idnr,
clientid);
if (db_query(query) == -1) {
--- 438,474 ----
}
db_free_result();
+
+ snprintf(query, DEF_QUERYSIZE,
+ "SELECT userid FROM users WHERE user_idnr=%llu and client_idnr=%llu",
+ user_idnr,clientid);
+
+ if (db_query(query) == -1) {
+ /* query failed */
+ trace(TRACE_ERROR,
+ "%s,%s: query for get user_idnr failed", __FILE__,
+ __FUNCTION__);
+ return -1;
+ }
+
+ if (db_num_rows() == 0) {
+ trace(TRACE_INFO,
+ "%s,%s: user_idnr [%llu] not found",
+ __FILE__, __FUNCTION__, user_idnr);
+
+ db_free_result();
+ return 1;
+ }
+
+ if ((query_result = db_get_result(0, 0)) == NULL ) {
+ trace(TRACE_ERROR, "%s,%s: error getting result",
+ __FILE__, __FUNCTION__);
+ return -1;
+ }
+
snprintf(query, DEF_QUERYSIZE,
"INSERT INTO aliases (alias,deliver_to,client_idnr) "
! "VALUES ('%s','%s','%llu')", alias, query_result,
clientid);
if (db_query(query) == -1) {