From: Rick W. <rw...@us...> - 2004-06-22 00:41:49
|
Update of /cvsroot/vpopmail/vpopmail In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21432 Modified Files: ChangeLog vmysql.c vpopmail.c vpopmail.h Log Message: Show error messages unless user sets showerrors=0 Index: vmysql.c =================================================================== RCS file: /cvsroot/vpopmail/vpopmail/vmysql.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- vmysql.c 4 Jun 2004 02:17:02 -0000 1.21 +++ vmysql.c 22 Jun 2004 00:41:34 -0000 1.22 @@ -82,6 +82,7 @@ char sqlerr[MAX_BUFF] = ""; char *last_query = NULL; +int showerrors=1; void vcreate_dir_control(char *domain); void vcreate_vlog_table(); @@ -98,9 +99,11 @@ void vcreate_lastauth_table(); #endif [...2122 lines suppressed...] +#endif + if( showerrors ) { + vsqlerror( stderr, "vdel limits" ); + } + return( verrori ); + } + return 0; } #endif +/************************************************************************ + * + * vauth_crypt + */ + int vauth_crypt(char *user,char *domain,char *clear_pass,struct vqpasswd *vpw) { if ( vpw == NULL ) return(-1); Index: vpopmail.c =================================================================== RCS file: /cvsroot/vpopmail/vpopmail/vpopmail.c,v retrieving revision 1.43 retrieving revision 1.44 diff -u -d -r1.43 -r1.44 --- vpopmail.c 3 Jun 2004 23:54:00 -0000 1.43 +++ vpopmail.c 22 Jun 2004 00:41:34 -0000 1.44 @@ -78,6 +78,8 @@ } sortrec; +void vsqlerror( FILE *f, char *comment ); + /************************************************************************/ /* @@ -2494,9 +2496,9 @@ /************************************************************************/ -int vexiterror( FILE *f, char *comment ) -{ +void vsqlerror( FILE *f, char *comment ) +{ fprintf( f, "Error - %s. %s\n", verror( verrori ), comment ); if( NULL != sqlerr && strlen(sqlerr) > 0 ) { @@ -2506,7 +2508,15 @@ if( NULL != last_query && strlen( last_query ) > 0 ) { fprintf( f,"%s", last_query); } +} + +/************************************************************************/ + +int vexiterror( FILE *f, char *comment ) +{ + + vsqlerror( f, comment ); vclose(); exit(verrori); } @@ -2864,12 +2874,21 @@ int open_smtp_relay() { #ifdef USE_SQL + +int result; + +// NOTE: vopen_smpt_relay returns <0 on error 0 on duplicate 1 added +// check for failure. + /* store the user's ip address into the sql relay table */ - if (vopen_smtp_relay()) { + if (( result = vopen_smtp_relay()) < 0 ) { // database error + vsqlerror( stderr, "Error. vopen_smpt_relay failed" ); + return (verrori); + } else if ( result == 1 ) { /* generate a new tcp.smtp.cdb file */ - if (update_rules() != 0) { - fprintf (stderr, "Error. update_rules failed\n"); - return (-1); + if (update_rules()) { + vsqlerror( stderr, "Error. vupdate_rules failed" ); + return (verrori); } } #else Index: vpopmail.h =================================================================== RCS file: /cvsroot/vpopmail/vpopmail/vpopmail.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- vpopmail.h 4 Jun 2004 02:17:02 -0000 1.18 +++ vpopmail.h 22 Jun 2004 00:41:34 -0000 1.19 @@ -95,6 +95,14 @@ #define VA_PARSE_ERROR -35 #define VA_CANNOT_READ_LIMITS -36 #define VA_CANNOT_READ_ASSIGN -37 +#define VA_CANNOT_OPEN_DATABASE -38 +#define VA_INVALID_IP_ADDRESS -39 +#define VA_QUERY_FAILED -40 +#define VA_STORE_RESULT_FAILED -41 +#define VA_INVALID_OPEN_MODE -42 +#define VA_CANNOT_CREATE_DATABASE -43 +#define VA_CANNOT_CREATE_TABLE -44 + /* gid flags */ #define NO_PASSWD_CHNG 0x01 Index: ChangeLog =================================================================== RCS file: /cvsroot/vpopmail/vpopmail/ChangeLog,v retrieving revision 1.134 retrieving revision 1.135 diff -u -d -r1.134 -r1.135 --- ChangeLog 4 Jun 2004 02:17:02 -0000 1.134 +++ ChangeLog 22 Jun 2004 00:41:34 -0000 1.135 @@ -2,8 +2,19 @@ or info related to the entry. <http://sourceforge.net/projects/vpopmail/> 5.5.2 - unreleased + Rick Widmer - + vpopmail - Rick WIdmer - 3 June 2004 + WARNING: vopen_smtp_relay() return has changed. It used to return + true if a new entry was added, or 0. Now it returns <0 + on database error, 0 if the entry already exists, 1 if + a new record was added. I have changed how it is used + in vpopmail.c. Other callers probaly want to check for + vopen_smtp_relay() > 0 to trigger update_rules(). + + + + Rick Widmer - 3 June 2004 vpopmail - In vadddomain program check for existing domain before prompting for password. |