В пн, 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"

Reply via email to