mirror of
https://github.com/imapsync/imapsync.git
synced 2025-06-03 19:27:14 +02:00
1.463
This commit is contained in:
parent
1b3773e80f
commit
1cb5bee328
98 changed files with 1701 additions and 597 deletions
10
CREDITS
10
CREDITS
|
@ -1,5 +1,5 @@
|
|||
#!/bin/cat
|
||||
# $Id: CREDITS,v 1.160 2011/07/11 01:30:09 gilles Exp gilles $
|
||||
# $Id: CREDITS,v 1.162 2011/09/21 20:21:14 gilles Exp gilles $
|
||||
|
||||
If you want to make a donation to the author, Gilles LAMIRAL,
|
||||
use any of the following ways:
|
||||
|
@ -30,10 +30,16 @@ I thank very much all of these people.
|
|||
I thank also very much all people who bought imapsync from the homepage
|
||||
but I don't cite them here.
|
||||
|
||||
Klaus Franken
|
||||
Patch to avoid useless warning "Use of uninitialized value $uid1 in exists"
|
||||
|
||||
Charles H Deling
|
||||
Contributed by giving the book
|
||||
13.59 "The Twitter Book"
|
||||
|
||||
Paulo Victor Fernandes da Silva
|
||||
Contributed by giving money 1 USD
|
||||
|
||||
|
||||
Daniel Rohde
|
||||
Bugfix. Solaris 10. ps -o vsz -p @PID
|
||||
|
||||
|
|
37
ChangeLog
37
ChangeLog
|
@ -1,17 +1,46 @@
|
|||
|
||||
RCS file: RCS/imapsync,v
|
||||
Working file: imapsync
|
||||
head: 1.456
|
||||
head: 1.463
|
||||
branch:
|
||||
locks: strict
|
||||
gilles: 1.456
|
||||
gilles: 1.463
|
||||
access list:
|
||||
symbolic names:
|
||||
keyword substitution: kv
|
||||
total revisions: 456; selected revisions: 456
|
||||
total revisions: 463; selected revisions: 463
|
||||
description:
|
||||
----------------------------
|
||||
revision 1.456 locked by: gilles;
|
||||
revision 1.463 locked by: gilles;
|
||||
date: 2011/11/12 21:58:52; author: gilles; state: Exp; lines: +9 -7
|
||||
--subscribe is on by defaut.
|
||||
----------------------------
|
||||
revision 1.462
|
||||
date: 2011/10/16 23:48:58; author: gilles; state: Exp; lines: +14 -11
|
||||
Added --nocacheaftercopy to avoid bad uids in cache with --useuid or --usecache and strange uid generator like dbmail 2.2.17
|
||||
----------------------------
|
||||
revision 1.461
|
||||
date: 2011/10/07 21:02:15; author: gilles; state: Exp; lines: +8 -8
|
||||
MailEnable
|
||||
Mirapoint
|
||||
----------------------------
|
||||
revision 1.460
|
||||
date: 2011/09/21 20:19:46; author: gilles; state: Exp; lines: +8 -8
|
||||
Avoid Perl warning 'Use of uninitialized value $uid1 in exists'. Thanks to Klaus Franken
|
||||
----------------------------
|
||||
revision 1.459
|
||||
date: 2011/09/21 20:10:38; author: gilles; state: Exp; lines: +7 -7
|
||||
Kerio 7.2.0 Patch 1 as host2
|
||||
----------------------------
|
||||
revision 1.458
|
||||
date: 2011/08/24 22:26:20; author: gilles; state: Exp; lines: +7 -6
|
||||
Yahoo host1 success.
|
||||
----------------------------
|
||||
revision 1.457
|
||||
date: 2011/08/24 21:55:56; author: gilles; state: Exp; lines: +10 -10
|
||||
Renamed file.csv to file.txt
|
||||
----------------------------
|
||||
revision 1.456
|
||||
date: 2011/08/24 04:21:30; author: gilles; state: Exp; lines: +15 -13
|
||||
Help message on --sep when namespace separator is NIL. Yahoo case.
|
||||
----------------------------
|
||||
|
|
53
FAQ
53
FAQ
|
@ -1,11 +1,14 @@
|
|||
#!/bin/cat
|
||||
# $Id: FAQ,v 1.92 2011/08/24 06:50:17 gilles Exp gilles $
|
||||
# $Id: FAQ,v 1.95 2011/11/12 23:41:20 gilles Exp gilles $
|
||||
|
||||
+------------------+
|
||||
| FAQ for imapsync |
|
||||
+------------------+
|
||||
|
||||
Unix versus Windows syntax.
|
||||
|
||||
A) \ versus ^
|
||||
|
||||
On Unix shells you can write a single command on multiple lines
|
||||
by using the escape character \ at the end of each line
|
||||
(except the last one). On Windows this character is ^
|
||||
|
@ -31,6 +34,14 @@ better, no truncation, pretty print. It's just sugar.
|
|||
In this FAQ I use \ for examples. Transcript to ^ if
|
||||
you're on a Windows system.
|
||||
|
||||
B) ' versus "
|
||||
|
||||
On Windows the single quote character ' doesn't work
|
||||
like on Unix so in the examples of this FAQ the
|
||||
command containing single quotes ' will fail on Windows.
|
||||
To fix it just replace single quotes ' by double quotes "
|
||||
|
||||
|
||||
=======================================================================
|
||||
Q. How to install imapsync?
|
||||
|
||||
|
@ -81,11 +92,11 @@ Thank you for your participation.
|
|||
Q. I need to migrate hundred accounts, how can I do?
|
||||
|
||||
R. If you have many mailboxes to migrate think about a little
|
||||
shell program. Write a file called file.csv (for example)
|
||||
shell program. Write a file called file.txt (for example)
|
||||
containing users and passwords.
|
||||
The separator used in this example is ';'
|
||||
|
||||
The file.csv file contains:
|
||||
The file.txt file contains:
|
||||
|
||||
user001_1;password001_1;user001_2;password001_2
|
||||
user002_1;password002_1;user002_2;password002_2
|
||||
|
@ -99,11 +110,11 @@ On Unix the shell program can be:
|
|||
{ while IFS=';' read u1 p1 u2 p2; do
|
||||
imapsync --host1 imap.side1.org --user1 "$u1" --password1 "$p1" \
|
||||
--host2 imap.side2.org --user2 "$u2" --password2 "$p2" ...
|
||||
done ; } < file.csv
|
||||
done ; } < file.txt
|
||||
|
||||
On Windows the batch program can be:
|
||||
|
||||
FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.csv) DO imapsync ^
|
||||
FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.txt) DO imapsync ^
|
||||
--host1 imap.side1.org --user1 %%G --password1 %%H ^
|
||||
--host2 imap.side2.org --user2 %%I --password2 %%J ...
|
||||
|
||||
|
@ -128,10 +139,15 @@ R. - Download latest Mail::IMAPClient 3.xx at
|
|||
- run imapsync with perl and -I option tailing to use the perl
|
||||
module Mail-IMAPClient-3.xx. Example:
|
||||
|
||||
perl -I./Mail-IMAPClient-3.23/lib ./imapsync ...
|
||||
perl -I./Mail-IMAPClient-3.30/lib ./imapsync ...
|
||||
|
||||
or if imapsync is in directory /path/
|
||||
perl -I./Mail-IMAPClient-3.23/lib /path/imapsync ...
|
||||
perl -I./Mail-IMAPClient-3.30/lib /path/imapsync ...
|
||||
|
||||
- Look at the script named i3 in the tarball, it can be used to
|
||||
run imapsync with included Mail-IMAPClient-3.30/ wherever you
|
||||
unpacked the imapsync tarball
|
||||
|
||||
|
||||
=======================================================================
|
||||
Q. How can I use imapsync with Mail::IMAPClient 2.2.9 perl module?
|
||||
|
@ -148,6 +164,11 @@ R. - Download Mail::IMAPClient 2.2.9 at
|
|||
or if imapsync is in directory /path/
|
||||
perl -I./Mail-IMAPClient-2.2.9 /path/imapsync [...]
|
||||
|
||||
- Look at the script named i2 in the tarball, it can be used to
|
||||
run imapsync with included Mail-IMAPClient-2.2.9/ wherever you
|
||||
unpacked the imapsync tarball
|
||||
|
||||
|
||||
=======================================================================
|
||||
Q. Can I use imapsync to migrate emails from pop3 server to imap server?
|
||||
|
||||
|
@ -322,7 +343,7 @@ Q. How to convert flags?
|
|||
R. use --regexflag
|
||||
For example to convert flag IMPORTANT to flag CANWAIT
|
||||
|
||||
imapsync ... --regexflag 's/IMPORTANT/CANWAIT/g' --debugflags
|
||||
imapsync ... --regexflag "s/IMPORTANT/CANWAIT/g" --debugflags
|
||||
|
||||
option --debugflags is usefull to see in details what imapsync
|
||||
does with flags.
|
||||
|
@ -1014,6 +1035,22 @@ http://www.linux-france.org/prj/imapsync_list/msg00639.html
|
|||
http://biasecurities.com/blog/2009/migrate-email-from-gmail-to-google-apps/
|
||||
http://www.thamtech.com/blog/2008/03/29/gmail-to-google-apps-email-migration/
|
||||
|
||||
=======================================================================
|
||||
Q. Synchronising from Yahoo to XXX
|
||||
|
||||
R. Use --host1 imap.mail.yahoo.com --sep1 '/'
|
||||
|
||||
./imapsync \
|
||||
--host1 imap.mail.yahoo.com \
|
||||
--user1 billy \
|
||||
--password1 secret \
|
||||
--host2 XXX \
|
||||
--user2 billy \
|
||||
--password2 secret \
|
||||
--sep1 '/'
|
||||
|
||||
Can also add --ssl1 to gain encrypted transfer from yahoo.
|
||||
|
||||
=======================================================================
|
||||
Q. from Microsoft's Exchange 2007 to Google Apps for your Domain
|
||||
(GAFYD)
|
||||
|
|
|
@ -5,7 +5,49 @@ Changes from 2.99_01 to 3.16 made by Mark Overmeer
|
|||
Changes from 0.09 to 2.99_01 made by David Kernen
|
||||
- Potential compatibility issues from 3.17+ highlighted with '*'
|
||||
|
||||
version 3.28_04: Fri Mar 4 00:17:38 EST 2011
|
||||
version 3.30: Fri Nov 11 09:37:00 EST 2011
|
||||
- rt.cpan.org#72347: Starttls array ref argument dereferenced twice
|
||||
[Jonathan Buhacoff]
|
||||
- during connect(): Port now defaults 143 or 993 if $self->Ssl
|
||||
[Kodi Arfer]
|
||||
- stop reconnect deep recursion if server disconnects on login
|
||||
[Luca Ferrario]
|
||||
- reconnect() now returns 1 on success; on error undef or 0=recursive
|
||||
- handle EBADF from syswrite in _send_bytes
|
||||
- rt.cpan.org#67263: add RFC4978 IMAP COMPRESS Extension support
|
||||
[SDIZ]
|
||||
+ new method: compress()
|
||||
+ new attributes: Compress Readmoremethod
|
||||
- general code cleanup:
|
||||
+ new() now always returns $self or undef (never $sock any more)
|
||||
+ Socket() now always return a socket or undef
|
||||
+ login() now always return $self or undef
|
||||
+ _read_more() will now use Readmoremethod if set
|
||||
- missing second arg '' for encode_base64 causing AUTHENTICATE
|
||||
PLAIN to fail on lines longer than 76 characters
|
||||
[Yoshiho Yoshida]
|
||||
|
||||
version 3.29: Tue Aug 9 00:33:52 EDT 2011
|
||||
- rt.cpan.org#69876: ENVELOPE as part of fetch_hash convenience method
|
||||
[Chris Huttman]
|
||||
+ added Mail::IMAPClient::BodyStructure::Envelope->parse_string($str)
|
||||
convenience method for handling ENVELOPE data from fetch_hash
|
||||
- rt.cpan.org#68310: folders() should not call exists()/STATUS
|
||||
[Gilles Lamiral]
|
||||
- affects folders() and subscribed() methods
|
||||
+ use selectable() instead of exists() in call
|
||||
- consider removing extra call to folders()/subscribed()
|
||||
+ ensure separator is set properly in folders()
|
||||
+ selectable now properly checks for \Noselect flag
|
||||
+ update folders() POD to match implementation behavior
|
||||
- rt.cpan.org#68648: [patch]: CAPABILITY after authenticate
|
||||
[Stef Simoens]
|
||||
+ delete cache after State set to Authenticate
|
||||
- State() is no longer an auto-generated method
|
||||
- rt.cpan.org#68755: provided socket loses blocking in 3.19-3.28
|
||||
[Martin Schmitt]
|
||||
|
||||
version 3.28: Fri Mar 4 00:17:38 EST 2011
|
||||
- rt.cpan.org#66004: internaldate() return undef if no internaldate in reply
|
||||
[Jason Long]
|
||||
- rt.cpan.org#66367: fetch_hash uses Escaped_results() in 3.26/3.27
|
|
@ -1,6 +1,6 @@
|
|||
--- #YAML:1.0
|
||||
name: Mail-IMAPClient
|
||||
version: 3.28
|
||||
version: 3.30
|
||||
abstract: IMAP4 client library
|
||||
author:
|
||||
- Phil Pearl (Lobbes) <phil@zimbra.com>
|
|
@ -8,6 +8,7 @@ my @missing;
|
|||
my %optional = (
|
||||
"Authen::NTLM" => { for => "Authmechanism 'NTLM'" },
|
||||
"Authen::SASL" => { for => "Authmechanism 'DIGEST-MD5'" },
|
||||
"Compress::Zlib" => { for => "COMPRESS DEFLATE support" },
|
||||
"Digest::HMAC_MD5" => { for => "Authmechanism 'CRAM-MD5'" },
|
||||
"Digest::MD5" => { for => "Authmechanism 'DIGEST-MD5'" },
|
||||
"IO::Socket::SSL" => { for => "SSL enabled connections (Ssl => 1)" },
|
|
@ -18,6 +18,7 @@ The following are the minimum requirements for using Mail::IMAPClient:
|
|||
Optional:
|
||||
Authen::NTLM
|
||||
Authen::SASL
|
||||
Compress::Zlib
|
||||
Digest::HMAC_MD5
|
||||
Digest::MD5
|
||||
IO::Socket::SSL
|
|
@ -7,7 +7,7 @@ use strict;
|
|||
use warnings;
|
||||
|
||||
package Mail::IMAPClient;
|
||||
our $VERSION = '3.28';
|
||||
our $VERSION = '3.30';
|
||||
|
||||
use Mail::IMAPClient::MessageSet;
|
||||
|
||||
|
@ -16,7 +16,7 @@ use IO::Select ();
|
|||
use Carp qw(carp); #local $SIG{__WARN__} = \&Carp::cluck; #DEBUG
|
||||
|
||||
use Fcntl qw(F_GETFL F_SETFL O_NONBLOCK);
|
||||
use Errno qw(EAGAIN EPIPE ECONNRESET);
|
||||
use Errno qw(EAGAIN EBADF ECONNRESET EPIPE);
|
||||
use List::Util qw(first min max sum);
|
||||
use MIME::Base64 qw(encode_base64 decode_base64);
|
||||
use File::Spec ();
|
||||
|
@ -47,6 +47,7 @@ my %SEARCH_KEYS = map { ( $_ => 1 ) } qw(
|
|||
|
||||
# modules require(d) during runtime when applicable
|
||||
my %Load_Module = (
|
||||
"Compress-Zlib" => "Compress::Zlib",
|
||||
"SSL" => "IO::Socket::SSL",
|
||||
"BodyStructure" => "Mail::IMAPClient::BodyStructure",
|
||||
"Envelope" => "Mail::IMAPClient::BodyStructure::Envelope",
|
||||
|
@ -83,11 +84,11 @@ BEGIN {
|
|||
|
||||
# set-up accessors
|
||||
foreach my $datum (
|
||||
qw(Authcallback Authmechanism Authuser Buffer Count Debug
|
||||
Debug_fh Domain Folder Ignoresizeerrors Keepalive
|
||||
qw(Authcallback Authmechanism Authuser Buffer Count Compress
|
||||
Debug Debug_fh Domain Folder Ignoresizeerrors Keepalive
|
||||
Maxappendstringlength Maxcommandlength Maxtemperrors
|
||||
Password Peek Port Prewritemethod Proxy Ranges Readmethod
|
||||
Reconnectretry Server Showcredentials Ssl Starttls State
|
||||
Readmoremethod Reconnectretry Server Showcredentials Ssl Starttls
|
||||
Supportedflags Timeout Uid User)
|
||||
)
|
||||
{
|
||||
|
@ -256,7 +257,6 @@ sub new {
|
|||
LastError => "",
|
||||
Uid => 1,
|
||||
Count => 0,
|
||||
Fast_io => 1,
|
||||
Clear => 2,
|
||||
Keepalive => 0,
|
||||
Maxappendstringlength => 1024**2,
|
||||
|
@ -264,7 +264,6 @@ sub new {
|
|||
Maxtemperrors => undef,
|
||||
State => Unconnected,
|
||||
Authmechanism => 'LOGIN',
|
||||
Port => 143,
|
||||
Timeout => 600,
|
||||
History => {},
|
||||
};
|
||||
|
@ -275,6 +274,12 @@ sub new {
|
|||
}
|
||||
bless $self, ref($class) || $class;
|
||||
|
||||
# Fast_io is enabled by default when not given a socket
|
||||
unless ( exists $self->{Fast_io} || $self->{Socket} || $self->{Rawsocket} )
|
||||
{
|
||||
$self->{Fast_io} = 1;
|
||||
}
|
||||
|
||||
if ( my $sup = $self->{Supportedflags} ) { # unpack into case-less HASH
|
||||
my %sup = map { m/^\\?(\S+)/ ? lc $1 : () } @$sup;
|
||||
$self->{Supportedflags} = \%sup;
|
||||
|
@ -299,7 +304,10 @@ sub new {
|
|||
$self->RawSocket($sock) unless $self->{Socket};
|
||||
}
|
||||
|
||||
!$self->{Socket} && $self->{Server} ? $self->connect : $self;
|
||||
if ( !$self->{Socket} && $self->{Server} ) {
|
||||
$self->connect or return undef;
|
||||
}
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub connect(@) {
|
||||
|
@ -309,7 +317,7 @@ sub connect(@) {
|
|||
%$self = ( %$self, @_ ) if @_;
|
||||
|
||||
my $server = $self->Server;
|
||||
my $port = $self->Port;
|
||||
my $port = $self->Port || $self->Port( $self->Ssl ? "993" : "143" );
|
||||
my @timeout = $self->Timeout ? ( Timeout => $self->Timeout ) : ();
|
||||
my $sock;
|
||||
|
||||
|
@ -323,27 +331,28 @@ sub connect(@) {
|
|||
}
|
||||
else {
|
||||
my $ioclass = "IO::Socket::INET";
|
||||
if ( $self->Ssl ) {
|
||||
$ioclass = $self->_load_module("SSL") or return undef;
|
||||
}
|
||||
$ioclass = $self->_load_module("SSL") if ( $self->Ssl );
|
||||
|
||||
$self->_debug("Connecting via $ioclass to $server:$port @timeout");
|
||||
$sock = $ioclass->new(
|
||||
PeerAddr => $server,
|
||||
PeerPort => $port,
|
||||
Proto => 'tcp',
|
||||
Debug => $self->Debug,
|
||||
@timeout
|
||||
);
|
||||
if ($ioclass) {
|
||||
$self->_debug("Connecting via $ioclass to $server:$port @timeout");
|
||||
$sock = $ioclass->new(
|
||||
PeerAddr => $server,
|
||||
PeerPort => $port,
|
||||
Proto => 'tcp',
|
||||
Debug => $self->Debug,
|
||||
@timeout
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
unless ($sock) {
|
||||
if ($sock) {
|
||||
$self->_debug( "Connected to $server" . ( $! ? " errno($!)" : "" ) );
|
||||
return $self->Socket($sock);
|
||||
}
|
||||
else {
|
||||
$self->LastError("Unable to connect to $server: $@");
|
||||
return undef;
|
||||
}
|
||||
|
||||
$self->_debug( "Connected to $server" . ( $! ? " errno($!)" : "" ) );
|
||||
$self->Socket($sock);
|
||||
}
|
||||
|
||||
sub RawSocket(;$) {
|
||||
|
@ -357,7 +366,7 @@ sub RawSocket(;$) {
|
|||
delete $self->{_fcntl};
|
||||
$self->Fast_io( $self->Fast_io );
|
||||
|
||||
$sock;
|
||||
return $sock;
|
||||
}
|
||||
|
||||
sub Socket($) {
|
||||
|
@ -387,7 +396,11 @@ sub Socket($) {
|
|||
$self->starttls or return undef;
|
||||
}
|
||||
|
||||
$self->User && $self->Password ? $self->login : $self;
|
||||
if ( defined $self->User && defined $self->Password ) {
|
||||
$self->login or return undef;
|
||||
}
|
||||
|
||||
return $self->{Socket};
|
||||
}
|
||||
|
||||
# RFC2595 section 3.1
|
||||
|
@ -418,7 +431,7 @@ sub starttls {
|
|||
# give caller control of args to start_SSL if desired
|
||||
my @sslargs =
|
||||
( $self->Starttls and ref( $self->Starttls ) eq "ARRAY" )
|
||||
? ( @${ $self->Starttls } )
|
||||
? ( @{ $self->Starttls } )
|
||||
: ( Timeout => 30 );
|
||||
|
||||
unless ( $ioclass->start_SSL( $sock, @sslargs ) ) {
|
||||
|
@ -432,30 +445,129 @@ sub starttls {
|
|||
return $self;
|
||||
}
|
||||
|
||||
# RFC4978 COMPRESS
|
||||
sub compress {
|
||||
my ($self) = @_;
|
||||
|
||||
# BUG? strict check on capability commented out for now...
|
||||
#my $can = $self->has_capability("COMPRESS")
|
||||
#return undef unless $can and $can eq "DEFLATE";
|
||||
|
||||
$self->_imap_command("COMPRESS DEFLATE") or return undef;
|
||||
|
||||
my $zcl = $self->_load_module("Compress-Zlib") or return undef;
|
||||
|
||||
# give caller control of args if desired
|
||||
$self->Compress(
|
||||
[
|
||||
-WindowBits => -$zcl->MAX_WBITS(),
|
||||
-Level => $zcl->Z_BEST_SPEED()
|
||||
]
|
||||
) unless ( $self->Compress and ref( $self->Compress ) eq "ARRAY" );
|
||||
|
||||
my ( $rc, $do, $io );
|
||||
|
||||
( $do, $rc ) = Compress::Zlib::deflateInit( @{ $self->Compress } );
|
||||
unless ( $rc == $zcl->Z_OK ) {
|
||||
$self->LastError("deflateInit failed (rc=$rc)");
|
||||
return undef;
|
||||
}
|
||||
|
||||
( $io, $rc ) =
|
||||
Compress::Zlib::inflateInit( -WindowBits => -$zcl->MAX_WBITS() );
|
||||
unless ( $rc == $zcl->Z_OK ) {
|
||||
$self->LastError("inflateInit failed (rc=$rc)");
|
||||
return undef;
|
||||
}
|
||||
|
||||
$self->{Prewritemethod} = sub {
|
||||
my ( $imap, $string ) = @_;
|
||||
|
||||
my ( $rc, $out1, $out2 );
|
||||
( $out1, $rc ) = $do->deflate($string);
|
||||
( $out2, $rc ) = $do->flush( $zcl->Z_PARTIAL_FLUSH() )
|
||||
unless ( $rc != $zcl->Z_OK );
|
||||
|
||||
unless ( $rc == $zcl->Z_OK ) {
|
||||
$self->LastError("deflate/flush failed (rc=$rc)");
|
||||
return undef;
|
||||
}
|
||||
|
||||
return $out1 . $out2;
|
||||
};
|
||||
|
||||
# need to retain some state for Readmoremethod/Readmethod calls
|
||||
my ( $Zbuf, $Ibuf ) = ( "", "" );
|
||||
|
||||
$self->{Readmoremethod} = sub {
|
||||
my $self = shift;
|
||||
return 1 if ( length($Zbuf) || length($Ibuf) );
|
||||
$self->__read_more(@_);
|
||||
};
|
||||
|
||||
$self->{Readmethod} = sub {
|
||||
my ( $imap, $fh, $buf, $len, $off ) = @_;
|
||||
|
||||
# get more data, but empty $Ibuf first if any data is left
|
||||
my ( $lz, $li ) = ( length $Zbuf, length $Ibuf );
|
||||
if ( $lz || !$li ) {
|
||||
my $ret = sysread( $fh, $Zbuf, $len, length $Zbuf );
|
||||
$lz = length $Zbuf;
|
||||
return $ret if ( !$ret && !$lz ); # $ret is undef or 0
|
||||
}
|
||||
|
||||
# accummulate inflated data in $Ibuf
|
||||
if ($lz) {
|
||||
my ( $tbuf, $rc ) = $io->inflate( \$Zbuf );
|
||||
unless ( $rc == $zcl->Z_OK ) {
|
||||
$self->LastError("inflate failed (rc=$rc)");
|
||||
return undef;
|
||||
}
|
||||
$Ibuf .= $tbuf;
|
||||
}
|
||||
|
||||
# pull desired length of data from $Ibuf
|
||||
my $tbuf = substr( $Ibuf, 0, $len );
|
||||
substr( $Ibuf, 0, $len ) = "";
|
||||
substr( $$buf, $off ) = $tbuf;
|
||||
|
||||
return length $tbuf;
|
||||
};
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub login {
|
||||
my $self = shift;
|
||||
my $auth = $self->Authmechanism;
|
||||
return $self->authenticate( $auth, $self->Authcallback )
|
||||
if $auth && $auth ne 'LOGIN';
|
||||
|
||||
my $passwd = $self->Password;
|
||||
my $id = $self->User;
|
||||
if ( $auth && $auth ne 'LOGIN' ) {
|
||||
$self->authenticate( $auth, $self->Authcallback )
|
||||
or return undef;
|
||||
}
|
||||
else {
|
||||
my $passwd = $self->Password;
|
||||
my $id = $self->User;
|
||||
|
||||
return undef unless ( defined($passwd) and defined($id) );
|
||||
return undef unless ( defined($passwd) and defined($id) );
|
||||
|
||||
# BUG: should use Quote() with $passwd and $id
|
||||
if ( $passwd eq "" or $passwd =~ m/\W/ ) {
|
||||
$passwd =~ s/(["\\])/\\$1/g;
|
||||
$passwd = qq("$passwd");
|
||||
# BUG: should use Quote() with $passwd and $id
|
||||
if ( $passwd eq "" or $passwd =~ m/\W/ ) {
|
||||
$passwd =~ s/(["\\])/\\$1/g;
|
||||
$passwd = qq("$passwd");
|
||||
}
|
||||
|
||||
$id = qq("$id") if $id !~ /^".*"$/;
|
||||
|
||||
$self->_imap_command("LOGIN $id $passwd")
|
||||
or return undef;
|
||||
}
|
||||
|
||||
$id = qq("$id") if $id !~ /^".*"$/;
|
||||
|
||||
$self->_imap_command("LOGIN $id $passwd")
|
||||
or return undef;
|
||||
|
||||
$self->State(Authenticated);
|
||||
$self;
|
||||
if ( $self->Compress ) {
|
||||
$self->compress or return undef;
|
||||
}
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub noop {
|
||||
|
@ -557,7 +669,7 @@ sub _folders_or_subscribed {
|
|||
{
|
||||
my @list;
|
||||
if ($what) {
|
||||
my $sep = $self->separator($what);
|
||||
my $sep = $self->separator($what) || $self->separator(undef);
|
||||
last unless defined $sep;
|
||||
|
||||
my $whatsub = $what =~ m/\Q${sep}\E$/ ? "$what*" : "$what$sep*";
|
||||
|
@ -566,8 +678,10 @@ sub _folders_or_subscribed {
|
|||
shift @$tref; # remove command
|
||||
push @list, @$tref;
|
||||
|
||||
my $exists = $self->exists($what) or last;
|
||||
if ($exists) {
|
||||
# BUG?: this behavior has been around since 2.x, why?
|
||||
my $cansel = $self->selectable($what);
|
||||
last unless defined $cansel;
|
||||
if ($cansel) {
|
||||
$tref = $self->$method( undef, $what ) or last;
|
||||
shift @$tref; # remove command
|
||||
push @list, @$tref;
|
||||
|
@ -1051,16 +1165,32 @@ sub reconnect {
|
|||
|
||||
if ( $self->IsAuthenticated ) {
|
||||
$self->_debug("reconnect called but already authenticated");
|
||||
return $self;
|
||||
return 1;
|
||||
}
|
||||
|
||||
# safeguard from deep recursion via connect
|
||||
if ( $self->{_doing_reconnect} ) {
|
||||
$self->_debug("recursive call to reconnect, returning 0\n");
|
||||
$self->LastError("unexpected reconnect recursion")
|
||||
unless $self->LastError;
|
||||
return 0;
|
||||
}
|
||||
|
||||
my $einfo = $self->LastError || "";
|
||||
$self->_debug( "reconnecting to ", $self->Server, ", last error: $einfo" );
|
||||
$self->{_doing_reconnect} = 1;
|
||||
|
||||
# reconnect and select appropriate folder
|
||||
$self->connect or return undef;
|
||||
my $ret;
|
||||
if ( $self->connect ) {
|
||||
$ret = 1;
|
||||
if ( defined $self->Folder ) {
|
||||
$ret = defined( $self->select( $self->Folder ) ) ? 1 : undef;
|
||||
}
|
||||
}
|
||||
|
||||
return ( defined $self->Folder ) ? $self->select( $self->Folder ) : $self;
|
||||
delete $self->{_doing_reconnect};
|
||||
return $ret ? 1 : $ret;
|
||||
}
|
||||
|
||||
# wrapper for _imap_command_do to enable retrying on lost connections
|
||||
|
@ -1091,11 +1221,15 @@ sub _imap_command {
|
|||
# BUG? reconnect if caller ignored/missed earlier errors?
|
||||
# or $self->LastError =~ /NO not connected/
|
||||
);
|
||||
if ( $self->reconnect ) {
|
||||
$self->_debug("reconnect successful on try #$tries");
|
||||
my $ret = $self->reconnect;
|
||||
if ($ret) {
|
||||
$self->_debug("reconnect success($ret) on try #$tries/$retry");
|
||||
}
|
||||
elsif ( defined $ret and $ret == 0 ) { # escaping recursion
|
||||
return undef;
|
||||
}
|
||||
else {
|
||||
$self->_debug("reconnect failed on try #$tries");
|
||||
$self->_debug("reconnect failure on try #$tries/$retry");
|
||||
push( @err, $self->LastError ) if $self->LastError;
|
||||
}
|
||||
}
|
||||
|
@ -1340,10 +1474,10 @@ sub _send_bytes($) {
|
|||
|
||||
local $SIG{PIPE} = 'IGNORE'; # handle SIGPIPE as normal error
|
||||
|
||||
my $socket = $self->Socket;
|
||||
while ( $total < length $$byteref ) {
|
||||
my $written =
|
||||
syswrite( $self->Socket, $$byteref, length($$byteref) - $total,
|
||||
$total );
|
||||
syswrite( $socket, $$byteref, length($$byteref) - $total, $total );
|
||||
|
||||
if ( defined $written ) {
|
||||
$temperrs = 0;
|
||||
|
@ -1364,7 +1498,8 @@ sub _send_bytes($) {
|
|||
|
||||
# Unconnected might be apropos for more than just these?
|
||||
my $emsg = $! ? "$!" : "no error caught";
|
||||
$self->State(Unconnected) if ( $! == EPIPE or $! == ECONNRESET );
|
||||
$self->State(Unconnected)
|
||||
if ( $! == EPIPE or $! == ECONNRESET or $! == EBADF );
|
||||
$self->LastError("Write failed '$emsg'");
|
||||
|
||||
return undef; # no luck
|
||||
|
@ -1620,6 +1755,12 @@ sub _sysread {
|
|||
}
|
||||
|
||||
sub _read_more {
|
||||
my $self = shift;
|
||||
my $rm = $self->Readmoremethod;
|
||||
$rm ? $rm->( $self, @_ ) : $self->__read_more(@_);
|
||||
}
|
||||
|
||||
sub __read_more {
|
||||
my $self = shift;
|
||||
my $opt = ref( $_[0] ) eq "HASH" ? shift : {};
|
||||
my ( $socket, $timeout ) = @_;
|
||||
|
@ -1756,7 +1897,7 @@ sub _disconnect {
|
|||
local ($@); # avoid stomping on global $@
|
||||
eval { $sock->close };
|
||||
}
|
||||
$self;
|
||||
return $self;
|
||||
}
|
||||
|
||||
# LIST/XLIST/LSUB Response
|
||||
|
@ -2710,8 +2851,8 @@ sub is_parent {
|
|||
|
||||
sub selectable {
|
||||
my ( $self, $f ) = @_;
|
||||
my $info = $self->list( "", $f );
|
||||
defined $info ? not( grep /NoSelect/i, @$info ) : undef;
|
||||
my $info = $self->list( "", $f ) or return undef;
|
||||
return not( grep /\b\\Noselect\b/i, @$info );
|
||||
}
|
||||
|
||||
# append( $self, $folder, $text [, $optmsg] )
|
||||
|
@ -2992,6 +3133,7 @@ sub authenticate {
|
|||
: ( "", $client->User ),
|
||||
defined $client->Password ? $client->Password : "",
|
||||
),
|
||||
''
|
||||
);
|
||||
};
|
||||
}
|
||||
|
@ -3250,6 +3392,19 @@ sub unseen_count {
|
|||
return $r;
|
||||
}
|
||||
|
||||
sub State($) {
|
||||
my ( $self, $state ) = @_;
|
||||
|
||||
if ( defined $state ) {
|
||||
$self->{State} = $state;
|
||||
|
||||
# discard cached capability info after authentication
|
||||
delete $self->{CAPABILITY} if ( $state == Authenticated );
|
||||
}
|
||||
|
||||
return defined( $self->{State} ) ? $self->{State} : Unconnected;
|
||||
}
|
||||
|
||||
sub Status { shift->State }
|
||||
sub IsUnconnected { shift->State == Unconnected }
|
||||
sub IsConnected { shift->State >= Connected }
|
|
@ -649,7 +649,11 @@ The B<capability> method returns an array of capabilities as returned
|
|||
by the CAPABILITY IMAP Client command, or a reference to an array of
|
||||
capabilities if called in scalar context. If the CAPABILITY IMAP
|
||||
Client command fails for any reason then the B<capability> method will
|
||||
return C<undef>.
|
||||
return C<undef>. Supported capabilities are cached by the client,
|
||||
however, this cache is deleted after a connection is set to
|
||||
I<Authenticated> and when L</starttls> is called.
|
||||
|
||||
See also L</has_capability>.
|
||||
|
||||
=head2 close
|
||||
|
||||
|
@ -668,6 +672,18 @@ Note: this closes the currently selected folder, not the IMAP session.
|
|||
|
||||
See also L</delete_message>, L</expunge>, and RFC3501.
|
||||
|
||||
=head2 compress
|
||||
|
||||
Example:
|
||||
|
||||
$imap->compress or die "Could not enable RFC4978 compression: $@\n";
|
||||
|
||||
The B<compress> method accepts no arguments. This method is used to
|
||||
instruct the server to use the DEFLATE (RFC1951) compression
|
||||
extension. See the L</Compress> attribute for how to specify arguments for use during the the initialization process.
|
||||
|
||||
Version note: method added in Mail::IMAPClient 3.30
|
||||
|
||||
=head2 connect
|
||||
|
||||
Example:
|
||||
|
@ -1142,9 +1158,12 @@ For example:
|
|||
# Prints:
|
||||
# Projects/Completed, Projects/Ongoing
|
||||
|
||||
Notice that if you just want to list a folder's subfolders (and not
|
||||
the folder itself), then you need to include the hierarchy separator
|
||||
character (as returned by the L</separator> method).
|
||||
Please note that documentation previously suggested that if you just
|
||||
want to list a folder's subfolders (and not the folder itself), then
|
||||
you need to include the hierarchy separator character (as returned by
|
||||
the L</separator> method). However, this does not match the behavior
|
||||
of the existing implementation, so you will need to manually exclude
|
||||
the parent folder from the results.
|
||||
|
||||
=head2 xlist_folders
|
||||
|
||||
|
@ -1458,6 +1477,8 @@ and $@ is set. The methods L</new>, L</connect>, and L</Socket> may
|
|||
automatically invoke B<login> see the documentation of each method for
|
||||
details.
|
||||
|
||||
If the L</Compress> parameter is set, the L</compress> method will automatically be called after successful authentication.
|
||||
|
||||
See also L</proxyauth> and L</Proxy> for additional information
|
||||
regarding ways of authenticating with a server via SASL and/or
|
||||
PROXYAUTH.
|
||||
|
@ -2834,6 +2855,22 @@ will (except of course for that inevitable last transaction).
|
|||
The default I<Clear> value is set to five (5) in order to conserve
|
||||
memory.
|
||||
|
||||
=head2 Compress
|
||||
|
||||
If set, Mail::IMAPClient attempts to enable use of the RFC4978
|
||||
COMPRESS DEFLATE extension. This requires that the server supports
|
||||
this CAPABILITY. This attribute can be set to a true value to enable
|
||||
or an ARRAYREF to control the arguments used in the call to
|
||||
Compress::Zlib::deflateInit().
|
||||
|
||||
Mail::IMAPClient will automatically use L<Compress::Zlib> to
|
||||
deflate/inflate the data to/from the server. This attribute is used
|
||||
in the L</login> method.
|
||||
|
||||
See also L</compress> and L</capability>.
|
||||
|
||||
Version note: attribute added in Mail::IMAPClient 3.30
|
||||
|
||||
=head2 Debug
|
||||
|
||||
Example:
|
||||
|
@ -2914,20 +2951,12 @@ Example:
|
|||
# or:
|
||||
$imap->Fast_io($true_or_false);
|
||||
|
||||
The I<Fast_io> parameter controls whether or not your
|
||||
Mail::IMAPClient object will attempt to use buffered (i.e. "Fast")
|
||||
I/O. It is turned on by default. If you turn it off you will
|
||||
definitely slow down your program, often to a painful degree.
|
||||
However, if you are experience problems you may want to try this just
|
||||
to see if it helps. If it does then that means you have found a bug
|
||||
and should report it immediately (by following the instructions in the
|
||||
section on L</"REPORTING BUGS">). Even if it doesn't fix the problem,
|
||||
testing with both I<Fast_io> turned on and with it turned off will
|
||||
often aid in identifying the source of the problem. (If it doesn't
|
||||
help you, it may help me when you report it!)
|
||||
The I<Fast_io> parameter controls whether or not the Mail::IMAPClient
|
||||
object will attempt to use non-blocking I/O on the IMAP socket. It is
|
||||
turned on by default (unless the caller provides the socket to be
|
||||
used).
|
||||
|
||||
Lately there have not been any bugs associated with I<Fast_io> so this
|
||||
parameter may become deprecated in the future.
|
||||
See also L</Buffer>.
|
||||
|
||||
=head2 Folder
|
||||
|
||||
|
@ -3056,10 +3085,11 @@ Example:
|
|||
# or:
|
||||
$imap->Port($new_value);
|
||||
|
||||
Specifies the port on which the IMAP server is listening. The default
|
||||
is 143, which is the standard IMAP port. Can be supplied with the
|
||||
L</new> method call or separately by calling the L</Port> object
|
||||
method.
|
||||
Specifies the port on which the IMAP server is listening. A default
|
||||
value of 993 (if L</Ssl> is true) or 143 is set during a call to
|
||||
L</connect> if no value is provided by the caller. This argument can
|
||||
be supplied with the L</new> method call or separately by calling the
|
||||
L</Port> object method.
|
||||
|
||||
=head2 Prewritemethod
|
||||
|
||||
|
@ -3186,6 +3216,18 @@ object itself.
|
|||
|
||||
See also L</Prewritemethod>.
|
||||
|
||||
=head2 Readmoremethod
|
||||
|
||||
B<Readmoremethod> should contain a reference to a subroutine that will
|
||||
replace/enhance the behavior of the internal _read_more() method. The
|
||||
subroutine will be passed the following arguments: first the used
|
||||
Mail::IMAPClient object. Second, a reference to a socket. Third, a
|
||||
timeout value which is used as the timeout value for CORE::select() by
|
||||
default. Depending upon changes/features introduced by Readmethod
|
||||
changes may be required here.
|
||||
|
||||
Version note: attribute added in Mail::IMAPClient 3.30
|
||||
|
||||
=head2 Reconnectretry
|
||||
|
||||
If an IMAP connection sits idle too long, the connection may be closed
|
|
@ -164,6 +164,12 @@ sub new
|
|||
$parser->envelope($envelope);
|
||||
}
|
||||
|
||||
sub parse_string
|
||||
{ my ($class, $envelope) = @_;
|
||||
$envelope = "(" . $envelope . ")" unless ( $envelope =~ /^\(/ );
|
||||
$parser->envelopestruct($envelope);
|
||||
}
|
||||
|
||||
sub from_addresses { shift->_addresses(from => 1) }
|
||||
sub sender_addresses { shift->_addresses(sender => 1) }
|
||||
sub replyto_addresses { shift->_addresses(replyto => 1) }
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Test::More tests => 27;
|
||||
use Test::More tests => 41;
|
||||
|
||||
BEGIN { use_ok('Mail::IMAPClient::BodyStructure') or exit; }
|
||||
|
||||
|
@ -115,3 +115,37 @@ is_deeply( [ $bsobj->parts ], \@exp, 'bs9 parts' )
|
|||
my $to = $env->to_addresses;
|
||||
is_deeply( $to, [ '<phil+to@dom.loc>' ], "to_addresses" );
|
||||
}
|
||||
|
||||
# envelope: parse_string
|
||||
# date, subject, from, sender, reply-to, to, cc, bcc, in-reply-to, message-id
|
||||
{
|
||||
my $str = q{"Mon, 29 Nov 2010 18:28:23 +0200" "subj" (("Phil Pearl" NIL "phil+from" "dom.loc")) (("Phil Pearl" NIL "phil+sender" "dom.loc")) () ((NIL NIL "phil+to" "dom.loc")) NIL NIL NIL "<msgid>"};
|
||||
my $env = Mail::IMAPClient::BodyStructure::Envelope->parse_string($str);
|
||||
is( $env->subject, "subj", "subject" );
|
||||
is( $env->inreplyto, "NIL", "inreplyto" );
|
||||
is( $env->messageid, "<msgid>", "messageid" );
|
||||
is( $env->bcc, "NIL", "bcc" );
|
||||
is( $env->cc, "NIL", "cc" );
|
||||
is( $env->replyto, "NIL", "replyto" );
|
||||
|
||||
# personalname mailboxname hostname sourcename
|
||||
my $to = $env->to_addresses;
|
||||
is_deeply( $to, [ '<phil+to@dom.loc>' ], "to_addresses" );
|
||||
}
|
||||
|
||||
# envelope: parse_string
|
||||
# date, subject, from, sender, reply-to, to, cc, bcc, in-reply-to, message-id
|
||||
{
|
||||
my $str = q{("Mon, 29 Nov 2010 18:28:23 +0200" "subj" (("Phil Pearl" NIL "phil+from" "dom.loc")) (("Phil Pearl" NIL "phil+sender" "dom.loc")) () ((NIL NIL "phil+to" "dom.loc")) NIL NIL NIL "<msgid>")};
|
||||
my $env = Mail::IMAPClient::BodyStructure::Envelope->parse_string($str);
|
||||
is( $env->subject, "subj", "subject" );
|
||||
is( $env->inreplyto, "NIL", "inreplyto" );
|
||||
is( $env->messageid, "<msgid>", "messageid" );
|
||||
is( $env->bcc, "NIL", "bcc" );
|
||||
is( $env->cc, "NIL", "cc" );
|
||||
is( $env->replyto, "NIL", "replyto" );
|
||||
|
||||
# personalname mailboxname hostname sourcename
|
||||
my $to = $env->to_addresses;
|
||||
is_deeply( $to, [ '<phil+to@dom.loc>' ], "to_addresses" );
|
||||
}
|
51
Makefile
51
Makefile
|
@ -1,5 +1,5 @@
|
|||
|
||||
# $Id: Makefile,v 1.84 2011/07/29 03:02:01 gilles Exp gilles $
|
||||
# $Id: Makefile,v 1.89 2011/11/13 08:53:12 gilles Exp gilles $
|
||||
|
||||
.PHONY: help usage all
|
||||
|
||||
|
@ -20,21 +20,27 @@ usage:
|
|||
@echo "make upload_ks"
|
||||
@echo "make imapsync.exe"
|
||||
@echo "make imapsync_elf_x86.bin"
|
||||
@echo "make publish"
|
||||
|
||||
|
||||
DIST_NAME=imapsync-$(VERSION)
|
||||
DIST_FILE=$(DIST_NAME).tgz
|
||||
DEB_FILE=$(DIST_NAME).deb
|
||||
VERSION=$(shell perl -I./Mail-IMAPClient-2.2.9 ./imapsync --version)
|
||||
|
||||
VERSION=$(shell perl -I$(IMAPClient) ./imapsync --version)
|
||||
VERSION_EXE=$(shell cat ./VERSION_EXE)
|
||||
|
||||
HELLO=$(shell date;uname -a)
|
||||
IMAPClient_2xx=./Mail-IMAPClient-2.2.9
|
||||
IMAPClient_3xx=./Mail-IMAPClient-3.30/lib
|
||||
IMAPClient=$(IMAPClient_3xx)
|
||||
|
||||
hello:
|
||||
echo "$(HELLO)"
|
||||
echo "$(VERSION)"
|
||||
echo "$(IMAPClient)"
|
||||
|
||||
|
||||
all: ChangeLog README VERSION
|
||||
all: ChangeLog README VERSION imapsync_elf_x86.bin
|
||||
|
||||
|
||||
testp :
|
||||
|
@ -47,7 +53,7 @@ README: imapsync
|
|||
perldoc -t imapsync > README
|
||||
|
||||
VERSION: imapsync
|
||||
perl -I./Mail-IMAPClient-2.2.9 ./imapsync --version > VERSION
|
||||
perl -I./$(IMAPClient) ./imapsync --version > VERSION
|
||||
|
||||
|
||||
.PHONY: clean clean_tilde clean_test
|
||||
|
@ -90,22 +96,23 @@ cidone:
|
|||
###############
|
||||
|
||||
|
||||
.PHONY: test tests testp testf test3xx
|
||||
.PHONY: test tests testp testf test3xx testv2 testv3
|
||||
|
||||
test_quick : test_quick_3xx test_quick_229
|
||||
|
||||
test_quick_229: imapsync tests.sh
|
||||
CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' /usr/bin/time sh -x tests.sh locallocal
|
||||
CMD_PERL='perl -I./$(IMAPClient_2xx)' /usr/bin/time sh -x tests.sh locallocal
|
||||
|
||||
test_quick_3xx: imapsync tests.sh
|
||||
CMD_PERL='perl -I./Mail-IMAPClient-3.28/lib' /usr/bin/time sh -x tests.sh locallocal
|
||||
CMD_PERL='perl -I./$(IMAPClient_3xx)' /usr/bin/time sh -x tests.sh locallocal
|
||||
|
||||
testv2:
|
||||
CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' /usr/bin/time sh tests.sh
|
||||
testv2: .test_229
|
||||
CMD_PERL='perl -I./$(IMAPClient_2xx) /usr/bin/time sh tests.sh
|
||||
touch .test_229
|
||||
|
||||
testv3:
|
||||
CMD_PERL='perl -I./Mail-IMAPClient-3.28/lib' sh -x tests.sh
|
||||
testv3:.test_3xx
|
||||
CMD_PERL='perl -I./$(IMAPClient_3xx)' sh -x tests.sh
|
||||
touch .test_3xx
|
||||
|
||||
test: .test_229 .test_3xx
|
||||
|
||||
|
@ -116,11 +123,11 @@ test3xx: .test_3xx
|
|||
test229: .test_229
|
||||
|
||||
.test_229: imapsync tests.sh
|
||||
CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' /usr/bin/time sh tests.sh 1>/dev/null
|
||||
CMD_PERL='perl -I./$(IMAPClient_2xx)' /usr/bin/time sh tests.sh 1>/dev/null
|
||||
touch .test_229
|
||||
|
||||
.test_3xx: imapsync tests.sh
|
||||
CMD_PERL='perl -I./Mail-IMAPClient-3.28/lib' /usr/bin/time sh tests.sh 1>/dev/null
|
||||
CMD_PERL='perl -I./$(IMAPClient_3xx)' /usr/bin/time sh tests.sh 1>/dev/null
|
||||
touch .test_3xx
|
||||
|
||||
testf: clean_test test
|
||||
|
@ -145,7 +152,7 @@ tests_win32: dosify_bat
|
|||
# ssh Admin@c 'tasklist /NH /FO CSV'
|
||||
|
||||
tests_win32_dev: dosify_bat
|
||||
scp imapsync file.csv test2.bat Admin@c:'C:/msys/1.0/home/Admin/imapsync/'
|
||||
scp imapsync file.txt test2.bat Admin@c:'C:/msys/1.0/home/Admin/imapsync/'
|
||||
ssh Admin@c 'C:/msys/1.0/home/Admin/imapsync/test2.bat'
|
||||
|
||||
test_imapsync_exe: dosify_bat
|
||||
|
@ -171,23 +178,24 @@ imapsync.exe: imapsync build_exe.bat .dosify_bat
|
|||
imapsync_elf_x86.bin: imapsync
|
||||
rcsdiff imapsync
|
||||
{ test 'vadrouille' = "`hostname`" && \
|
||||
pp -o imapsync_elf_x86.bin -I Mail-IMAPClient-3.28/lib \
|
||||
pp -o imapsync_elf_x86.bin -I $(IMAPClient_3xx) \
|
||||
-M Mail::IMAPClient -M IO::Socket -M IO::Socket::SSL \
|
||||
-M Digest::MD5 -M Digest::HMAC_MD5 -M Term::ReadKey \
|
||||
-M Authen::NTLM \
|
||||
imapsync ; \
|
||||
} || :
|
||||
{ test 'petite' = "`hostname`" && \
|
||||
pp -o imapsync_elf_x86.bin -I Mail-IMAPClient-3.28/lib \
|
||||
pp -o imapsync_elf_x86.bin -I $(IMAPClient_3xx) \
|
||||
-I NTLM-1.09/blib/lib \
|
||||
-M Mail::IMAPClient -M IO::Socket -M IO::Socket::SSL \
|
||||
-M Digest::MD5 -M Digest::HMAC_MD5 -M Term::ReadKey \
|
||||
-M Authen::NTLM \
|
||||
-M Tie::Hash::NamedCapture \
|
||||
-a '/usr/lib/perl/5.10.0/auto/POSIX/SigAction;auto/POSIX/SigAction' \
|
||||
-a '/usr/lib/perl/5.10.1/auto/POSIX/SigAction;auto/POSIX/SigAction' \
|
||||
imapsync ; \
|
||||
} || :
|
||||
{ test 'ks200821.kimsufi.com' = "`hostname`" && \
|
||||
pp -o imapsync_elf_x86.bin -I Mail-IMAPClient-3.28/lib \
|
||||
pp -o imapsync_elf_x86.bin -I $(IMAPClient_3xx) \
|
||||
-M Mail::IMAPClient -M IO::Socket -M IO::Socket::SSL \
|
||||
-M Digest::MD5 -M Digest::HMAC_MD5 -M Term::ReadKey \
|
||||
-M Authen::NTLM \
|
||||
|
@ -244,18 +252,19 @@ dist_prepa_exe: imapsync.exe
|
|||
#cd $(DIST_PATH)/ && md5sum -c ./imapsync.exe.md5.txt
|
||||
|
||||
|
||||
|
||||
.PHONY: publish upload_ks ks
|
||||
|
||||
ks:
|
||||
rsync -avz --delete --exclude imapsync.exe \
|
||||
. imapsync@ks.lamiral.info:public_html/imapsync/
|
||||
|
||||
publish: upload_ks ks
|
||||
|
||||
PUBLIC_FILES = ./ChangeLog ./COPYING ./CREDITS ./FAQ \
|
||||
./index.shtml ./INSTALL ./TIME \
|
||||
./logo_imapsync.png ./logo_imapsync_s.png \
|
||||
./paypal.shtml ./paypal_return.shtml ./paypal_return_support.shtml \
|
||||
./README ./style.css ./TODO ./VERSION ./VERSION_EXE ./memo
|
||||
./README ./style.css ./TODO ./VERSION ./VERSION_EXE ./memo ./file.txt
|
||||
|
||||
upload_ks:
|
||||
rsync -lptvHzP $(PUBLIC_FILES) \
|
||||
|
|
|
@ -1,65 +0,0 @@
|
|||
NTLM Authentication Scheme
|
||||
==========================
|
||||
|
||||
This module implements the NTLM authentication mechanism. It can be
|
||||
used to perform NTLM style authentication for any desired protocol.
|
||||
|
||||
The module works well with the Mail::IMAPClient module in the
|
||||
"authenticate" method, however I had to make a change to that method
|
||||
for it to work. The following line (2511 in version 2.1.4):
|
||||
|
||||
($code) = $o->[DATA] =~ /^\+ (.*)$/ ;
|
||||
|
||||
needed to be changed to:
|
||||
|
||||
($code) = $o->[DATA] =~ /^\+(.*)$/ ;
|
||||
|
||||
as the initial NTLM challenge is empty.
|
||||
|
||||
This module also works well with LWP::Authen::Ntlm , allowing LWP::UserAgent
|
||||
and/or WWW::Mechanise to automate/browse/fetch/etc remote Microsoft Windows
|
||||
servers running NTLM authentication.
|
||||
Example use is like this(note the fact that NTLM.pm is NOT explicitly used!):
|
||||
|
||||
use WWW::Mechanize;
|
||||
$mech = WWW::Mechanize->new(keep_alive=>1);
|
||||
$mech->no_proxy('my.server');
|
||||
$mech->credentials('my.server:80', '', "my_domain\\my_user", my_pass);
|
||||
$response = $mech->get( $url );
|
||||
|
||||
|
||||
INSTALLATION
|
||||
|
||||
To install this application:
|
||||
|
||||
perl Makefile.PL
|
||||
make
|
||||
make test
|
||||
make install
|
||||
|
||||
DEPENDENCIES
|
||||
|
||||
This module requires the MIME::Base64 module, and Digest::HMAC_MD5
|
||||
|
||||
COPYRIGHT AND LICENCE
|
||||
|
||||
This application is free software. This code is distributed in the hope that
|
||||
it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
|
||||
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. You may freely use,
|
||||
copy and distribute this software as long as all copyright notices, including
|
||||
this notice, remain intact and that you do not try to claim it as your own or
|
||||
try to sell it. You may alter the code as long as you send me any diffs (this
|
||||
will ensure that you have an easier time of it when you upgrade ;).
|
||||
|
||||
Parts of this code Copyright (C) 2007 David (Buzz) Bussenschutt.
|
||||
<davidbuzz@gmail.com>
|
||||
|
||||
Perl port of this code is Copyright (C) 2001 Mark Bush.
|
||||
<Mark.Bush@bushnet.demon.co.uk>
|
||||
|
||||
The code is originally based on fetchmail code which is Copyright (C) 1997 Eric
|
||||
S. Raymond.
|
||||
|
||||
Fetchmail uses SMB/Netbios code from samba which is Copyright (C)
|
||||
Andrew Tridgell 1992-1998 with modifications from Jeremy Allison.
|
||||
|
127
NTLM-1.09/COPYING-Artistic
Normal file
127
NTLM-1.09/COPYING-Artistic
Normal file
|
@ -0,0 +1,127 @@
|
|||
The "Artistic License"
|
||||
|
||||
Preamble
|
||||
|
||||
The intent of this document is to state the conditions under which a
|
||||
Package may be copied, such that the Copyright Holder maintains some
|
||||
semblance of artistic control over the development of the package,
|
||||
while giving the users of the package the right to use and distribute
|
||||
the Package in a more-or-less customary fashion, plus the right to make
|
||||
reasonable modifications.
|
||||
|
||||
Definitions:
|
||||
|
||||
"Package" refers to the collection of files distributed by the
|
||||
Copyright Holder, and derivatives of that collection of files
|
||||
created through textual modification.
|
||||
|
||||
"Standard Version" refers to such a Package if it has not been
|
||||
modified, or has been modified in accordance with the wishes
|
||||
of the Copyright Holder as specified below.
|
||||
|
||||
"Copyright Holder" is whoever is named in the copyright or
|
||||
copyrights for the package.
|
||||
|
||||
"You" is you, if you're thinking about copying or distributing
|
||||
this Package.
|
||||
|
||||
"Reasonable copying fee" is whatever you can justify on the
|
||||
basis of media cost, duplication charges, time of people involved,
|
||||
and so on. (You will not be required to justify it to the
|
||||
Copyright Holder, but only to the computing community at large
|
||||
as a market that must bear the fee.)
|
||||
|
||||
"Freely Available" means that no fee is charged for the item
|
||||
itself, though there may be fees involved in handling the item.
|
||||
It also means that recipients of the item may redistribute it
|
||||
under the same conditions they received it.
|
||||
|
||||
1. You may make and give away verbatim copies of the source form of the
|
||||
Standard Version of this Package without restriction, provided that you
|
||||
duplicate all of the original copyright notices and associated disclaimers.
|
||||
|
||||
2. You may apply bug fixes, portability fixes and other modifications
|
||||
derived from the Public Domain or from the Copyright Holder. A Package
|
||||
modified in such a way shall still be considered the Standard Version.
|
||||
|
||||
3. You may otherwise modify your copy of this Package in any way, provided
|
||||
that you insert a prominent notice in each changed file stating how and
|
||||
when you changed that file, and provided that you do at least ONE of the
|
||||
following:
|
||||
|
||||
a) place your modifications in the Public Domain or otherwise make them
|
||||
Freely Available, such as by posting said modifications to Usenet or
|
||||
an equivalent medium, or placing the modifications on a major archive
|
||||
site such as uunet.uu.net, or by allowing the Copyright Holder to include
|
||||
your modifications in the Standard Version of the Package.
|
||||
|
||||
b) use the modified Package only within your corporation or organization.
|
||||
|
||||
c) rename any non-standard executables so the names do not conflict
|
||||
with standard executables, which must also be provided, and provide
|
||||
a separate manual page for each non-standard executable that clearly
|
||||
documents how it differs from the Standard Version.
|
||||
|
||||
d) make other distribution arrangements with the Copyright Holder.
|
||||
|
||||
4. You may distribute the programs of this Package in object code or
|
||||
executable form, provided that you do at least ONE of the following:
|
||||
|
||||
a) distribute a Standard Version of the executables and library files,
|
||||
together with instructions (in the manual page or equivalent) on where
|
||||
to get the Standard Version.
|
||||
|
||||
b) accompany the distribution with the machine-readable source of
|
||||
the Package with your modifications.
|
||||
|
||||
c) give non-standard executables non-standard names, and clearly
|
||||
document the differences in manual pages (or equivalent), together
|
||||
with instructions on where to get the Standard Version.
|
||||
|
||||
d) make other distribution arrangements with the Copyright Holder.
|
||||
|
||||
5. You may charge a reasonable copying fee for any distribution of this
|
||||
Package. You may charge any fee you choose for support of this
|
||||
Package. You may not charge a fee for this Package itself. However,
|
||||
you may distribute this Package in aggregate with other (possibly
|
||||
commercial) programs as part of a larger (possibly commercial) software
|
||||
distribution provided that you do not advertise this Package as a
|
||||
product of your own. You may embed this Package's interpreter within
|
||||
an executable of yours (by linking); this shall be construed as a mere
|
||||
form of aggregation, provided that the complete Standard Version of the
|
||||
interpreter is so embedded.
|
||||
|
||||
6. The scripts and library files supplied as input to or produced as
|
||||
output from the programs of this Package do not automatically fall
|
||||
under the copyright of this Package, but belong to whoever generated
|
||||
them, and may be sold commercially, and may be aggregated with this
|
||||
Package. If such scripts or library files are aggregated with this
|
||||
Package via the so-called "undump" or "unexec" methods of producing a
|
||||
binary executable image, then distribution of such an image shall
|
||||
neither be construed as a distribution of this Package nor shall it
|
||||
fall under the restrictions of Paragraphs 3 and 4, provided that you do
|
||||
not represent such an executable image as a Standard Version of this
|
||||
Package.
|
||||
|
||||
7. C subroutines (or comparably compiled subroutines in other
|
||||
languages) supplied by you and linked into this Package in order to
|
||||
emulate subroutines and variables of the language defined by this
|
||||
Package shall not be considered part of this Package, but are the
|
||||
equivalent of input as in Paragraph 6, provided these subroutines do
|
||||
not change the language in any way that would cause it to fail the
|
||||
regression tests for the language.
|
||||
|
||||
8. Aggregation of this Package with a commercial distribution is always
|
||||
permitted provided that the use of this Package is embedded; that is,
|
||||
when no overt attempt is made to make this Package's interfaces visible
|
||||
to the end user of the commercial distribution. Such use shall not be
|
||||
construed as a distribution of this Package.
|
||||
|
||||
9. The name of the Copyright Holder may not be used to endorse or promote
|
||||
products derived from this software without specific prior written permission.
|
||||
|
||||
10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
The End
|
250
NTLM-1.09/COPYING-GPL
Normal file
250
NTLM-1.09/COPYING-GPL
Normal file
|
@ -0,0 +1,250 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 1, February 1989
|
||||
|
||||
Copyright (C) 1989 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The license agreements of most software companies try to keep users
|
||||
at the mercy of those companies. By contrast, our General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. The
|
||||
General Public License applies to the Free Software Foundation's
|
||||
software and to any other program whose authors commit to using it.
|
||||
You can use it for your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Specifically, the General Public License is designed to make
|
||||
sure that you have the freedom to give away or sell copies of free
|
||||
software, that you receive source code or can get it if you want it,
|
||||
that you can change the software or use pieces of it in new free
|
||||
programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of a such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must tell them their rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any program or other work which
|
||||
contains a notice placed by the copyright holder saying it may be
|
||||
distributed under the terms of this General Public License. The
|
||||
"Program", below, refers to any such program or work, and a "work based
|
||||
on the Program" means either the Program or any work containing the
|
||||
Program or a portion of it, either verbatim or with modifications. Each
|
||||
licensee is addressed as "you".
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's source
|
||||
code as you receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice and
|
||||
disclaimer of warranty; keep intact all the notices that refer to this
|
||||
General Public License and to the absence of any warranty; and give any
|
||||
other recipients of the Program a copy of this General Public License
|
||||
along with the Program. You may charge a fee for the physical act of
|
||||
transferring a copy.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion of
|
||||
it, and copy and distribute such modifications under the terms of Paragraph
|
||||
1 above, provided that you also do the following:
|
||||
|
||||
a) cause the modified files to carry prominent notices stating that
|
||||
you changed the files and the date of any change; and
|
||||
|
||||
b) cause the whole of any work that you distribute or publish, that
|
||||
in whole or in part contains the Program or any part thereof, either
|
||||
with or without modifications, to be licensed at no charge to all
|
||||
third parties under the terms of this General Public License (except
|
||||
that you may choose to grant warranty protection to some or all
|
||||
third parties, at your option).
|
||||
|
||||
c) If the modified program normally reads commands interactively when
|
||||
run, you must cause it, when started running for such interactive use
|
||||
in the simplest and most usual way, to print or display an
|
||||
announcement including an appropriate copyright notice and a notice
|
||||
that there is no warranty (or else, saying that you provide a
|
||||
warranty) and that users may redistribute the program under these
|
||||
conditions, and telling the user how to view a copy of this General
|
||||
Public License.
|
||||
|
||||
d) You may charge a fee for the physical act of transferring a
|
||||
copy, and you may at your option offer warranty protection in
|
||||
exchange for a fee.
|
||||
|
||||
Mere aggregation of another independent work with the Program (or its
|
||||
derivative) on a volume of a storage or distribution medium does not bring
|
||||
the other work under the scope of these terms.
|
||||
|
||||
3. You may copy and distribute the Program (or a portion or derivative of
|
||||
it, under Paragraph 2) in object code or executable form under the terms of
|
||||
Paragraphs 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of
|
||||
Paragraphs 1 and 2 above; or,
|
||||
|
||||
b) accompany it with a written offer, valid for at least three
|
||||
years, to give any third party free (except for a nominal charge
|
||||
for the cost of distribution) a complete machine-readable copy of the
|
||||
corresponding source code, to be distributed under the terms of
|
||||
Paragraphs 1 and 2 above; or,
|
||||
|
||||
c) accompany it with the information you received as to where the
|
||||
corresponding source code may be obtained. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form alone.)
|
||||
|
||||
Source code for a work means the preferred form of the work for making
|
||||
modifications to it. For an executable file, complete source code means
|
||||
all the source code for all modules it contains; but, as a special
|
||||
exception, it need not include source code for modules which are standard
|
||||
libraries that accompany the operating system on which the executable
|
||||
file runs, or for standard header files or definitions files that
|
||||
accompany that operating system.
|
||||
|
||||
4. You may not copy, modify, sublicense, distribute or transfer the
|
||||
Program except as expressly provided under this General Public License.
|
||||
Any attempt otherwise to copy, modify, sublicense, distribute or transfer
|
||||
the Program is void, and will automatically terminate your rights to use
|
||||
the Program under this License. However, parties who have received
|
||||
copies, or rights to use copies, from you under this General Public
|
||||
License will not have their licenses terminated so long as such parties
|
||||
remain in full compliance.
|
||||
|
||||
5. By copying, distributing or modifying the Program (or any work based
|
||||
on the Program) you indicate your acceptance of this license to do so,
|
||||
and all its terms and conditions.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the original
|
||||
licensor to copy, distribute or modify the Program subject to these
|
||||
terms and conditions. You may not impose any further restrictions on the
|
||||
recipients' exercise of the rights granted herein.
|
||||
|
||||
7. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of the license which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
the license, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
8. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to humanity, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these
|
||||
terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest to
|
||||
attach them to the start of each source file to most effectively convey
|
||||
the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 1, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19xx name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the
|
||||
appropriate parts of the General Public License. Of course, the
|
||||
commands you use may be called something other than `show w' and `show
|
||||
c'; they could even be mouse-clicks or menu items--whatever suits your
|
||||
program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
program `Gnomovision' (a program to direct compilers to make passes
|
||||
at assemblers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
|
@ -1,5 +1,16 @@
|
|||
Revision history for Perl NTLM authentication suite
|
||||
|
||||
1.09 8 Sep 2011
|
||||
- fix CPAN ticket # 70703
|
||||
|
||||
1.08 6 Apr 2011
|
||||
- fix CPAN ticket # 39925
|
||||
|
||||
1.07 - not released
|
||||
|
||||
1.06 24 Mar 2011
|
||||
- relicense as GPL+ or Artistic
|
||||
|
||||
1.05 19 Jun 2008
|
||||
- implement OO interface - thanks to Dmitry Karasik <dmitry@karasik.eu.org>
|
||||
- fix minor bug in last release - thanks to Dmitry Karasik <dmitry@karasik.eu.org>
|
|
@ -1,17 +1,20 @@
|
|||
# This Makefile is for the Authen::NTLM::DES extension to perl.
|
||||
#
|
||||
# It was generated automatically by MakeMaker version
|
||||
# 6.30_01 (Revision: Revision: 4535 ) from the contents of
|
||||
# 6.55_02 (Revision: 65502) from the contents of
|
||||
# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
|
||||
#
|
||||
# ANY CHANGES MADE HERE WILL BE LOST!
|
||||
#
|
||||
# MakeMaker ARGV: ()
|
||||
#
|
||||
|
||||
# MakeMaker Parameters:
|
||||
|
||||
# AUTHOR => q[David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>]
|
||||
# BUILD_REQUIRES => { }
|
||||
# NAME => q[Authen::NTLM::DES]
|
||||
# PREREQ_PM => { }
|
||||
# VERSION_FROM => q[DES.pm]
|
||||
|
||||
# --- MakeMaker post_initialize section:
|
||||
|
@ -19,29 +22,28 @@
|
|||
|
||||
# --- MakeMaker const_config section:
|
||||
|
||||
# These definitions are from config.sh (via /usr/lib/perl/5.8/Config.pm)
|
||||
|
||||
# They may have been overridden via Makefile.PL or on the command line
|
||||
# These definitions are from config.sh (via /usr/lib/perl/5.10/Config.pm).
|
||||
# They may have been overridden via Makefile.PL or on the command line.
|
||||
AR = ar
|
||||
CC = cc
|
||||
CCCDLFLAGS = -fPIC
|
||||
CCDLFLAGS = -Wl,-E
|
||||
DLEXT = so
|
||||
DLSRC = dl_dlopen.xs
|
||||
EXE_EXT =
|
||||
FULL_AR = /usr/bin/ar
|
||||
LD = cc
|
||||
LDDLFLAGS = -shared -L/usr/local/lib
|
||||
LDFLAGS = -L/usr/local/lib
|
||||
LIBC = /lib/libc-2.7.so
|
||||
LDDLFLAGS = -shared -O2 -g -L/usr/local/lib -fstack-protector
|
||||
LDFLAGS = -fstack-protector -L/usr/local/lib
|
||||
LIBC = /lib/libc-2.11.1.so
|
||||
LIB_EXT = .a
|
||||
OBJ_EXT = .o
|
||||
OSNAME = linux
|
||||
OSVERS = 2.6.24-19-server
|
||||
OSVERS = 2.6.24-28-server
|
||||
RANLIB = :
|
||||
SITELIBEXP = /usr/local/share/perl/5.8.8
|
||||
SITEARCHEXP = /usr/local/lib/perl/5.8.8
|
||||
SITELIBEXP = /usr/local/share/perl/5.10.1
|
||||
SITEARCHEXP = /usr/local/lib/perl/5.10.1
|
||||
SO = so
|
||||
EXE_EXT =
|
||||
FULL_AR = /usr/bin/ar
|
||||
VENDORARCHEXP = /usr/lib/perl5
|
||||
VENDORLIBEXP = /usr/share/perl5
|
||||
|
||||
|
@ -73,15 +75,15 @@ PREFIX = /usr
|
|||
PERLPREFIX = $(PREFIX)
|
||||
SITEPREFIX = $(PREFIX)/local
|
||||
VENDORPREFIX = $(PREFIX)
|
||||
INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.8
|
||||
INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.10
|
||||
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
|
||||
INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.8.8
|
||||
INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.10.1
|
||||
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
|
||||
INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
|
||||
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
|
||||
INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.8
|
||||
INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.10
|
||||
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
|
||||
INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.8.8
|
||||
INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.10.1
|
||||
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
|
||||
INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
|
||||
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
|
||||
|
@ -109,14 +111,14 @@ INSTALLSITEMAN3DIR = $(SITEPREFIX)/man/man3
|
|||
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
|
||||
INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
|
||||
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
|
||||
PERL_LIB = /usr/share/perl/5.8
|
||||
PERL_ARCHLIB = /usr/lib/perl/5.8
|
||||
PERL_LIB = /usr/share/perl/5.10
|
||||
PERL_ARCHLIB = /usr/lib/perl/5.10
|
||||
LIBPERL_A = libperl.a
|
||||
FIRST_MAKEFILE = Makefile
|
||||
MAKEFILE_OLD = Makefile.old
|
||||
MAKE_APERL_FILE = Makefile.aperl
|
||||
PERLMAINCC = $(CC)
|
||||
PERL_INC = /usr/lib/perl/5.8/CORE
|
||||
PERL_INC = /usr/lib/perl/5.10/CORE
|
||||
PERL = /usr/bin/perl
|
||||
FULLPERL = /usr/bin/perl
|
||||
ABSPERL = $(PERL)
|
||||
|
@ -127,17 +129,19 @@ PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
|||
FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
||||
ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
||||
PERL_CORE = 0
|
||||
PERM_DIR = 755
|
||||
PERM_RW = 644
|
||||
PERM_RWX = 755
|
||||
|
||||
MAKEMAKER = /usr/share/perl/5.8/ExtUtils/MakeMaker.pm
|
||||
MM_VERSION = 6.30_01
|
||||
MM_REVISION = Revision: 4535
|
||||
MAKEMAKER = /usr/share/perl/5.10/ExtUtils/MakeMaker.pm
|
||||
MM_VERSION = 6.55_02
|
||||
MM_REVISION = 65502
|
||||
|
||||
# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
|
||||
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
|
||||
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
|
||||
# DLBASE = Basename part of dynamic library. May be just equal BASEEXT.
|
||||
MAKE = make
|
||||
FULLEXT = Authen/NTLM/DES
|
||||
BASEEXT = DES
|
||||
PARENT_NAME = Authen::NTLM
|
||||
|
@ -183,13 +187,13 @@ PM_TO_BLIB = DES.pm \
|
|||
|
||||
|
||||
# --- MakeMaker platform_constants section:
|
||||
MM_Unix_VERSION = 1.50_01
|
||||
MM_Unix_VERSION = 6.55_02
|
||||
PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
|
||||
|
||||
|
||||
# --- MakeMaker tool_autosplit section:
|
||||
# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
|
||||
AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)'
|
||||
AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)' --
|
||||
|
||||
|
||||
|
||||
|
@ -201,7 +205,7 @@ SHELL = /bin/sh
|
|||
CHMOD = chmod
|
||||
CP = cp
|
||||
MV = mv
|
||||
NOOP = $(SHELL) -c true
|
||||
NOOP = $(TRUE)
|
||||
NOECHO = @
|
||||
RM_F = rm -f
|
||||
RM_RF = rm -rf
|
||||
|
@ -209,24 +213,26 @@ TEST_F = test -f
|
|||
TOUCH = touch
|
||||
UMASK_NULL = umask 0
|
||||
DEV_NULL = > /dev/null 2>&1
|
||||
MKPATH = $(ABSPERLRUN) "-MExtUtils::Command" -e mkpath
|
||||
EQUALIZE_TIMESTAMP = $(ABSPERLRUN) "-MExtUtils::Command" -e eqtime
|
||||
MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' --
|
||||
EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' --
|
||||
FALSE = false
|
||||
TRUE = true
|
||||
ECHO = echo
|
||||
ECHO_N = echo -n
|
||||
UNINST = 0
|
||||
VERBINST = 0
|
||||
MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install({@ARGV}, '\''$(VERBINST)'\'', 0, '\''$(UNINST)'\'');'
|
||||
DOC_INSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e perllocal_install
|
||||
UNINSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e uninstall
|
||||
WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e warn_if_old_packlist
|
||||
MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' --
|
||||
DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' --
|
||||
UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' --
|
||||
WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' --
|
||||
MACROSTART =
|
||||
MACROEND =
|
||||
USEMAKEFILE = -f
|
||||
FIXIN = $(PERLRUN) "-MExtUtils::MY" -e "MY->fixin(shift)"
|
||||
FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' --
|
||||
|
||||
|
||||
# --- MakeMaker makemakerdflt section:
|
||||
makemakerdflt: all
|
||||
makemakerdflt : all
|
||||
$(NOECHO) $(NOOP)
|
||||
|
||||
|
||||
|
@ -301,42 +307,42 @@ blibdirs.ts : blibdirs
|
|||
|
||||
$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_LIBDIR)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_LIBDIR)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR)
|
||||
$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
|
||||
|
||||
$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_ARCHLIB)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB)
|
||||
$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
|
||||
|
||||
$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_AUTODIR)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_AUTODIR)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR)
|
||||
$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
|
||||
|
||||
$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_ARCHAUTODIR)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR)
|
||||
$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
|
||||
|
||||
$(INST_BIN)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_BIN)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_BIN)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN)
|
||||
$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
|
||||
|
||||
$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_SCRIPT)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_SCRIPT)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT)
|
||||
$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
|
||||
|
||||
$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_MAN1DIR)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR)
|
||||
$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
|
||||
|
||||
$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_MAN3DIR)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR)
|
||||
$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
|
||||
|
||||
|
||||
|
@ -446,16 +452,27 @@ realclean purge :: clean realclean_subdirs
|
|||
# --- MakeMaker metafile section:
|
||||
metafile : create_distdir
|
||||
$(NOECHO) $(ECHO) Generating META.yml
|
||||
$(NOECHO) $(ECHO) '# http://module-build.sourceforge.net/META-spec.html' > META_new.yml
|
||||
$(NOECHO) $(ECHO) '#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'name: Authen-NTLM-DES' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'version: 1.02' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'version_from: DES.pm' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'installdirs: site' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'requires:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) '' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.30_01' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) '--- #YAML:1.0' > META_new.yml
|
||||
$(NOECHO) $(ECHO) 'name: Authen-NTLM-DES' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'version: 1.02' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'abstract: ~' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'author:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' - David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'license: unknown' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: 0' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: 0' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'requires: {}' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'no_index:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' directory:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' - t' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' - inc' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.55_02' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' version: 1.4' >> META_new.yml
|
||||
-$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml
|
||||
|
||||
|
||||
|
@ -477,14 +494,14 @@ signature :
|
|||
# --- MakeMaker distmeta section:
|
||||
distmeta : create_distdir metafile
|
||||
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \
|
||||
-e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"'
|
||||
-e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"' --
|
||||
|
||||
|
||||
|
||||
# --- MakeMaker distsignature section:
|
||||
distsignature : create_distdir
|
||||
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
|
||||
-e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"'
|
||||
-e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"' --
|
||||
$(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE
|
||||
cd $(DISTVNAME) && cpansign -s
|
||||
|
||||
|
@ -494,7 +511,7 @@ distsignature : create_distdir
|
|||
|
||||
# --- MakeMaker force section:
|
||||
# Phony target to force checking subdirectories.
|
||||
FORCE:
|
||||
FORCE :
|
||||
$(NOECHO) $(NOOP)
|
||||
|
||||
|
||||
|
@ -513,7 +530,7 @@ $(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
|
|||
$(PERLRUN) Makefile.PL
|
||||
$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
|
||||
$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <=="
|
||||
false
|
||||
$(FALSE)
|
||||
|
||||
|
||||
|
||||
|
@ -534,7 +551,11 @@ TESTDB_SW = -d
|
|||
|
||||
testdb :: testdb_$(LINKTYPE)
|
||||
|
||||
test :: $(TEST_TYPE)
|
||||
test :: $(TEST_TYPE) subdirs-test
|
||||
|
||||
subdirs-test ::
|
||||
$(NOECHO) $(NOOP)
|
||||
|
||||
$(NOECHO) $(ECHO) 'No tests defined for $(NAME) extension.'
|
||||
|
||||
test_dynamic :: pure_all
|
||||
|
@ -550,14 +571,12 @@ testdb_static :: testdb_dynamic
|
|||
|
||||
# --- MakeMaker ppd section:
|
||||
# Creates a PPD (Perl Package Description) for a binary distribution.
|
||||
ppd:
|
||||
$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="1,02,0,0">' > $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <TITLE>$(DISTNAME)</TITLE>' >> $(DISTNAME).ppd
|
||||
ppd :
|
||||
$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="1.02">' > $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <ABSTRACT></ABSTRACT>' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <AUTHOR>David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk></AUTHOR>' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <IMPLEMENTATION>' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <OS NAME="$(OSNAME)" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i486-linux-gnu-thread-multi" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i486-linux-gnu-thread-multi-5.10" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <CODEBASE HREF="" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' </IMPLEMENTATION>' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd
|
||||
|
@ -565,8 +584,8 @@ ppd:
|
|||
|
||||
# --- MakeMaker pm_to_blib section:
|
||||
|
||||
pm_to_blib : $(TO_INST_PM)
|
||||
$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', '\''$(PM_FILTER)'\'')' \
|
||||
pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM)
|
||||
$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \
|
||||
DES.pm $(INST_LIB)/Authen/NTLM/DES.pm
|
||||
$(NOECHO) $(TOUCH) pm_to_blib
|
||||
|
|
@ -1,17 +1,20 @@
|
|||
# This Makefile is for the Authen::NTLM::MD4 extension to perl.
|
||||
#
|
||||
# It was generated automatically by MakeMaker version
|
||||
# 6.30_01 (Revision: Revision: 4535 ) from the contents of
|
||||
# 6.55_02 (Revision: 65502) from the contents of
|
||||
# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
|
||||
#
|
||||
# ANY CHANGES MADE HERE WILL BE LOST!
|
||||
#
|
||||
# MakeMaker ARGV: ()
|
||||
#
|
||||
|
||||
# MakeMaker Parameters:
|
||||
|
||||
# AUTHOR => q[David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>]
|
||||
# BUILD_REQUIRES => { }
|
||||
# NAME => q[Authen::NTLM::MD4]
|
||||
# PREREQ_PM => { }
|
||||
# VERSION_FROM => q[MD4.pm]
|
||||
|
||||
# --- MakeMaker post_initialize section:
|
||||
|
@ -19,29 +22,28 @@
|
|||
|
||||
# --- MakeMaker const_config section:
|
||||
|
||||
# These definitions are from config.sh (via /usr/lib/perl/5.8/Config.pm)
|
||||
|
||||
# They may have been overridden via Makefile.PL or on the command line
|
||||
# These definitions are from config.sh (via /usr/lib/perl/5.10/Config.pm).
|
||||
# They may have been overridden via Makefile.PL or on the command line.
|
||||
AR = ar
|
||||
CC = cc
|
||||
CCCDLFLAGS = -fPIC
|
||||
CCDLFLAGS = -Wl,-E
|
||||
DLEXT = so
|
||||
DLSRC = dl_dlopen.xs
|
||||
EXE_EXT =
|
||||
FULL_AR = /usr/bin/ar
|
||||
LD = cc
|
||||
LDDLFLAGS = -shared -L/usr/local/lib
|
||||
LDFLAGS = -L/usr/local/lib
|
||||
LIBC = /lib/libc-2.7.so
|
||||
LDDLFLAGS = -shared -O2 -g -L/usr/local/lib -fstack-protector
|
||||
LDFLAGS = -fstack-protector -L/usr/local/lib
|
||||
LIBC = /lib/libc-2.11.1.so
|
||||
LIB_EXT = .a
|
||||
OBJ_EXT = .o
|
||||
OSNAME = linux
|
||||
OSVERS = 2.6.24-19-server
|
||||
OSVERS = 2.6.24-28-server
|
||||
RANLIB = :
|
||||
SITELIBEXP = /usr/local/share/perl/5.8.8
|
||||
SITEARCHEXP = /usr/local/lib/perl/5.8.8
|
||||
SITELIBEXP = /usr/local/share/perl/5.10.1
|
||||
SITEARCHEXP = /usr/local/lib/perl/5.10.1
|
||||
SO = so
|
||||
EXE_EXT =
|
||||
FULL_AR = /usr/bin/ar
|
||||
VENDORARCHEXP = /usr/lib/perl5
|
||||
VENDORLIBEXP = /usr/share/perl5
|
||||
|
||||
|
@ -73,15 +75,15 @@ PREFIX = /usr
|
|||
PERLPREFIX = $(PREFIX)
|
||||
SITEPREFIX = $(PREFIX)/local
|
||||
VENDORPREFIX = $(PREFIX)
|
||||
INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.8
|
||||
INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.10
|
||||
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
|
||||
INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.8.8
|
||||
INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.10.1
|
||||
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
|
||||
INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
|
||||
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
|
||||
INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.8
|
||||
INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.10
|
||||
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
|
||||
INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.8.8
|
||||
INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.10.1
|
||||
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
|
||||
INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
|
||||
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
|
||||
|
@ -109,14 +111,14 @@ INSTALLSITEMAN3DIR = $(SITEPREFIX)/man/man3
|
|||
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
|
||||
INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
|
||||
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
|
||||
PERL_LIB = /usr/share/perl/5.8
|
||||
PERL_ARCHLIB = /usr/lib/perl/5.8
|
||||
PERL_LIB = /usr/share/perl/5.10
|
||||
PERL_ARCHLIB = /usr/lib/perl/5.10
|
||||
LIBPERL_A = libperl.a
|
||||
FIRST_MAKEFILE = Makefile
|
||||
MAKEFILE_OLD = Makefile.old
|
||||
MAKE_APERL_FILE = Makefile.aperl
|
||||
PERLMAINCC = $(CC)
|
||||
PERL_INC = /usr/lib/perl/5.8/CORE
|
||||
PERL_INC = /usr/lib/perl/5.10/CORE
|
||||
PERL = /usr/bin/perl
|
||||
FULLPERL = /usr/bin/perl
|
||||
ABSPERL = $(PERL)
|
||||
|
@ -127,17 +129,19 @@ PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
|||
FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
||||
ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
||||
PERL_CORE = 0
|
||||
PERM_DIR = 755
|
||||
PERM_RW = 644
|
||||
PERM_RWX = 755
|
||||
|
||||
MAKEMAKER = /usr/share/perl/5.8/ExtUtils/MakeMaker.pm
|
||||
MM_VERSION = 6.30_01
|
||||
MM_REVISION = Revision: 4535
|
||||
MAKEMAKER = /usr/share/perl/5.10/ExtUtils/MakeMaker.pm
|
||||
MM_VERSION = 6.55_02
|
||||
MM_REVISION = 65502
|
||||
|
||||
# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
|
||||
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
|
||||
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
|
||||
# DLBASE = Basename part of dynamic library. May be just equal BASEEXT.
|
||||
MAKE = make
|
||||
FULLEXT = Authen/NTLM/MD4
|
||||
BASEEXT = MD4
|
||||
PARENT_NAME = Authen::NTLM
|
||||
|
@ -183,13 +187,13 @@ PM_TO_BLIB = MD4.pm \
|
|||
|
||||
|
||||
# --- MakeMaker platform_constants section:
|
||||
MM_Unix_VERSION = 1.50_01
|
||||
MM_Unix_VERSION = 6.55_02
|
||||
PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
|
||||
|
||||
|
||||
# --- MakeMaker tool_autosplit section:
|
||||
# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
|
||||
AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)'
|
||||
AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)' --
|
||||
|
||||
|
||||
|
||||
|
@ -201,7 +205,7 @@ SHELL = /bin/sh
|
|||
CHMOD = chmod
|
||||
CP = cp
|
||||
MV = mv
|
||||
NOOP = $(SHELL) -c true
|
||||
NOOP = $(TRUE)
|
||||
NOECHO = @
|
||||
RM_F = rm -f
|
||||
RM_RF = rm -rf
|
||||
|
@ -209,24 +213,26 @@ TEST_F = test -f
|
|||
TOUCH = touch
|
||||
UMASK_NULL = umask 0
|
||||
DEV_NULL = > /dev/null 2>&1
|
||||
MKPATH = $(ABSPERLRUN) "-MExtUtils::Command" -e mkpath
|
||||
EQUALIZE_TIMESTAMP = $(ABSPERLRUN) "-MExtUtils::Command" -e eqtime
|
||||
MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' --
|
||||
EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' --
|
||||
FALSE = false
|
||||
TRUE = true
|
||||
ECHO = echo
|
||||
ECHO_N = echo -n
|
||||
UNINST = 0
|
||||
VERBINST = 0
|
||||
MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install({@ARGV}, '\''$(VERBINST)'\'', 0, '\''$(UNINST)'\'');'
|
||||
DOC_INSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e perllocal_install
|
||||
UNINSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e uninstall
|
||||
WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e warn_if_old_packlist
|
||||
MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' --
|
||||
DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' --
|
||||
UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' --
|
||||
WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' --
|
||||
MACROSTART =
|
||||
MACROEND =
|
||||
USEMAKEFILE = -f
|
||||
FIXIN = $(PERLRUN) "-MExtUtils::MY" -e "MY->fixin(shift)"
|
||||
FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' --
|
||||
|
||||
|
||||
# --- MakeMaker makemakerdflt section:
|
||||
makemakerdflt: all
|
||||
makemakerdflt : all
|
||||
$(NOECHO) $(NOOP)
|
||||
|
||||
|
||||
|
@ -301,42 +307,42 @@ blibdirs.ts : blibdirs
|
|||
|
||||
$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_LIBDIR)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_LIBDIR)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR)
|
||||
$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
|
||||
|
||||
$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_ARCHLIB)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB)
|
||||
$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
|
||||
|
||||
$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_AUTODIR)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_AUTODIR)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR)
|
||||
$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
|
||||
|
||||
$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_ARCHAUTODIR)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR)
|
||||
$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
|
||||
|
||||
$(INST_BIN)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_BIN)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_BIN)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN)
|
||||
$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
|
||||
|
||||
$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_SCRIPT)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_SCRIPT)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT)
|
||||
$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
|
||||
|
||||
$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_MAN1DIR)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR)
|
||||
$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
|
||||
|
||||
$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_MAN3DIR)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR)
|
||||
$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
|
||||
|
||||
|
||||
|
@ -446,16 +452,27 @@ realclean purge :: clean realclean_subdirs
|
|||
# --- MakeMaker metafile section:
|
||||
metafile : create_distdir
|
||||
$(NOECHO) $(ECHO) Generating META.yml
|
||||
$(NOECHO) $(ECHO) '# http://module-build.sourceforge.net/META-spec.html' > META_new.yml
|
||||
$(NOECHO) $(ECHO) '#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'name: Authen-NTLM-MD4' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'version: 1.02' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'version_from: MD4.pm' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'installdirs: site' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'requires:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) '' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.30_01' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) '--- #YAML:1.0' > META_new.yml
|
||||
$(NOECHO) $(ECHO) 'name: Authen-NTLM-MD4' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'version: 1.02' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'abstract: ~' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'author:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' - David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'license: unknown' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: 0' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: 0' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'requires: {}' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'no_index:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' directory:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' - t' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' - inc' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.55_02' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' version: 1.4' >> META_new.yml
|
||||
-$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml
|
||||
|
||||
|
||||
|
@ -477,14 +494,14 @@ signature :
|
|||
# --- MakeMaker distmeta section:
|
||||
distmeta : create_distdir metafile
|
||||
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \
|
||||
-e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"'
|
||||
-e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"' --
|
||||
|
||||
|
||||
|
||||
# --- MakeMaker distsignature section:
|
||||
distsignature : create_distdir
|
||||
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
|
||||
-e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"'
|
||||
-e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"' --
|
||||
$(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE
|
||||
cd $(DISTVNAME) && cpansign -s
|
||||
|
||||
|
@ -494,7 +511,7 @@ distsignature : create_distdir
|
|||
|
||||
# --- MakeMaker force section:
|
||||
# Phony target to force checking subdirectories.
|
||||
FORCE:
|
||||
FORCE :
|
||||
$(NOECHO) $(NOOP)
|
||||
|
||||
|
||||
|
@ -513,7 +530,7 @@ $(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
|
|||
$(PERLRUN) Makefile.PL
|
||||
$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
|
||||
$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <=="
|
||||
false
|
||||
$(FALSE)
|
||||
|
||||
|
||||
|
||||
|
@ -534,7 +551,11 @@ TESTDB_SW = -d
|
|||
|
||||
testdb :: testdb_$(LINKTYPE)
|
||||
|
||||
test :: $(TEST_TYPE)
|
||||
test :: $(TEST_TYPE) subdirs-test
|
||||
|
||||
subdirs-test ::
|
||||
$(NOECHO) $(NOOP)
|
||||
|
||||
$(NOECHO) $(ECHO) 'No tests defined for $(NAME) extension.'
|
||||
|
||||
test_dynamic :: pure_all
|
||||
|
@ -550,14 +571,12 @@ testdb_static :: testdb_dynamic
|
|||
|
||||
# --- MakeMaker ppd section:
|
||||
# Creates a PPD (Perl Package Description) for a binary distribution.
|
||||
ppd:
|
||||
$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="1,02,0,0">' > $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <TITLE>$(DISTNAME)</TITLE>' >> $(DISTNAME).ppd
|
||||
ppd :
|
||||
$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="1.02">' > $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <ABSTRACT></ABSTRACT>' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <AUTHOR>David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk></AUTHOR>' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <IMPLEMENTATION>' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <OS NAME="$(OSNAME)" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i486-linux-gnu-thread-multi" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i486-linux-gnu-thread-multi-5.10" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <CODEBASE HREF="" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' </IMPLEMENTATION>' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd
|
||||
|
@ -565,8 +584,8 @@ ppd:
|
|||
|
||||
# --- MakeMaker pm_to_blib section:
|
||||
|
||||
pm_to_blib : $(TO_INST_PM)
|
||||
$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', '\''$(PM_FILTER)'\'')' \
|
||||
pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM)
|
||||
$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \
|
||||
MD4.pm $(INST_LIB)/Authen/NTLM/MD4.pm
|
||||
$(NOECHO) $(TOUCH) pm_to_blib
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
--- #YAML:1.0
|
||||
name: Authen-NTLM
|
||||
version: 1.05
|
||||
version: 1.09
|
||||
abstract: ~
|
||||
license: ~
|
||||
license: perl
|
||||
author:
|
||||
- David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>
|
||||
- David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>, Nick Bebout <nbebout@cpan.org>
|
||||
generated_by: ExtUtils::MakeMaker version 6.42
|
||||
distribution_type: module
|
||||
requires:
|
|
@ -1,16 +1,18 @@
|
|||
# This Makefile is for the Authen::NTLM extension to perl.
|
||||
#
|
||||
# It was generated automatically by MakeMaker version
|
||||
# 6.30_01 (Revision: Revision: 4535 ) from the contents of
|
||||
# 6.55_02 (Revision: 65502) from the contents of
|
||||
# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
|
||||
#
|
||||
# ANY CHANGES MADE HERE WILL BE LOST!
|
||||
#
|
||||
# MakeMaker ARGV: ()
|
||||
#
|
||||
|
||||
# MakeMaker Parameters:
|
||||
|
||||
# AUTHOR => q[David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>]
|
||||
# BUILD_REQUIRES => { }
|
||||
# DIR => [q[DES], q[MD4]]
|
||||
# NAME => q[Authen::NTLM]
|
||||
# PREREQ_PM => { Digest::HMAC_MD5=>q[0], MIME::Base64=>q[0] }
|
||||
|
@ -21,29 +23,28 @@
|
|||
|
||||
# --- MakeMaker const_config section:
|
||||
|
||||
# These definitions are from config.sh (via /usr/lib/perl/5.8/Config.pm)
|
||||
|
||||
# They may have been overridden via Makefile.PL or on the command line
|
||||
# These definitions are from config.sh (via /usr/lib/perl/5.10/Config.pm).
|
||||
# They may have been overridden via Makefile.PL or on the command line.
|
||||
AR = ar
|
||||
CC = cc
|
||||
CCCDLFLAGS = -fPIC
|
||||
CCDLFLAGS = -Wl,-E
|
||||
DLEXT = so
|
||||
DLSRC = dl_dlopen.xs
|
||||
EXE_EXT =
|
||||
FULL_AR = /usr/bin/ar
|
||||
LD = cc
|
||||
LDDLFLAGS = -shared -L/usr/local/lib
|
||||
LDFLAGS = -L/usr/local/lib
|
||||
LIBC = /lib/libc-2.7.so
|
||||
LDDLFLAGS = -shared -O2 -g -L/usr/local/lib -fstack-protector
|
||||
LDFLAGS = -fstack-protector -L/usr/local/lib
|
||||
LIBC = /lib/libc-2.11.1.so
|
||||
LIB_EXT = .a
|
||||
OBJ_EXT = .o
|
||||
OSNAME = linux
|
||||
OSVERS = 2.6.24-19-server
|
||||
OSVERS = 2.6.24-28-server
|
||||
RANLIB = :
|
||||
SITELIBEXP = /usr/local/share/perl/5.8.8
|
||||
SITEARCHEXP = /usr/local/lib/perl/5.8.8
|
||||
SITELIBEXP = /usr/local/share/perl/5.10.1
|
||||
SITEARCHEXP = /usr/local/lib/perl/5.10.1
|
||||
SO = so
|
||||
EXE_EXT =
|
||||
FULL_AR = /usr/bin/ar
|
||||
VENDORARCHEXP = /usr/lib/perl5
|
||||
VENDORLIBEXP = /usr/share/perl5
|
||||
|
||||
|
@ -54,11 +55,11 @@ DIRFILESEP = /
|
|||
DFSEP = $(DIRFILESEP)
|
||||
NAME = Authen::NTLM
|
||||
NAME_SYM = Authen_NTLM
|
||||
VERSION = 1.05
|
||||
VERSION = 1.09
|
||||
VERSION_MACRO = VERSION
|
||||
VERSION_SYM = 1_05
|
||||
VERSION_SYM = 1_09
|
||||
DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\"
|
||||
XS_VERSION = 1.05
|
||||
XS_VERSION = 1.09
|
||||
XS_VERSION_MACRO = XS_VERSION
|
||||
XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\"
|
||||
INST_ARCHLIB = blib/arch
|
||||
|
@ -75,15 +76,15 @@ PREFIX = /usr
|
|||
PERLPREFIX = $(PREFIX)
|
||||
SITEPREFIX = $(PREFIX)/local
|
||||
VENDORPREFIX = $(PREFIX)
|
||||
INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.8
|
||||
INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.10
|
||||
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
|
||||
INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.8.8
|
||||
INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.10.1
|
||||
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
|
||||
INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
|
||||
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
|
||||
INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.8
|
||||
INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.10
|
||||
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
|
||||
INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.8.8
|
||||
INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.10.1
|
||||
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
|
||||
INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
|
||||
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
|
||||
|
@ -111,14 +112,14 @@ INSTALLSITEMAN3DIR = $(SITEPREFIX)/man/man3
|
|||
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
|
||||
INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
|
||||
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
|
||||
PERL_LIB = /usr/share/perl/5.8
|
||||
PERL_ARCHLIB = /usr/lib/perl/5.8
|
||||
PERL_LIB = /usr/share/perl/5.10
|
||||
PERL_ARCHLIB = /usr/lib/perl/5.10
|
||||
LIBPERL_A = libperl.a
|
||||
FIRST_MAKEFILE = Makefile
|
||||
MAKEFILE_OLD = Makefile.old
|
||||
MAKE_APERL_FILE = Makefile.aperl
|
||||
PERLMAINCC = $(CC)
|
||||
PERL_INC = /usr/lib/perl/5.8/CORE
|
||||
PERL_INC = /usr/lib/perl/5.10/CORE
|
||||
PERL = /usr/bin/perl
|
||||
FULLPERL = /usr/bin/perl
|
||||
ABSPERL = $(PERL)
|
||||
|
@ -129,17 +130,19 @@ PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
|||
FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
||||
ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
||||
PERL_CORE = 0
|
||||
PERM_DIR = 755
|
||||
PERM_RW = 644
|
||||
PERM_RWX = 755
|
||||
|
||||
MAKEMAKER = /usr/share/perl/5.8/ExtUtils/MakeMaker.pm
|
||||
MM_VERSION = 6.30_01
|
||||
MM_REVISION = Revision: 4535
|
||||
MAKEMAKER = /usr/share/perl/5.10/ExtUtils/MakeMaker.pm
|
||||
MM_VERSION = 6.55_02
|
||||
MM_REVISION = 65502
|
||||
|
||||
# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
|
||||
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
|
||||
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
|
||||
# DLBASE = Basename part of dynamic library. May be just equal BASEEXT.
|
||||
MAKE = make
|
||||
FULLEXT = Authen/NTLM
|
||||
BASEEXT = NTLM
|
||||
PARENT_NAME = Authen
|
||||
|
@ -185,13 +188,13 @@ PM_TO_BLIB = NTLM.pm \
|
|||
|
||||
|
||||
# --- MakeMaker platform_constants section:
|
||||
MM_Unix_VERSION = 1.50_01
|
||||
MM_Unix_VERSION = 6.55_02
|
||||
PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
|
||||
|
||||
|
||||
# --- MakeMaker tool_autosplit section:
|
||||
# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
|
||||
AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)'
|
||||
AUTOSPLITFILE = $(ABSPERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)' --
|
||||
|
||||
|
||||
|
||||
|
@ -203,7 +206,7 @@ SHELL = /bin/sh
|
|||
CHMOD = chmod
|
||||
CP = cp
|
||||
MV = mv
|
||||
NOOP = $(SHELL) -c true
|
||||
NOOP = $(TRUE)
|
||||
NOECHO = @
|
||||
RM_F = rm -f
|
||||
RM_RF = rm -rf
|
||||
|
@ -211,24 +214,26 @@ TEST_F = test -f
|
|||
TOUCH = touch
|
||||
UMASK_NULL = umask 0
|
||||
DEV_NULL = > /dev/null 2>&1
|
||||
MKPATH = $(ABSPERLRUN) "-MExtUtils::Command" -e mkpath
|
||||
EQUALIZE_TIMESTAMP = $(ABSPERLRUN) "-MExtUtils::Command" -e eqtime
|
||||
MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' --
|
||||
EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' --
|
||||
FALSE = false
|
||||
TRUE = true
|
||||
ECHO = echo
|
||||
ECHO_N = echo -n
|
||||
UNINST = 0
|
||||
VERBINST = 0
|
||||
MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install({@ARGV}, '\''$(VERBINST)'\'', 0, '\''$(UNINST)'\'');'
|
||||
DOC_INSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e perllocal_install
|
||||
UNINSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e uninstall
|
||||
WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e warn_if_old_packlist
|
||||
MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' --
|
||||
DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' --
|
||||
UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' --
|
||||
WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' --
|
||||
MACROSTART =
|
||||
MACROEND =
|
||||
USEMAKEFILE = -f
|
||||
FIXIN = $(PERLRUN) "-MExtUtils::MY" -e "MY->fixin(shift)"
|
||||
FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' --
|
||||
|
||||
|
||||
# --- MakeMaker makemakerdflt section:
|
||||
makemakerdflt: all
|
||||
makemakerdflt : all
|
||||
$(NOECHO) $(NOOP)
|
||||
|
||||
|
||||
|
@ -248,7 +253,7 @@ RCS_LABEL = rcs -Nv$(VERSION_SYM): -q
|
|||
DIST_CP = best
|
||||
DIST_DEFAULT = tardist
|
||||
DISTNAME = Authen-NTLM
|
||||
DISTVNAME = Authen-NTLM-1.05
|
||||
DISTVNAME = Authen-NTLM-1.09
|
||||
|
||||
|
||||
# --- MakeMaker macro section:
|
||||
|
@ -320,42 +325,42 @@ blibdirs.ts : blibdirs
|
|||
|
||||
$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_LIBDIR)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_LIBDIR)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR)
|
||||
$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
|
||||
|
||||
$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_ARCHLIB)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB)
|
||||
$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
|
||||
|
||||
$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_AUTODIR)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_AUTODIR)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR)
|
||||
$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
|
||||
|
||||
$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_ARCHAUTODIR)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR)
|
||||
$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
|
||||
|
||||
$(INST_BIN)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_BIN)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_BIN)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN)
|
||||
$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
|
||||
|
||||
$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_SCRIPT)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_SCRIPT)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT)
|
||||
$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
|
||||
|
||||
$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_MAN1DIR)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR)
|
||||
$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
|
||||
|
||||
$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
|
||||
$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
|
||||
$(NOECHO) $(CHMOD) 755 $(INST_MAN3DIR)
|
||||
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR)
|
||||
$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
|
||||
|
||||
|
||||
|
@ -401,7 +406,6 @@ POD2MAN = $(POD2MAN_EXE)
|
|||
|
||||
|
||||
manifypods : pure_all \
|
||||
NTLM.pm \
|
||||
NTLM.pm
|
||||
$(NOECHO) $(POD2MAN) --section=$(MAN3EXT) --perm_rw=$(PERM_RW) \
|
||||
NTLM.pm $(INST_MAN3DIR)/Authen::NTLM.$(MAN3EXT)
|
||||
|
@ -430,8 +434,8 @@ subdirs ::
|
|||
|
||||
# --- MakeMaker clean_subdirs section:
|
||||
clean_subdirs :
|
||||
$(ABSPERLRUN) -e 'chdir '\''DES'\''; system '\''$(MAKE) clean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';'
|
||||
$(ABSPERLRUN) -e 'chdir '\''MD4'\''; system '\''$(MAKE) clean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';'
|
||||
$(ABSPERLRUN) -e 'chdir '\''DES'\''; system '\''$(MAKE) clean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';' --
|
||||
$(ABSPERLRUN) -e 'chdir '\''MD4'\''; system '\''$(MAKE) clean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';' --
|
||||
|
||||
|
||||
# --- MakeMaker clean section:
|
||||
|
@ -463,10 +467,10 @@ clean :: clean_subdirs
|
|||
|
||||
# --- MakeMaker realclean_subdirs section:
|
||||
realclean_subdirs :
|
||||
- $(ABSPERLRUN) -e 'chdir '\''DES'\''; system '\''$(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) realclean'\'' if -f '\''$(MAKEFILE_OLD)'\'';'
|
||||
- $(ABSPERLRUN) -e 'chdir '\''DES'\''; system '\''$(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) realclean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';'
|
||||
- $(ABSPERLRUN) -e 'chdir '\''MD4'\''; system '\''$(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) realclean'\'' if -f '\''$(MAKEFILE_OLD)'\'';'
|
||||
- $(ABSPERLRUN) -e 'chdir '\''MD4'\''; system '\''$(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) realclean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';'
|
||||
- $(ABSPERLRUN) -e 'chdir '\''DES'\''; system '\''$(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) realclean'\'' if -f '\''$(MAKEFILE_OLD)'\'';' --
|
||||
- $(ABSPERLRUN) -e 'chdir '\''DES'\''; system '\''$(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) realclean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';' --
|
||||
- $(ABSPERLRUN) -e 'chdir '\''MD4'\''; system '\''$(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) realclean'\'' if -f '\''$(MAKEFILE_OLD)'\'';' --
|
||||
- $(ABSPERLRUN) -e 'chdir '\''MD4'\''; system '\''$(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) realclean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';' --
|
||||
|
||||
|
||||
# --- MakeMaker realclean section:
|
||||
|
@ -481,18 +485,29 @@ realclean purge :: clean realclean_subdirs
|
|||
# --- MakeMaker metafile section:
|
||||
metafile : create_distdir
|
||||
$(NOECHO) $(ECHO) Generating META.yml
|
||||
$(NOECHO) $(ECHO) '# http://module-build.sourceforge.net/META-spec.html' > META_new.yml
|
||||
$(NOECHO) $(ECHO) '#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'name: Authen-NTLM' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'version: 1.05' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'version_from: NTLM.pm' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'installdirs: site' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) '--- #YAML:1.0' > META_new.yml
|
||||
$(NOECHO) $(ECHO) 'name: Authen-NTLM' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'version: 1.09' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'abstract: ~' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'author:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' - David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'license: unknown' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: 0' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' ExtUtils::MakeMaker: 0' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'requires:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' Digest::HMAC_MD5: 0' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' MIME::Base64: 0' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) '' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.30_01' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' Digest::HMAC_MD5: 0' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' MIME::Base64: 0' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'no_index:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' directory:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' - t' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' - inc' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.55_02' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml
|
||||
$(NOECHO) $(ECHO) ' version: 1.4' >> META_new.yml
|
||||
-$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml
|
||||
|
||||
|
||||
|
@ -515,7 +530,7 @@ manifest :
|
|||
$(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest
|
||||
|
||||
veryclean : realclean
|
||||
$(RM_F) *~ *.orig */*~ */*.orig
|
||||
$(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old
|
||||
|
||||
|
||||
|
||||
|
@ -523,7 +538,7 @@ veryclean : realclean
|
|||
|
||||
dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE)
|
||||
$(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \
|
||||
-e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';'
|
||||
-e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' --
|
||||
|
||||
tardist : $(DISTVNAME).tar$(SUFFIX)
|
||||
$(NOECHO) $(NOOP)
|
||||
|
@ -586,14 +601,14 @@ ci :
|
|||
# --- MakeMaker distmeta section:
|
||||
distmeta : create_distdir metafile
|
||||
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \
|
||||
-e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"'
|
||||
-e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"' --
|
||||
|
||||
|
||||
|
||||
# --- MakeMaker distsignature section:
|
||||
distsignature : create_distdir
|
||||
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
|
||||
-e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"'
|
||||
-e ' or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"' --
|
||||
$(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE
|
||||
cd $(DISTVNAME) && cpansign -s
|
||||
|
||||
|
@ -601,16 +616,16 @@ distsignature : create_distdir
|
|||
|
||||
# --- MakeMaker install section:
|
||||
|
||||
install :: all pure_install doc_install
|
||||
install :: pure_install doc_install
|
||||
$(NOECHO) $(NOOP)
|
||||
|
||||
install_perl :: all pure_perl_install doc_perl_install
|
||||
install_perl :: pure_perl_install doc_perl_install
|
||||
$(NOECHO) $(NOOP)
|
||||
|
||||
install_site :: all pure_site_install doc_site_install
|
||||
install_site :: pure_site_install doc_site_install
|
||||
$(NOECHO) $(NOOP)
|
||||
|
||||
install_vendor :: all pure_vendor_install doc_vendor_install
|
||||
install_vendor :: pure_vendor_install doc_vendor_install
|
||||
$(NOECHO) $(NOOP)
|
||||
|
||||
pure_install :: pure_$(INSTALLDIRS)_install
|
||||
|
@ -625,7 +640,7 @@ pure__install : pure_site_install
|
|||
doc__install : doc_site_install
|
||||
$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
|
||||
|
||||
pure_perl_install ::
|
||||
pure_perl_install :: all
|
||||
$(NOECHO) umask 022; $(MOD_INSTALL) \
|
||||
$(INST_LIB) $(DESTINSTALLPRIVLIB) \
|
||||
$(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \
|
||||
|
@ -637,7 +652,7 @@ pure_perl_install ::
|
|||
$(SITEARCHEXP)/auto/$(FULLEXT)
|
||||
|
||||
|
||||
pure_site_install ::
|
||||
pure_site_install :: all
|
||||
$(NOECHO) umask 02; $(MOD_INSTALL) \
|
||||
read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \
|
||||
write $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist \
|
||||
|
@ -650,7 +665,7 @@ pure_site_install ::
|
|||
$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
|
||||
$(PERL_ARCHLIB)/auto/$(FULLEXT)
|
||||
|
||||
pure_vendor_install ::
|
||||
pure_vendor_install :: all
|
||||
$(NOECHO) umask 022; $(MOD_INSTALL) \
|
||||
$(INST_LIB) $(DESTINSTALLVENDORLIB) \
|
||||
$(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
|
||||
|
@ -659,9 +674,9 @@ pure_vendor_install ::
|
|||
$(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \
|
||||
$(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
|
||||
|
||||
doc_perl_install ::
|
||||
doc_perl_install :: all
|
||||
|
||||
doc_site_install ::
|
||||
doc_site_install :: all
|
||||
$(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod
|
||||
-$(NOECHO) umask 02; $(MKPATH) $(DESTINSTALLSITEARCH)
|
||||
-$(NOECHO) umask 02; $(DOC_INSTALL) \
|
||||
|
@ -672,7 +687,7 @@ doc_site_install ::
|
|||
EXE_FILES "$(EXE_FILES)" \
|
||||
>> $(DESTINSTALLSITEARCH)/perllocal.pod
|
||||
|
||||
doc_vendor_install ::
|
||||
doc_vendor_install :: all
|
||||
|
||||
|
||||
uninstall :: uninstall_from_$(INSTALLDIRS)dirs
|
||||
|
@ -689,7 +704,7 @@ uninstall_from_vendordirs ::
|
|||
|
||||
# --- MakeMaker force section:
|
||||
# Phony target to force checking subdirectories.
|
||||
FORCE:
|
||||
FORCE :
|
||||
$(NOECHO) $(NOOP)
|
||||
|
||||
|
||||
|
@ -708,7 +723,7 @@ $(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
|
|||
$(PERLRUN) Makefile.PL
|
||||
$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
|
||||
$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <=="
|
||||
false
|
||||
$(FALSE)
|
||||
|
||||
|
||||
|
||||
|
@ -739,13 +754,17 @@ TESTDB_SW = -d
|
|||
|
||||
testdb :: testdb_$(LINKTYPE)
|
||||
|
||||
test :: $(TEST_TYPE)
|
||||
$(NOECHO) $(ABSPERLRUN) -e 'chdir '\''DES'\''; ' \
|
||||
-e 'system '\''$(MAKE) test $(PASTHRU)'\'' ' \
|
||||
-e ' if -f '\''$(FIRST_MAKEFILE)'\'';'
|
||||
$(NOECHO) $(ABSPERLRUN) -e 'chdir '\''MD4'\''; ' \
|
||||
-e 'system '\''$(MAKE) test $(PASTHRU)'\'' ' \
|
||||
-e ' if -f '\''$(FIRST_MAKEFILE)'\'';'
|
||||
test :: $(TEST_TYPE) subdirs-test
|
||||
|
||||
subdirs-test ::
|
||||
$(NOECHO) $(NOOP)
|
||||
|
||||
subdirs-test ::
|
||||
$(NOECHO) cd DES && $(MAKE) test $(PASTHRU)
|
||||
|
||||
subdirs-test ::
|
||||
$(NOECHO) cd MD4 && $(MAKE) test $(PASTHRU)
|
||||
|
||||
|
||||
test_dynamic :: pure_all
|
||||
PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-e" "test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES)
|
||||
|
@ -761,16 +780,14 @@ testdb_static :: testdb_dynamic
|
|||
|
||||
# --- MakeMaker ppd section:
|
||||
# Creates a PPD (Perl Package Description) for a binary distribution.
|
||||
ppd:
|
||||
$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="1,05,0,0">' > $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <TITLE>$(DISTNAME)</TITLE>' >> $(DISTNAME).ppd
|
||||
ppd :
|
||||
$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="1.09">' > $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <ABSTRACT></ABSTRACT>' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <AUTHOR>David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk></AUTHOR>' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <IMPLEMENTATION>' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <DEPENDENCY NAME="Digest-HMAC_MD5" VERSION="0,0,0,0" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <DEPENDENCY NAME="MIME-Base64" VERSION="0,0,0,0" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <OS NAME="$(OSNAME)" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i486-linux-gnu-thread-multi" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <REQUIRE NAME="Digest::HMAC_MD5" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <REQUIRE NAME="MIME::Base64" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i486-linux-gnu-thread-multi-5.10" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' <CODEBASE HREF="" />' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) ' </IMPLEMENTATION>' >> $(DISTNAME).ppd
|
||||
$(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd
|
||||
|
@ -778,8 +795,8 @@ ppd:
|
|||
|
||||
# --- MakeMaker pm_to_blib section:
|
||||
|
||||
pm_to_blib : $(TO_INST_PM)
|
||||
$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', '\''$(PM_FILTER)'\'')' \
|
||||
pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM)
|
||||
$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \
|
||||
NTLM.pm $(INST_LIB)/Authen/NTLM.pm
|
||||
$(NOECHO) $(TOUCH) pm_to_blib
|
||||
|
|
@ -148,6 +148,10 @@ L<perl>, L<Mail::IMAPClient>, L<LWP::Authen::Ntlm>
|
|||
|
||||
=head1 HISTORY
|
||||
|
||||
1.09 - fix CPAN ticket # 70703
|
||||
1.08 - fix CPAN ticket # 39925
|
||||
1.07 - not publicly released
|
||||
1.06 - relicense as GPL+ or Artistic
|
||||
1.05 - add OO interface by Dmitry Karasik
|
||||
1.04 - implementation of NTLMv2 by Andrew Hobson/Dmitry Karasik
|
||||
1.03 - fixes long-standing 1 line bug L<http://rt.cpan.org/Public/Bug/Display.html?id=9521> - released by David Bussenschutt 9th Aug 2007
|
||||
|
@ -155,7 +159,7 @@ L<perl>, L<Mail::IMAPClient>, L<LWP::Authen::Ntlm>
|
|||
|
||||
=cut
|
||||
|
||||
$VERSION = "1.05";
|
||||
$VERSION = "1.09";
|
||||
@ISA = qw(Exporter);
|
||||
@EXPORT = qw(ntlm ntlm_domain ntlm_user ntlm_password ntlm_reset ntlm_host ntlmv2);
|
||||
|
||||
|
@ -210,7 +214,7 @@ sub challenge
|
|||
my ( $self, $challenge) = @_;
|
||||
$state = defined $challenge;
|
||||
($user,$domain,$password,$host) = @{$self}{qw(user domain password host)};
|
||||
$ntlm_v2 = ($self-> {version} > 1) ? 1 : 0;
|
||||
$ntlm_v2 = ($self-> {version} eq '2') ? 1 : 0;
|
||||
return ntlm($challenge);
|
||||
}
|
||||
|
||||
|
@ -287,10 +291,17 @@ sub ntlm
|
|||
$lmResp = &lmEncrypt($c_info->{data});
|
||||
$ntResp = &ntEncrypt($c_info->{data});
|
||||
$flags = pack($msg3_tl, $c_info->{flags});
|
||||
} else {
|
||||
}
|
||||
elsif ($ntlm_v2 eq '1') {
|
||||
$lmResp = &lmv2Encrypt($c_info->{data});
|
||||
$ntResp = &ntv2Encrypt($c_info->{data}, $c_info->{target_data});
|
||||
$flags = pack($msg3_tl, $ntlm_v2_msg3_flags);
|
||||
}
|
||||
else {
|
||||
$domain = &unicode($domain);#substr($challenge, $c_info->{domain}{offset}, $c_info->{domain}{len});
|
||||
$lmResp = &lmEncrypt($c_info->{data});
|
||||
$ntResp = &ntEncrypt($c_info->{data});
|
||||
$flags = pack($msg3_tl, $c_info->{flags});
|
||||
}
|
||||
$u_host = &unicode(($host ? $host : $user));
|
||||
$response = pack($msg3, $ident, 3);
|
||||
|
@ -318,7 +329,7 @@ sub ntlm
|
|||
$f &= ~NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED;
|
||||
}
|
||||
$msg1_host = $user;
|
||||
if ($ntlm_v2) {
|
||||
if ($ntlm_v2 and $ntlm_v2 eq '1') {
|
||||
$f &= ~NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED;
|
||||
$f |= NTLMSSP_NEGOTIATE_NTLM2;
|
||||
$msg1_host = "";
|
||||
|
@ -360,7 +371,8 @@ sub decode_challenge
|
|||
my (@res, @hdr);
|
||||
my $original = $challenge;
|
||||
|
||||
$res->{buffer} = substr($challenge, $msg2_hlen);
|
||||
$res->{buffer} = $msg2_hlen < length $challenge
|
||||
? substr($challenge, $msg2_hlen) : '';
|
||||
$challenge = substr($challenge, 0, $msg2_hlen);
|
||||
@res = unpack($msg2, $challenge);
|
||||
$res->{ident} = $res[0];
|
104
NTLM-1.09/README
Normal file
104
NTLM-1.09/README
Normal file
|
@ -0,0 +1,104 @@
|
|||
NTLM Authentication Scheme
|
||||
==========================
|
||||
|
||||
This module implements the NTLM authentication mechanism. It can be
|
||||
used to perform NTLM style authentication for any desired protocol.
|
||||
|
||||
The module works well with the Mail::IMAPClient module in the
|
||||
"authenticate" method, however I had to make a change to that method
|
||||
for it to work. The following line (2511 in version 2.1.4):
|
||||
|
||||
($code) = $o->[DATA] =~ /^\+ (.*)$/ ;
|
||||
|
||||
needed to be changed to:
|
||||
|
||||
($code) = $o->[DATA] =~ /^\+(.*)$/ ;
|
||||
|
||||
as the initial NTLM challenge is empty.
|
||||
|
||||
This module also works well with LWP::Authen::Ntlm , allowing LWP::UserAgent
|
||||
and/or WWW::Mechanise to automate/browse/fetch/etc remote Microsoft Windows
|
||||
servers running NTLM authentication.
|
||||
Example use is like this(note the fact that NTLM.pm is NOT explicitly used!):
|
||||
|
||||
use WWW::Mechanize;
|
||||
$mech = WWW::Mechanize->new(keep_alive=>1);
|
||||
$mech->no_proxy('my.server');
|
||||
$mech->credentials('my.server:80', '', "my_domain\\my_user", my_pass);
|
||||
$response = $mech->get( $url );
|
||||
|
||||
|
||||
INSTALLATION
|
||||
|
||||
To install this application:
|
||||
|
||||
perl Makefile.PL
|
||||
make
|
||||
make test
|
||||
make install
|
||||
|
||||
DEPENDENCIES
|
||||
|
||||
This module requires the MIME::Base64 module, and Digest::HMAC_MD5
|
||||
|
||||
COPYRIGHT AND LICENSE
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of either:
|
||||
|
||||
a) the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 1, or (at your option) any
|
||||
later version, or
|
||||
|
||||
b) the "Artistic License" which comes with this Kit.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either
|
||||
the GNU General Public License or the Artistic License for more details.
|
||||
|
||||
You should have received a copy of the Artistic License with this
|
||||
Kit, in the file named "COPYING-Artistic". If not, I'll be glad to provide one.
|
||||
|
||||
You should also have received a copy of the GNU General Public License version 1
|
||||
along with this program in the file named "COPYING-GPL". If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA or visit their web page on the internet at
|
||||
http://www.gnu.org/copyleft/gpl.html.
|
||||
|
||||
For those of you that choose to use the GNU General Public License,
|
||||
my interpretation of the GNU General Public License is that no Perl
|
||||
script falls under the terms of the GPL unless you explicitly put
|
||||
said script under the terms of the GPL yourself. Furthermore, any
|
||||
object code linked with perl does not automatically fall under the
|
||||
terms of the GPL, provided such object code only adds definitions
|
||||
of subroutines and variables, and does not otherwise impair the
|
||||
resulting interpreter from executing any standard Perl script. I
|
||||
consider linking in C subroutines in this manner to be the moral
|
||||
equivalent of defining subroutines in the Perl language itself. You
|
||||
may sell such an object file as proprietary provided that you provide
|
||||
or offer to provide the Perl source, as specified by the GNU General
|
||||
Public License. (This is merely an alternate way of specifying input
|
||||
to the program.) You may also sell a binary produced by the dumping of
|
||||
a running Perl script that belongs to you, provided that you provide or
|
||||
offer to provide the Perl source as specified by the GPL. (The
|
||||
fact that a Perl interpreter and your code are in the same binary file
|
||||
is, in this case, a form of mere aggregation.) This is my interpretation
|
||||
of the GPL. If you still have concerns or difficulties understanding
|
||||
my intent, feel free to contact me. Of course, the Artistic License
|
||||
spells all this out for your protection, so you may prefer to use that.
|
||||
|
||||
License clarified by Nick Bebout per email from David Bussenschutt.
|
||||
<nb@fedoraproject.org>
|
||||
|
||||
Parts of this code Copyright (C) 2007 David (Buzz) Bussenschutt.
|
||||
<davidbuzz@gmail.com>
|
||||
|
||||
Perl port of this code is Copyright (C) 2001 Mark Bush.
|
||||
<Mark.Bush@bushnet.demon.co.uk>
|
||||
|
||||
The code is originally based on fetchmail code which is Copyright (C) 1997 Eric
|
||||
S. Raymond.
|
||||
|
||||
Fetchmail uses SMB/Netbios code from samba which is Copyright (C)
|
||||
Andrew Tridgell 1992-1998 with modifications from Jeremy Allison.
|
|
@ -148,6 +148,10 @@ L<perl>, L<Mail::IMAPClient>, L<LWP::Authen::Ntlm>
|
|||
|
||||
=head1 HISTORY
|
||||
|
||||
1.09 - fix CPAN ticket # 70703
|
||||
1.08 - fix CPAN ticket # 39925
|
||||
1.07 - not publicly released
|
||||
1.06 - relicense as GPL+ or Artistic
|
||||
1.05 - add OO interface by Dmitry Karasik
|
||||
1.04 - implementation of NTLMv2 by Andrew Hobson/Dmitry Karasik
|
||||
1.03 - fixes long-standing 1 line bug L<http://rt.cpan.org/Public/Bug/Display.html?id=9521> - released by David Bussenschutt 9th Aug 2007
|
||||
|
@ -155,7 +159,7 @@ L<perl>, L<Mail::IMAPClient>, L<LWP::Authen::Ntlm>
|
|||
|
||||
=cut
|
||||
|
||||
$VERSION = "1.05";
|
||||
$VERSION = "1.09";
|
||||
@ISA = qw(Exporter);
|
||||
@EXPORT = qw(ntlm ntlm_domain ntlm_user ntlm_password ntlm_reset ntlm_host ntlmv2);
|
||||
|
||||
|
@ -210,7 +214,7 @@ sub challenge
|
|||
my ( $self, $challenge) = @_;
|
||||
$state = defined $challenge;
|
||||
($user,$domain,$password,$host) = @{$self}{qw(user domain password host)};
|
||||
$ntlm_v2 = ($self-> {version} > 1) ? 1 : 0;
|
||||
$ntlm_v2 = ($self-> {version} eq '2') ? 1 : 0;
|
||||
return ntlm($challenge);
|
||||
}
|
||||
|
||||
|
@ -287,10 +291,17 @@ sub ntlm
|
|||
$lmResp = &lmEncrypt($c_info->{data});
|
||||
$ntResp = &ntEncrypt($c_info->{data});
|
||||
$flags = pack($msg3_tl, $c_info->{flags});
|
||||
} else {
|
||||
}
|
||||
elsif ($ntlm_v2 eq '1') {
|
||||
$lmResp = &lmv2Encrypt($c_info->{data});
|
||||
$ntResp = &ntv2Encrypt($c_info->{data}, $c_info->{target_data});
|
||||
$flags = pack($msg3_tl, $ntlm_v2_msg3_flags);
|
||||
}
|
||||
else {
|
||||
$domain = &unicode($domain);#substr($challenge, $c_info->{domain}{offset}, $c_info->{domain}{len});
|
||||
$lmResp = &lmEncrypt($c_info->{data});
|
||||
$ntResp = &ntEncrypt($c_info->{data});
|
||||
$flags = pack($msg3_tl, $c_info->{flags});
|
||||
}
|
||||
$u_host = &unicode(($host ? $host : $user));
|
||||
$response = pack($msg3, $ident, 3);
|
||||
|
@ -318,7 +329,7 @@ sub ntlm
|
|||
$f &= ~NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED;
|
||||
}
|
||||
$msg1_host = $user;
|
||||
if ($ntlm_v2) {
|
||||
if ($ntlm_v2 and $ntlm_v2 eq '1') {
|
||||
$f &= ~NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED;
|
||||
$f |= NTLMSSP_NEGOTIATE_NTLM2;
|
||||
$msg1_host = "";
|
||||
|
@ -360,7 +371,8 @@ sub decode_challenge
|
|||
my (@res, @hdr);
|
||||
my $original = $challenge;
|
||||
|
||||
$res->{buffer} = substr($challenge, $msg2_hlen);
|
||||
$res->{buffer} = $msg2_hlen < length $challenge
|
||||
? substr($challenge, $msg2_hlen) : '';
|
||||
$challenge = substr($challenge, 0, $msg2_hlen);
|
||||
@res = unpack($msg2, $challenge);
|
||||
$res->{ident} = $res[0];
|
|
@ -1,15 +1,7 @@
|
|||
.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
|
||||
.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sh \" Subsection heading
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
|
@ -48,22 +40,25 @@
|
|||
. ds R" ''
|
||||
'br\}
|
||||
.\"
|
||||
.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||||
.ie \n(.g .ds Aq \(aq
|
||||
.el .ds Aq '
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
|
||||
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.if \nF \{\
|
||||
.ie \nF \{\
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. nr % 0
|
||||
. rr F
|
||||
.\}
|
||||
.\"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.hy 0
|
||||
.if n .na
|
||||
.el \{\
|
||||
. de IX
|
||||
..
|
||||
.\}
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
|
@ -129,7 +124,11 @@
|
|||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "NTLM 3pm"
|
||||
.TH NTLM 3pm "2008-06-18" "perl v5.8.8" "User Contributed Perl Documentation"
|
||||
.TH NTLM 3pm "2011-09-09" "perl v5.10.1" "User Contributed Perl Documentation"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.if n .ad l
|
||||
.nh
|
||||
.SH "NAME"
|
||||
Authen::NTLM \- An NTLM authentication module
|
||||
.SH "SYNOPSIS"
|
||||
|
@ -137,7 +136,7 @@ Authen::NTLM \- An NTLM authentication module
|
|||
.Vb 10
|
||||
\& use Mail::IMAPClient;
|
||||
\& use Authen::NTLM;
|
||||
\& my $imap = Mail::IMAPClient\->new(Server=>\(aqimaphost\(aq);
|
||||
\& my $imap = Mail::IMAPClient\->new(Server=>\*(Aqimaphost\*(Aq);
|
||||
\& ntlm_user($username);
|
||||
\& ntlm_password($password);
|
||||
\& $imap\->authenticate("NTLM", Authen::NTLM::ntlm);
|
||||
|
@ -179,16 +178,14 @@ or
|
|||
\& to perform the challenge/response mechanism for NTLM connections
|
||||
\& or it can be used on its own for NTLM authentication with other
|
||||
\& protocols (eg. HTTP).
|
||||
.Ve
|
||||
.PP
|
||||
.Vb 5
|
||||
\&
|
||||
\& The implementation is a direct port of the code from F<fetchmail>
|
||||
\& which, itself, has based its NTLM implementation on F<samba>. As
|
||||
\& such, this code is not especially efficient, however it will still
|
||||
\& take a fraction of a second to negotiate a login on a PII which is
|
||||
\& likely to be good enough for most situations.
|
||||
.Ve
|
||||
.Sh "\s-1FUNCTIONS\s0"
|
||||
.SS "\s-1FUNCTIONS\s0"
|
||||
.IX Subsection "FUNCTIONS"
|
||||
.IP "\fIntlm_domain()\fR" 4
|
||||
.IX Item "ntlm_domain()"
|
||||
|
@ -225,17 +222,13 @@ or
|
|||
\& response containing the username and domain (which may be empty).
|
||||
\& The first call to C<ntlm()> generates this first message ignoring
|
||||
\& any arguments.
|
||||
.Ve
|
||||
.Sp
|
||||
.Vb 5
|
||||
\&
|
||||
\& The second time it is called, it is assumed that the argument is
|
||||
\& the challenge string sent from the server. This will contain 8
|
||||
\& bytes of data which are used in the DES functions to generate the
|
||||
\& response authentication strings. The result of the call is the
|
||||
\& final authentication string.
|
||||
.Ve
|
||||
.Sp
|
||||
.Vb 3
|
||||
\&
|
||||
\& If C<ntlm_reset()> is called, then the next call to C<ntlm()> will
|
||||
\& start the process again allowing multiple authentications within
|
||||
\& an application.
|
||||
|
@ -245,7 +238,7 @@ or
|
|||
.Vb 1
|
||||
\& Use NTLM v2 authentication.
|
||||
.Ve
|
||||
.Sh "\s-1OBJECT\s0 \s-1API\s0"
|
||||
.SS "\s-1OBJECT\s0 \s-1API\s0"
|
||||
.IX Subsection "OBJECT API"
|
||||
.ie n .IP "new %options" 4
|
||||
.el .IP "new \f(CW%options\fR" 4
|
||||
|
@ -270,10 +263,14 @@ the call is the final authentication string.
|
|||
.Ve
|
||||
.SH "SEE ALSO"
|
||||
.IX Header "SEE ALSO"
|
||||
perl, Mail::IMAPClient, LWP::Authen::Ntlm
|
||||
perl, Mail::IMAPClient, LWP::Authen::Ntlm
|
||||
.SH "HISTORY"
|
||||
.IX Header "HISTORY"
|
||||
.Vb 4
|
||||
.Vb 8
|
||||
\& 1.09 \- fix CPAN ticket # 70703
|
||||
\& 1.08 \- fix CPAN ticket # 39925
|
||||
\& 1.07 \- not publicly released
|
||||
\& 1.06 \- relicense as GPL+ or Artistic
|
||||
\& 1.05 \- add OO interface by Dmitry Karasik
|
||||
\& 1.04 \- implementation of NTLMv2 by Andrew Hobson/Dmitry Karasik
|
||||
\& 1.03 \- fixes long\-standing 1 line bug L<http://rt.cpan.org/Public/Bug/Display.html?id=9521> \- released by David Bussenschutt 9th Aug 2007
|
19
README
19
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.456 $
|
||||
$Revision: 1.463 $
|
||||
|
||||
SYNOPSIS
|
||||
To synchronise imap account "foo" on "imap.truc.org" to imap account
|
||||
|
@ -334,8 +334,8 @@ IMAP SERVERS
|
|||
- hMailServer 5.3.3 [host2], 4.4.1 [host1] (see FAQ)
|
||||
- iPlanet Messaging server 4.15, 5.1, 5.2
|
||||
- IMail 7.15 (Ipswitch/Win2003), 8.12, 11.03 [host1]
|
||||
- Kerio 7.2.0P1 [host1]
|
||||
- MailEnable 4.23 [host1] [host2]
|
||||
- Kerio 7.2.0 Patch 1 [host1] [host2]
|
||||
- MailEnable 4.23 [host1] [host2], 4.26 [host1][host2], 5 [host1]
|
||||
- MDaemon 7.0.1, 8.0.2, 8.1, 9.5.4 (Windows server 2003 R2 platform), 12 [host2],
|
||||
12.0.3 [host1]
|
||||
- Mercury 4.1 (Windows server 2000 platform)
|
||||
|
@ -344,7 +344,7 @@ IMAP SERVERS
|
|||
Exchange2007-EP-SP2,
|
||||
Exchange 2010 RTM (Release to Manufacturing) [host2],
|
||||
Exchange 2010 SP1 RU2[host2],
|
||||
- Mirapoint
|
||||
- Mirapoint, 4.1.9-GA [host1]
|
||||
- Netscape Mail Server 3.6 (Wintel !)
|
||||
- Netscape Messaging Server 4.15 Patch 7
|
||||
- OpenMail IMAP server B.07.00.k0 (Samsung Contact ?)
|
||||
|
@ -363,6 +363,7 @@ IMAP SERVERS
|
|||
(http://www.washington.edu/imap/)
|
||||
- UW - QMail v2.1
|
||||
- VMS, Imap part of TCP/IP suite of VMS 7.3.2
|
||||
- Yahoo [host1]
|
||||
- Zimbra-IMAP 3.0.1 GA 160, 3.1.0 Build 279, 4.0.5, 4.5.2, 4.5.6,
|
||||
Zimbra 5.0.24_GA_3356.RHEL4 [host1], 5.5, 6.x
|
||||
|
||||
|
@ -385,10 +386,10 @@ HUGE MIGRATION
|
|||
--maxage --minage --maxsize --useheader --fast --useuid --usecache
|
||||
|
||||
If you have many mailboxes to migrate think about a little shell
|
||||
program. Write a file called file.csv (for example) containing users and
|
||||
program. Write a file called file.txt (for example) containing users and
|
||||
passwords. The separator used in this example is ';'
|
||||
|
||||
The file.csv file contains:
|
||||
The file.txt file contains:
|
||||
|
||||
user001_1;password001_1;user001_2;password001_2
|
||||
user002_1;password002_1;user002_2;password002_2
|
||||
|
@ -401,11 +402,11 @@ HUGE MIGRATION
|
|||
{ while IFS=';' read u1 p1 u2 p2; do
|
||||
imapsync --host1 imap.side1.org --user1 "$u1" --password1 "$p1" \
|
||||
--host2 imap.side2.org --user2 "$u2" --password2 "$p2" ...
|
||||
done ; } < file.csv
|
||||
done ; } < file.txt
|
||||
|
||||
On Windows the batch program can be:
|
||||
|
||||
FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.csv) DO imapsync ^
|
||||
FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.txt) DO imapsync ^
|
||||
--host1 imap.side1.org --user1 %%G --password1 %%H ^
|
||||
--host2 imap.side2.org --user2 %%I --password2 %%J ...
|
||||
|
||||
|
@ -441,5 +442,5 @@ SIMILAR SOFTWARES
|
|||
|
||||
Feedback (good or bad) will often be welcome.
|
||||
|
||||
$Id: imapsync,v 1.456 2011/08/24 04:21:30 gilles Exp gilles $
|
||||
$Id: imapsync,v 1.463 2011/11/12 21:58:52 gilles Exp gilles $
|
||||
|
||||
|
|
2
TIME
2
TIME
|
@ -1,3 +1,5 @@
|
|||
210 Added statistics on ks and lfo, % Operating systems, ip per year .Updated index.shtml
|
||||
210 Added --nocacheaftercopy and played with dbmail (uids generation are +=2!)
|
||||
120 Statistics statistics_VERSION_synthesis
|
||||
150 10 years old announce. index.html. 10 EUR. freshmeat announce+release 1.452
|
||||
60 Added --search option.
|
||||
|
|
8
TODO
8
TODO
|
@ -1,5 +1,5 @@
|
|||
#!/bin/cat
|
||||
# $Id: TODO,v 1.101 2011/08/24 06:50:30 gilles Exp gilles $
|
||||
# $Id: TODO,v 1.103 2011/11/12 21:59:35 gilles Exp gilles $
|
||||
|
||||
TODO file for imapsync
|
||||
----------------------
|
||||
|
@ -23,6 +23,7 @@ Evaluate
|
|||
http://www.rackspace.com/apps/email_hosting/migrations
|
||||
http://www.yippiemove.com/
|
||||
|
||||
|
||||
Find a way to avoid passwords in --debugimap unless needed.
|
||||
|
||||
Explain that users can win time/bandwidth by using --expunge
|
||||
|
@ -162,6 +163,11 @@ http://asg.web.cmu.edu/cyrus/download/imapd/altnamespace.html
|
|||
|
||||
===========================================================================
|
||||
|
||||
DONE. Add --subscribe by default.
|
||||
|
||||
DONE. Ask Nick Czeczulin why he wrote patent "Method for mailbox migration"
|
||||
http://www.google.com/patents/about?id=qI_IAAAAEBAJ
|
||||
|
||||
DONE. Add --search option allowing to select messages with any IMAP SEARCH command.
|
||||
|
||||
DONE. Make --usecache works with --maxage --maxsize etc.
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
1.456
|
||||
1.463
|
||||
|
|
|
@ -1 +1 @@
|
|||
1.456
|
||||
1.462
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# $Id: paypal_bilan,v 1.36 2011/07/18 19:21:07 gilles Exp gilles $
|
||||
# $Id: paypal_bilan,v 1.37 2011/09/17 22:54:31 gilles Exp gilles $
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
@ -171,8 +171,9 @@ print "Nb invoice suspended $nb_invoice_suspended\n" ;
|
|||
print "Nb invoice sent $nb_invoice_sent\n" ;
|
||||
print "Have to send invoices @invoice_not_sent\n" if ( @invoice_not_sent ) ;
|
||||
|
||||
print "$total_eur != $total_HT_EUR_exo + $total_HT_EUR_ass + $total_TVA_EUR + $total_HT_EUR_sup + $total_TVA_EUR_sup\n"
|
||||
if ( $total_eur != $total_HT_EUR_exo + $total_HT_EUR_ass + $total_TVA_EUR + $total_HT_EUR_sup + $total_TVA_EUR_sup ) ;
|
||||
my $total_eur2 = $total_HT_EUR_exo + $total_HT_EUR_ass + $total_TVA_EUR + $total_HT_EUR_sup + $total_TVA_EUR_sup ;
|
||||
print "$total_eur != $total_eur2 = $total_HT_EUR_exo + $total_HT_EUR_ass + $total_TVA_EUR + $total_HT_EUR_sup + $total_TVA_EUR_sup\n"
|
||||
if ( $total_eur != $total_eur2 ) ;
|
||||
|
||||
sub parse_one_line_io {
|
||||
my $csv = shift ;
|
||||
|
|
|
@ -15,19 +15,22 @@ set -x
|
|||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 645 /g/paypal/paypal_2011_05_complet.csv
|
||||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 733 /g/paypal/paypal_2011_06_complet.csv
|
||||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 824 /g/paypal/paypal_2011_07_complet.csv
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 917 /g/paypal/paypal_2011_08_complet.csv
|
||||
#/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 917 /g/paypal/paypal_2011_08_complet.csv
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 999 /g/paypal/paypal_2011_09_complet.csv
|
||||
/g/public_html/imapsync/W/paypal_reply/paypal_bilan --write_invoices --first_in 1094 /g/paypal/paypal_2011_10_complet.csv
|
||||
|
||||
# /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 824 /g/paypal/paypal_2011_07_complet.csv
|
||||
# /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 917 /g/paypal/paypal_2011_08_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 824 /g/paypal/paypal_2011_07_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 917 /g/paypal/paypal_2011_08_complet.csv
|
||||
: /g/public_html/imapsync/W/paypal_reply/paypal_bilan --first_in 1094 /g/paypal/paypal_2011_10_complet.csv
|
||||
set +x
|
||||
|
||||
# La totale
|
||||
: || /g/public_html/imapsync/W/paypal_reply/paypal_bilan --bnc --debug \
|
||||
--first_in 147 --avoid_numbers '292 293 643 644 731 732' \
|
||||
--first_in 147 --avoid_numbers '292 293 643 644 731 732 1093' \
|
||||
/g/paypal/paypal_201?_??_complet.csv
|
||||
|
||||
: || /g/public_html/imapsync/W/paypal_reply/paypal_bilan \
|
||||
--first_in 147 --avoid_numbers '292 293 643 644 731 732' \
|
||||
--first_in 147 --avoid_numbers '292 293 643 644 731 732 1093' \
|
||||
/g/paypal/paypal_201?_??_complet.csv
|
||||
|
||||
|
||||
|
|
|
@ -1,19 +1,24 @@
|
|||
# Example file.csv for imapsync massive migration.
|
||||
|
||||
# Thanks to http://ss64.com/nt/for_f.html
|
||||
# Example file.txt for imapsync massive migration.
|
||||
#
|
||||
# ==== Windows ====
|
||||
# Thanks to http://ss64.com/nt/for_f.html for
|
||||
# the Windows example of a for loop
|
||||
#
|
||||
# A line beginning with # is a comment thanks to option Win32 eol=#
|
||||
# Separator is character ; it can be changed by any character using delims=;
|
||||
# Each contains 4 columns, columns are parameters for --user1 --password1 --user2 --password2
|
||||
#
|
||||
# This file can be used on Windows with the following line in a batch
|
||||
# FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.csv) DO imapsync --host1 imap.truc.org --user1 %%G --password1 %%H --host2 imap.trac.org --user2 %%I --password2 %%J
|
||||
# FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.txt) DO imapsync --host1 imap.truc.org --user1 %%G --password1 %%H --host2 imap.trac.org --user2 %%I --password2 %%J
|
||||
#
|
||||
# A line beginning with # is a comment thanks to option Win32 eol=#
|
||||
# Separator is character ; it can be changed by any character changing delims=;
|
||||
# Each line contains 4 columns, columns are parameters for --user1 --password1 --user2 --password2
|
||||
#
|
||||
# ==== Unix ====
|
||||
# This file can be used on Unix with the following line in a Bourne shell script
|
||||
# { while IFS=';' read u1 p1 u2 p2; do imapsync --user1 "$u1" --password1 "$p1" --user2 "$u2" --password2 "$p2" ... ; done ; } < file.csv
|
||||
#
|
||||
#
|
||||
# { while IFS=';' read u1 p1 u2 p2; do imapsync --user1 "$u1" --password1 "$p1" --user2 "$u2" --password2 "$p2" ... ; done ; } < file.txt
|
||||
#
|
||||
# Separator is character ; it can be changed by any character changing IFS=';'
|
||||
# Each line contains 4 columns, columns are parameters for --user1 --password1 --user2 --password2
|
||||
#
|
||||
# Now the data example
|
||||
user001_1;password001_1;user001_2;password001_2
|
||||
user002_1;password002_1;user002_2;password002_2
|
||||
user003_1;password003_1;user003_2;password003_2
|
4
i3
4
i3
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
# $Id: i3,v 1.7 2011/03/15 01:15:48 gilles Exp gilles $
|
||||
# $Id: i3,v 1.8 2011/11/12 21:49:00 gilles Exp gilles $
|
||||
|
||||
BASE=`dirname $0`
|
||||
perl -I${BASE}/Mail-IMAPClient-3.28/lib ${BASE}/imapsync "$@"
|
||||
perl -I${BASE}/Mail-IMAPClient-3.30/lib ${BASE}/imapsync "$@"
|
||||
|
||||
|
|
48
imapsync
48
imapsync
|
@ -20,7 +20,7 @@ Synchronise mailboxes between two imap servers.
|
|||
Good at IMAP migration. More than 36 different IMAP server softwares
|
||||
supported with success.
|
||||
|
||||
$Revision: 1.456 $
|
||||
$Revision: 1.463 $
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
|
@ -383,8 +383,8 @@ Success stories reported with the following 44 imap servers
|
|||
- hMailServer 5.3.3 [host2], 4.4.1 [host1] (see FAQ)
|
||||
- iPlanet Messaging server 4.15, 5.1, 5.2
|
||||
- IMail 7.15 (Ipswitch/Win2003), 8.12, 11.03 [host1]
|
||||
- Kerio 7.2.0P1 [host1]
|
||||
- MailEnable 4.23 [host1] [host2]
|
||||
- Kerio 7.2.0 Patch 1 [host1] [host2]
|
||||
- MailEnable 4.23 [host1] [host2], 4.26 [host1][host2], 5 [host1]
|
||||
- MDaemon 7.0.1, 8.0.2, 8.1, 9.5.4 (Windows server 2003 R2 platform), 12 [host2],
|
||||
12.0.3 [host1]
|
||||
- Mercury 4.1 (Windows server 2000 platform)
|
||||
|
@ -393,7 +393,7 @@ Success stories reported with the following 44 imap servers
|
|||
Exchange2007-EP-SP2,
|
||||
Exchange 2010 RTM (Release to Manufacturing) [host2],
|
||||
Exchange 2010 SP1 RU2[host2],
|
||||
- Mirapoint
|
||||
- Mirapoint, 4.1.9-GA [host1]
|
||||
- Netscape Mail Server 3.6 (Wintel !)
|
||||
- Netscape Messaging Server 4.15 Patch 7
|
||||
- OpenMail IMAP server B.07.00.k0 (Samsung Contact ?)
|
||||
|
@ -412,6 +412,7 @@ Success stories reported with the following 44 imap servers
|
|||
(http://www.washington.edu/imap/)
|
||||
- UW - QMail v2.1
|
||||
- VMS, Imap part of TCP/IP suite of VMS 7.3.2
|
||||
- Yahoo [host1]
|
||||
- Zimbra-IMAP 3.0.1 GA 160, 3.1.0 Build 279, 4.0.5, 4.5.2, 4.5.6,
|
||||
Zimbra 5.0.24_GA_3356.RHEL4 [host1], 5.5, 6.x
|
||||
|
||||
|
@ -452,11 +453,11 @@ Pay special attention to options
|
|||
--usecache
|
||||
|
||||
If you have many mailboxes to migrate think about a little
|
||||
shell program. Write a file called file.csv (for example)
|
||||
shell program. Write a file called file.txt (for example)
|
||||
containing users and passwords.
|
||||
The separator used in this example is ';'
|
||||
|
||||
The file.csv file contains:
|
||||
The file.txt file contains:
|
||||
|
||||
user001_1;password001_1;user001_2;password001_2
|
||||
user002_1;password002_1;user002_2;password002_2
|
||||
|
@ -470,11 +471,11 @@ On Unix the shell program can be:
|
|||
{ while IFS=';' read u1 p1 u2 p2; do
|
||||
imapsync --host1 imap.side1.org --user1 "$u1" --password1 "$p1" \
|
||||
--host2 imap.side2.org --user2 "$u2" --password2 "$p2" ...
|
||||
done ; } < file.csv
|
||||
done ; } < file.txt
|
||||
|
||||
On Windows the batch program can be:
|
||||
|
||||
FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.csv) DO imapsync ^
|
||||
FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.txt) DO imapsync ^
|
||||
--host1 imap.side1.org --user1 %%G --password1 %%H ^
|
||||
--host2 imap.side2.org --user2 %%I --password2 %%J ...
|
||||
|
||||
|
@ -516,7 +517,7 @@ Entries for imapsync:
|
|||
|
||||
Feedback (good or bad) will often be welcome.
|
||||
|
||||
$Id: imapsync,v 1.456 2011/08/24 04:21:30 gilles Exp gilles $
|
||||
$Id: imapsync,v 1.463 2011/11/12 21:58:52 gilles Exp gilles $
|
||||
|
||||
=cut
|
||||
|
||||
|
@ -622,7 +623,7 @@ my(
|
|||
$max_msg_size_in_bytes,
|
||||
$modules_version,
|
||||
$delete2folders, $delete2foldersonly, $delete2foldersbutnot,
|
||||
$usecache, $debugcache,
|
||||
$usecache, $debugcache, $cacheaftercopy,
|
||||
$wholeheaderifneeded, %h1_msgs_copy_by_uid, $useuid, $h2_uidguess,
|
||||
);
|
||||
|
||||
|
@ -630,7 +631,7 @@ my(
|
|||
|
||||
# global variables initialisation
|
||||
|
||||
$rcs = '$Id: imapsync,v 1.456 2011/08/24 04:21:30 gilles Exp gilles $ ';
|
||||
$rcs = '$Id: imapsync,v 1.463 2011/11/12 21:58:52 gilles Exp gilles $ ';
|
||||
|
||||
$total_bytes_transferred = 0;
|
||||
$total_bytes_skipped = 0;
|
||||
|
@ -705,6 +706,7 @@ if ( $fast ) {
|
|||
|
||||
# Activate --usecache if --useuid is set and no --nousecache
|
||||
$usecache = 1 if ( $useuid and ( ! defined( $usecache ) ) ) ;
|
||||
$cacheaftercopy = 1 if ( $usecache and ( ! defined( $cacheaftercopy ) ) ) ;
|
||||
|
||||
print banner_imapsync(@argv_copy);
|
||||
|
||||
|
@ -739,6 +741,8 @@ $skipsize = (defined $skipsize) ? $skipsize : 1;
|
|||
$uid1 = defined($uid1) ? $uid1 : 1;
|
||||
$uid2 = defined($uid2) ? $uid2 : 1;
|
||||
|
||||
$subscribe = defined($subscribe) ? $subscribe : 1;
|
||||
|
||||
# Allow size mismatch by default
|
||||
$allowsizemismatch = defined($allowsizemismatch) ? $allowsizemismatch : 1;
|
||||
|
||||
|
@ -878,7 +882,7 @@ if ( ! ( 1
|
|||
and $usecache
|
||||
and ! $delete ) ) {
|
||||
die_clean(
|
||||
"Problem --usecache can not be used safely with options --maxsize--minsize --maxage --minage
|
||||
"Problem --usecache can not be used safely with options --maxsize --minsize --maxage --minage
|
||||
Use --nousecache or suppress the --max* --min* options\n" ) ;
|
||||
}
|
||||
|
||||
|
@ -1299,6 +1303,7 @@ FOLDER: foreach my $h1_fold (@h1_folders_wanted) {
|
|||
}
|
||||
|
||||
my $h2_uidnext = $imap2->uidnext( $h2_fold ) ;
|
||||
$debug and print "uidnext h2: $h2_uidnext\n" ;
|
||||
$h2_uidguess = $h2_uidnext ;
|
||||
MESS: foreach my $m_id (@h1_hash_keys_sorted_by_uid) {
|
||||
my $h1_size = $h1_hash{$m_id}{'s'};
|
||||
|
@ -1822,8 +1827,8 @@ sub banner_imapsync {
|
|||
my @argv_copy = @_;
|
||||
my $banner_imapsync = join("",
|
||||
'$RCSfile: imapsync,v $ ',
|
||||
'$Revision: 1.456 $ ',
|
||||
'$Date: 2011/08/24 04:21:30 $ ',
|
||||
'$Revision: 1.463 $ ',
|
||||
'$Date: 2011/11/12 21:58:52 $ ',
|
||||
"\n",localhost_info(), "\n",
|
||||
"Command line used:\n",
|
||||
"$0 ", command_line_nopassword(@argv_copy), "\n",
|
||||
|
@ -2694,11 +2699,11 @@ sub copy_message {
|
|||
$new_id = lastuid( $imap2, $h2_fold, $h2_uidguess ) ;
|
||||
}
|
||||
printf( "msg %s/%-19s copied to %s/%-10s\n", $h1_fold, "$h1_msg {$string_len}", $h2_fold, $new_id );
|
||||
$h2_uidguess++;
|
||||
$h2_uidguess += 1 ;
|
||||
$total_bytes_transferred += $h1_size;
|
||||
$nb_msg_transferred += 1;
|
||||
$debugcache and print "touch $cache_dir/${h1_msg}_$new_id\n" if ( $usecache ) ;
|
||||
touch( "$cache_dir/${h1_msg}_$new_id" ) if ( $usecache and $new_id =~ m{^\d+$} );
|
||||
$debugcache and print "touch $cache_dir/${h1_msg}_$new_id\n" if ( $usecache and $cacheaftercopy and $new_id =~ m{^\d+$} ) ;
|
||||
touch( "$cache_dir/${h1_msg}_$new_id" ) if ( $usecache and $cacheaftercopy and $new_id =~ m{^\d+$} ) ;
|
||||
if ( $delete ) {
|
||||
print "msg $h1_fold/$h1_msg deleted on host1\n";
|
||||
unless($dry) {
|
||||
|
@ -2731,8 +2736,8 @@ sub cache_map {
|
|||
$debugcache and print "C12: $file\n" ;
|
||||
( $uid1, $uid2 ) = match_a_cache_file( $file ) ;
|
||||
|
||||
if ( exists( $h1_msgs_hash_ref->{ $uid1 } )
|
||||
and exists( $h2_msgs_hash_ref->{ $uid2 } ) ) {
|
||||
if ( exists( $h1_msgs_hash_ref->{ $uid1 // q{} } )
|
||||
and exists( $h2_msgs_hash_ref->{ $uid2 // q{} } ) ) {
|
||||
# keep only the greatest uid2
|
||||
# 130_2301 and
|
||||
# 130_231 => keep only 130 -> 2301
|
||||
|
@ -3396,6 +3401,7 @@ sub get_options {
|
|||
"releasecheck!" => \$releasecheck,
|
||||
"modules_version!" => \$modules_version,
|
||||
"usecache!" => \$usecache,
|
||||
"cacheaftercopy!" => \$cacheaftercopy,
|
||||
"debugcache!" => \$debugcache,
|
||||
"useuid!" => \$useuid,
|
||||
);
|
||||
|
@ -3580,7 +3586,7 @@ sub check_last_release {
|
|||
}
|
||||
|
||||
sub imapsync_version {
|
||||
my $rcs = '$Id: imapsync,v 1.456 2011/08/24 04:21:30 gilles Exp gilles $ ';
|
||||
my $rcs = '$Id: imapsync,v 1.463 2011/11/12 21:58:52 gilles Exp gilles $ ';
|
||||
$rcs =~ m/,v (\d+\.\d+)/;
|
||||
my $VERSION = ($1) ? $1: "UNKNOWN";
|
||||
return($VERSION);
|
||||
|
@ -3808,7 +3814,7 @@ Several options are mandatory.
|
|||
--dry : do nothing, just print what would be done.
|
||||
--subscribed : transfers subscribed folders.
|
||||
--subscribe : subscribe to the folders transferred on the
|
||||
host2 that are subscribed on host1.
|
||||
host2 that are subscribed on host1. On by default.
|
||||
--subscribe_all : subscribe to the folders transferred on the
|
||||
host2 even if they are not subscribed on host1.
|
||||
--nofoldersizes : Do not calculate the size of each folder in bytes
|
||||
|
|
81
index.shtml
81
index.shtml
|
@ -5,7 +5,7 @@
|
|||
<title>Imapsync: an IMAP migration tool ( release <!--#exec cmd="cat VERSION"--> )</title>
|
||||
<meta name="generator" content="Bluefish 1.0.7"/>
|
||||
<meta name="author" content="Gilles LAMIRAL"/>
|
||||
<meta name="date" content="2011-08-03T03:25:16+0200"/>
|
||||
<meta name="date" content="2011-11-13T00:45:16+0100"/>
|
||||
<meta name="copyright" content="None"/>
|
||||
<meta name="keywords" content="imap, transfert, migration"/>
|
||||
<meta name="description" content="imap migration tool"/>
|
||||
|
@ -29,8 +29,8 @@
|
|||
<body>
|
||||
|
||||
<ul class="none">
|
||||
<li>Buy <a href="#buy_source">imapsync <b>source code</b></a> (any OS)</li>
|
||||
<li>Buy <a href="#buy_exe"><b>standalone win32</b></a> imapsync.exe</li>
|
||||
<li>Buy <a href="#buy_source"><b>imapsync source code</b></a> (any OS)</li>
|
||||
<li>Buy <a href="#buy_exe"><b>standalone win32</b></a> <b>imapsync.exe</b> (also <b>works on win64</b>)</li>
|
||||
<li>Buy <a href="#buy_support">imapsync <b>support</b></a> to succeed your migration</li>
|
||||
<li>Are your <a href="#imap_server_success">imap servers <b>supported</b></a> by imapsync?</li>
|
||||
</ul>
|
||||
|
@ -39,11 +39,8 @@
|
|||
<a href="http://ks.lamiral.info/imapsync/"><img src="logo_imapsync.png" width="486" height="309" alt="imapsync logo"/></a>
|
||||
|
||||
<h1>Welcome to the imapsync web site!</h1>
|
||||
<span style="font-size:300%;">Ten years old since release 1.1!</span><br/>
|
||||
(on Friday 29 July 2011)
|
||||
</div>
|
||||
|
||||
|
||||
<h2>What is imapsync?</h2>
|
||||
|
||||
<p><b>imapsync</b> software is a command line tool allowing incremental and
|
||||
|
@ -59,13 +56,22 @@ where the user plays independently on both sides. Use <b>offlineimap</b>
|
|||
(written by John Goerzen) for this purpose.
|
||||
</p>
|
||||
|
||||
<h2><a id="NUMBERS"></a>Some numbers</h2>
|
||||
<h2><a id="NUMBERS"></a>Some numbers for 2011</h2>
|
||||
|
||||
<ul>
|
||||
<li>Number of <b>imapsync users</b> per month: between <b>2 and 3 thousands </b>users</li>
|
||||
<li>Number of <b>imapsync transfers</b> per month: between <b>3 and 8 millions </b>transfers</li>
|
||||
<li>Pourcentage of <b>Windows</b> users : <b>10%</b></li>
|
||||
<li><b>Biggest user</b> usage: <b>5 millions</b> of IMAP mailbox transfers <b>in a month</b> (one every 2 seconds)</li>
|
||||
<li>Number of <b>imapsync transfers</b> per month: between <b>3 and 11 millions </b>transfers </li>
|
||||
<li>Pourcentage between <b>operating systems</b> users running imapsync:
|
||||
<ul>
|
||||
<li><b>Linux: 65 %</b></li>
|
||||
<li><b>Win32: 18 %</b></li>
|
||||
<li><b>Darwin: 11 %</b></li>
|
||||
<li>FreeBSD: 6 %</li>
|
||||
<li>Solaris: 0.4 %</li>
|
||||
<li>OpenBSD: 0.1 %</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><b>Biggest user usage</b>: more than <b>11 millions</b> of IMAP mailbox transfers</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -81,37 +87,32 @@ where the user plays independently on both sides. Use <b>offlineimap</b>
|
|||
<p>New features or bugfixes since previous releases:</p>
|
||||
|
||||
<ul>
|
||||
<li><b>1.463</b></li>
|
||||
<li><b>Update</b>: include and use of Mail-IMAPClient-3.30 (imapsync.exe)</li>
|
||||
<li><b>Usability</b>: --subscribe option is on by defaut.</li>
|
||||
<li><b>BugFix</b>: Added --nocacheaftercopy to avoid bad uids in cache with --useuid or --usecache and strange uid generator like dbmail 2.2.17</li>
|
||||
<li><b>BugFix</b>: Avoid Perl warning 'Use of uninitialized value $uid1 in exists'. Thanks to Klaus Franken</li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b>1.456</b></li>
|
||||
<li>Added a <b><a href="./file.txt">file.txt</a></b> example to <b>batch massive migration</b> (many mailboxes) on Windows or Unix</li>
|
||||
<li>Added support to <b>Yahoo</b> as host1 (just add <kbd>--sep1 "/"</kbd> option. Add <kbd>--ssl1</kbd> for encryption)</li>
|
||||
<li>Empty default value for $h1_flags $h2_flags to avoid useless Perl warnings.</li>
|
||||
<li><b>MDaemon 12.0.3 failure as host2</b> (successive APPEND are buggy on MDaemon)</li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><b>1.452</b></li>
|
||||
<li><b>New feature</b>: Added <b>--search</b> option allowing to <b>select messages</b> with the <b>powerful IMAP SEARCH</b> command.</li>
|
||||
<li><b>Bugfix</b>: Date reference to select messages with --maxdate --mindate is the beginning of imapsync run now.</li>
|
||||
<li>Bugfix: Fixed ps call to work with Solaris 10. Thanks to Daniel Rohde.</li>
|
||||
<li>Success: <b>Kerio 7.2.0P1</b> success story.</li>
|
||||
<li>Success: <b>MDaemon 12.0.3</b> success story.</li>
|
||||
|
||||
|
||||
<li><b>1.446</b></li>
|
||||
<li><b>Bugfix</b>: Better --idatefromheader behavior (thank to Dax Kelson patches).</li>
|
||||
<li><b>Usability</b>: Now --delete2 sets --uidexpunge2 instead of --expunge2 if possible.</li>
|
||||
<li><b>Usability</b>: Adapted the usage output multiline character to Unix or Win, \ or ^</li>
|
||||
<li>Bugfix: Avoid a "not a number" warning when size is null.</li>
|
||||
<li><b>Bugfix</b>: Added "Date" in the default --useheader list. It is ("Message-Id", "Message-ID", "Date")</li>
|
||||
<li>Bugfix: allows bad header beginning with a blank character.</li>
|
||||
|
||||
<li><b>1.434</b></li>
|
||||
<li><b>Bugfix</b>: Changed the way imapsync knows <b>whether a folder exists</b> or not. <b>Exchange</b> might be happy and <b>stop deconnecting</b> for this reason.</li>
|
||||
<li><b>Bugfix</b>: <b>Reconnections</b> are well done in <b>TLS mode</b> now.</li>
|
||||
<li><b>Bugfix</b>: IMAP RFC 3501 and some imap servers require <b>internal dates</b> have a <b>zone data</b>. Default <b>to +0000</b> when host1 doesn't give it.</li>
|
||||
<li><b>Bugfix</b>: Options --maxsize --minsize now really work with --useuid (1.422 had a cache issue).</li>
|
||||
<li><b>Bugfix</b>: <b>Improved</b> the way imapsync <b>deals with headers</b>:<ul>
|
||||
<li><b>Stopped</b> getting <b>first 2KB body</b> of message. Not a good idea in practice.</li>
|
||||
<li>If <b>massive</b> get headers <b>fails</b> then take the <b>whole header</b> one by one (instead of body).</li>
|
||||
<li>Default is like --useheader <b>"Message-Id"</b> --useheader <b>"Message-ID"</b> (instead of just "Message-Id").</li>
|
||||
<li>Use header "Message-Id" and header "Date" as md5 signature when taking the whole header.</li>
|
||||
<li>Success: <b>MDaemon 12.0.3 success story as host1</b>.</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<!--
|
||||
<p>The next imapsync release should see:</p>
|
||||
|
@ -193,7 +194,8 @@ name="submit" alt="PayPal - The safer, easier way to pay online!"/>
|
|||
|
||||
<h2><a id="buy_exe"></a>Buy standalone imapsync.exe for win32</h2>
|
||||
<p>Struggle free from source code and Perl installation by<br/>
|
||||
buying the latest win32 <b>standalone imapsync.exe</b> for <b>10</b> EUR</p>
|
||||
buying the latest win32 <b>standalone imapsync.exe</b> for <b>30 EUR</b>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
30 EUR is equal to around <b>45 USD</b>, no problem to pay in USD (or any currency) with paypal:
|
||||
|
@ -333,7 +335,7 @@ will be to code it or fix it.<br/>
|
|||
<tr align="right"><td> Yes</td><td>Fix capability changes </td><td> 1 hour </td><td> 80 min </td><td> 0 $ </td><td> 0 $ </td></tr>
|
||||
<tr align="right"><td> Yes</td><td>Large mailbox --maxage </td><td> 4 hours </td><td> 270 min </td><td> 0 $ </td><td> 0 $ </td></tr>
|
||||
<tr align="right"><td> Yes</td><td>dkimap support </td><td> 3 hours </td><td> 120 min </td><td> 0 $ </td><td> 0 $ </td></tr>
|
||||
<tr align="right"><td> No</td><td>gratis from here </td><td> 4 hours </td><td> 0 min </td><td> 0 $ </td><td>60000 $ </td></tr>
|
||||
|
||||
</table>
|
||||
|
||||
<h2><a id="imap_server_success"></a>Lists of imap server software failures and success stories</h2>
|
||||
|
@ -351,7 +353,7 @@ Don't hesitate to have a try, I will help you and make efforts to switch them to
|
|||
</ul>
|
||||
|
||||
<p>Now the long reported <b>success stories</b> list: <b>44 different imap server softwares supported!</b><br/>
|
||||
([host1] means "source server", [host2] means "destination server"):
|
||||
[host1] means "source server" and [host2] means "destination server":
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
|
@ -391,7 +393,7 @@ Don't hesitate to have a try, I will help you and make efforts to switch them to
|
|||
<li>iPlanet Messaging server 4.15, 5.1, 5.2</li>
|
||||
<li>IMail 7.15 (Ipswitch/Win2003), 8.12, 11.03 [host1]</li>
|
||||
<li>Kerio 7.2.0P1 [host1]</li>
|
||||
<li><b>MailEnable</b> 4.23 [host1][host2], 4.26 [host1][host2]</li>
|
||||
<li><b>MailEnable</b> 4.23 [host1][host2], 4.26 [host1][host2], 5 [host1]</li>
|
||||
<li>MDaemon 7.0.1, 8.0.2, 8.1, 9.5.4 (Windows server 2003 R2 platform), 12 [host2], 12.0.3 [host1]</li>
|
||||
<li>Mercury 4.1 (Windows server 2000 platform)</li>
|
||||
<li><b>Microsoft Exchange Server</b> 5.5, 6.0.6249.0[host1], 6.0.6487.0[host1],
|
||||
|
@ -400,7 +402,7 @@ Don't hesitate to have a try, I will help you and make efforts to switch them to
|
|||
Exchange 2010 RTM (Release to Manufacturing) [host2],
|
||||
Exchange 2010 SP1 RU2 [host2]
|
||||
</li>
|
||||
<li>Mirapoint server</li>
|
||||
<li>Mirapoint server 4.1.9-GA [host1]</li>
|
||||
<li>Netscape Mail Server 3.6 (Wintel)</li>
|
||||
<li>Netscape Messaging Server 4.15 Patch 7</li>
|
||||
<li>OpenMail IMAP server B.07.00.k0</li>
|
||||
|
@ -419,6 +421,7 @@ Don't hesitate to have a try, I will help you and make efforts to switch them to
|
|||
(http://www.washington.edu/imap/)</li>
|
||||
<li>UW - QMail v2.1</li>
|
||||
<li>VMS, Imap part of TCP/IP suite of VMS 7.3.2</li>
|
||||
<li><b>Yahoo</b> [host1]</li>
|
||||
<li><b>Zimbra-IMAP</b> 3.0.1 GA 160, 3.1.0 Build 279, 4.0.5, 4.5.2, 4.5.6,
|
||||
Zimbra 5.0.24_GA_3356.RHEL4 [host1], 5.5, 6.x</li>
|
||||
</ul>
|
||||
|
@ -449,7 +452,7 @@ alt="Viewable With Any Browser" />
|
|||
<!--#config timefmt="%D" -->
|
||||
<!--#config timefmt="%A %B %d, %Y" -->
|
||||
<b>This document last modified on <!--#echo var="LAST_MODIFIED" --></b>
|
||||
($Id: index.shtml,v 1.86 2011/08/03 01:26:05 gilles Exp gilles $)
|
||||
($Id: index.shtml,v 1.92 2011/11/12 23:45:34 gilles Exp gilles $)
|
||||
</p>
|
||||
|
||||
</body>
|
||||
|
|
159
memo
159
memo
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# $Id: memo,v 1.35 2011/08/22 00:31:14 gilles Exp gilles $
|
||||
# $Id: memo,v 1.38 2011/11/07 15:12:06 gilles Exp gilles $
|
||||
|
||||
software_version() {
|
||||
|
||||
|
@ -14,31 +14,71 @@ statistics_lfo() {
|
|||
|
||||
cat <<EOFF
|
||||
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n" # list ip
|
||||
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n|wc" # count ip
|
||||
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n |grep MSWin32" # Win32
|
||||
|
||||
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 13,18,19 |sort -n|uniq -c| sort -n" # OS usage+basename
|
||||
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 12 |sort -n|uniq -c| sort -n" # imapsync release
|
||||
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n|wc -l" # count ip
|
||||
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|wc -l" # imapsync runs
|
||||
|
||||
|
||||
tail -f /usr/local/apache/logs/access_log|cat -n|grep prj/imapsync/VERSION|cat -n |grep VERSION # lfo frequency
|
||||
EOFF
|
||||
}
|
||||
|
||||
statistics_lfo_run() {
|
||||
# 62.147.165.21 - - [31/Oct/2010:23:45:28 +0100] "GET /prj/imapsync/VERSION HTTP/1.0" 200 6 "-" "imapsync/1.368 (linux system, perl 5.8.8, Mail::IMAPClient 2.2.9 imapsync)"
|
||||
#grep prj/imapsync/VERSION /usr/local/apache/logs/access_log | sort -n | cut -d ' ' -f 1,12,13|uniq -c | sort -n # list ip
|
||||
|
||||
echo lfo list ip
|
||||
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n" # list ip
|
||||
echo lfo Win32
|
||||
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n |grep MSWin32" # Win32
|
||||
echo lfo OS usage+basename
|
||||
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 13,18,19 |sort -n|uniq -c| sort -n" # OS usage+basename
|
||||
echo lfo imapsync release
|
||||
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 12 |sort -n|uniq -c| sort -n" # imapsync release
|
||||
echo -n "lfo count ip: "
|
||||
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n|wc -l" # count ip
|
||||
echo -n "lfo imapsync runs: "
|
||||
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|wc -l" # imapsync runs
|
||||
|
||||
}
|
||||
|
||||
|
||||
statistics_ks() {
|
||||
|
||||
cat <<EOFF
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log access.log_????????|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n" # list ip
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log access.log_????????|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n|wc" # count ip
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log access.log_????????|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n |grep MSWin32" # Win32
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n" # list ip
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n |grep MSWin32" # Win32
|
||||
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log access.log_????????|cut -d ' ' -f 13,18,19 |sort -n|uniq -c| sort -n" # OS usage+basename
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log access.log_????????|cut -d ' ' -f 12 |sort -n|uniq -c| sort -n" # imapsync release
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|cut -d ' ' -f 13,18,19 |sort -n|uniq -c| sort -n" # OS usage+basename
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|cut -d ' ' -f 12 |sort -n|uniq -c| sort -n" # imapsync release
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n|wc -l" # count ip
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|wc -l" # imapsync runs
|
||||
|
||||
tail -f /var/log/apache2/access.log |cat -n|grep prj/imapsync/VERSION|cat -n |grep VERSION # ks frequency
|
||||
EOFF
|
||||
}
|
||||
|
||||
statistics_ks_run() {
|
||||
|
||||
echo ks list ip
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n" # list ip
|
||||
echo ks Win32
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n |grep MSWin32" # Win32
|
||||
echo OS usage+basename
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|cut -d ' ' -f 13,18,19 |sort -n|uniq -c| sort -n" # OS usage+basename
|
||||
echo ks imapsync release
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|cut -d ' ' -f 12 |sort -n|uniq -c| sort -n" # imapsync release
|
||||
echo -n "ks count ip: "
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n|wc -l" # count ip
|
||||
echo -n "ks imapsync runs: "
|
||||
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|wc -l" # imapsync runs
|
||||
|
||||
}
|
||||
|
||||
|
||||
statistics_VERSION_lfo() {
|
||||
|
||||
TMPDIR=.
|
||||
|
@ -86,14 +126,52 @@ statistics_VERSION_monthly() {
|
|||
)
|
||||
}
|
||||
|
||||
echo statistics_VERSION_yearly_ip
|
||||
statistics_VERSION_yearly_ip() {
|
||||
year=${1:-`date '+%Y'`}
|
||||
(
|
||||
cd /home/lf/glamiral/imapsync_stats
|
||||
cut -d ' ' -f 1,12,13,18,19 linux-france.org.??-??-${year}.imapsync_VERSION |sort -n |uniq -c|sort -n > stats_imapsync_${year}.ip
|
||||
)
|
||||
}
|
||||
|
||||
echo statistics_VERSION_yearly_os
|
||||
statistics_VERSION_yearly_os() {
|
||||
year=${1:-`date '+%Y'`}
|
||||
(
|
||||
cd /home/lf/glamiral/imapsync_stats
|
||||
Linux=`grep linux stats_imapsync_${year}.ip | wc -l`
|
||||
Win32=`grep MSWin32 stats_imapsync_${year}.ip | wc -l`
|
||||
Darwin=`grep darwin stats_imapsync_${year}.ip | wc -l`
|
||||
FreeBSD=`grep freebsd stats_imapsync_${year}.ip | wc -l`
|
||||
Solaris=`grep solaris stats_imapsync_${year}.ip | wc -l`
|
||||
OpenBSD=`grep openbsd stats_imapsync_${year}.ip | wc -l`
|
||||
Nb_All=`cat stats_imapsync_${year}.ip | wc -l`
|
||||
for OS in Linux Win32 Darwin FreeBSD Solaris OpenBSD; do
|
||||
#echo $OS `eval "echo \\$$OS"` / $Nb_All
|
||||
Nb_OS=`eval "echo \\$$OS"`
|
||||
PerCent=`echo "scale=2; 100*$Nb_OS/$Nb_All" | bc -l`
|
||||
echo $OS $PerCent %
|
||||
done
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
echo statistics_VERSION_synthesis
|
||||
statistics_VERSION_synthesis() {
|
||||
year=${1:-`date '+%Y'`}
|
||||
(
|
||||
cd /home/lf/glamiral/imapsync_stats
|
||||
echo Nb users each month
|
||||
wc -l *.ip
|
||||
wc -l stats_imapsync_${year}_??.ip
|
||||
echo Nb users each year
|
||||
wc -l stats_imapsync_????.ip
|
||||
echo Nb runs each month
|
||||
tail -n 1 *.runs
|
||||
tail -n 1 stats_imapsync_${year}_??.runs
|
||||
echo % Operating systems
|
||||
statistics_VERSION_yearly_os $year
|
||||
echo Biggest users
|
||||
tail -n 5 stats_imapsync_${year}.ip
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -128,11 +206,57 @@ statistics_VERSION_monthly_ip() {
|
|||
)
|
||||
}
|
||||
|
||||
echo statistics_VERSION_yearly_ip
|
||||
statistics_VERSION_yearly_ip() {
|
||||
echo statistics_VERSION_monthly_os 08
|
||||
statistics_VERSION_monthly_os() {
|
||||
month=${1:-`date '+%m'`}
|
||||
(
|
||||
cd /home/imapsync/imapsync_stats
|
||||
cut -d ' ' -f 1,12,13,18,19 access.log_2011????.imapsync_VERSION |sort -n |uniq -c|sort -n > stats_imapsync_2011.ip
|
||||
Linux=`grep linux stats_imapsync_2011_${month}.ip | wc -l`
|
||||
Win32=`grep MSWin32 stats_imapsync_2011_${month}.ip | wc -l`
|
||||
Darwin=`grep darwin stats_imapsync_2011_${month}.ip | wc -l`
|
||||
FreeBSD=`grep freebsd stats_imapsync_2011_${month}.ip | wc -l`
|
||||
Solaris=`grep solaris stats_imapsync_2011_${month}.ip | wc -l`
|
||||
OpenBSD=`grep openbsd stats_imapsync_2011_${month}.ip | wc -l`
|
||||
Nb_All=`cat stats_imapsync_2011_${month}.ip | wc -l `
|
||||
for OS in Linux Win32 Darwin FreeBSD Solaris OpenBSD; do
|
||||
#echo $OS `eval "echo \\$$OS"` / $Nb_All
|
||||
Nb_OS=`eval "echo \\$$OS"`
|
||||
PerCent=`echo "scale=2; 100*$Nb_OS/$Nb_All" | bc -l`
|
||||
echo $OS $PerCent%
|
||||
done
|
||||
)
|
||||
}
|
||||
|
||||
echo statistics_VERSION_yearly_os
|
||||
statistics_VERSION_yearly_os() {
|
||||
year=${1:-`date '+%Y'`}
|
||||
(
|
||||
cd /home/imapsync/imapsync_stats
|
||||
Linux=`grep linux stats_imapsync_${year}.ip | wc -l`
|
||||
Win32=`grep MSWin32 stats_imapsync_${year}.ip | wc -l`
|
||||
Darwin=`grep darwin stats_imapsync_${year}.ip | wc -l`
|
||||
FreeBSD=`grep freebsd stats_imapsync_${year}.ip | wc -l`
|
||||
Solaris=`grep solaris stats_imapsync_${year}.ip | wc -l`
|
||||
OpenBSD=`grep openbsd stats_imapsync_${year}.ip | wc -l`
|
||||
Nb_All=`cat stats_imapsync_${year}.ip | wc -l`
|
||||
for OS in Linux Win32 Darwin FreeBSD Solaris OpenBSD; do
|
||||
#echo $OS `eval "echo \\$$OS"` / $Nb_All
|
||||
Nb_OS=`eval "echo \\$$OS"`
|
||||
PerCent=`echo "scale=2; 100*$Nb_OS/$Nb_All" | bc -l`
|
||||
echo $OS $PerCent %
|
||||
done
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
echo statistics_VERSION_yearly_ip
|
||||
statistics_VERSION_yearly_ip() {
|
||||
year=${1:-`date '+%Y'`}
|
||||
(
|
||||
cd /home/imapsync/imapsync_stats
|
||||
cut -d ' ' -f 1,12,13,18,19 access.log_${year}????.imapsync_VERSION |sort -n |uniq -c|sort -n > stats_imapsync_${year}.ip
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -170,12 +294,19 @@ statistics_VERSION_monthly() {
|
|||
|
||||
echo statistics_VERSION_synthesis
|
||||
statistics_VERSION_synthesis() {
|
||||
year=${1:-`date '+%Y'`}
|
||||
(
|
||||
cd /home/imapsync/imapsync_stats
|
||||
echo Nb users each month
|
||||
wc -l *.ip
|
||||
wc -l stats_imapsync_${year}_??.ip
|
||||
echo Nb users each year
|
||||
wc -l stats_imapsync_????.ip
|
||||
echo Nb runs each month
|
||||
tail -n 1 *.runs
|
||||
tail -n 1 stats_imapsync_${year}_??.runs
|
||||
echo % Operating systems
|
||||
statistics_VERSION_yearly_os $year
|
||||
echo Biggest users
|
||||
tail -n 5 stats_imapsync_${year}.ip
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
REM $Id: test2.bat,v 1.5 2011/08/24 06:48:44 gilles Exp gilles $
|
||||
REM $Id: test2.bat,v 1.6 2011/08/24 21:55:56 gilles Exp gilles $
|
||||
|
||||
cd C:\msys\1.0\home\Admin\imapsync
|
||||
REM perl ./imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --delete2 --expunge2 --folder INBOX
|
||||
|
@ -19,6 +19,6 @@ REM --folder INBOX.bigmail
|
|||
REM perl imapsync
|
||||
REM perl imapsync --host1 p --user1 tata --passfile1 secret.tata --host2 p --user2 titi --passfile2 secret.titi --nofoldersize --folder INBOX.yop.yap --regexflag "s/\\ /\\/g" --debugflags
|
||||
|
||||
FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.csv) DO imapsync ^
|
||||
FOR /F "tokens=1,2,3,4 delims=; eol=#" %%G IN (file.txt) DO imapsync ^
|
||||
--host1 imap.side1.org --user1 %%G --password1 %%H ^
|
||||
--host2 imap.side2.org --user2 %%I --password2 %%J
|
||||
|
|
165
tests.sh
165
tests.sh
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# $Id: tests.sh,v 1.174 2011/08/24 06:48:23 gilles Exp gilles $
|
||||
# $Id: tests.sh,v 1.182 2011/11/12 23:40:55 gilles Exp gilles $
|
||||
|
||||
# Example 1:
|
||||
# CMD_PERL='perl -I./Mail-IMAPClient-3.25/lib' sh -x tests.sh
|
||||
|
@ -20,11 +20,15 @@ HOST2=${HOST2:-'localhost'}
|
|||
echo HOST2=$HOST2
|
||||
|
||||
# most tests use:
|
||||
CMD_PERL=${CMD_PERL:-'perl -I./Mail-IMAPClient-2.2.9'}
|
||||
|
||||
# few debugging tests use:
|
||||
CMD_PERL_2xx='perl -I./Mail-IMAPClient-2.2.9'
|
||||
CMD_PERL_3xx='perl -I./Mail-IMAPClient-3.28/lib'
|
||||
CMD_PERL_3xx='perl -I./Mail-IMAPClient-3.30/lib'
|
||||
|
||||
CMD_PERL=${CMD_PERL:-$CMD_PERL_3xx}
|
||||
|
||||
#echo $CMD_PERL
|
||||
#exit
|
||||
|
||||
#### Shell pragmas
|
||||
|
||||
|
@ -542,14 +546,14 @@ ll_nosyncinternaldates() {
|
|||
|
||||
ll_idatefromheader() {
|
||||
|
||||
can_send && sendtestmessage
|
||||
# can_send && sendtestmessage
|
||||
|
||||
$CMD_PERL ./imapsync \
|
||||
--host1 $HOST1 --user1 tata \
|
||||
--passfile1 ../../var/pass/secret.tata \
|
||||
--host2 $HOST2 --user2 titi \
|
||||
--passfile2 ../../var/pass/secret.titi \
|
||||
--folder INBOX.oneemail \
|
||||
--folder INBOX.oneemail2 \
|
||||
--idatefromheader --debug --dry
|
||||
}
|
||||
|
||||
|
@ -575,14 +579,14 @@ ll_subscribed()
|
|||
}
|
||||
|
||||
|
||||
ll_subscribe()
|
||||
ll_nosubscribe()
|
||||
{
|
||||
$CMD_PERL ./imapsync \
|
||||
--host1 $HOST1 --user1 tata \
|
||||
--passfile1 ../../var/pass/secret.tata \
|
||||
--host2 $HOST2 --user2 titi \
|
||||
--passfile2 ../../var/pass/secret.titi \
|
||||
--subscribed --subscribe
|
||||
--subscribed --nosubscribe
|
||||
}
|
||||
|
||||
ll_justconnect()
|
||||
|
@ -802,6 +806,28 @@ ll_search_SENTSINCE()
|
|||
--search 'SENTSINCE 11-Jul-2011' --folder INBOX
|
||||
}
|
||||
|
||||
ll_search_BEFORE_delete2_useuid()
|
||||
{
|
||||
can_send && sendtestmessage titi
|
||||
$CMD_PERL ./imapsync \
|
||||
--host1 $HOST1 --user1 tata \
|
||||
--passfile1 ../../var/pass/secret.tata \
|
||||
--host2 $HOST2 --user2 titi \
|
||||
--passfile2 ../../var/pass/secret.titi \
|
||||
--search 'BEFORE 29-Sep-2011' --folder INBOX --delete2 --useuid
|
||||
}
|
||||
|
||||
ll_search_SENTBEFORE()
|
||||
{
|
||||
can_send && sendtestmessage titi
|
||||
$CMD_PERL ./imapsync \
|
||||
--host1 $HOST1 --user1 tata \
|
||||
--passfile1 ../../var/pass/secret.tata \
|
||||
--host2 $HOST2 --user2 titi \
|
||||
--passfile2 ../../var/pass/secret.titi \
|
||||
--search 'SENTBEFORE 2-Oct-2011' --folder INBOX --delete2
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1238,7 +1264,8 @@ ll_regex_flag4()
|
|||
--host2 $HOST2 --user2 titi \
|
||||
--passfile2 ../../var/pass/secret.titi \
|
||||
--folder INBOX.yop.yap --nofoldersizes \
|
||||
--regexflag 's/\$label1/\\label1/g' --debugflags
|
||||
--regexflag 's/\$label1/\\label1/g' \
|
||||
--regexflag "s/\\\$Forwarded//g" --debugflags
|
||||
|
||||
echo 'sudo rm -f /home/vmail/titi/.yop.yap/cur/*'
|
||||
}
|
||||
|
@ -1283,10 +1310,10 @@ ll_tls_justlogin() {
|
|||
|
||||
|
||||
ll_tls_devel() {
|
||||
CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' ll_justlogin ll_ssl_justlogin \
|
||||
&& CMD_PERL='perl -I./Mail-IMAPClient-3.28/lib' ll_justlogin ll_ssl_justlogin \
|
||||
&& CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' ll_tls_justconnect ll_tls_justlogin \
|
||||
&& CMD_PERL='perl -I./Mail-IMAPClient-3.28/lib' ll_tls_justconnect ll_tls_justlogin
|
||||
CMD_PERL=$CMD_PERL_2xx ll_justlogin ll_ssl_justlogin \
|
||||
&& CMD_PERL=$CMD_PERL_3xx ll_justlogin ll_ssl_justlogin \
|
||||
&& CMD_PERL=$CMD_PERL_2xx ll_tls_justconnect ll_tls_justlogin \
|
||||
&& CMD_PERL=$CMD_PERL_3xx ll_tls_justconnect ll_tls_justlogin
|
||||
}
|
||||
|
||||
ll_tls() {
|
||||
|
@ -1346,7 +1373,7 @@ ll_authmech_PLAIN() {
|
|||
}
|
||||
|
||||
ll_authmech_NTLM() {
|
||||
$CMD_PERL -I./NTLM-1.05/blib/lib ./imapsync \
|
||||
$CMD_PERL -I./NTLM-1.09/blib/lib ./imapsync \
|
||||
--host1 mail.freshgrillfoods.com --user1 ktraster \
|
||||
--passfile1 ../../var/pass/secret.ktraster \
|
||||
--host2 $HOST2 --user2 titi \
|
||||
|
@ -1357,7 +1384,7 @@ ll_authmech_NTLM() {
|
|||
}
|
||||
|
||||
ll_authmech_NTLM_domain() {
|
||||
$CMD_PERL -I./NTLM-1.05/blib/lib ./imapsync \
|
||||
$CMD_PERL -I./NTLM-1.09/blib/lib ./imapsync \
|
||||
--host1 mail.freshgrillfoods.com --user1 ktraster \
|
||||
--passfile1 ../../var/pass/secret.ktraster \
|
||||
--host2 $HOST2 --user2 titi \
|
||||
|
@ -1367,13 +1394,14 @@ ll_authmech_NTLM_domain() {
|
|||
}
|
||||
|
||||
ll_authmech_NTLM_2() {
|
||||
$CMD_PERL -I./NTLM-1.05/blib/lib ./imapsync \
|
||||
$CMD_PERL -I./NTLM-1.09/blib/lib ./imapsync \
|
||||
--host1 mail.freshgrillfoods.com --user1 ktraster \
|
||||
--passfile1 ../../var/pass/secret.ktraster \
|
||||
--host2 $HOST2 --user2 titi \
|
||||
--passfile2 ../../var/pass/secret.titi \
|
||||
--authmech1 NTLM --dry
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -1556,8 +1584,6 @@ msw2() {
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
xxxxx_gmail() {
|
||||
|
||||
! ping -c1 imap.gmail.com || $CMD_PERL ./imapsync \
|
||||
|
@ -1569,7 +1595,11 @@ xxxxx_gmail() {
|
|||
--user1 tata \
|
||||
--passfile1 ../../var/pass/secret.tata \
|
||||
--nofoldersizes \
|
||||
--justfolders --dry --prefix2 '[Gmail]/'
|
||||
--justfolders \
|
||||
--regextrans2 "s, +$,,g" --regextrans2 "s, +/,/,g" \
|
||||
--exclude INBOX.yop.YAP
|
||||
|
||||
#--dry --prefix2 '[Gmail]/'
|
||||
}
|
||||
|
||||
xxxxx_gmail_2() {
|
||||
|
@ -1584,7 +1614,6 @@ xxxxx_gmail_2() {
|
|||
--passfile2 ../../var/pass/secret.gilles_gmail \
|
||||
--nofoldersizes \
|
||||
--regextrans2 's,(.*),SMS,'
|
||||
#--dry --prefix2 '[Gmail]/'
|
||||
}
|
||||
|
||||
xxxxx_gmail_3() {
|
||||
|
@ -1641,10 +1670,8 @@ gmail_xxxxx() {
|
|||
--host2 $HOST2 \
|
||||
--user2 tata \
|
||||
--passfile2 ../../var/pass/secret.tata \
|
||||
--useheader 'Message-Id' \
|
||||
--useheader="X-Gmail-Received" \
|
||||
--nofoldersizes \
|
||||
--prefix1 '[Gmail]/' --dry --justfolders
|
||||
--dry --justfolders
|
||||
}
|
||||
|
||||
|
||||
|
@ -1657,10 +1684,7 @@ gmail() {
|
|||
--passfile1 ../../var/pass/secret.gilles_gmail \
|
||||
--host2 $HOST2 \
|
||||
--user2 tata \
|
||||
--passfile2 ../../var/pass/secret.tata \
|
||||
--useheader 'Message-Id' \
|
||||
--useheader="X-Gmail-Received" \
|
||||
--regextrans2 's/\[Gmail\]/Gmail/'
|
||||
--passfile2 ../../var/pass/secret.tata
|
||||
}
|
||||
|
||||
gmail_justfolders() {
|
||||
|
@ -1673,9 +1697,6 @@ gmail_justfolders() {
|
|||
--host2 $HOST2 \
|
||||
--user2 tata \
|
||||
--passfile2 ../../var/pass/secret.tata \
|
||||
--useheader 'Message-Id' \
|
||||
--useheader="X-Gmail-Received" \
|
||||
--regextrans2 's/\[Gmail\]/Gmail/' \
|
||||
--justfolders
|
||||
}
|
||||
|
||||
|
@ -1704,12 +1725,9 @@ gmail_gmail() {
|
|||
--passfile1 ../../var/pass/secret.gilles_gmail \
|
||||
--host2 imap.gmail.com \
|
||||
--ssl2 \
|
||||
--user2 gilles.lamiral@gmail.com \
|
||||
--passfile2 ../../var/pass/secret.gilles_gmail \
|
||||
--useheader 'Message-Id' --useheader="X-Gmail-Received" \
|
||||
--regextrans2 's¤INBOX¤inbox_copy¤' \
|
||||
--folder INBOX \
|
||||
--allowsizemismatch
|
||||
--user2 imapsync.gl@gmail.com \
|
||||
--passfile2 ../../var/pass/secret.imapsync.gl_gmail \
|
||||
--justfolders
|
||||
|
||||
}
|
||||
|
||||
|
@ -1723,9 +1741,7 @@ gmail_gmail2() {
|
|||
--ssl2 \
|
||||
--user2 imapsync.gl@gmail.com \
|
||||
--passfile2 ../../var/pass/secret.imapsync.gl_gmail \
|
||||
--useheader 'Message-Id' --skipsize \
|
||||
--folder INBOX \
|
||||
--allowsizemismatch
|
||||
--folder INBOX
|
||||
#--dry # --debug --debugimap # --authmech1 LOGIN
|
||||
|
||||
}
|
||||
|
@ -1743,8 +1759,11 @@ yahoo_xxxx_login() {
|
|||
}
|
||||
|
||||
yahoo_xxxx() {
|
||||
# Yahoo works only with ssl (november 2011)
|
||||
# Could do plain port 143 before
|
||||
! ping -c1 imap.mail.yahoo.com || $CMD_PERL ./imapsync \
|
||||
--host1 imap.mail.yahoo.com \
|
||||
--ssl1 \
|
||||
--user1 glamiral \
|
||||
--passfile1 ../../var/pass/secret.gilles_yahoo \
|
||||
--host2 $HOST2 \
|
||||
|
@ -1752,8 +1771,6 @@ yahoo_xxxx() {
|
|||
--passfile2 ../../var/pass/secret.titi \
|
||||
--sep1 '.'
|
||||
|
||||
# Yahoo works also with ssl
|
||||
# --ssl1 \
|
||||
}
|
||||
|
||||
|
||||
|
@ -1769,7 +1786,7 @@ allow3xx() {
|
|||
}
|
||||
|
||||
noallow3xx() {
|
||||
! perl -I./Mail-IMAPClient-3.28/lib ./imapsync \
|
||||
! $CMD_PERL_3xx ./imapsync \
|
||||
--host1 $HOST1 --user1 tata \
|
||||
--passfile1 ../../var/pass/secret.tata \
|
||||
--host2 $HOST2 --user2 titi \
|
||||
|
@ -1985,6 +2002,70 @@ ll_useuid_nousecache()
|
|||
# specific tests
|
||||
##########################
|
||||
|
||||
dbmail_uid() {
|
||||
# --useuid alone does not work on dbmaikl server 2.2.17 ready to run
|
||||
# because uids are += 2 and uidnext is in fact uidnext + 1
|
||||
|
||||
if can_send; then
|
||||
sendtestmessage
|
||||
else
|
||||
:
|
||||
fi
|
||||
$CMD_PERL ./imapsync \
|
||||
--host1 $HOST1 --user1 tata \
|
||||
--passfile1 ../../var/pass/secret.tata \
|
||||
--host2 182.236.127.31 --user2 imapsynctest \
|
||||
--passfile2 ../../var/pass/secret.dbmail \
|
||||
--folder INBOX --fast --delete2 --expunge2 \
|
||||
--usecache --useuid --nocacheaftercopy
|
||||
|
||||
|
||||
}
|
||||
|
||||
dbmail_nocacheaftercopy() {
|
||||
# Does work
|
||||
$CMD_PERL ./imapsync \
|
||||
--host1 $HOST1 --user1 tata \
|
||||
--passfile1 ../../var/pass/secret.tata \
|
||||
--host2 182.236.127.31 --user2 imapsynctest \
|
||||
--passfile2 ../../var/pass/secret.dbmail \
|
||||
--folder INBOX --fast --delete2 --expunge2 --usecache --nocacheaftercopy
|
||||
}
|
||||
|
||||
dbmail_nocache() {
|
||||
# Does work
|
||||
$CMD_PERL ./imapsync \
|
||||
--host1 $HOST1 --user1 tata \
|
||||
--passfile1 ../../var/pass/secret.tata \
|
||||
--host2 182.236.127.31 --user2 imapsynctest \
|
||||
--passfile2 ../../var/pass/secret.dbmail \
|
||||
--folder INBOX --fast --delete2 --expunge2
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
bluehost2() {
|
||||
$CMD_PERL ./imapsync \
|
||||
--host1 imap.mail.yahoo.com --tls1 \
|
||||
--user1 dalton@piila.com \
|
||||
--passfile1 ../../var/pass/secret.bluehost2 \
|
||||
--host2 box766.bluehost.com --ssl2 \
|
||||
--user2 dalton@piila.com \
|
||||
--passfile2 ../../var/pass/secret.bluehost2 \
|
||||
--sep1 '/' --useuid --regextrans2 's/Inbox/INBOX/' --regextrans2 's,/,_,'
|
||||
}
|
||||
|
||||
bluehost() {
|
||||
$CMD_PERL ./imapsync \
|
||||
--host1 imap.mail.yahoo.com --tls1 \
|
||||
--user1 pii@piila.com \
|
||||
--passfile1 ../../var/pass/secret.bluehost \
|
||||
--host2 box766.bluehost.com --ssl2 \
|
||||
--user2 pii@piila.com \
|
||||
--passfile2 ../../var/pass/secret.bluehost \
|
||||
--sep1 '/' --usecache --useuid --regextrans2 's/Inbox/INBOX/'
|
||||
}
|
||||
|
||||
b2btech_1() {
|
||||
$CMD_PERL ./imapsync \
|
||||
|
@ -2410,7 +2491,7 @@ ll_nosyncinternaldates
|
|||
ll_idatefromheader
|
||||
ll_folder_rev
|
||||
ll_subscribed
|
||||
ll_subscribe
|
||||
ll_nosubscribe
|
||||
ll_justfoldersizes
|
||||
ll_authmd5
|
||||
ll_authmd51
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue