> -----Messaggio originale----- > Da: kbo [mailto:kbo]Per conto di Ken Jones > Inviato: giovedi 8 marzo 2001 16.35 > A: Andrea Cerrito > Cc: [EMAIL PROTECTED] > Oggetto: Re: CODA and VPOPMAIL and link/rename > > > This is really interesting. So CODA has problems with the link/unlink > function but works okay with the rename function. No. Just with link(). Here it is what a Coda developer said about the link function: http://www.coda.cs.cmu.edu/maillists/codalist-2000/0719.html > Hmm.. why not > change all the link's in vpopmail to renames? Done (see attached patch) and it appears to work. Anyway, I haven't tested it a lot, but I think it's all ok (I mean, we are just changing the way vpopmail move files, nothing else). > Is there any major performance problem or other gotcha's we could > run into if we switched the links to renames? If not, let's make > the change. I don't think there are performance issues, but security issue: qmail uses link function in Maildir to be sure to successfully deliver mail even in case of disk failure. I don't know how rename() can be in such situations. > While we are at it. There is an fsync in vdelivermail.c. I don't > really see a reason and it would just increase the disk I/O load. Well, haven't looked at that. :) --- Cordiali saluti / Best regards Andrea Cerrito ^^^^^^^^^^^^^^ Net.Admin @ Centro MultiMediale di Terni SpA P.zzale Bosco 3A 05100 Terni IT Tel. 0744 / 5441330 Fax. 0744 / 5441372
ÿþ* * * v d e l i v e r m a i l . c . o l d T h u M a r 8 1 6 : 5 7 : 5 6 2 0 0 1 - - - v d e l i v e r m a i l . c T h u M a r 8 1 6 : 5 5 : 2 6 2 0 0 1 * * * * * * * * * * * * * * * * * * 5 7 3 , 5 9 1 * * * * i f ( h i t _ f i l t e r = = 1 ) { d o _ f i l t e r _ d e l i v e r y ( t m p _ f i l e ) ; } e l s e { ! i f ( l i n k ( t m p _ f i l e , m a i l n a m e ) = = - 1 ) { d e l e t e _ t m p ( ) ; f a i l t e m p ( " U n a b l e t o l i n k t m p t o n e w ( # 4 . 3 . 7 ) \ n " ) ; } } # e l s e ! i f ( l i n k ( t m p _ f i l e _ f , m a i l n a m e ) = = - 1 ) { d e l e t e _ t m p _ f ( ) ; f a i l t e m p ( " U n a b l e t o l i n k t m p t o n e w ( # 4 . 3 . 7 ) \ n " ) ; } # e n d i f ! d e l e t e _ t m p _ f ( ) ; } - - - 5 7 3 , 5 9 5 - - - - i f ( h i t _ f i l t e r = = 1 ) { d o _ f i l t e r _ d e l i v e r y ( t m p _ f i l e ) ; } e l s e { ! ! / * U s i n g r e n a m e ( ) i n s t e a d o f l i n k ( ) d u e t o C o d a f s . * / ! i f ( r e n a m e ( t m p _ f i l e , m a i l n a m e ) = = - 1 ) { d e l e t e _ t m p ( ) ; f a i l t e m p ( " U n a b l e t o l i n k t m p t o n e w ( # 4 . 3 . 7 ) \ n " ) ; } } # e l s e ! i f ( r e n a m e ( t m p _ f i l e _ f , m a i l n a m e ) = = - 1 ) { d e l e t e _ t m p _ f ( ) ; f a i l t e m p ( " U n a b l e t o l i n k t m p t o n e w ( # 4 . 3 . 7 ) \ n " ) ; } # e n d i f ! / * W e d o n ' t n e e d d e l e t e _ t m p _ f a n y m o r e , b e c a u s e r e n a m e ( ) " d e l e t e s " f i l e i n t m p / d i r . ! d e l e t e _ t m p _ f ( ) ; ! * / } * * * * * * * * * * * * * * * * * * 7 8 3 , 7 9 3 * * * * d e l e t e _ t m p ( ) ; f a i l t e m p ( " U n a b l e t o c l o s e ( ) t m p f i l e ( # 4 . 3 . 6 ) \ n " ) ; } ! i f ( l i n k ( t m p _ f i l e , m a i l n a m e ) = = - 1 ) { d e l e t e _ t m p ( ) ; f a i l t e m p ( " U n a b l e t o l i n k t m p t o n e w ( # 4 . 3 . 7 ) \ n " ) ; } ! d e l e t e _ t m p ( ) ; # i f d e f H A R D _ Q U O T A i f ( p w _ d a t a ! = N U L L &