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) {