diff --git a/ChangeLog b/ChangeLog index 6e7af10..25483ee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,17 +1,21 @@ RCS file: RCS/imapsync,v Working file: imapsync -head: 1.342 +head: 1.343 branch: locks: strict - gilles: 1.342 + gilles: 1.343 access list: symbolic names: keyword substitution: kv -total revisions: 342; selected revisions: 342 +total revisions: 343; selected revisions: 343 description: ---------------------------- -revision 1.342 locked by: gilles; +revision 1.343 locked by: gilles; +date: 2010/08/15 18:02:11; author: gilles; state: Exp; lines: +9 -7 +Fix. bug in _read_line sysread can return undef; +---------------------------- +revision 1.342 date: 2010/08/15 11:02:41; author: gilles; state: Exp; lines: +12 -13 Clarity. Print capability after authenticated state. ---------------------------- diff --git a/Makefile b/Makefile index ad9a27d..b051a2a 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ -# $Id: Makefile,v 1.35 2010/08/15 11:18:38 gilles Exp gilles $ +# $Id: Makefile,v 1.36 2010/08/15 17:36:04 gilles Exp gilles $ .PHONY: help usage all @@ -14,6 +14,8 @@ usage: @echo "make test229 # run tests with Mail-IMAPClient-2.2.9" @echo "make all " @echo "make upload_index" + @echo "make imapsync.exe" + DIST_NAME=imapsync-$(VERSION) DIST_FILE=$(DIST_NAME).tgz @@ -21,7 +23,6 @@ DEB_FILE=$(DIST_NAME).deb VERSION=$(shell perl -I./Mail-IMAPClient-2.2.9 ./imapsync --version) - all: ChangeLog README VERSION .PHONY: test tests testp testf test3xx @@ -30,10 +31,6 @@ all: ChangeLog README VERSION /usr/bin/time sh tests.sh 1>/dev/null touch .test -.test_3xx: imapsync tests.sh - CMD_PERL='perl -I./Mail-IMAPClient-3.25/lib' /usr/bin/time sh tests.sh 1>/dev/null - touch .test_3xx - test_quick : test_quick_229 test_quick_3xx test_quick_229: imapsync tests.sh @@ -57,6 +54,10 @@ test229: .test_229 CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' /usr/bin/time sh tests.sh 1>/dev/null touch .test_229 +.test_3xx: imapsync tests.sh + CMD_PERL='perl -I./Mail-IMAPClient-3.25/lib' /usr/bin/time sh tests.sh 1>/dev/null + touch .test_3xx + testf: clean_test test testp : @@ -127,13 +128,37 @@ clean_dist: # Local goals -.PHONY: lfo upload_lfo niouze_lfo niouze_fm public +.PHONY: lfo upload_lfo niouze_lfo niouze_fm public dosify_bat imapsync_cidone upload_index: index.shtml rsync -avH index.shtml \ /home/gilles/public_html/www.linux-france.org/html/prj/imapsync/ sh ~/memo/lfo-rsync +.dosify_bat: build_exe.bat test_exe.bat test.bat + unix2dos build_exe.bat test.bat test_exe.bat + touch .dosify_bat + +dosify_bat: .dosify_bat + +.imapsync_cidone: dosify_bat + rcsdiff imapsync + touch .imapsync_cidone + +imapsync_cidone: .imapsync_cidone + + +test_imapsync_exe: dosify_bat + scp test_exe.bat Admin@c:'C:/msys/1.0/home/Admin/imapsync/' + time ssh Admin@c 'C:/msys/1.0/home/Admin/imapsync/test_exe.bat' + +imapsync.exe: imapsync imapsync_cidone dosify_bat + scp imapsync build_exe.bat test_exe.bat \ + Admin@c:'C:/msys/1.0/home/Admin/imapsync/' + time ssh Admin@c 'C:/msys/1.0/home/Admin/imapsync/build_exe.bat' + time ssh Admin@c 'C:/msys/1.0/home/Admin/imapsync/test_exe.bat' + scp Admin@c:'C:/msys/1.0/home/Admin/imapsync/imapsync.exe' . + lfo: dist niouze_lfo upload_lfo diff --git a/README b/README index 1b6d166..8f9cbb0 100644 --- a/README +++ b/README @@ -3,7 +3,7 @@ NAME Synchronise mailboxes between two imap servers. Good at IMAP migration. More than 36 different IMAP server softwares supported with success. - $Revision: 1.342 $ + $Revision: 1.343 $ SYNOPSIS To synchronise imap account "foo" on "imap.truc.org" to imap account @@ -87,7 +87,7 @@ USAGE [--pidfile ] [--tmpdir ] [--version] [--help] - + DESCRIPTION The command imapsync is a tool allowing incremental and recursive imap transfer from one mailbox to another. @@ -400,5 +400,5 @@ SIMILAR SOFTWARES Feedback (good or bad) will often be welcome. - $Id: imapsync,v 1.342 2010/08/15 11:02:41 gilles Exp gilles $ + $Id: imapsync,v 1.343 2010/08/15 18:02:11 gilles Exp gilles $ diff --git a/VERSION b/VERSION index 7a2ec92..6533362 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.342 +1.343 diff --git a/build_exe.bat b/build_exe.bat new file mode 100755 index 0000000..645b8e7 --- /dev/null +++ b/build_exe.bat @@ -0,0 +1,11 @@ + +REM $Id: test.bat,v 1.6 2010/08/15 11:10:49 gilles Exp gilles $ + +echo Building imapsync.exe +cd C:\msys\1.0\home\Admin\imapsync +perl -mMail::IMAPClient -mDigest::MD5 -mTerm::ReadKey -mIO::Socket::SSL -mDate::Manip -mFile::Spec -mDigest::HMAC_MD5 -e '' + +REM -M Date::Manip 6.xx buggy? +pp -o imapsync.exe -M Term::ReadKey -M IO::Socket::SSL -M Digest::HMAC_MD5 imapsync + +echo Done building imapsync.exe diff --git a/imapsync b/imapsync index 8037764..eb7e181 100755 --- a/imapsync +++ b/imapsync @@ -19,7 +19,7 @@ tool. Synchronise mailboxes between two imap servers. Good at IMAP migration. More than 36 different IMAP server softwares supported with success. -$Revision: 1.342 $ +$Revision: 1.343 $ =head1 SYNOPSIS @@ -469,7 +469,7 @@ Entries for imapsync: Feedback (good or bad) will often be welcome. -$Id: imapsync,v 1.342 2010/08/15 11:02:41 gilles Exp gilles $ +$Id: imapsync,v 1.343 2010/08/15 18:02:11 gilles Exp gilles $ =cut @@ -557,7 +557,7 @@ my( # global variables initialisation -$rcs = '$Id: imapsync,v 1.342 2010/08/15 11:02:41 gilles Exp gilles $ '; +$rcs = '$Id: imapsync,v 1.343 2010/08/15 18:02:11 gilles Exp gilles $ '; $total_bytes_transferred = 0; $total_bytes_skipped = 0; @@ -2096,7 +2096,7 @@ exit_clean(0); # subroutines sub imapsync_version { - my $rcs = '$Id: imapsync,v 1.342 2010/08/15 11:02:41 gilles Exp gilles $ '; + my $rcs = '$Id: imapsync,v 1.343 2010/08/15 18:02:11 gilles Exp gilles $ '; $rcs =~ m/,v (\d+\.\d+)/; my $VERSION = ($1) ? $1: "UNKNOWN"; return($VERSION); @@ -2180,8 +2180,8 @@ sub banner_imapsync { my @argv_copy = @_; my $banner_imapsync = join("", '$RCSfile: imapsync,v $ ', - '$Revision: 1.342 $ ', - '$Date: 2010/08/15 11:02:41 $ ', + '$Revision: 1.343 $ ', + '$Date: 2010/08/15 18:02:11 $ ', "\n",localhost_info(), "\n", "Command line used:\n", "$0 ", command_line_nopassword(@argv_copy), "\n", @@ -3568,7 +3568,8 @@ no warnings 'once'; # in case other end has shut down!!! my $ret = $self->_sysread( $sh, \$iBuffer, $readlen, length($iBuffer)) ; # $self->_debug("Read so far: $iBuffer<>\n"); - if($timeout and ! defined($ret)) { # Blocking read error... + redo if(! defined($ret)) ; + if(($timeout and ! defined($ret))) { # Blocking read error... my $msg = "Error while reading data from server: $!\x0d\x0a"; $self->LastError('Error while reading data from server'); $self->State(Unconnected); @@ -3593,6 +3594,7 @@ no warnings 'once'; $@ = "$msg"; return undef; } + # successfully wrote to other end, keep going... $count += $ret; LINES: while ( $iBuffer =~ s/^(.*?\x0d?\x0a)// ) { diff --git a/test2.bat b/test_exe.bat similarity index 94% rename from test2.bat rename to test_exe.bat index 99adbae..864ca2b 100755 --- a/test2.bat +++ b/test_exe.bat @@ -3,6 +3,8 @@ cd C:\msys\1.0\home\Admin\imapsync perl -mMail::IMAPClient -mDigest::MD5 -mTerm::ReadKey -mIO::Socket::SSL -mFile::Spec -mDigest::HMAC_MD5 -e '' +set TZ="GMT" + .\imapsync.exe --host1 l --user1 toto --passfile1 secret.toto --host2 l --user2 titi --passfile2 secret.titi --noauthmd5 --delete2 --expunge2 .\imapsync.exe --host1 l --user1 tata --passfile1 secret.tata --host2 l --user2 titi --passfile2 secret.titi --noauthmd5 --delete2 --expunge2 --folder INBOX diff --git a/tests.sh b/tests.sh index d41aa6a..037e502 100644 --- a/tests.sh +++ b/tests.sh @@ -1,6 +1,6 @@ #!/bin/sh -# $Id: tests.sh,v 1.110 2010/08/15 11:10:04 gilles Exp gilles $ +# $Id: tests.sh,v 1.111 2010/08/15 17:35:37 gilles Exp gilles $ # Example: # CMD_PERL='perl -I./Mail-IMAPClient-3.25/lib' sh -x tests.sh @@ -950,7 +950,7 @@ msw() { if can_send; then sendtestmessage toto fi - scp imapsync test.bat test2.bat\ + scp imapsync test.bat test_exe.bat\ ../../var/pass/secret.toto \ ../../var/pass/secret.titi \ ../../var/pass/secret.tata \ @@ -964,13 +964,13 @@ msw2() { if can_send; then sendtestmessage toto fi - scp imapsync test2.bat\ + scp imapsync test_exe.bat\ ../../var/pass/secret.toto \ ../../var/pass/secret.titi \ ../../var/pass/secret.tata \ Admin@c:'C:/msys/1.0/home/Admin/imapsync/' - ssh Admin@c 'C:/msys/1.0/home/Admin/imapsync/test2.bat' + ssh Admin@c 'C:/msys/1.0/home/Admin/imapsync/test_exe.bat' }