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