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

Reply via email to