В пн, 03/10/2011 в 11:51 -0700, Doug Barton пишет: > On 10/03/2011 06:05, Boris Samorodov wrote: > > bsam 2011-10-03 13:05:20 UTC > > > > FreeBSD ports repository > > > > Modified files: > > mail/imaptools distinfo > > Log: > > Update distinfo and fix fetching. The distfile was rerolled without > > changing the version. Confirmed by the author via private e-mail. > > He said that it's not a good practice and would avoid doing it in > > the future. > > > > Reported by: pontyhat (pavmail) > > > > Revision Changes Path > > 1.10 +2 -2 ports/mail/imaptools/distinfo > > > > http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/mail/imaptools/distinfo.diff?&r1=1.9&r2=1.10&f=h > > > Confirming with the author is fine, but did you compare the old and new > distfiles yourself? If so, what changed?
Yes, I compared them: ----- diff -ruN 15/old/migrateIMAP.pl 15/new/migrateIMAP.pl --- 15/old/migrateIMAP.pl 2011-09-28 08:08:54.000000000 +0400 +++ 15/new/migrateIMAP.pl 2011-09-30 09:21:15.000000000 +0400 @@ -1,6 +1,6 @@ #!/usr/bin/perl -# $Header: /mhub4/sources/imap-tools/migrateIMAP.pl,v 1.13 2011/09/28 04:29:54 rick Exp $ +# $Header: /mhub4/sources/imap-tools/migrateIMAP.pl,v 1.14 2011/09/30 05:42:21 rick Exp $ #************************************************************************* # * @@ -22,8 +22,6 @@ init(); -$showIMAP=1; - # Get the list of usernames and passwords @users = getUserList( $userlist ); @@ -131,6 +129,8 @@ createMbx( $mbx, $dst ) unless mbxExists( $mbx, $dst); + get_supported_flags( $mbx, $dst, \%SUPPORTED_FLAGS ); + if ( $sent_after ) { getDatedMsgList( $mbx, $sent_after, \@msgs, $src ); } else { @@ -162,6 +162,7 @@ $added=0; foreach $_ ( @msgs ) { ($msgnum,$date,$flags,$msgid) = split(/\|/, $_); + $flags = validate_flags( $flags, \%SUPPORTED_FLAGS ); if ( $update ) { # If we are in 'update' mode then don't copy @@ -676,8 +677,7 @@ if ( $response =~ /^1 OK/i ) { # print STDERR "response $response\n"; last; - } - elsif ( $response !~ /^\*/ ) { + } elsif ( $response !~ /^\*/ ) { Log ("unexpected response: $response"); # print STDERR "Error: $response\n"; return 0; @@ -878,7 +878,6 @@ } elsif ( $response !~ /^\*/ ) { Log ("Unexpected APPEND response: >$response<"); -exit; # next; return 0; } @@ -1427,3 +1426,49 @@ } } + +sub get_supported_flags { + +my $mbx = shift; +my $conn = shift; +my $FLAGS = shift; + + # Determine which flags are supported by the mailbox + + sendCommand ($conn, "1 EXAMINE \"$mbx\""); + undef @response; + $empty=0; + while ( 1 ) { + readResponse ( $conn ); + if ( $response =~ /^1 OK/i ) { + last; + } elsif ( $response !~ /^\*/ ) { + Log ("unexpected response: $response"); + last; + } elsif ( $response =~ /^\* FLAGS \((.+)\)/i ) { + %$FLAGS = (); + foreach my $flag ( split(/\s+/, $1) ) { + $$FLAGS{$flag} = 1; + } + } + } + +} + +sub validate_flags { + +my $flags = shift; +my $valid_flags = shift; +my $newflags; + + # Remove any flags not supported by the destination mailbox + + foreach my $flag ( split(/\s+/, $flags ) ) { + next unless $$valid_flags{$flag}; + $newflags .= "$flag "; + } + chop $newflags; + + return $newflags; + +} ----- -- WBR, bsam _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscr...@freebsd.org"