On Mon, Aug 22, 2011 at 09:34:44AM +0200, Janos SUTO wrote:
> Ez nalam nem gzip melleklet, es nem tudom kicsomagolni.
> Meg egyszer el tudnad kuldeni?
A csatolásban, nem gzip-elve.
--
[Varadi Gabor]
diff -ruN clapf-nightly.20110820_095856.a53c97f563d2c9f59c719340ba102300/src/spamdrop.c clapf-nightly.20110820_095856.a53c97f563d2c9f59c719340ba102300.jani/src/spamdrop.c
--- clapf-nightly.20110820_095856.a53c97f563d2c9f59c719340ba102300/src/spamdrop.c 2011-08-20 09:57:19.000000000 +0200
+++ clapf-nightly.20110820_095856.a53c97f563d2c9f59c719340ba102300.jani/src/spamdrop.c 2011-08-22 07:56:24.000000000 +0200
@@ -20,6 +20,7 @@
extern char *optarg;
extern int optind;
+struct passwd *xpwd = (struct passwd *)NULL;
int deliver_message=0;
@@ -274,6 +275,19 @@
cfg = read_config(configfile);
+ if( strlen( cfg.username ) ) {
+ xpwd = getpwnam( cfg.username );
+ } else {
+ xpwd = getpwuid( getuid() );
+ }
+ if( xpwd != (struct passwd *)NULL ) {
+ if( xpwd->pw_uid == getuid() || xpwd->pw_uid == geteuid() ) {
+ checkAndCreateClapfDirectories( &cfg, xpwd->pw_uid, xpwd->pw_gid );
+ }
+ } else {
+ fprintf( stderr, "Invalid username in config file: '%s'\n", cfg.username );
+ return 0;
+ }
if(debug == 1){
print_message = 0;
@@ -425,12 +439,22 @@
/* fix database path if we need it */
#ifdef HAVE_SQLITE3
- if(strlen(cfg.sqlite3) < 4)
+ if(strlen(cfg.sqlite3) < 4) {
snprintf(cfg.sqlite3, MAXVAL-1, "%s/%s/%c/%s/%s", cfg.chrootdir, USER_DATA_DIR, sdata.name[0], sdata.name, PER_USER_SQLITE3_DB_FILE);
+ snprintf( buf, MAXBUFSIZE-1, "%s/%s/%c", cfg.chrootdir, USER_DATA_DIR, sdata.name[0] );
+ createdir( buf, xpwd->pw_uid, xpwd->pw_gid, 0755 );
+ snprintf( buf, MAXBUFSIZE-1, "%s/%s/%c/%s", cfg.chrootdir, USER_DATA_DIR, sdata.name[0], sdata.name );
+ createdir( buf, xpwd->pw_uid, xpwd->pw_gid, 0755 );
+ }
#endif
#ifdef HAVE_MYDB
- if(strlen(cfg.mydbfile) < 4)
+ if(strlen(cfg.mydbfile) < 4) {
snprintf(cfg.mydbfile, MAXVAL-1, "%s/%s/%c/%s/%s", cfg.chrootdir, USER_DATA_DIR, sdata.name[0], sdata.name, MYDB_FILE);
+ snprintf( buf, MAXBUFSIZE-1, "%s/%s/%c", cfg.chrootdir, USER_DATA_DIR, sdata.name[0] );
+ createdir( buf, xpwd->pw_uid, xpwd->pw_gid, 0755 );
+ snprintf( buf, MAXBUFSIZE-1, "%s/%s/%c/%s", cfg.chrootdir, USER_DATA_DIR, sdata.name[0], sdata.name );
+ createdir( buf, xpwd->pw_uid, xpwd->pw_gid, 0755 );
+ }
#endif
if(openDatabase(&sdata, &cfg) == 0){