On Mon, Jan 19, 2004 at 11:26:57AM +0200, Yalcin Cekic wrote:
>  
>  Selam,
> 
> cron'dan geliyor.
> "Cron <[EMAIL PROTECTED]> /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null"

Selamlar,

www.inter7.com dan vpopmail'i indirdim. Crondan gelen hatalarin 
nedeni clearopensmtp programinin dondurdugu degerler. Simdi clearopensmtp.c
91 satirdan olusuyor ve adim adim baktigim zaman, 


#ifdef USE_MYSQL
        vclear_open_smtp(clear_minutes, mytime);
#else


bu kisim ilk olarak calisiyor. Cunku USE_MYSQL tanimli sekilde derlemssiniz.
vclear_open_stmp(clear_minutes, mytime) fonksiyonu da vmysql.c dosyasinda tanimli.
Oraya bir cagri yaptigimiz zaman sirasiyla su islemler gerceklesiyor;


void vclear_open_smtp(time_t clear_minutes, time_t mytime)
{
 time_t delete_time;
 int err;

    if ( (err=vauth_open_update()) != 0 ) return;
    delete_time = mytime - clear_minutes;

    snprintf( SqlBufUpdate, SQL_BUF_SIZE, "delete from relay where timestamp <= %d",
        (int)delete_time);
    if (mysql_query(&mysql_update,SqlBufUpdate)) {
        vcreate_relay_table();
        return;
    }
}


dikkat ederseniz ilk once if((err = vauth_open_update() != 0) return;
calisiyor. Simdi bir tane daha call ile vauth_open_update()' ulasmamis gerekiyor.
Bu fonksiyon da ayni dosyada tanimli. Ve fonksiyonun baslik kisminda su yaziyor.

/*
 * Open a connection to mysql for updates
 */

yaptigi tek is, update islemleri icin mysql baglantisi acmak. Ve sirasiyla 
klasik C mysql islemleri gerceklesiyor;

mysql_init(&mysql_update);

ilkleme islemi. Bundan sonra da bir kac tane mysql_connect islemleri ve sonunda
ise iste bizim islem:

  /* we were able to connect, so create the database */
        snprintf( SqlBufUpdate, SQL_BUF_SIZE,
            "create database %s", MYSQL_DATABASE );


        if (mysql_query(&mysql_update,SqlBufUpdate)) {

            /* we could not create the database
             * so report the error and return
             */
            printf("vmysql: sql error[1]: %s\n", mysql_error(&mysql_update));
            return(-1);
        }


problem burada kaynaklaniyor. mysql var olan bir dabase uzerine tekrar ayni
isimli database'yi yaratmaya calisiyor. Ve dolayisiyla log'da gorebileceginiz 
hata geliyor. -1 ile ciktigi icin, cagri yapan fonsiyon -1 degeriyle karsilasiyor.
vclear_open_smtp fonksiyonu icinde 0 a esit mi sorgusu oldugu icin ve -1 degerini
gordugu icin direk cikiyor ve bunun sonucu olarak database'de bulunan kullanicilar
icin acik relay ip'leri sonsuza kadar orada kaliyor. Simdi dogal olarak 
bu prosedurlerin hepsi olmasi gerekir. Hatta ve hatta var olan bir database i tekrar
yaratmak dogru olmaz zaten. 

Ama vpopmail i derlerken --enable-roaming-users=y kullandiniz degil mi?

p.s: sanirim cok fazla acik gittik :)



> 
> Y.C
> 
> Tuesday, January 20, 2004, 10:17:15 AM, you wrote:
> 
> HD> Selamlar bu hatayi ne yaparken aliyorsunuz?
> HD> Ya da loglardan mi aliyorsunuz? 
> 
> HD> On Mon, Jan 19, 2004 at 10:18:23AM +0200, Yalcin Cekic wrote:
> >> 
> >> Selam,
> >> 
> >> Bir qmail + vpopmail + mysql mail box'in var.
> >> Bir suredir
> >> "vmysql: sql error[1]: Can't create database 'vpopmail'. Database exists"
> >> seklinde hata almaya basladim. Mail almada veya gondermede bir problem
> >> yok. Boyle bir seyle karsilasan varmi?
> >> 
> >> Kolay gelsin,
> >> 
> >> Y.C
> >> 
> >> 
> >> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> Liste arsivi: http://lists.enderunix.org ve 
> http://www.mail-archive.com/[EMAIL PROTECTED]
> http://ipucu.EnderUNIX.org  - ihtiyac duyacaginiz kisa bilgiler bu sitede!
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Liste arsivi: http://lists.enderunix.org ve 
http://www.mail-archive.com/[EMAIL PROTECTED]
http://ipucu.EnderUNIX.org  - ihtiyac duyacaginiz kisa bilgiler bu sitede!


Cevap