mirror of
https://github.com/imapsync/imapsync.git
synced 2025-06-05 12:17:16 +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
|
#!/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,
|
If you want to make a donation to the author, Gilles LAMIRAL,
|
||||||
use any of the following ways:
|
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
|
I thank also very much all people who bought imapsync from the homepage
|
||||||
but I don't cite them here.
|
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
|
Paulo Victor Fernandes da Silva
|
||||||
Contributed by giving money 1 USD
|
Contributed by giving money 1 USD
|
||||||
|
|
||||||
|
|
||||||
Daniel Rohde
|
Daniel Rohde
|
||||||
Bugfix. Solaris 10. ps -o vsz -p @PID
|
Bugfix. Solaris 10. ps -o vsz -p @PID
|
||||||
|
|
||||||
|
|
37
ChangeLog
37
ChangeLog
|
@ -1,17 +1,46 @@
|
||||||
|
|
||||||
RCS file: RCS/imapsync,v
|
RCS file: RCS/imapsync,v
|
||||||
Working file: imapsync
|
Working file: imapsync
|
||||||
head: 1.456
|
head: 1.463
|
||||||
branch:
|
branch:
|
||||||
locks: strict
|
locks: strict
|
||||||
gilles: 1.456
|
gilles: 1.463
|
||||||
access list:
|
access list:
|
||||||
symbolic names:
|
symbolic names:
|
||||||
keyword substitution: kv
|
keyword substitution: kv
|
||||||
total revisions: 456; selected revisions: 456
|
total revisions: 463; selected revisions: 463
|
||||||
description:
|
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
|
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.
|
Help message on --sep when namespace separator is NIL. Yahoo case.
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
53
FAQ
53
FAQ
|
@ -1,11 +1,14 @@
|
||||||
#!/bin/cat
|
#!/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 |
|
| FAQ for imapsync |
|
||||||
+------------------+
|
+------------------+
|
||||||
|
|
||||||
Unix versus Windows syntax.
|
Unix versus Windows syntax.
|
||||||
|
|
||||||
|
A) \ versus ^
|
||||||
|
|
||||||
On Unix shells you can write a single command on multiple lines
|
On Unix shells you can write a single command on multiple lines
|
||||||
by using the escape character \ at the end of each line
|
by using the escape character \ at the end of each line
|
||||||
(except the last one). On Windows this character is ^
|
(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
|
In this FAQ I use \ for examples. Transcript to ^ if
|
||||||
you're on a Windows system.
|
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?
|
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?
|
Q. I need to migrate hundred accounts, how can I do?
|
||||||
|
|
||||||
R. If you have many mailboxes to migrate think about a little
|
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.
|
containing users and passwords.
|
||||||
The separator used in this example is ';'
|
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
|
user001_1;password001_1;user001_2;password001_2
|
||||||
user002_1;password002_1;user002_2;password002_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
|
{ while IFS=';' read u1 p1 u2 p2; do
|
||||||
imapsync --host1 imap.side1.org --user1 "$u1" --password1 "$p1" \
|
imapsync --host1 imap.side1.org --user1 "$u1" --password1 "$p1" \
|
||||||
--host2 imap.side2.org --user2 "$u2" --password2 "$p2" ...
|
--host2 imap.side2.org --user2 "$u2" --password2 "$p2" ...
|
||||||
done ; } < file.csv
|
done ; } < file.txt
|
||||||
|
|
||||||
On Windows the batch program can be:
|
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 ^
|
--host1 imap.side1.org --user1 %%G --password1 %%H ^
|
||||||
--host2 imap.side2.org --user2 %%I --password2 %%J ...
|
--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
|
- run imapsync with perl and -I option tailing to use the perl
|
||||||
module Mail-IMAPClient-3.xx. Example:
|
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/
|
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?
|
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/
|
or if imapsync is in directory /path/
|
||||||
perl -I./Mail-IMAPClient-2.2.9 /path/imapsync [...]
|
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?
|
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
|
R. use --regexflag
|
||||||
For example to convert flag IMPORTANT to flag CANWAIT
|
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
|
option --debugflags is usefull to see in details what imapsync
|
||||||
does with flags.
|
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://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/
|
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
|
Q. from Microsoft's Exchange 2007 to Google Apps for your Domain
|
||||||
(GAFYD)
|
(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
|
Changes from 0.09 to 2.99_01 made by David Kernen
|
||||||
- Potential compatibility issues from 3.17+ highlighted with '*'
|
- 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
|
- rt.cpan.org#66004: internaldate() return undef if no internaldate in reply
|
||||||
[Jason Long]
|
[Jason Long]
|
||||||
- rt.cpan.org#66367: fetch_hash uses Escaped_results() in 3.26/3.27
|
- rt.cpan.org#66367: fetch_hash uses Escaped_results() in 3.26/3.27
|
|
@ -1,6 +1,6 @@
|
||||||
--- #YAML:1.0
|
--- #YAML:1.0
|
||||||
name: Mail-IMAPClient
|
name: Mail-IMAPClient
|
||||||
version: 3.28
|
version: 3.30
|
||||||
abstract: IMAP4 client library
|
abstract: IMAP4 client library
|
||||||
author:
|
author:
|
||||||
- Phil Pearl (Lobbes) <phil@zimbra.com>
|
- Phil Pearl (Lobbes) <phil@zimbra.com>
|
|
@ -8,6 +8,7 @@ my @missing;
|
||||||
my %optional = (
|
my %optional = (
|
||||||
"Authen::NTLM" => { for => "Authmechanism 'NTLM'" },
|
"Authen::NTLM" => { for => "Authmechanism 'NTLM'" },
|
||||||
"Authen::SASL" => { for => "Authmechanism 'DIGEST-MD5'" },
|
"Authen::SASL" => { for => "Authmechanism 'DIGEST-MD5'" },
|
||||||
|
"Compress::Zlib" => { for => "COMPRESS DEFLATE support" },
|
||||||
"Digest::HMAC_MD5" => { for => "Authmechanism 'CRAM-MD5'" },
|
"Digest::HMAC_MD5" => { for => "Authmechanism 'CRAM-MD5'" },
|
||||||
"Digest::MD5" => { for => "Authmechanism 'DIGEST-MD5'" },
|
"Digest::MD5" => { for => "Authmechanism 'DIGEST-MD5'" },
|
||||||
"IO::Socket::SSL" => { for => "SSL enabled connections (Ssl => 1)" },
|
"IO::Socket::SSL" => { for => "SSL enabled connections (Ssl => 1)" },
|
|
@ -18,6 +18,7 @@ The following are the minimum requirements for using Mail::IMAPClient:
|
||||||
Optional:
|
Optional:
|
||||||
Authen::NTLM
|
Authen::NTLM
|
||||||
Authen::SASL
|
Authen::SASL
|
||||||
|
Compress::Zlib
|
||||||
Digest::HMAC_MD5
|
Digest::HMAC_MD5
|
||||||
Digest::MD5
|
Digest::MD5
|
||||||
IO::Socket::SSL
|
IO::Socket::SSL
|
|
@ -7,7 +7,7 @@ use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
package Mail::IMAPClient;
|
package Mail::IMAPClient;
|
||||||
our $VERSION = '3.28';
|
our $VERSION = '3.30';
|
||||||
|
|
||||||
use Mail::IMAPClient::MessageSet;
|
use Mail::IMAPClient::MessageSet;
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ use IO::Select ();
|
||||||
use Carp qw(carp); #local $SIG{__WARN__} = \&Carp::cluck; #DEBUG
|
use Carp qw(carp); #local $SIG{__WARN__} = \&Carp::cluck; #DEBUG
|
||||||
|
|
||||||
use Fcntl qw(F_GETFL F_SETFL O_NONBLOCK);
|
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 List::Util qw(first min max sum);
|
||||||
use MIME::Base64 qw(encode_base64 decode_base64);
|
use MIME::Base64 qw(encode_base64 decode_base64);
|
||||||
use File::Spec ();
|
use File::Spec ();
|
||||||
|
@ -47,6 +47,7 @@ my %SEARCH_KEYS = map { ( $_ => 1 ) } qw(
|
||||||
|
|
||||||
# modules require(d) during runtime when applicable
|
# modules require(d) during runtime when applicable
|
||||||
my %Load_Module = (
|
my %Load_Module = (
|
||||||
|
"Compress-Zlib" => "Compress::Zlib",
|
||||||
"SSL" => "IO::Socket::SSL",
|
"SSL" => "IO::Socket::SSL",
|
||||||
"BodyStructure" => "Mail::IMAPClient::BodyStructure",
|
"BodyStructure" => "Mail::IMAPClient::BodyStructure",
|
||||||
"Envelope" => "Mail::IMAPClient::BodyStructure::Envelope",
|
"Envelope" => "Mail::IMAPClient::BodyStructure::Envelope",
|
||||||
|
@ -83,11 +84,11 @@ BEGIN {
|
||||||
|
|
||||||
# set-up accessors
|
# set-up accessors
|
||||||
foreach my $datum (
|
foreach my $datum (
|
||||||
qw(Authcallback Authmechanism Authuser Buffer Count Debug
|
qw(Authcallback Authmechanism Authuser Buffer Count Compress
|
||||||
Debug_fh Domain Folder Ignoresizeerrors Keepalive
|
Debug Debug_fh Domain Folder Ignoresizeerrors Keepalive
|
||||||
Maxappendstringlength Maxcommandlength Maxtemperrors
|
Maxappendstringlength Maxcommandlength Maxtemperrors
|
||||||
Password Peek Port Prewritemethod Proxy Ranges Readmethod
|
Password Peek Port Prewritemethod Proxy Ranges Readmethod
|
||||||
Reconnectretry Server Showcredentials Ssl Starttls State
|
Readmoremethod Reconnectretry Server Showcredentials Ssl Starttls
|
||||||
Supportedflags Timeout Uid User)
|
Supportedflags Timeout Uid User)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
@ -256,7 +257,6 @@ sub new {
|
||||||
LastError => "",
|
LastError => "",
|
||||||
Uid => 1,
|
Uid => 1,
|
||||||
Count => 0,
|
Count => 0,
|
||||||
Fast_io => 1,
|
|
||||||
Clear => 2,
|
Clear => 2,
|
||||||
Keepalive => 0,
|
Keepalive => 0,
|
||||||
Maxappendstringlength => 1024**2,
|
Maxappendstringlength => 1024**2,
|
||||||
|
@ -264,7 +264,6 @@ sub new {
|
||||||
Maxtemperrors => undef,
|
Maxtemperrors => undef,
|
||||||
State => Unconnected,
|
State => Unconnected,
|
||||||
Authmechanism => 'LOGIN',
|
Authmechanism => 'LOGIN',
|
||||||
Port => 143,
|
|
||||||
Timeout => 600,
|
Timeout => 600,
|
||||||
History => {},
|
History => {},
|
||||||
};
|
};
|
||||||
|
@ -275,6 +274,12 @@ sub new {
|
||||||
}
|
}
|
||||||
bless $self, ref($class) || $class;
|
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
|
if ( my $sup = $self->{Supportedflags} ) { # unpack into case-less HASH
|
||||||
my %sup = map { m/^\\?(\S+)/ ? lc $1 : () } @$sup;
|
my %sup = map { m/^\\?(\S+)/ ? lc $1 : () } @$sup;
|
||||||
$self->{Supportedflags} = \%sup;
|
$self->{Supportedflags} = \%sup;
|
||||||
|
@ -299,7 +304,10 @@ sub new {
|
||||||
$self->RawSocket($sock) unless $self->{Socket};
|
$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(@) {
|
sub connect(@) {
|
||||||
|
@ -309,7 +317,7 @@ sub connect(@) {
|
||||||
%$self = ( %$self, @_ ) if @_;
|
%$self = ( %$self, @_ ) if @_;
|
||||||
|
|
||||||
my $server = $self->Server;
|
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 @timeout = $self->Timeout ? ( Timeout => $self->Timeout ) : ();
|
||||||
my $sock;
|
my $sock;
|
||||||
|
|
||||||
|
@ -323,27 +331,28 @@ sub connect(@) {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
my $ioclass = "IO::Socket::INET";
|
my $ioclass = "IO::Socket::INET";
|
||||||
if ( $self->Ssl ) {
|
$ioclass = $self->_load_module("SSL") if ( $self->Ssl );
|
||||||
$ioclass = $self->_load_module("SSL") or return undef;
|
|
||||||
}
|
|
||||||
|
|
||||||
$self->_debug("Connecting via $ioclass to $server:$port @timeout");
|
if ($ioclass) {
|
||||||
$sock = $ioclass->new(
|
$self->_debug("Connecting via $ioclass to $server:$port @timeout");
|
||||||
PeerAddr => $server,
|
$sock = $ioclass->new(
|
||||||
PeerPort => $port,
|
PeerAddr => $server,
|
||||||
Proto => 'tcp',
|
PeerPort => $port,
|
||||||
Debug => $self->Debug,
|
Proto => 'tcp',
|
||||||
@timeout
|
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: $@");
|
$self->LastError("Unable to connect to $server: $@");
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
$self->_debug( "Connected to $server" . ( $! ? " errno($!)" : "" ) );
|
|
||||||
$self->Socket($sock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub RawSocket(;$) {
|
sub RawSocket(;$) {
|
||||||
|
@ -357,7 +366,7 @@ sub RawSocket(;$) {
|
||||||
delete $self->{_fcntl};
|
delete $self->{_fcntl};
|
||||||
$self->Fast_io( $self->Fast_io );
|
$self->Fast_io( $self->Fast_io );
|
||||||
|
|
||||||
$sock;
|
return $sock;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub Socket($) {
|
sub Socket($) {
|
||||||
|
@ -387,7 +396,11 @@ sub Socket($) {
|
||||||
$self->starttls or return undef;
|
$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
|
# RFC2595 section 3.1
|
||||||
|
@ -418,7 +431,7 @@ sub starttls {
|
||||||
# give caller control of args to start_SSL if desired
|
# give caller control of args to start_SSL if desired
|
||||||
my @sslargs =
|
my @sslargs =
|
||||||
( $self->Starttls and ref( $self->Starttls ) eq "ARRAY" )
|
( $self->Starttls and ref( $self->Starttls ) eq "ARRAY" )
|
||||||
? ( @${ $self->Starttls } )
|
? ( @{ $self->Starttls } )
|
||||||
: ( Timeout => 30 );
|
: ( Timeout => 30 );
|
||||||
|
|
||||||
unless ( $ioclass->start_SSL( $sock, @sslargs ) ) {
|
unless ( $ioclass->start_SSL( $sock, @sslargs ) ) {
|
||||||
|
@ -432,30 +445,129 @@ sub starttls {
|
||||||
return $self;
|
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 {
|
sub login {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $auth = $self->Authmechanism;
|
my $auth = $self->Authmechanism;
|
||||||
return $self->authenticate( $auth, $self->Authcallback )
|
|
||||||
if $auth && $auth ne 'LOGIN';
|
|
||||||
|
|
||||||
my $passwd = $self->Password;
|
if ( $auth && $auth ne 'LOGIN' ) {
|
||||||
my $id = $self->User;
|
$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
|
# BUG: should use Quote() with $passwd and $id
|
||||||
if ( $passwd eq "" or $passwd =~ m/\W/ ) {
|
if ( $passwd eq "" or $passwd =~ m/\W/ ) {
|
||||||
$passwd =~ s/(["\\])/\\$1/g;
|
$passwd =~ s/(["\\])/\\$1/g;
|
||||||
$passwd = qq("$passwd");
|
$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->State(Authenticated);
|
||||||
$self;
|
if ( $self->Compress ) {
|
||||||
|
$self->compress or return undef;
|
||||||
|
}
|
||||||
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub noop {
|
sub noop {
|
||||||
|
@ -557,7 +669,7 @@ sub _folders_or_subscribed {
|
||||||
{
|
{
|
||||||
my @list;
|
my @list;
|
||||||
if ($what) {
|
if ($what) {
|
||||||
my $sep = $self->separator($what);
|
my $sep = $self->separator($what) || $self->separator(undef);
|
||||||
last unless defined $sep;
|
last unless defined $sep;
|
||||||
|
|
||||||
my $whatsub = $what =~ m/\Q${sep}\E$/ ? "$what*" : "$what$sep*";
|
my $whatsub = $what =~ m/\Q${sep}\E$/ ? "$what*" : "$what$sep*";
|
||||||
|
@ -566,8 +678,10 @@ sub _folders_or_subscribed {
|
||||||
shift @$tref; # remove command
|
shift @$tref; # remove command
|
||||||
push @list, @$tref;
|
push @list, @$tref;
|
||||||
|
|
||||||
my $exists = $self->exists($what) or last;
|
# BUG?: this behavior has been around since 2.x, why?
|
||||||
if ($exists) {
|
my $cansel = $self->selectable($what);
|
||||||
|
last unless defined $cansel;
|
||||||
|
if ($cansel) {
|
||||||
$tref = $self->$method( undef, $what ) or last;
|
$tref = $self->$method( undef, $what ) or last;
|
||||||
shift @$tref; # remove command
|
shift @$tref; # remove command
|
||||||
push @list, @$tref;
|
push @list, @$tref;
|
||||||
|
@ -1051,16 +1165,32 @@ sub reconnect {
|
||||||
|
|
||||||
if ( $self->IsAuthenticated ) {
|
if ( $self->IsAuthenticated ) {
|
||||||
$self->_debug("reconnect called but already authenticated");
|
$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 || "";
|
my $einfo = $self->LastError || "";
|
||||||
$self->_debug( "reconnecting to ", $self->Server, ", last error: $einfo" );
|
$self->_debug( "reconnecting to ", $self->Server, ", last error: $einfo" );
|
||||||
|
$self->{_doing_reconnect} = 1;
|
||||||
|
|
||||||
# reconnect and select appropriate folder
|
# 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
|
# 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?
|
# BUG? reconnect if caller ignored/missed earlier errors?
|
||||||
# or $self->LastError =~ /NO not connected/
|
# or $self->LastError =~ /NO not connected/
|
||||||
);
|
);
|
||||||
if ( $self->reconnect ) {
|
my $ret = $self->reconnect;
|
||||||
$self->_debug("reconnect successful on try #$tries");
|
if ($ret) {
|
||||||
|
$self->_debug("reconnect success($ret) on try #$tries/$retry");
|
||||||
|
}
|
||||||
|
elsif ( defined $ret and $ret == 0 ) { # escaping recursion
|
||||||
|
return undef;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$self->_debug("reconnect failed on try #$tries");
|
$self->_debug("reconnect failure on try #$tries/$retry");
|
||||||
push( @err, $self->LastError ) if $self->LastError;
|
push( @err, $self->LastError ) if $self->LastError;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1340,10 +1474,10 @@ sub _send_bytes($) {
|
||||||
|
|
||||||
local $SIG{PIPE} = 'IGNORE'; # handle SIGPIPE as normal error
|
local $SIG{PIPE} = 'IGNORE'; # handle SIGPIPE as normal error
|
||||||
|
|
||||||
|
my $socket = $self->Socket;
|
||||||
while ( $total < length $$byteref ) {
|
while ( $total < length $$byteref ) {
|
||||||
my $written =
|
my $written =
|
||||||
syswrite( $self->Socket, $$byteref, length($$byteref) - $total,
|
syswrite( $socket, $$byteref, length($$byteref) - $total, $total );
|
||||||
$total );
|
|
||||||
|
|
||||||
if ( defined $written ) {
|
if ( defined $written ) {
|
||||||
$temperrs = 0;
|
$temperrs = 0;
|
||||||
|
@ -1364,7 +1498,8 @@ sub _send_bytes($) {
|
||||||
|
|
||||||
# Unconnected might be apropos for more than just these?
|
# Unconnected might be apropos for more than just these?
|
||||||
my $emsg = $! ? "$!" : "no error caught";
|
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'");
|
$self->LastError("Write failed '$emsg'");
|
||||||
|
|
||||||
return undef; # no luck
|
return undef; # no luck
|
||||||
|
@ -1620,6 +1755,12 @@ sub _sysread {
|
||||||
}
|
}
|
||||||
|
|
||||||
sub _read_more {
|
sub _read_more {
|
||||||
|
my $self = shift;
|
||||||
|
my $rm = $self->Readmoremethod;
|
||||||
|
$rm ? $rm->( $self, @_ ) : $self->__read_more(@_);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub __read_more {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $opt = ref( $_[0] ) eq "HASH" ? shift : {};
|
my $opt = ref( $_[0] ) eq "HASH" ? shift : {};
|
||||||
my ( $socket, $timeout ) = @_;
|
my ( $socket, $timeout ) = @_;
|
||||||
|
@ -1756,7 +1897,7 @@ sub _disconnect {
|
||||||
local ($@); # avoid stomping on global $@
|
local ($@); # avoid stomping on global $@
|
||||||
eval { $sock->close };
|
eval { $sock->close };
|
||||||
}
|
}
|
||||||
$self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
# LIST/XLIST/LSUB Response
|
# LIST/XLIST/LSUB Response
|
||||||
|
@ -2710,8 +2851,8 @@ sub is_parent {
|
||||||
|
|
||||||
sub selectable {
|
sub selectable {
|
||||||
my ( $self, $f ) = @_;
|
my ( $self, $f ) = @_;
|
||||||
my $info = $self->list( "", $f );
|
my $info = $self->list( "", $f ) or return undef;
|
||||||
defined $info ? not( grep /NoSelect/i, @$info ) : undef;
|
return not( grep /\b\\Noselect\b/i, @$info );
|
||||||
}
|
}
|
||||||
|
|
||||||
# append( $self, $folder, $text [, $optmsg] )
|
# append( $self, $folder, $text [, $optmsg] )
|
||||||
|
@ -2992,6 +3133,7 @@ sub authenticate {
|
||||||
: ( "", $client->User ),
|
: ( "", $client->User ),
|
||||||
defined $client->Password ? $client->Password : "",
|
defined $client->Password ? $client->Password : "",
|
||||||
),
|
),
|
||||||
|
''
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -3250,6 +3392,19 @@ sub unseen_count {
|
||||||
return $r;
|
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 Status { shift->State }
|
||||||
sub IsUnconnected { shift->State == Unconnected }
|
sub IsUnconnected { shift->State == Unconnected }
|
||||||
sub IsConnected { shift->State >= Connected }
|
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
|
by the CAPABILITY IMAP Client command, or a reference to an array of
|
||||||
capabilities if called in scalar context. If the CAPABILITY IMAP
|
capabilities if called in scalar context. If the CAPABILITY IMAP
|
||||||
Client command fails for any reason then the B<capability> method will
|
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
|
=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.
|
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
|
=head2 connect
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
@ -1142,9 +1158,12 @@ For example:
|
||||||
# Prints:
|
# Prints:
|
||||||
# Projects/Completed, Projects/Ongoing
|
# Projects/Completed, Projects/Ongoing
|
||||||
|
|
||||||
Notice that if you just want to list a folder's subfolders (and not
|
Please note that documentation previously suggested that if you just
|
||||||
the folder itself), then you need to include the hierarchy separator
|
want to list a folder's subfolders (and not the folder itself), then
|
||||||
character (as returned by the L</separator> method).
|
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
|
=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
|
automatically invoke B<login> see the documentation of each method for
|
||||||
details.
|
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
|
See also L</proxyauth> and L</Proxy> for additional information
|
||||||
regarding ways of authenticating with a server via SASL and/or
|
regarding ways of authenticating with a server via SASL and/or
|
||||||
PROXYAUTH.
|
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
|
The default I<Clear> value is set to five (5) in order to conserve
|
||||||
memory.
|
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
|
=head2 Debug
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
@ -2914,20 +2951,12 @@ Example:
|
||||||
# or:
|
# or:
|
||||||
$imap->Fast_io($true_or_false);
|
$imap->Fast_io($true_or_false);
|
||||||
|
|
||||||
The I<Fast_io> parameter controls whether or not your
|
The I<Fast_io> parameter controls whether or not the Mail::IMAPClient
|
||||||
Mail::IMAPClient object will attempt to use buffered (i.e. "Fast")
|
object will attempt to use non-blocking I/O on the IMAP socket. It is
|
||||||
I/O. It is turned on by default. If you turn it off you will
|
turned on by default (unless the caller provides the socket to be
|
||||||
definitely slow down your program, often to a painful degree.
|
used).
|
||||||
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!)
|
|
||||||
|
|
||||||
Lately there have not been any bugs associated with I<Fast_io> so this
|
See also L</Buffer>.
|
||||||
parameter may become deprecated in the future.
|
|
||||||
|
|
||||||
=head2 Folder
|
=head2 Folder
|
||||||
|
|
||||||
|
@ -3056,10 +3085,11 @@ Example:
|
||||||
# or:
|
# or:
|
||||||
$imap->Port($new_value);
|
$imap->Port($new_value);
|
||||||
|
|
||||||
Specifies the port on which the IMAP server is listening. The default
|
Specifies the port on which the IMAP server is listening. A default
|
||||||
is 143, which is the standard IMAP port. Can be supplied with the
|
value of 993 (if L</Ssl> is true) or 143 is set during a call to
|
||||||
L</new> method call or separately by calling the L</Port> object
|
L</connect> if no value is provided by the caller. This argument can
|
||||||
method.
|
be supplied with the L</new> method call or separately by calling the
|
||||||
|
L</Port> object method.
|
||||||
|
|
||||||
=head2 Prewritemethod
|
=head2 Prewritemethod
|
||||||
|
|
||||||
|
@ -3186,6 +3216,18 @@ object itself.
|
||||||
|
|
||||||
See also L</Prewritemethod>.
|
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
|
=head2 Reconnectretry
|
||||||
|
|
||||||
If an IMAP connection sits idle too long, the connection may be closed
|
If an IMAP connection sits idle too long, the connection may be closed
|
|
@ -164,6 +164,12 @@ sub new
|
||||||
$parser->envelope($envelope);
|
$parser->envelope($envelope);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub parse_string
|
||||||
|
{ my ($class, $envelope) = @_;
|
||||||
|
$envelope = "(" . $envelope . ")" unless ( $envelope =~ /^\(/ );
|
||||||
|
$parser->envelopestruct($envelope);
|
||||||
|
}
|
||||||
|
|
||||||
sub from_addresses { shift->_addresses(from => 1) }
|
sub from_addresses { shift->_addresses(from => 1) }
|
||||||
sub sender_addresses { shift->_addresses(sender => 1) }
|
sub sender_addresses { shift->_addresses(sender => 1) }
|
||||||
sub replyto_addresses { shift->_addresses(replyto => 1) }
|
sub replyto_addresses { shift->_addresses(replyto => 1) }
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use Test::More tests => 27;
|
use Test::More tests => 41;
|
||||||
|
|
||||||
BEGIN { use_ok('Mail::IMAPClient::BodyStructure') or exit; }
|
BEGIN { use_ok('Mail::IMAPClient::BodyStructure') or exit; }
|
||||||
|
|
||||||
|
@ -115,3 +115,37 @@ is_deeply( [ $bsobj->parts ], \@exp, 'bs9 parts' )
|
||||||
my $to = $env->to_addresses;
|
my $to = $env->to_addresses;
|
||||||
is_deeply( $to, [ '<phil+to@dom.loc>' ], "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
|
.PHONY: help usage all
|
||||||
|
|
||||||
|
@ -20,21 +20,27 @@ usage:
|
||||||
@echo "make upload_ks"
|
@echo "make upload_ks"
|
||||||
@echo "make imapsync.exe"
|
@echo "make imapsync.exe"
|
||||||
@echo "make imapsync_elf_x86.bin"
|
@echo "make imapsync_elf_x86.bin"
|
||||||
|
@echo "make publish"
|
||||||
|
|
||||||
|
|
||||||
DIST_NAME=imapsync-$(VERSION)
|
DIST_NAME=imapsync-$(VERSION)
|
||||||
DIST_FILE=$(DIST_NAME).tgz
|
DIST_FILE=$(DIST_NAME).tgz
|
||||||
DEB_FILE=$(DIST_NAME).deb
|
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)
|
VERSION_EXE=$(shell cat ./VERSION_EXE)
|
||||||
|
|
||||||
HELLO=$(shell date;uname -a)
|
HELLO=$(shell date;uname -a)
|
||||||
|
IMAPClient_2xx=./Mail-IMAPClient-2.2.9
|
||||||
|
IMAPClient_3xx=./Mail-IMAPClient-3.30/lib
|
||||||
|
IMAPClient=$(IMAPClient_3xx)
|
||||||
|
|
||||||
hello:
|
hello:
|
||||||
echo "$(HELLO)"
|
echo "$(VERSION)"
|
||||||
|
echo "$(IMAPClient)"
|
||||||
|
|
||||||
|
|
||||||
all: ChangeLog README VERSION
|
all: ChangeLog README VERSION imapsync_elf_x86.bin
|
||||||
|
|
||||||
|
|
||||||
testp :
|
testp :
|
||||||
|
@ -47,7 +53,7 @@ README: imapsync
|
||||||
perldoc -t imapsync > README
|
perldoc -t imapsync > README
|
||||||
|
|
||||||
VERSION: imapsync
|
VERSION: imapsync
|
||||||
perl -I./Mail-IMAPClient-2.2.9 ./imapsync --version > VERSION
|
perl -I./$(IMAPClient) ./imapsync --version > VERSION
|
||||||
|
|
||||||
|
|
||||||
.PHONY: clean clean_tilde clean_test
|
.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 : test_quick_3xx test_quick_229
|
||||||
|
|
||||||
test_quick_229: imapsync tests.sh
|
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
|
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:
|
testv2: .test_229
|
||||||
CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' /usr/bin/time sh tests.sh
|
CMD_PERL='perl -I./$(IMAPClient_2xx) /usr/bin/time sh tests.sh
|
||||||
touch .test_229
|
touch .test_229
|
||||||
|
|
||||||
testv3:
|
testv3:.test_3xx
|
||||||
CMD_PERL='perl -I./Mail-IMAPClient-3.28/lib' sh -x tests.sh
|
CMD_PERL='perl -I./$(IMAPClient_3xx)' sh -x tests.sh
|
||||||
|
touch .test_3xx
|
||||||
|
|
||||||
test: .test_229 .test_3xx
|
test: .test_229 .test_3xx
|
||||||
|
|
||||||
|
@ -116,11 +123,11 @@ test3xx: .test_3xx
|
||||||
test229: .test_229
|
test229: .test_229
|
||||||
|
|
||||||
.test_229: imapsync tests.sh
|
.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
|
touch .test_229
|
||||||
|
|
||||||
.test_3xx: imapsync tests.sh
|
.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
|
touch .test_3xx
|
||||||
|
|
||||||
testf: clean_test test
|
testf: clean_test test
|
||||||
|
@ -145,7 +152,7 @@ tests_win32: dosify_bat
|
||||||
# ssh Admin@c 'tasklist /NH /FO CSV'
|
# ssh Admin@c 'tasklist /NH /FO CSV'
|
||||||
|
|
||||||
tests_win32_dev: dosify_bat
|
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'
|
ssh Admin@c 'C:/msys/1.0/home/Admin/imapsync/test2.bat'
|
||||||
|
|
||||||
test_imapsync_exe: dosify_bat
|
test_imapsync_exe: dosify_bat
|
||||||
|
@ -171,23 +178,24 @@ imapsync.exe: imapsync build_exe.bat .dosify_bat
|
||||||
imapsync_elf_x86.bin: imapsync
|
imapsync_elf_x86.bin: imapsync
|
||||||
rcsdiff imapsync
|
rcsdiff imapsync
|
||||||
{ test 'vadrouille' = "`hostname`" && \
|
{ 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 Mail::IMAPClient -M IO::Socket -M IO::Socket::SSL \
|
||||||
-M Digest::MD5 -M Digest::HMAC_MD5 -M Term::ReadKey \
|
-M Digest::MD5 -M Digest::HMAC_MD5 -M Term::ReadKey \
|
||||||
-M Authen::NTLM \
|
-M Authen::NTLM \
|
||||||
imapsync ; \
|
imapsync ; \
|
||||||
} || :
|
} || :
|
||||||
{ test 'petite' = "`hostname`" && \
|
{ 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 Mail::IMAPClient -M IO::Socket -M IO::Socket::SSL \
|
||||||
-M Digest::MD5 -M Digest::HMAC_MD5 -M Term::ReadKey \
|
-M Digest::MD5 -M Digest::HMAC_MD5 -M Term::ReadKey \
|
||||||
-M Authen::NTLM \
|
-M Authen::NTLM \
|
||||||
-M Tie::Hash::NamedCapture \
|
-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 ; \
|
imapsync ; \
|
||||||
} || :
|
} || :
|
||||||
{ test 'ks200821.kimsufi.com' = "`hostname`" && \
|
{ 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 Mail::IMAPClient -M IO::Socket -M IO::Socket::SSL \
|
||||||
-M Digest::MD5 -M Digest::HMAC_MD5 -M Term::ReadKey \
|
-M Digest::MD5 -M Digest::HMAC_MD5 -M Term::ReadKey \
|
||||||
-M Authen::NTLM \
|
-M Authen::NTLM \
|
||||||
|
@ -244,18 +252,19 @@ dist_prepa_exe: imapsync.exe
|
||||||
#cd $(DIST_PATH)/ && md5sum -c ./imapsync.exe.md5.txt
|
#cd $(DIST_PATH)/ && md5sum -c ./imapsync.exe.md5.txt
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: publish upload_ks ks
|
||||||
|
|
||||||
ks:
|
ks:
|
||||||
rsync -avz --delete --exclude imapsync.exe \
|
rsync -avz --delete --exclude imapsync.exe \
|
||||||
. imapsync@ks.lamiral.info:public_html/imapsync/
|
. imapsync@ks.lamiral.info:public_html/imapsync/
|
||||||
|
|
||||||
|
publish: upload_ks ks
|
||||||
|
|
||||||
PUBLIC_FILES = ./ChangeLog ./COPYING ./CREDITS ./FAQ \
|
PUBLIC_FILES = ./ChangeLog ./COPYING ./CREDITS ./FAQ \
|
||||||
./index.shtml ./INSTALL ./TIME \
|
./index.shtml ./INSTALL ./TIME \
|
||||||
./logo_imapsync.png ./logo_imapsync_s.png \
|
./logo_imapsync.png ./logo_imapsync_s.png \
|
||||||
./paypal.shtml ./paypal_return.shtml ./paypal_return_support.shtml \
|
./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:
|
upload_ks:
|
||||||
rsync -lptvHzP $(PUBLIC_FILES) \
|
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
|
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
|
1.05 19 Jun 2008
|
||||||
- implement OO interface - thanks to Dmitry Karasik <dmitry@karasik.eu.org>
|
- 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>
|
- 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.
|
# This Makefile is for the Authen::NTLM::DES extension to perl.
|
||||||
#
|
#
|
||||||
# It was generated automatically by MakeMaker version
|
# 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.
|
# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
|
||||||
#
|
#
|
||||||
# ANY CHANGES MADE HERE WILL BE LOST!
|
# ANY CHANGES MADE HERE WILL BE LOST!
|
||||||
#
|
#
|
||||||
# MakeMaker ARGV: ()
|
# MakeMaker ARGV: ()
|
||||||
#
|
#
|
||||||
|
|
||||||
# MakeMaker Parameters:
|
# MakeMaker Parameters:
|
||||||
|
|
||||||
# AUTHOR => q[David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>]
|
# AUTHOR => q[David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>]
|
||||||
|
# BUILD_REQUIRES => { }
|
||||||
# NAME => q[Authen::NTLM::DES]
|
# NAME => q[Authen::NTLM::DES]
|
||||||
|
# PREREQ_PM => { }
|
||||||
# VERSION_FROM => q[DES.pm]
|
# VERSION_FROM => q[DES.pm]
|
||||||
|
|
||||||
# --- MakeMaker post_initialize section:
|
# --- MakeMaker post_initialize section:
|
||||||
|
@ -19,29 +22,28 @@
|
||||||
|
|
||||||
# --- MakeMaker const_config section:
|
# --- MakeMaker const_config section:
|
||||||
|
|
||||||
# These definitions are from config.sh (via /usr/lib/perl/5.8/Config.pm)
|
# 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.
|
||||||
# They may have been overridden via Makefile.PL or on the command line
|
|
||||||
AR = ar
|
AR = ar
|
||||||
CC = cc
|
CC = cc
|
||||||
CCCDLFLAGS = -fPIC
|
CCCDLFLAGS = -fPIC
|
||||||
CCDLFLAGS = -Wl,-E
|
CCDLFLAGS = -Wl,-E
|
||||||
DLEXT = so
|
DLEXT = so
|
||||||
DLSRC = dl_dlopen.xs
|
DLSRC = dl_dlopen.xs
|
||||||
|
EXE_EXT =
|
||||||
|
FULL_AR = /usr/bin/ar
|
||||||
LD = cc
|
LD = cc
|
||||||
LDDLFLAGS = -shared -L/usr/local/lib
|
LDDLFLAGS = -shared -O2 -g -L/usr/local/lib -fstack-protector
|
||||||
LDFLAGS = -L/usr/local/lib
|
LDFLAGS = -fstack-protector -L/usr/local/lib
|
||||||
LIBC = /lib/libc-2.7.so
|
LIBC = /lib/libc-2.11.1.so
|
||||||
LIB_EXT = .a
|
LIB_EXT = .a
|
||||||
OBJ_EXT = .o
|
OBJ_EXT = .o
|
||||||
OSNAME = linux
|
OSNAME = linux
|
||||||
OSVERS = 2.6.24-19-server
|
OSVERS = 2.6.24-28-server
|
||||||
RANLIB = :
|
RANLIB = :
|
||||||
SITELIBEXP = /usr/local/share/perl/5.8.8
|
SITELIBEXP = /usr/local/share/perl/5.10.1
|
||||||
SITEARCHEXP = /usr/local/lib/perl/5.8.8
|
SITEARCHEXP = /usr/local/lib/perl/5.10.1
|
||||||
SO = so
|
SO = so
|
||||||
EXE_EXT =
|
|
||||||
FULL_AR = /usr/bin/ar
|
|
||||||
VENDORARCHEXP = /usr/lib/perl5
|
VENDORARCHEXP = /usr/lib/perl5
|
||||||
VENDORLIBEXP = /usr/share/perl5
|
VENDORLIBEXP = /usr/share/perl5
|
||||||
|
|
||||||
|
@ -73,15 +75,15 @@ PREFIX = /usr
|
||||||
PERLPREFIX = $(PREFIX)
|
PERLPREFIX = $(PREFIX)
|
||||||
SITEPREFIX = $(PREFIX)/local
|
SITEPREFIX = $(PREFIX)/local
|
||||||
VENDORPREFIX = $(PREFIX)
|
VENDORPREFIX = $(PREFIX)
|
||||||
INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.8
|
INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.10
|
||||||
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
|
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
|
||||||
INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.8.8
|
INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.10.1
|
||||||
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
|
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
|
||||||
INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
|
INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
|
||||||
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
|
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
|
||||||
INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.8
|
INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.10
|
||||||
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
|
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
|
||||||
INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.8.8
|
INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.10.1
|
||||||
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
|
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
|
||||||
INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
|
INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
|
||||||
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
|
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
|
||||||
|
@ -109,14 +111,14 @@ INSTALLSITEMAN3DIR = $(SITEPREFIX)/man/man3
|
||||||
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
|
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
|
||||||
INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
|
INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
|
||||||
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
|
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
|
||||||
PERL_LIB = /usr/share/perl/5.8
|
PERL_LIB = /usr/share/perl/5.10
|
||||||
PERL_ARCHLIB = /usr/lib/perl/5.8
|
PERL_ARCHLIB = /usr/lib/perl/5.10
|
||||||
LIBPERL_A = libperl.a
|
LIBPERL_A = libperl.a
|
||||||
FIRST_MAKEFILE = Makefile
|
FIRST_MAKEFILE = Makefile
|
||||||
MAKEFILE_OLD = Makefile.old
|
MAKEFILE_OLD = Makefile.old
|
||||||
MAKE_APERL_FILE = Makefile.aperl
|
MAKE_APERL_FILE = Makefile.aperl
|
||||||
PERLMAINCC = $(CC)
|
PERLMAINCC = $(CC)
|
||||||
PERL_INC = /usr/lib/perl/5.8/CORE
|
PERL_INC = /usr/lib/perl/5.10/CORE
|
||||||
PERL = /usr/bin/perl
|
PERL = /usr/bin/perl
|
||||||
FULLPERL = /usr/bin/perl
|
FULLPERL = /usr/bin/perl
|
||||||
ABSPERL = $(PERL)
|
ABSPERL = $(PERL)
|
||||||
|
@ -127,17 +129,19 @@ PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
||||||
FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
||||||
ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
||||||
PERL_CORE = 0
|
PERL_CORE = 0
|
||||||
|
PERM_DIR = 755
|
||||||
PERM_RW = 644
|
PERM_RW = 644
|
||||||
PERM_RWX = 755
|
PERM_RWX = 755
|
||||||
|
|
||||||
MAKEMAKER = /usr/share/perl/5.8/ExtUtils/MakeMaker.pm
|
MAKEMAKER = /usr/share/perl/5.10/ExtUtils/MakeMaker.pm
|
||||||
MM_VERSION = 6.30_01
|
MM_VERSION = 6.55_02
|
||||||
MM_REVISION = Revision: 4535
|
MM_REVISION = 65502
|
||||||
|
|
||||||
# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
|
# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
|
||||||
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
|
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
|
||||||
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
|
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
|
||||||
# DLBASE = Basename part of dynamic library. May be just equal BASEEXT.
|
# DLBASE = Basename part of dynamic library. May be just equal BASEEXT.
|
||||||
|
MAKE = make
|
||||||
FULLEXT = Authen/NTLM/DES
|
FULLEXT = Authen/NTLM/DES
|
||||||
BASEEXT = DES
|
BASEEXT = DES
|
||||||
PARENT_NAME = Authen::NTLM
|
PARENT_NAME = Authen::NTLM
|
||||||
|
@ -183,13 +187,13 @@ PM_TO_BLIB = DES.pm \
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker platform_constants section:
|
# --- 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
|
PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker tool_autosplit section:
|
# --- MakeMaker tool_autosplit section:
|
||||||
# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
|
# 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
|
CHMOD = chmod
|
||||||
CP = cp
|
CP = cp
|
||||||
MV = mv
|
MV = mv
|
||||||
NOOP = $(SHELL) -c true
|
NOOP = $(TRUE)
|
||||||
NOECHO = @
|
NOECHO = @
|
||||||
RM_F = rm -f
|
RM_F = rm -f
|
||||||
RM_RF = rm -rf
|
RM_RF = rm -rf
|
||||||
|
@ -209,24 +213,26 @@ TEST_F = test -f
|
||||||
TOUCH = touch
|
TOUCH = touch
|
||||||
UMASK_NULL = umask 0
|
UMASK_NULL = umask 0
|
||||||
DEV_NULL = > /dev/null 2>&1
|
DEV_NULL = > /dev/null 2>&1
|
||||||
MKPATH = $(ABSPERLRUN) "-MExtUtils::Command" -e mkpath
|
MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' --
|
||||||
EQUALIZE_TIMESTAMP = $(ABSPERLRUN) "-MExtUtils::Command" -e eqtime
|
EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' --
|
||||||
|
FALSE = false
|
||||||
|
TRUE = true
|
||||||
ECHO = echo
|
ECHO = echo
|
||||||
ECHO_N = echo -n
|
ECHO_N = echo -n
|
||||||
UNINST = 0
|
UNINST = 0
|
||||||
VERBINST = 0
|
VERBINST = 0
|
||||||
MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install({@ARGV}, '\''$(VERBINST)'\'', 0, '\''$(UNINST)'\'');'
|
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
|
DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' --
|
||||||
UNINSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e uninstall
|
UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' --
|
||||||
WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e warn_if_old_packlist
|
WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' --
|
||||||
MACROSTART =
|
MACROSTART =
|
||||||
MACROEND =
|
MACROEND =
|
||||||
USEMAKEFILE = -f
|
USEMAKEFILE = -f
|
||||||
FIXIN = $(PERLRUN) "-MExtUtils::MY" -e "MY->fixin(shift)"
|
FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' --
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker makemakerdflt section:
|
# --- MakeMaker makemakerdflt section:
|
||||||
makemakerdflt: all
|
makemakerdflt : all
|
||||||
$(NOECHO) $(NOOP)
|
$(NOECHO) $(NOOP)
|
||||||
|
|
||||||
|
|
||||||
|
@ -301,42 +307,42 @@ blibdirs.ts : blibdirs
|
||||||
|
|
||||||
$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
|
$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_LIBDIR)
|
$(NOECHO) $(MKPATH) $(INST_LIBDIR)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_LIBDIR)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR)
|
||||||
$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
|
$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
|
$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_ARCHLIB)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB)
|
||||||
$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
|
$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_AUTODIR)
|
$(NOECHO) $(MKPATH) $(INST_AUTODIR)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_AUTODIR)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR)
|
||||||
$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
|
$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
|
$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_ARCHAUTODIR)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR)
|
||||||
$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_BIN)$(DFSEP).exists :: Makefile.PL
|
$(INST_BIN)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_BIN)
|
$(NOECHO) $(MKPATH) $(INST_BIN)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_BIN)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN)
|
||||||
$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
|
$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_SCRIPT)
|
$(NOECHO) $(MKPATH) $(INST_SCRIPT)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_SCRIPT)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT)
|
||||||
$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
|
$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
|
$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_MAN1DIR)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR)
|
||||||
$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
|
$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
|
$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_MAN3DIR)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR)
|
||||||
$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
|
||||||
|
|
||||||
|
|
||||||
|
@ -446,16 +452,27 @@ realclean purge :: clean realclean_subdirs
|
||||||
# --- MakeMaker metafile section:
|
# --- MakeMaker metafile section:
|
||||||
metafile : create_distdir
|
metafile : create_distdir
|
||||||
$(NOECHO) $(ECHO) Generating META.yml
|
$(NOECHO) $(ECHO) Generating META.yml
|
||||||
$(NOECHO) $(ECHO) '# http://module-build.sourceforge.net/META-spec.html' > META_new.yml
|
$(NOECHO) $(ECHO) '--- #YAML:1.0' > 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) 'name: Authen-NTLM-DES' >> META_new.yml
|
$(NOECHO) $(ECHO) 'version: 1.02' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'version: 1.02' >> META_new.yml
|
$(NOECHO) $(ECHO) 'abstract: ~' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'version_from: DES.pm' >> META_new.yml
|
$(NOECHO) $(ECHO) 'author:' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'installdirs: site' >> META_new.yml
|
$(NOECHO) $(ECHO) ' - David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'requires:' >> META_new.yml
|
$(NOECHO) $(ECHO) 'license: unknown' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) '' >> META_new.yml
|
$(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
|
$(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.30_01' >> 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
|
-$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml
|
||||||
|
|
||||||
|
|
||||||
|
@ -477,14 +494,14 @@ signature :
|
||||||
# --- MakeMaker distmeta section:
|
# --- MakeMaker distmeta section:
|
||||||
distmeta : create_distdir metafile
|
distmeta : create_distdir metafile
|
||||||
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \
|
$(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:
|
# --- MakeMaker distsignature section:
|
||||||
distsignature : create_distdir
|
distsignature : create_distdir
|
||||||
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
|
$(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
|
$(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE
|
||||||
cd $(DISTVNAME) && cpansign -s
|
cd $(DISTVNAME) && cpansign -s
|
||||||
|
|
||||||
|
@ -494,7 +511,7 @@ distsignature : create_distdir
|
||||||
|
|
||||||
# --- MakeMaker force section:
|
# --- MakeMaker force section:
|
||||||
# Phony target to force checking subdirectories.
|
# Phony target to force checking subdirectories.
|
||||||
FORCE:
|
FORCE :
|
||||||
$(NOECHO) $(NOOP)
|
$(NOECHO) $(NOOP)
|
||||||
|
|
||||||
|
|
||||||
|
@ -513,7 +530,7 @@ $(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
|
||||||
$(PERLRUN) Makefile.PL
|
$(PERLRUN) Makefile.PL
|
||||||
$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
|
$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
|
||||||
$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <=="
|
$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <=="
|
||||||
false
|
$(FALSE)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -534,7 +551,11 @@ TESTDB_SW = -d
|
||||||
|
|
||||||
testdb :: testdb_$(LINKTYPE)
|
testdb :: testdb_$(LINKTYPE)
|
||||||
|
|
||||||
test :: $(TEST_TYPE)
|
test :: $(TEST_TYPE) subdirs-test
|
||||||
|
|
||||||
|
subdirs-test ::
|
||||||
|
$(NOECHO) $(NOOP)
|
||||||
|
|
||||||
$(NOECHO) $(ECHO) 'No tests defined for $(NAME) extension.'
|
$(NOECHO) $(ECHO) 'No tests defined for $(NAME) extension.'
|
||||||
|
|
||||||
test_dynamic :: pure_all
|
test_dynamic :: pure_all
|
||||||
|
@ -550,14 +571,12 @@ testdb_static :: testdb_dynamic
|
||||||
|
|
||||||
# --- MakeMaker ppd section:
|
# --- MakeMaker ppd section:
|
||||||
# Creates a PPD (Perl Package Description) for a binary distribution.
|
# Creates a PPD (Perl Package Description) for a binary distribution.
|
||||||
ppd:
|
ppd :
|
||||||
$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="1,02,0,0">' > $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="1.02">' > $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) ' <TITLE>$(DISTNAME)</TITLE>' >> $(DISTNAME).ppd
|
|
||||||
$(NOECHO) $(ECHO) ' <ABSTRACT></ABSTRACT>' >> $(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) ' <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) ' <IMPLEMENTATION>' >> $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) ' <OS NAME="$(OSNAME)" />' >> $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i486-linux-gnu-thread-multi-5.10" />' >> $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i486-linux-gnu-thread-multi" />' >> $(DISTNAME).ppd
|
|
||||||
$(NOECHO) $(ECHO) ' <CODEBASE HREF="" />' >> $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) ' <CODEBASE HREF="" />' >> $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) ' </IMPLEMENTATION>' >> $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) ' </IMPLEMENTATION>' >> $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd
|
||||||
|
@ -565,8 +584,8 @@ ppd:
|
||||||
|
|
||||||
# --- MakeMaker pm_to_blib section:
|
# --- MakeMaker pm_to_blib section:
|
||||||
|
|
||||||
pm_to_blib : $(TO_INST_PM)
|
pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM)
|
||||||
$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', '\''$(PM_FILTER)'\'')' \
|
$(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
|
DES.pm $(INST_LIB)/Authen/NTLM/DES.pm
|
||||||
$(NOECHO) $(TOUCH) pm_to_blib
|
$(NOECHO) $(TOUCH) pm_to_blib
|
||||||
|
|
|
@ -1,17 +1,20 @@
|
||||||
# This Makefile is for the Authen::NTLM::MD4 extension to perl.
|
# This Makefile is for the Authen::NTLM::MD4 extension to perl.
|
||||||
#
|
#
|
||||||
# It was generated automatically by MakeMaker version
|
# 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.
|
# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
|
||||||
#
|
#
|
||||||
# ANY CHANGES MADE HERE WILL BE LOST!
|
# ANY CHANGES MADE HERE WILL BE LOST!
|
||||||
#
|
#
|
||||||
# MakeMaker ARGV: ()
|
# MakeMaker ARGV: ()
|
||||||
#
|
#
|
||||||
|
|
||||||
# MakeMaker Parameters:
|
# MakeMaker Parameters:
|
||||||
|
|
||||||
# AUTHOR => q[David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>]
|
# AUTHOR => q[David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>]
|
||||||
|
# BUILD_REQUIRES => { }
|
||||||
# NAME => q[Authen::NTLM::MD4]
|
# NAME => q[Authen::NTLM::MD4]
|
||||||
|
# PREREQ_PM => { }
|
||||||
# VERSION_FROM => q[MD4.pm]
|
# VERSION_FROM => q[MD4.pm]
|
||||||
|
|
||||||
# --- MakeMaker post_initialize section:
|
# --- MakeMaker post_initialize section:
|
||||||
|
@ -19,29 +22,28 @@
|
||||||
|
|
||||||
# --- MakeMaker const_config section:
|
# --- MakeMaker const_config section:
|
||||||
|
|
||||||
# These definitions are from config.sh (via /usr/lib/perl/5.8/Config.pm)
|
# 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.
|
||||||
# They may have been overridden via Makefile.PL or on the command line
|
|
||||||
AR = ar
|
AR = ar
|
||||||
CC = cc
|
CC = cc
|
||||||
CCCDLFLAGS = -fPIC
|
CCCDLFLAGS = -fPIC
|
||||||
CCDLFLAGS = -Wl,-E
|
CCDLFLAGS = -Wl,-E
|
||||||
DLEXT = so
|
DLEXT = so
|
||||||
DLSRC = dl_dlopen.xs
|
DLSRC = dl_dlopen.xs
|
||||||
|
EXE_EXT =
|
||||||
|
FULL_AR = /usr/bin/ar
|
||||||
LD = cc
|
LD = cc
|
||||||
LDDLFLAGS = -shared -L/usr/local/lib
|
LDDLFLAGS = -shared -O2 -g -L/usr/local/lib -fstack-protector
|
||||||
LDFLAGS = -L/usr/local/lib
|
LDFLAGS = -fstack-protector -L/usr/local/lib
|
||||||
LIBC = /lib/libc-2.7.so
|
LIBC = /lib/libc-2.11.1.so
|
||||||
LIB_EXT = .a
|
LIB_EXT = .a
|
||||||
OBJ_EXT = .o
|
OBJ_EXT = .o
|
||||||
OSNAME = linux
|
OSNAME = linux
|
||||||
OSVERS = 2.6.24-19-server
|
OSVERS = 2.6.24-28-server
|
||||||
RANLIB = :
|
RANLIB = :
|
||||||
SITELIBEXP = /usr/local/share/perl/5.8.8
|
SITELIBEXP = /usr/local/share/perl/5.10.1
|
||||||
SITEARCHEXP = /usr/local/lib/perl/5.8.8
|
SITEARCHEXP = /usr/local/lib/perl/5.10.1
|
||||||
SO = so
|
SO = so
|
||||||
EXE_EXT =
|
|
||||||
FULL_AR = /usr/bin/ar
|
|
||||||
VENDORARCHEXP = /usr/lib/perl5
|
VENDORARCHEXP = /usr/lib/perl5
|
||||||
VENDORLIBEXP = /usr/share/perl5
|
VENDORLIBEXP = /usr/share/perl5
|
||||||
|
|
||||||
|
@ -73,15 +75,15 @@ PREFIX = /usr
|
||||||
PERLPREFIX = $(PREFIX)
|
PERLPREFIX = $(PREFIX)
|
||||||
SITEPREFIX = $(PREFIX)/local
|
SITEPREFIX = $(PREFIX)/local
|
||||||
VENDORPREFIX = $(PREFIX)
|
VENDORPREFIX = $(PREFIX)
|
||||||
INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.8
|
INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.10
|
||||||
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
|
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
|
||||||
INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.8.8
|
INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.10.1
|
||||||
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
|
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
|
||||||
INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
|
INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
|
||||||
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
|
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
|
||||||
INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.8
|
INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.10
|
||||||
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
|
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
|
||||||
INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.8.8
|
INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.10.1
|
||||||
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
|
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
|
||||||
INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
|
INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
|
||||||
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
|
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
|
||||||
|
@ -109,14 +111,14 @@ INSTALLSITEMAN3DIR = $(SITEPREFIX)/man/man3
|
||||||
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
|
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
|
||||||
INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
|
INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
|
||||||
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
|
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
|
||||||
PERL_LIB = /usr/share/perl/5.8
|
PERL_LIB = /usr/share/perl/5.10
|
||||||
PERL_ARCHLIB = /usr/lib/perl/5.8
|
PERL_ARCHLIB = /usr/lib/perl/5.10
|
||||||
LIBPERL_A = libperl.a
|
LIBPERL_A = libperl.a
|
||||||
FIRST_MAKEFILE = Makefile
|
FIRST_MAKEFILE = Makefile
|
||||||
MAKEFILE_OLD = Makefile.old
|
MAKEFILE_OLD = Makefile.old
|
||||||
MAKE_APERL_FILE = Makefile.aperl
|
MAKE_APERL_FILE = Makefile.aperl
|
||||||
PERLMAINCC = $(CC)
|
PERLMAINCC = $(CC)
|
||||||
PERL_INC = /usr/lib/perl/5.8/CORE
|
PERL_INC = /usr/lib/perl/5.10/CORE
|
||||||
PERL = /usr/bin/perl
|
PERL = /usr/bin/perl
|
||||||
FULLPERL = /usr/bin/perl
|
FULLPERL = /usr/bin/perl
|
||||||
ABSPERL = $(PERL)
|
ABSPERL = $(PERL)
|
||||||
|
@ -127,17 +129,19 @@ PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
||||||
FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
||||||
ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
||||||
PERL_CORE = 0
|
PERL_CORE = 0
|
||||||
|
PERM_DIR = 755
|
||||||
PERM_RW = 644
|
PERM_RW = 644
|
||||||
PERM_RWX = 755
|
PERM_RWX = 755
|
||||||
|
|
||||||
MAKEMAKER = /usr/share/perl/5.8/ExtUtils/MakeMaker.pm
|
MAKEMAKER = /usr/share/perl/5.10/ExtUtils/MakeMaker.pm
|
||||||
MM_VERSION = 6.30_01
|
MM_VERSION = 6.55_02
|
||||||
MM_REVISION = Revision: 4535
|
MM_REVISION = 65502
|
||||||
|
|
||||||
# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
|
# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
|
||||||
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
|
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
|
||||||
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
|
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
|
||||||
# DLBASE = Basename part of dynamic library. May be just equal BASEEXT.
|
# DLBASE = Basename part of dynamic library. May be just equal BASEEXT.
|
||||||
|
MAKE = make
|
||||||
FULLEXT = Authen/NTLM/MD4
|
FULLEXT = Authen/NTLM/MD4
|
||||||
BASEEXT = MD4
|
BASEEXT = MD4
|
||||||
PARENT_NAME = Authen::NTLM
|
PARENT_NAME = Authen::NTLM
|
||||||
|
@ -183,13 +187,13 @@ PM_TO_BLIB = MD4.pm \
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker platform_constants section:
|
# --- 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
|
PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker tool_autosplit section:
|
# --- MakeMaker tool_autosplit section:
|
||||||
# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
|
# 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
|
CHMOD = chmod
|
||||||
CP = cp
|
CP = cp
|
||||||
MV = mv
|
MV = mv
|
||||||
NOOP = $(SHELL) -c true
|
NOOP = $(TRUE)
|
||||||
NOECHO = @
|
NOECHO = @
|
||||||
RM_F = rm -f
|
RM_F = rm -f
|
||||||
RM_RF = rm -rf
|
RM_RF = rm -rf
|
||||||
|
@ -209,24 +213,26 @@ TEST_F = test -f
|
||||||
TOUCH = touch
|
TOUCH = touch
|
||||||
UMASK_NULL = umask 0
|
UMASK_NULL = umask 0
|
||||||
DEV_NULL = > /dev/null 2>&1
|
DEV_NULL = > /dev/null 2>&1
|
||||||
MKPATH = $(ABSPERLRUN) "-MExtUtils::Command" -e mkpath
|
MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' --
|
||||||
EQUALIZE_TIMESTAMP = $(ABSPERLRUN) "-MExtUtils::Command" -e eqtime
|
EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' --
|
||||||
|
FALSE = false
|
||||||
|
TRUE = true
|
||||||
ECHO = echo
|
ECHO = echo
|
||||||
ECHO_N = echo -n
|
ECHO_N = echo -n
|
||||||
UNINST = 0
|
UNINST = 0
|
||||||
VERBINST = 0
|
VERBINST = 0
|
||||||
MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install({@ARGV}, '\''$(VERBINST)'\'', 0, '\''$(UNINST)'\'');'
|
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
|
DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' --
|
||||||
UNINSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e uninstall
|
UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' --
|
||||||
WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e warn_if_old_packlist
|
WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' --
|
||||||
MACROSTART =
|
MACROSTART =
|
||||||
MACROEND =
|
MACROEND =
|
||||||
USEMAKEFILE = -f
|
USEMAKEFILE = -f
|
||||||
FIXIN = $(PERLRUN) "-MExtUtils::MY" -e "MY->fixin(shift)"
|
FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' --
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker makemakerdflt section:
|
# --- MakeMaker makemakerdflt section:
|
||||||
makemakerdflt: all
|
makemakerdflt : all
|
||||||
$(NOECHO) $(NOOP)
|
$(NOECHO) $(NOOP)
|
||||||
|
|
||||||
|
|
||||||
|
@ -301,42 +307,42 @@ blibdirs.ts : blibdirs
|
||||||
|
|
||||||
$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
|
$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_LIBDIR)
|
$(NOECHO) $(MKPATH) $(INST_LIBDIR)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_LIBDIR)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR)
|
||||||
$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
|
$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
|
$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_ARCHLIB)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB)
|
||||||
$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
|
$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_AUTODIR)
|
$(NOECHO) $(MKPATH) $(INST_AUTODIR)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_AUTODIR)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR)
|
||||||
$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
|
$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
|
$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_ARCHAUTODIR)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR)
|
||||||
$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_BIN)$(DFSEP).exists :: Makefile.PL
|
$(INST_BIN)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_BIN)
|
$(NOECHO) $(MKPATH) $(INST_BIN)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_BIN)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN)
|
||||||
$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
|
$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_SCRIPT)
|
$(NOECHO) $(MKPATH) $(INST_SCRIPT)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_SCRIPT)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT)
|
||||||
$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
|
$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
|
$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_MAN1DIR)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR)
|
||||||
$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
|
$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
|
$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_MAN3DIR)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR)
|
||||||
$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
|
||||||
|
|
||||||
|
|
||||||
|
@ -446,16 +452,27 @@ realclean purge :: clean realclean_subdirs
|
||||||
# --- MakeMaker metafile section:
|
# --- MakeMaker metafile section:
|
||||||
metafile : create_distdir
|
metafile : create_distdir
|
||||||
$(NOECHO) $(ECHO) Generating META.yml
|
$(NOECHO) $(ECHO) Generating META.yml
|
||||||
$(NOECHO) $(ECHO) '# http://module-build.sourceforge.net/META-spec.html' > META_new.yml
|
$(NOECHO) $(ECHO) '--- #YAML:1.0' > 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) 'name: Authen-NTLM-MD4' >> META_new.yml
|
$(NOECHO) $(ECHO) 'version: 1.02' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'version: 1.02' >> META_new.yml
|
$(NOECHO) $(ECHO) 'abstract: ~' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'version_from: MD4.pm' >> META_new.yml
|
$(NOECHO) $(ECHO) 'author:' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'installdirs: site' >> META_new.yml
|
$(NOECHO) $(ECHO) ' - David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'requires:' >> META_new.yml
|
$(NOECHO) $(ECHO) 'license: unknown' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) '' >> META_new.yml
|
$(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
|
$(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.30_01' >> 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
|
-$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml
|
||||||
|
|
||||||
|
|
||||||
|
@ -477,14 +494,14 @@ signature :
|
||||||
# --- MakeMaker distmeta section:
|
# --- MakeMaker distmeta section:
|
||||||
distmeta : create_distdir metafile
|
distmeta : create_distdir metafile
|
||||||
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \
|
$(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:
|
# --- MakeMaker distsignature section:
|
||||||
distsignature : create_distdir
|
distsignature : create_distdir
|
||||||
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
|
$(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
|
$(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE
|
||||||
cd $(DISTVNAME) && cpansign -s
|
cd $(DISTVNAME) && cpansign -s
|
||||||
|
|
||||||
|
@ -494,7 +511,7 @@ distsignature : create_distdir
|
||||||
|
|
||||||
# --- MakeMaker force section:
|
# --- MakeMaker force section:
|
||||||
# Phony target to force checking subdirectories.
|
# Phony target to force checking subdirectories.
|
||||||
FORCE:
|
FORCE :
|
||||||
$(NOECHO) $(NOOP)
|
$(NOECHO) $(NOOP)
|
||||||
|
|
||||||
|
|
||||||
|
@ -513,7 +530,7 @@ $(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
|
||||||
$(PERLRUN) Makefile.PL
|
$(PERLRUN) Makefile.PL
|
||||||
$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
|
$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
|
||||||
$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <=="
|
$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <=="
|
||||||
false
|
$(FALSE)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -534,7 +551,11 @@ TESTDB_SW = -d
|
||||||
|
|
||||||
testdb :: testdb_$(LINKTYPE)
|
testdb :: testdb_$(LINKTYPE)
|
||||||
|
|
||||||
test :: $(TEST_TYPE)
|
test :: $(TEST_TYPE) subdirs-test
|
||||||
|
|
||||||
|
subdirs-test ::
|
||||||
|
$(NOECHO) $(NOOP)
|
||||||
|
|
||||||
$(NOECHO) $(ECHO) 'No tests defined for $(NAME) extension.'
|
$(NOECHO) $(ECHO) 'No tests defined for $(NAME) extension.'
|
||||||
|
|
||||||
test_dynamic :: pure_all
|
test_dynamic :: pure_all
|
||||||
|
@ -550,14 +571,12 @@ testdb_static :: testdb_dynamic
|
||||||
|
|
||||||
# --- MakeMaker ppd section:
|
# --- MakeMaker ppd section:
|
||||||
# Creates a PPD (Perl Package Description) for a binary distribution.
|
# Creates a PPD (Perl Package Description) for a binary distribution.
|
||||||
ppd:
|
ppd :
|
||||||
$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="1,02,0,0">' > $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="1.02">' > $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) ' <TITLE>$(DISTNAME)</TITLE>' >> $(DISTNAME).ppd
|
|
||||||
$(NOECHO) $(ECHO) ' <ABSTRACT></ABSTRACT>' >> $(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) ' <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) ' <IMPLEMENTATION>' >> $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) ' <OS NAME="$(OSNAME)" />' >> $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i486-linux-gnu-thread-multi-5.10" />' >> $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i486-linux-gnu-thread-multi" />' >> $(DISTNAME).ppd
|
|
||||||
$(NOECHO) $(ECHO) ' <CODEBASE HREF="" />' >> $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) ' <CODEBASE HREF="" />' >> $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) ' </IMPLEMENTATION>' >> $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) ' </IMPLEMENTATION>' >> $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd
|
||||||
|
@ -565,8 +584,8 @@ ppd:
|
||||||
|
|
||||||
# --- MakeMaker pm_to_blib section:
|
# --- MakeMaker pm_to_blib section:
|
||||||
|
|
||||||
pm_to_blib : $(TO_INST_PM)
|
pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM)
|
||||||
$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', '\''$(PM_FILTER)'\'')' \
|
$(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
|
MD4.pm $(INST_LIB)/Authen/NTLM/MD4.pm
|
||||||
$(NOECHO) $(TOUCH) pm_to_blib
|
$(NOECHO) $(TOUCH) pm_to_blib
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
--- #YAML:1.0
|
--- #YAML:1.0
|
||||||
name: Authen-NTLM
|
name: Authen-NTLM
|
||||||
version: 1.05
|
version: 1.09
|
||||||
abstract: ~
|
abstract: ~
|
||||||
license: ~
|
license: perl
|
||||||
author:
|
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
|
generated_by: ExtUtils::MakeMaker version 6.42
|
||||||
distribution_type: module
|
distribution_type: module
|
||||||
requires:
|
requires:
|
|
@ -1,16 +1,18 @@
|
||||||
# This Makefile is for the Authen::NTLM extension to perl.
|
# This Makefile is for the Authen::NTLM extension to perl.
|
||||||
#
|
#
|
||||||
# It was generated automatically by MakeMaker version
|
# 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.
|
# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
|
||||||
#
|
#
|
||||||
# ANY CHANGES MADE HERE WILL BE LOST!
|
# ANY CHANGES MADE HERE WILL BE LOST!
|
||||||
#
|
#
|
||||||
# MakeMaker ARGV: ()
|
# MakeMaker ARGV: ()
|
||||||
#
|
#
|
||||||
|
|
||||||
# MakeMaker Parameters:
|
# MakeMaker Parameters:
|
||||||
|
|
||||||
# AUTHOR => q[David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>]
|
# AUTHOR => q[David (Buzz) Bussenschutt <davidbuzz@gmail.com>, Mark Bush <Mark.Bush@bushnet.demon.co.uk>]
|
||||||
|
# BUILD_REQUIRES => { }
|
||||||
# DIR => [q[DES], q[MD4]]
|
# DIR => [q[DES], q[MD4]]
|
||||||
# NAME => q[Authen::NTLM]
|
# NAME => q[Authen::NTLM]
|
||||||
# PREREQ_PM => { Digest::HMAC_MD5=>q[0], MIME::Base64=>q[0] }
|
# PREREQ_PM => { Digest::HMAC_MD5=>q[0], MIME::Base64=>q[0] }
|
||||||
|
@ -21,29 +23,28 @@
|
||||||
|
|
||||||
# --- MakeMaker const_config section:
|
# --- MakeMaker const_config section:
|
||||||
|
|
||||||
# These definitions are from config.sh (via /usr/lib/perl/5.8/Config.pm)
|
# 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.
|
||||||
# They may have been overridden via Makefile.PL or on the command line
|
|
||||||
AR = ar
|
AR = ar
|
||||||
CC = cc
|
CC = cc
|
||||||
CCCDLFLAGS = -fPIC
|
CCCDLFLAGS = -fPIC
|
||||||
CCDLFLAGS = -Wl,-E
|
CCDLFLAGS = -Wl,-E
|
||||||
DLEXT = so
|
DLEXT = so
|
||||||
DLSRC = dl_dlopen.xs
|
DLSRC = dl_dlopen.xs
|
||||||
|
EXE_EXT =
|
||||||
|
FULL_AR = /usr/bin/ar
|
||||||
LD = cc
|
LD = cc
|
||||||
LDDLFLAGS = -shared -L/usr/local/lib
|
LDDLFLAGS = -shared -O2 -g -L/usr/local/lib -fstack-protector
|
||||||
LDFLAGS = -L/usr/local/lib
|
LDFLAGS = -fstack-protector -L/usr/local/lib
|
||||||
LIBC = /lib/libc-2.7.so
|
LIBC = /lib/libc-2.11.1.so
|
||||||
LIB_EXT = .a
|
LIB_EXT = .a
|
||||||
OBJ_EXT = .o
|
OBJ_EXT = .o
|
||||||
OSNAME = linux
|
OSNAME = linux
|
||||||
OSVERS = 2.6.24-19-server
|
OSVERS = 2.6.24-28-server
|
||||||
RANLIB = :
|
RANLIB = :
|
||||||
SITELIBEXP = /usr/local/share/perl/5.8.8
|
SITELIBEXP = /usr/local/share/perl/5.10.1
|
||||||
SITEARCHEXP = /usr/local/lib/perl/5.8.8
|
SITEARCHEXP = /usr/local/lib/perl/5.10.1
|
||||||
SO = so
|
SO = so
|
||||||
EXE_EXT =
|
|
||||||
FULL_AR = /usr/bin/ar
|
|
||||||
VENDORARCHEXP = /usr/lib/perl5
|
VENDORARCHEXP = /usr/lib/perl5
|
||||||
VENDORLIBEXP = /usr/share/perl5
|
VENDORLIBEXP = /usr/share/perl5
|
||||||
|
|
||||||
|
@ -54,11 +55,11 @@ DIRFILESEP = /
|
||||||
DFSEP = $(DIRFILESEP)
|
DFSEP = $(DIRFILESEP)
|
||||||
NAME = Authen::NTLM
|
NAME = Authen::NTLM
|
||||||
NAME_SYM = Authen_NTLM
|
NAME_SYM = Authen_NTLM
|
||||||
VERSION = 1.05
|
VERSION = 1.09
|
||||||
VERSION_MACRO = VERSION
|
VERSION_MACRO = VERSION
|
||||||
VERSION_SYM = 1_05
|
VERSION_SYM = 1_09
|
||||||
DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\"
|
DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\"
|
||||||
XS_VERSION = 1.05
|
XS_VERSION = 1.09
|
||||||
XS_VERSION_MACRO = XS_VERSION
|
XS_VERSION_MACRO = XS_VERSION
|
||||||
XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\"
|
XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\"
|
||||||
INST_ARCHLIB = blib/arch
|
INST_ARCHLIB = blib/arch
|
||||||
|
@ -75,15 +76,15 @@ PREFIX = /usr
|
||||||
PERLPREFIX = $(PREFIX)
|
PERLPREFIX = $(PREFIX)
|
||||||
SITEPREFIX = $(PREFIX)/local
|
SITEPREFIX = $(PREFIX)/local
|
||||||
VENDORPREFIX = $(PREFIX)
|
VENDORPREFIX = $(PREFIX)
|
||||||
INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.8
|
INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.10
|
||||||
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
|
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
|
||||||
INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.8.8
|
INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.10.1
|
||||||
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
|
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
|
||||||
INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
|
INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
|
||||||
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
|
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
|
||||||
INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.8
|
INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.10
|
||||||
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
|
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
|
||||||
INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.8.8
|
INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.10.1
|
||||||
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
|
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
|
||||||
INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
|
INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
|
||||||
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
|
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
|
||||||
|
@ -111,14 +112,14 @@ INSTALLSITEMAN3DIR = $(SITEPREFIX)/man/man3
|
||||||
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
|
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
|
||||||
INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
|
INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
|
||||||
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
|
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
|
||||||
PERL_LIB = /usr/share/perl/5.8
|
PERL_LIB = /usr/share/perl/5.10
|
||||||
PERL_ARCHLIB = /usr/lib/perl/5.8
|
PERL_ARCHLIB = /usr/lib/perl/5.10
|
||||||
LIBPERL_A = libperl.a
|
LIBPERL_A = libperl.a
|
||||||
FIRST_MAKEFILE = Makefile
|
FIRST_MAKEFILE = Makefile
|
||||||
MAKEFILE_OLD = Makefile.old
|
MAKEFILE_OLD = Makefile.old
|
||||||
MAKE_APERL_FILE = Makefile.aperl
|
MAKE_APERL_FILE = Makefile.aperl
|
||||||
PERLMAINCC = $(CC)
|
PERLMAINCC = $(CC)
|
||||||
PERL_INC = /usr/lib/perl/5.8/CORE
|
PERL_INC = /usr/lib/perl/5.10/CORE
|
||||||
PERL = /usr/bin/perl
|
PERL = /usr/bin/perl
|
||||||
FULLPERL = /usr/bin/perl
|
FULLPERL = /usr/bin/perl
|
||||||
ABSPERL = $(PERL)
|
ABSPERL = $(PERL)
|
||||||
|
@ -129,17 +130,19 @@ PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
||||||
FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
||||||
ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
|
||||||
PERL_CORE = 0
|
PERL_CORE = 0
|
||||||
|
PERM_DIR = 755
|
||||||
PERM_RW = 644
|
PERM_RW = 644
|
||||||
PERM_RWX = 755
|
PERM_RWX = 755
|
||||||
|
|
||||||
MAKEMAKER = /usr/share/perl/5.8/ExtUtils/MakeMaker.pm
|
MAKEMAKER = /usr/share/perl/5.10/ExtUtils/MakeMaker.pm
|
||||||
MM_VERSION = 6.30_01
|
MM_VERSION = 6.55_02
|
||||||
MM_REVISION = Revision: 4535
|
MM_REVISION = 65502
|
||||||
|
|
||||||
# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
|
# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
|
||||||
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
|
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
|
||||||
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
|
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
|
||||||
# DLBASE = Basename part of dynamic library. May be just equal BASEEXT.
|
# DLBASE = Basename part of dynamic library. May be just equal BASEEXT.
|
||||||
|
MAKE = make
|
||||||
FULLEXT = Authen/NTLM
|
FULLEXT = Authen/NTLM
|
||||||
BASEEXT = NTLM
|
BASEEXT = NTLM
|
||||||
PARENT_NAME = Authen
|
PARENT_NAME = Authen
|
||||||
|
@ -185,13 +188,13 @@ PM_TO_BLIB = NTLM.pm \
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker platform_constants section:
|
# --- 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
|
PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker tool_autosplit section:
|
# --- MakeMaker tool_autosplit section:
|
||||||
# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
|
# 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
|
CHMOD = chmod
|
||||||
CP = cp
|
CP = cp
|
||||||
MV = mv
|
MV = mv
|
||||||
NOOP = $(SHELL) -c true
|
NOOP = $(TRUE)
|
||||||
NOECHO = @
|
NOECHO = @
|
||||||
RM_F = rm -f
|
RM_F = rm -f
|
||||||
RM_RF = rm -rf
|
RM_RF = rm -rf
|
||||||
|
@ -211,24 +214,26 @@ TEST_F = test -f
|
||||||
TOUCH = touch
|
TOUCH = touch
|
||||||
UMASK_NULL = umask 0
|
UMASK_NULL = umask 0
|
||||||
DEV_NULL = > /dev/null 2>&1
|
DEV_NULL = > /dev/null 2>&1
|
||||||
MKPATH = $(ABSPERLRUN) "-MExtUtils::Command" -e mkpath
|
MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' --
|
||||||
EQUALIZE_TIMESTAMP = $(ABSPERLRUN) "-MExtUtils::Command" -e eqtime
|
EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' --
|
||||||
|
FALSE = false
|
||||||
|
TRUE = true
|
||||||
ECHO = echo
|
ECHO = echo
|
||||||
ECHO_N = echo -n
|
ECHO_N = echo -n
|
||||||
UNINST = 0
|
UNINST = 0
|
||||||
VERBINST = 0
|
VERBINST = 0
|
||||||
MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install({@ARGV}, '\''$(VERBINST)'\'', 0, '\''$(UNINST)'\'');'
|
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
|
DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' --
|
||||||
UNINSTALL = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e uninstall
|
UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' --
|
||||||
WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) "-MExtUtils::Command::MM" -e warn_if_old_packlist
|
WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' --
|
||||||
MACROSTART =
|
MACROSTART =
|
||||||
MACROEND =
|
MACROEND =
|
||||||
USEMAKEFILE = -f
|
USEMAKEFILE = -f
|
||||||
FIXIN = $(PERLRUN) "-MExtUtils::MY" -e "MY->fixin(shift)"
|
FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' --
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker makemakerdflt section:
|
# --- MakeMaker makemakerdflt section:
|
||||||
makemakerdflt: all
|
makemakerdflt : all
|
||||||
$(NOECHO) $(NOOP)
|
$(NOECHO) $(NOOP)
|
||||||
|
|
||||||
|
|
||||||
|
@ -248,7 +253,7 @@ RCS_LABEL = rcs -Nv$(VERSION_SYM): -q
|
||||||
DIST_CP = best
|
DIST_CP = best
|
||||||
DIST_DEFAULT = tardist
|
DIST_DEFAULT = tardist
|
||||||
DISTNAME = Authen-NTLM
|
DISTNAME = Authen-NTLM
|
||||||
DISTVNAME = Authen-NTLM-1.05
|
DISTVNAME = Authen-NTLM-1.09
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker macro section:
|
# --- MakeMaker macro section:
|
||||||
|
@ -320,42 +325,42 @@ blibdirs.ts : blibdirs
|
||||||
|
|
||||||
$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
|
$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_LIBDIR)
|
$(NOECHO) $(MKPATH) $(INST_LIBDIR)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_LIBDIR)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR)
|
||||||
$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
|
$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
|
$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_ARCHLIB)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB)
|
||||||
$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
|
$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_AUTODIR)
|
$(NOECHO) $(MKPATH) $(INST_AUTODIR)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_AUTODIR)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR)
|
||||||
$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
|
$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
|
$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_ARCHAUTODIR)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR)
|
||||||
$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_BIN)$(DFSEP).exists :: Makefile.PL
|
$(INST_BIN)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_BIN)
|
$(NOECHO) $(MKPATH) $(INST_BIN)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_BIN)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN)
|
||||||
$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
|
$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_SCRIPT)
|
$(NOECHO) $(MKPATH) $(INST_SCRIPT)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_SCRIPT)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT)
|
||||||
$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
|
$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
|
$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_MAN1DIR)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR)
|
||||||
$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
|
||||||
|
|
||||||
$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
|
$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
|
||||||
$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
|
$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
|
||||||
$(NOECHO) $(CHMOD) 755 $(INST_MAN3DIR)
|
$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR)
|
||||||
$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
|
$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
|
||||||
|
|
||||||
|
|
||||||
|
@ -401,7 +406,6 @@ POD2MAN = $(POD2MAN_EXE)
|
||||||
|
|
||||||
|
|
||||||
manifypods : pure_all \
|
manifypods : pure_all \
|
||||||
NTLM.pm \
|
|
||||||
NTLM.pm
|
NTLM.pm
|
||||||
$(NOECHO) $(POD2MAN) --section=$(MAN3EXT) --perm_rw=$(PERM_RW) \
|
$(NOECHO) $(POD2MAN) --section=$(MAN3EXT) --perm_rw=$(PERM_RW) \
|
||||||
NTLM.pm $(INST_MAN3DIR)/Authen::NTLM.$(MAN3EXT)
|
NTLM.pm $(INST_MAN3DIR)/Authen::NTLM.$(MAN3EXT)
|
||||||
|
@ -430,8 +434,8 @@ subdirs ::
|
||||||
|
|
||||||
# --- MakeMaker clean_subdirs section:
|
# --- MakeMaker clean_subdirs section:
|
||||||
clean_subdirs :
|
clean_subdirs :
|
||||||
$(ABSPERLRUN) -e 'chdir '\''DES'\''; 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)'\'';'
|
$(ABSPERLRUN) -e 'chdir '\''MD4'\''; system '\''$(MAKE) clean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';' --
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker clean section:
|
# --- MakeMaker clean section:
|
||||||
|
@ -463,10 +467,10 @@ clean :: clean_subdirs
|
||||||
|
|
||||||
# --- MakeMaker realclean_subdirs section:
|
# --- MakeMaker realclean_subdirs section:
|
||||||
realclean_subdirs :
|
realclean_subdirs :
|
||||||
- $(ABSPERLRUN) -e 'chdir '\''DES'\''; system '\''$(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) realclean'\'' if -f '\''$(MAKEFILE_OLD)'\'';'
|
- $(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 '\''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) $(MAKEFILE_OLD) realclean'\'' if -f '\''$(MAKEFILE_OLD)'\'';' --
|
||||||
- $(ABSPERLRUN) -e 'chdir '\''MD4'\''; system '\''$(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) realclean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';'
|
- $(ABSPERLRUN) -e 'chdir '\''MD4'\''; system '\''$(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) realclean'\'' if -f '\''$(FIRST_MAKEFILE)'\'';' --
|
||||||
|
|
||||||
|
|
||||||
# --- MakeMaker realclean section:
|
# --- MakeMaker realclean section:
|
||||||
|
@ -481,18 +485,29 @@ realclean purge :: clean realclean_subdirs
|
||||||
# --- MakeMaker metafile section:
|
# --- MakeMaker metafile section:
|
||||||
metafile : create_distdir
|
metafile : create_distdir
|
||||||
$(NOECHO) $(ECHO) Generating META.yml
|
$(NOECHO) $(ECHO) Generating META.yml
|
||||||
$(NOECHO) $(ECHO) '# http://module-build.sourceforge.net/META-spec.html' > META_new.yml
|
$(NOECHO) $(ECHO) '--- #YAML:1.0' > 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) 'name: Authen-NTLM' >> META_new.yml
|
$(NOECHO) $(ECHO) 'version: 1.09' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'version: 1.05' >> META_new.yml
|
$(NOECHO) $(ECHO) 'abstract: ~' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'version_from: NTLM.pm' >> META_new.yml
|
$(NOECHO) $(ECHO) 'author:' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'installdirs: site' >> 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) 'requires:' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) ' Digest::HMAC_MD5: 0' >> META_new.yml
|
$(NOECHO) $(ECHO) ' Digest::HMAC_MD5: 0' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) ' MIME::Base64: 0' >> META_new.yml
|
$(NOECHO) $(ECHO) ' MIME::Base64: 0' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) '' >> META_new.yml
|
$(NOECHO) $(ECHO) 'no_index:' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
|
$(NOECHO) $(ECHO) ' directory:' >> META_new.yml
|
||||||
$(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.30_01' >> 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
|
-$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml
|
||||||
|
|
||||||
|
|
||||||
|
@ -515,7 +530,7 @@ manifest :
|
||||||
$(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest
|
$(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest
|
||||||
|
|
||||||
veryclean : realclean
|
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)
|
dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE)
|
||||||
$(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \
|
$(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)
|
tardist : $(DISTVNAME).tar$(SUFFIX)
|
||||||
$(NOECHO) $(NOOP)
|
$(NOECHO) $(NOOP)
|
||||||
|
@ -586,14 +601,14 @@ ci :
|
||||||
# --- MakeMaker distmeta section:
|
# --- MakeMaker distmeta section:
|
||||||
distmeta : create_distdir metafile
|
distmeta : create_distdir metafile
|
||||||
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \
|
$(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:
|
# --- MakeMaker distsignature section:
|
||||||
distsignature : create_distdir
|
distsignature : create_distdir
|
||||||
$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
|
$(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
|
$(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE
|
||||||
cd $(DISTVNAME) && cpansign -s
|
cd $(DISTVNAME) && cpansign -s
|
||||||
|
|
||||||
|
@ -601,16 +616,16 @@ distsignature : create_distdir
|
||||||
|
|
||||||
# --- MakeMaker install section:
|
# --- MakeMaker install section:
|
||||||
|
|
||||||
install :: all pure_install doc_install
|
install :: pure_install doc_install
|
||||||
$(NOECHO) $(NOOP)
|
$(NOECHO) $(NOOP)
|
||||||
|
|
||||||
install_perl :: all pure_perl_install doc_perl_install
|
install_perl :: pure_perl_install doc_perl_install
|
||||||
$(NOECHO) $(NOOP)
|
$(NOECHO) $(NOOP)
|
||||||
|
|
||||||
install_site :: all pure_site_install doc_site_install
|
install_site :: pure_site_install doc_site_install
|
||||||
$(NOECHO) $(NOOP)
|
$(NOECHO) $(NOOP)
|
||||||
|
|
||||||
install_vendor :: all pure_vendor_install doc_vendor_install
|
install_vendor :: pure_vendor_install doc_vendor_install
|
||||||
$(NOECHO) $(NOOP)
|
$(NOECHO) $(NOOP)
|
||||||
|
|
||||||
pure_install :: pure_$(INSTALLDIRS)_install
|
pure_install :: pure_$(INSTALLDIRS)_install
|
||||||
|
@ -625,7 +640,7 @@ pure__install : pure_site_install
|
||||||
doc__install : doc_site_install
|
doc__install : doc_site_install
|
||||||
$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
|
$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
|
||||||
|
|
||||||
pure_perl_install ::
|
pure_perl_install :: all
|
||||||
$(NOECHO) umask 022; $(MOD_INSTALL) \
|
$(NOECHO) umask 022; $(MOD_INSTALL) \
|
||||||
$(INST_LIB) $(DESTINSTALLPRIVLIB) \
|
$(INST_LIB) $(DESTINSTALLPRIVLIB) \
|
||||||
$(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \
|
$(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \
|
||||||
|
@ -637,7 +652,7 @@ pure_perl_install ::
|
||||||
$(SITEARCHEXP)/auto/$(FULLEXT)
|
$(SITEARCHEXP)/auto/$(FULLEXT)
|
||||||
|
|
||||||
|
|
||||||
pure_site_install ::
|
pure_site_install :: all
|
||||||
$(NOECHO) umask 02; $(MOD_INSTALL) \
|
$(NOECHO) umask 02; $(MOD_INSTALL) \
|
||||||
read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \
|
read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \
|
||||||
write $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist \
|
write $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist \
|
||||||
|
@ -650,7 +665,7 @@ pure_site_install ::
|
||||||
$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
|
$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
|
||||||
$(PERL_ARCHLIB)/auto/$(FULLEXT)
|
$(PERL_ARCHLIB)/auto/$(FULLEXT)
|
||||||
|
|
||||||
pure_vendor_install ::
|
pure_vendor_install :: all
|
||||||
$(NOECHO) umask 022; $(MOD_INSTALL) \
|
$(NOECHO) umask 022; $(MOD_INSTALL) \
|
||||||
$(INST_LIB) $(DESTINSTALLVENDORLIB) \
|
$(INST_LIB) $(DESTINSTALLVENDORLIB) \
|
||||||
$(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
|
$(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
|
||||||
|
@ -659,9 +674,9 @@ pure_vendor_install ::
|
||||||
$(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \
|
$(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \
|
||||||
$(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
|
$(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) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod
|
||||||
-$(NOECHO) umask 02; $(MKPATH) $(DESTINSTALLSITEARCH)
|
-$(NOECHO) umask 02; $(MKPATH) $(DESTINSTALLSITEARCH)
|
||||||
-$(NOECHO) umask 02; $(DOC_INSTALL) \
|
-$(NOECHO) umask 02; $(DOC_INSTALL) \
|
||||||
|
@ -672,7 +687,7 @@ doc_site_install ::
|
||||||
EXE_FILES "$(EXE_FILES)" \
|
EXE_FILES "$(EXE_FILES)" \
|
||||||
>> $(DESTINSTALLSITEARCH)/perllocal.pod
|
>> $(DESTINSTALLSITEARCH)/perllocal.pod
|
||||||
|
|
||||||
doc_vendor_install ::
|
doc_vendor_install :: all
|
||||||
|
|
||||||
|
|
||||||
uninstall :: uninstall_from_$(INSTALLDIRS)dirs
|
uninstall :: uninstall_from_$(INSTALLDIRS)dirs
|
||||||
|
@ -689,7 +704,7 @@ uninstall_from_vendordirs ::
|
||||||
|
|
||||||
# --- MakeMaker force section:
|
# --- MakeMaker force section:
|
||||||
# Phony target to force checking subdirectories.
|
# Phony target to force checking subdirectories.
|
||||||
FORCE:
|
FORCE :
|
||||||
$(NOECHO) $(NOOP)
|
$(NOECHO) $(NOOP)
|
||||||
|
|
||||||
|
|
||||||
|
@ -708,7 +723,7 @@ $(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
|
||||||
$(PERLRUN) Makefile.PL
|
$(PERLRUN) Makefile.PL
|
||||||
$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
|
$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
|
||||||
$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <=="
|
$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <=="
|
||||||
false
|
$(FALSE)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -739,13 +754,17 @@ TESTDB_SW = -d
|
||||||
|
|
||||||
testdb :: testdb_$(LINKTYPE)
|
testdb :: testdb_$(LINKTYPE)
|
||||||
|
|
||||||
test :: $(TEST_TYPE)
|
test :: $(TEST_TYPE) subdirs-test
|
||||||
$(NOECHO) $(ABSPERLRUN) -e 'chdir '\''DES'\''; ' \
|
|
||||||
-e 'system '\''$(MAKE) test $(PASTHRU)'\'' ' \
|
subdirs-test ::
|
||||||
-e ' if -f '\''$(FIRST_MAKEFILE)'\'';'
|
$(NOECHO) $(NOOP)
|
||||||
$(NOECHO) $(ABSPERLRUN) -e 'chdir '\''MD4'\''; ' \
|
|
||||||
-e 'system '\''$(MAKE) test $(PASTHRU)'\'' ' \
|
subdirs-test ::
|
||||||
-e ' if -f '\''$(FIRST_MAKEFILE)'\'';'
|
$(NOECHO) cd DES && $(MAKE) test $(PASTHRU)
|
||||||
|
|
||||||
|
subdirs-test ::
|
||||||
|
$(NOECHO) cd MD4 && $(MAKE) test $(PASTHRU)
|
||||||
|
|
||||||
|
|
||||||
test_dynamic :: pure_all
|
test_dynamic :: pure_all
|
||||||
PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-e" "test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES)
|
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:
|
# --- MakeMaker ppd section:
|
||||||
# Creates a PPD (Perl Package Description) for a binary distribution.
|
# Creates a PPD (Perl Package Description) for a binary distribution.
|
||||||
ppd:
|
ppd :
|
||||||
$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="1,05,0,0">' > $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="1.09">' > $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) ' <TITLE>$(DISTNAME)</TITLE>' >> $(DISTNAME).ppd
|
|
||||||
$(NOECHO) $(ECHO) ' <ABSTRACT></ABSTRACT>' >> $(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) ' <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) ' <IMPLEMENTATION>' >> $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) ' <DEPENDENCY NAME="Digest-HMAC_MD5" VERSION="0,0,0,0" />' >> $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) ' <REQUIRE NAME="Digest::HMAC_MD5" />' >> $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) ' <DEPENDENCY NAME="MIME-Base64" VERSION="0,0,0,0" />' >> $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) ' <REQUIRE NAME="MIME::Base64" />' >> $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) ' <OS NAME="$(OSNAME)" />' >> $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i486-linux-gnu-thread-multi-5.10" />' >> $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="i486-linux-gnu-thread-multi" />' >> $(DISTNAME).ppd
|
|
||||||
$(NOECHO) $(ECHO) ' <CODEBASE HREF="" />' >> $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) ' <CODEBASE HREF="" />' >> $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) ' </IMPLEMENTATION>' >> $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) ' </IMPLEMENTATION>' >> $(DISTNAME).ppd
|
||||||
$(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd
|
$(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd
|
||||||
|
@ -778,8 +795,8 @@ ppd:
|
||||||
|
|
||||||
# --- MakeMaker pm_to_blib section:
|
# --- MakeMaker pm_to_blib section:
|
||||||
|
|
||||||
pm_to_blib : $(TO_INST_PM)
|
pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM)
|
||||||
$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', '\''$(PM_FILTER)'\'')' \
|
$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \
|
||||||
NTLM.pm $(INST_LIB)/Authen/NTLM.pm
|
NTLM.pm $(INST_LIB)/Authen/NTLM.pm
|
||||||
$(NOECHO) $(TOUCH) pm_to_blib
|
$(NOECHO) $(TOUCH) pm_to_blib
|
||||||
|
|
|
@ -148,6 +148,10 @@ L<perl>, L<Mail::IMAPClient>, L<LWP::Authen::Ntlm>
|
||||||
|
|
||||||
=head1 HISTORY
|
=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.05 - add OO interface by Dmitry Karasik
|
||||||
1.04 - implementation of NTLMv2 by Andrew Hobson/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
|
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
|
=cut
|
||||||
|
|
||||||
$VERSION = "1.05";
|
$VERSION = "1.09";
|
||||||
@ISA = qw(Exporter);
|
@ISA = qw(Exporter);
|
||||||
@EXPORT = qw(ntlm ntlm_domain ntlm_user ntlm_password ntlm_reset ntlm_host ntlmv2);
|
@EXPORT = qw(ntlm ntlm_domain ntlm_user ntlm_password ntlm_reset ntlm_host ntlmv2);
|
||||||
|
|
||||||
|
@ -210,7 +214,7 @@ sub challenge
|
||||||
my ( $self, $challenge) = @_;
|
my ( $self, $challenge) = @_;
|
||||||
$state = defined $challenge;
|
$state = defined $challenge;
|
||||||
($user,$domain,$password,$host) = @{$self}{qw(user domain password host)};
|
($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);
|
return ntlm($challenge);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -287,10 +291,17 @@ sub ntlm
|
||||||
$lmResp = &lmEncrypt($c_info->{data});
|
$lmResp = &lmEncrypt($c_info->{data});
|
||||||
$ntResp = &ntEncrypt($c_info->{data});
|
$ntResp = &ntEncrypt($c_info->{data});
|
||||||
$flags = pack($msg3_tl, $c_info->{flags});
|
$flags = pack($msg3_tl, $c_info->{flags});
|
||||||
} else {
|
}
|
||||||
|
elsif ($ntlm_v2 eq '1') {
|
||||||
$lmResp = &lmv2Encrypt($c_info->{data});
|
$lmResp = &lmv2Encrypt($c_info->{data});
|
||||||
$ntResp = &ntv2Encrypt($c_info->{data}, $c_info->{target_data});
|
$ntResp = &ntv2Encrypt($c_info->{data}, $c_info->{target_data});
|
||||||
$flags = pack($msg3_tl, $ntlm_v2_msg3_flags);
|
$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));
|
$u_host = &unicode(($host ? $host : $user));
|
||||||
$response = pack($msg3, $ident, 3);
|
$response = pack($msg3, $ident, 3);
|
||||||
|
@ -318,7 +329,7 @@ sub ntlm
|
||||||
$f &= ~NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED;
|
$f &= ~NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED;
|
||||||
}
|
}
|
||||||
$msg1_host = $user;
|
$msg1_host = $user;
|
||||||
if ($ntlm_v2) {
|
if ($ntlm_v2 and $ntlm_v2 eq '1') {
|
||||||
$f &= ~NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED;
|
$f &= ~NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED;
|
||||||
$f |= NTLMSSP_NEGOTIATE_NTLM2;
|
$f |= NTLMSSP_NEGOTIATE_NTLM2;
|
||||||
$msg1_host = "";
|
$msg1_host = "";
|
||||||
|
@ -360,7 +371,8 @@ sub decode_challenge
|
||||||
my (@res, @hdr);
|
my (@res, @hdr);
|
||||||
my $original = $challenge;
|
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);
|
$challenge = substr($challenge, 0, $msg2_hlen);
|
||||||
@res = unpack($msg2, $challenge);
|
@res = unpack($msg2, $challenge);
|
||||||
$res->{ident} = $res[0];
|
$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
|
=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.05 - add OO interface by Dmitry Karasik
|
||||||
1.04 - implementation of NTLMv2 by Andrew Hobson/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
|
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
|
=cut
|
||||||
|
|
||||||
$VERSION = "1.05";
|
$VERSION = "1.09";
|
||||||
@ISA = qw(Exporter);
|
@ISA = qw(Exporter);
|
||||||
@EXPORT = qw(ntlm ntlm_domain ntlm_user ntlm_password ntlm_reset ntlm_host ntlmv2);
|
@EXPORT = qw(ntlm ntlm_domain ntlm_user ntlm_password ntlm_reset ntlm_host ntlmv2);
|
||||||
|
|
||||||
|
@ -210,7 +214,7 @@ sub challenge
|
||||||
my ( $self, $challenge) = @_;
|
my ( $self, $challenge) = @_;
|
||||||
$state = defined $challenge;
|
$state = defined $challenge;
|
||||||
($user,$domain,$password,$host) = @{$self}{qw(user domain password host)};
|
($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);
|
return ntlm($challenge);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -287,10 +291,17 @@ sub ntlm
|
||||||
$lmResp = &lmEncrypt($c_info->{data});
|
$lmResp = &lmEncrypt($c_info->{data});
|
||||||
$ntResp = &ntEncrypt($c_info->{data});
|
$ntResp = &ntEncrypt($c_info->{data});
|
||||||
$flags = pack($msg3_tl, $c_info->{flags});
|
$flags = pack($msg3_tl, $c_info->{flags});
|
||||||
} else {
|
}
|
||||||
|
elsif ($ntlm_v2 eq '1') {
|
||||||
$lmResp = &lmv2Encrypt($c_info->{data});
|
$lmResp = &lmv2Encrypt($c_info->{data});
|
||||||
$ntResp = &ntv2Encrypt($c_info->{data}, $c_info->{target_data});
|
$ntResp = &ntv2Encrypt($c_info->{data}, $c_info->{target_data});
|
||||||
$flags = pack($msg3_tl, $ntlm_v2_msg3_flags);
|
$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));
|
$u_host = &unicode(($host ? $host : $user));
|
||||||
$response = pack($msg3, $ident, 3);
|
$response = pack($msg3, $ident, 3);
|
||||||
|
@ -318,7 +329,7 @@ sub ntlm
|
||||||
$f &= ~NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED;
|
$f &= ~NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED;
|
||||||
}
|
}
|
||||||
$msg1_host = $user;
|
$msg1_host = $user;
|
||||||
if ($ntlm_v2) {
|
if ($ntlm_v2 and $ntlm_v2 eq '1') {
|
||||||
$f &= ~NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED;
|
$f &= ~NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED;
|
||||||
$f |= NTLMSSP_NEGOTIATE_NTLM2;
|
$f |= NTLMSSP_NEGOTIATE_NTLM2;
|
||||||
$msg1_host = "";
|
$msg1_host = "";
|
||||||
|
@ -360,7 +371,8 @@ sub decode_challenge
|
||||||
my (@res, @hdr);
|
my (@res, @hdr);
|
||||||
my $original = $challenge;
|
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);
|
$challenge = substr($challenge, 0, $msg2_hlen);
|
||||||
@res = unpack($msg2, $challenge);
|
@res = unpack($msg2, $challenge);
|
||||||
$res->{ident} = $res[0];
|
$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:
|
.\" 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)
|
.de Sp \" Vertical space (when we can't use .PP)
|
||||||
.if t .sp .5v
|
.if t .sp .5v
|
||||||
.if n .sp
|
.if n .sp
|
||||||
|
@ -48,22 +40,25 @@
|
||||||
. ds R" ''
|
. ds R" ''
|
||||||
'br\}
|
'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
|
.\" 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
|
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||||
.\" output yourself in some meaningful fashion.
|
.\" output yourself in some meaningful fashion.
|
||||||
.if \nF \{\
|
.ie \nF \{\
|
||||||
. de IX
|
. de IX
|
||||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||||
..
|
..
|
||||||
. nr % 0
|
. nr % 0
|
||||||
. rr F
|
. rr F
|
||||||
.\}
|
.\}
|
||||||
.\"
|
.el \{\
|
||||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
. de IX
|
||||||
.\" way too many mistakes in technical documents.
|
..
|
||||||
.hy 0
|
.\}
|
||||||
.if n .na
|
|
||||||
.\"
|
.\"
|
||||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||||
|
@ -129,7 +124,11 @@
|
||||||
.\" ========================================================================
|
.\" ========================================================================
|
||||||
.\"
|
.\"
|
||||||
.IX Title "NTLM 3pm"
|
.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"
|
.SH "NAME"
|
||||||
Authen::NTLM \- An NTLM authentication module
|
Authen::NTLM \- An NTLM authentication module
|
||||||
.SH "SYNOPSIS"
|
.SH "SYNOPSIS"
|
||||||
|
@ -137,7 +136,7 @@ Authen::NTLM \- An NTLM authentication module
|
||||||
.Vb 10
|
.Vb 10
|
||||||
\& use Mail::IMAPClient;
|
\& use Mail::IMAPClient;
|
||||||
\& use Authen::NTLM;
|
\& use Authen::NTLM;
|
||||||
\& my $imap = Mail::IMAPClient\->new(Server=>\(aqimaphost\(aq);
|
\& my $imap = Mail::IMAPClient\->new(Server=>\*(Aqimaphost\*(Aq);
|
||||||
\& ntlm_user($username);
|
\& ntlm_user($username);
|
||||||
\& ntlm_password($password);
|
\& ntlm_password($password);
|
||||||
\& $imap\->authenticate("NTLM", Authen::NTLM::ntlm);
|
\& $imap\->authenticate("NTLM", Authen::NTLM::ntlm);
|
||||||
|
@ -179,16 +178,14 @@ or
|
||||||
\& to perform the challenge/response mechanism for NTLM connections
|
\& to perform the challenge/response mechanism for NTLM connections
|
||||||
\& or it can be used on its own for NTLM authentication with other
|
\& or it can be used on its own for NTLM authentication with other
|
||||||
\& protocols (eg. HTTP).
|
\& protocols (eg. HTTP).
|
||||||
.Ve
|
\&
|
||||||
.PP
|
|
||||||
.Vb 5
|
|
||||||
\& The implementation is a direct port of the code from F<fetchmail>
|
\& The implementation is a direct port of the code from F<fetchmail>
|
||||||
\& which, itself, has based its NTLM implementation on F<samba>. As
|
\& which, itself, has based its NTLM implementation on F<samba>. As
|
||||||
\& such, this code is not especially efficient, however it will still
|
\& 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
|
\& take a fraction of a second to negotiate a login on a PII which is
|
||||||
\& likely to be good enough for most situations.
|
\& likely to be good enough for most situations.
|
||||||
.Ve
|
.Ve
|
||||||
.Sh "\s-1FUNCTIONS\s0"
|
.SS "\s-1FUNCTIONS\s0"
|
||||||
.IX Subsection "FUNCTIONS"
|
.IX Subsection "FUNCTIONS"
|
||||||
.IP "\fIntlm_domain()\fR" 4
|
.IP "\fIntlm_domain()\fR" 4
|
||||||
.IX Item "ntlm_domain()"
|
.IX Item "ntlm_domain()"
|
||||||
|
@ -225,17 +222,13 @@ or
|
||||||
\& response containing the username and domain (which may be empty).
|
\& response containing the username and domain (which may be empty).
|
||||||
\& The first call to C<ntlm()> generates this first message ignoring
|
\& The first call to C<ntlm()> generates this first message ignoring
|
||||||
\& any arguments.
|
\& any arguments.
|
||||||
.Ve
|
\&
|
||||||
.Sp
|
|
||||||
.Vb 5
|
|
||||||
\& The second time it is called, it is assumed that the argument is
|
\& The second time it is called, it is assumed that the argument is
|
||||||
\& the challenge string sent from the server. This will contain 8
|
\& the challenge string sent from the server. This will contain 8
|
||||||
\& bytes of data which are used in the DES functions to generate the
|
\& bytes of data which are used in the DES functions to generate the
|
||||||
\& response authentication strings. The result of the call is the
|
\& response authentication strings. The result of the call is the
|
||||||
\& final authentication string.
|
\& final authentication string.
|
||||||
.Ve
|
\&
|
||||||
.Sp
|
|
||||||
.Vb 3
|
|
||||||
\& If C<ntlm_reset()> is called, then the next call to C<ntlm()> will
|
\& If C<ntlm_reset()> is called, then the next call to C<ntlm()> will
|
||||||
\& start the process again allowing multiple authentications within
|
\& start the process again allowing multiple authentications within
|
||||||
\& an application.
|
\& an application.
|
||||||
|
@ -245,7 +238,7 @@ or
|
||||||
.Vb 1
|
.Vb 1
|
||||||
\& Use NTLM v2 authentication.
|
\& Use NTLM v2 authentication.
|
||||||
.Ve
|
.Ve
|
||||||
.Sh "\s-1OBJECT\s0 \s-1API\s0"
|
.SS "\s-1OBJECT\s0 \s-1API\s0"
|
||||||
.IX Subsection "OBJECT API"
|
.IX Subsection "OBJECT API"
|
||||||
.ie n .IP "new %options" 4
|
.ie n .IP "new %options" 4
|
||||||
.el .IP "new \f(CW%options\fR" 4
|
.el .IP "new \f(CW%options\fR" 4
|
||||||
|
@ -270,10 +263,14 @@ the call is the final authentication string.
|
||||||
.Ve
|
.Ve
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
.IX Header "SEE ALSO"
|
.IX Header "SEE ALSO"
|
||||||
perl, Mail::IMAPClient, LWP::Authen::Ntlm
|
perl, Mail::IMAPClient, LWP::Authen::Ntlm
|
||||||
.SH "HISTORY"
|
.SH "HISTORY"
|
||||||
.IX Header "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.05 \- add OO interface by Dmitry Karasik
|
||||||
\& 1.04 \- implementation of NTLMv2 by Andrew Hobson/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
|
\& 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.
|
Synchronise mailboxes between two imap servers. Good at IMAP migration.
|
||||||
More than 36 different IMAP server softwares supported with success.
|
More than 36 different IMAP server softwares supported with success.
|
||||||
|
|
||||||
$Revision: 1.456 $
|
$Revision: 1.463 $
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
To synchronise imap account "foo" on "imap.truc.org" to imap account
|
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)
|
- hMailServer 5.3.3 [host2], 4.4.1 [host1] (see FAQ)
|
||||||
- iPlanet Messaging server 4.15, 5.1, 5.2
|
- iPlanet Messaging server 4.15, 5.1, 5.2
|
||||||
- IMail 7.15 (Ipswitch/Win2003), 8.12, 11.03 [host1]
|
- IMail 7.15 (Ipswitch/Win2003), 8.12, 11.03 [host1]
|
||||||
- Kerio 7.2.0P1 [host1]
|
- Kerio 7.2.0 Patch 1 [host1] [host2]
|
||||||
- MailEnable 4.23 [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],
|
- MDaemon 7.0.1, 8.0.2, 8.1, 9.5.4 (Windows server 2003 R2 platform), 12 [host2],
|
||||||
12.0.3 [host1]
|
12.0.3 [host1]
|
||||||
- Mercury 4.1 (Windows server 2000 platform)
|
- Mercury 4.1 (Windows server 2000 platform)
|
||||||
|
@ -344,7 +344,7 @@ IMAP SERVERS
|
||||||
Exchange2007-EP-SP2,
|
Exchange2007-EP-SP2,
|
||||||
Exchange 2010 RTM (Release to Manufacturing) [host2],
|
Exchange 2010 RTM (Release to Manufacturing) [host2],
|
||||||
Exchange 2010 SP1 RU2[host2],
|
Exchange 2010 SP1 RU2[host2],
|
||||||
- Mirapoint
|
- Mirapoint, 4.1.9-GA [host1]
|
||||||
- Netscape Mail Server 3.6 (Wintel !)
|
- Netscape Mail Server 3.6 (Wintel !)
|
||||||
- Netscape Messaging Server 4.15 Patch 7
|
- Netscape Messaging Server 4.15 Patch 7
|
||||||
- OpenMail IMAP server B.07.00.k0 (Samsung Contact ?)
|
- OpenMail IMAP server B.07.00.k0 (Samsung Contact ?)
|
||||||
|
@ -363,6 +363,7 @@ IMAP SERVERS
|
||||||
(http://www.washington.edu/imap/)
|
(http://www.washington.edu/imap/)
|
||||||
- UW - QMail v2.1
|
- UW - QMail v2.1
|
||||||
- VMS, Imap part of TCP/IP suite of VMS 7.3.2
|
- 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-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
|
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
|
--maxage --minage --maxsize --useheader --fast --useuid --usecache
|
||||||
|
|
||||||
If you have many mailboxes to migrate think about a little shell
|
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 ';'
|
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
|
user001_1;password001_1;user001_2;password001_2
|
||||||
user002_1;password002_1;user002_2;password002_2
|
user002_1;password002_1;user002_2;password002_2
|
||||||
|
@ -401,11 +402,11 @@ HUGE MIGRATION
|
||||||
{ while IFS=';' read u1 p1 u2 p2; do
|
{ while IFS=';' read u1 p1 u2 p2; do
|
||||||
imapsync --host1 imap.side1.org --user1 "$u1" --password1 "$p1" \
|
imapsync --host1 imap.side1.org --user1 "$u1" --password1 "$p1" \
|
||||||
--host2 imap.side2.org --user2 "$u2" --password2 "$p2" ...
|
--host2 imap.side2.org --user2 "$u2" --password2 "$p2" ...
|
||||||
done ; } < file.csv
|
done ; } < file.txt
|
||||||
|
|
||||||
On Windows the batch program can be:
|
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 ^
|
--host1 imap.side1.org --user1 %%G --password1 %%H ^
|
||||||
--host2 imap.side2.org --user2 %%I --password2 %%J ...
|
--host2 imap.side2.org --user2 %%I --password2 %%J ...
|
||||||
|
|
||||||
|
@ -441,5 +442,5 @@ SIMILAR SOFTWARES
|
||||||
|
|
||||||
Feedback (good or bad) will often be welcome.
|
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
|
120 Statistics statistics_VERSION_synthesis
|
||||||
150 10 years old announce. index.html. 10 EUR. freshmeat announce+release 1.452
|
150 10 years old announce. index.html. 10 EUR. freshmeat announce+release 1.452
|
||||||
60 Added --search option.
|
60 Added --search option.
|
||||||
|
|
8
TODO
8
TODO
|
@ -1,5 +1,5 @@
|
||||||
#!/bin/cat
|
#!/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
|
TODO file for imapsync
|
||||||
----------------------
|
----------------------
|
||||||
|
@ -23,6 +23,7 @@ Evaluate
|
||||||
http://www.rackspace.com/apps/email_hosting/migrations
|
http://www.rackspace.com/apps/email_hosting/migrations
|
||||||
http://www.yippiemove.com/
|
http://www.yippiemove.com/
|
||||||
|
|
||||||
|
|
||||||
Find a way to avoid passwords in --debugimap unless needed.
|
Find a way to avoid passwords in --debugimap unless needed.
|
||||||
|
|
||||||
Explain that users can win time/bandwidth by using --expunge
|
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. Add --search option allowing to select messages with any IMAP SEARCH command.
|
||||||
|
|
||||||
DONE. Make --usecache works with --maxage --maxsize etc.
|
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
|
#!/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 strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
@ -171,8 +171,9 @@ print "Nb invoice suspended $nb_invoice_suspended\n" ;
|
||||||
print "Nb invoice sent $nb_invoice_sent\n" ;
|
print "Nb invoice sent $nb_invoice_sent\n" ;
|
||||||
print "Have to send invoices @invoice_not_sent\n" if ( @invoice_not_sent ) ;
|
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"
|
my $total_eur2 = $total_HT_EUR_exo + $total_HT_EUR_ass + $total_TVA_EUR + $total_HT_EUR_sup + $total_TVA_EUR_sup ;
|
||||||
if ( $total_eur != $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 {
|
sub parse_one_line_io {
|
||||||
my $csv = shift ;
|
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 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 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 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 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 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
|
set +x
|
||||||
|
|
||||||
# La totale
|
# La totale
|
||||||
: || /g/public_html/imapsync/W/paypal_reply/paypal_bilan --bnc --debug \
|
: || /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/paypal/paypal_201?_??_complet.csv
|
||||||
|
|
||||||
: || /g/public_html/imapsync/W/paypal_reply/paypal_bilan \
|
: || /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
|
/g/paypal/paypal_201?_??_complet.csv
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,24 @@
|
||||||
# Example file.csv for imapsync massive migration.
|
# Example file.txt for imapsync massive migration.
|
||||||
|
#
|
||||||
# Thanks to http://ss64.com/nt/for_f.html
|
# ==== 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
|
# 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
|
# 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
|
user001_1;password001_1;user001_2;password001_2
|
||||||
user002_1;password002_1;user002_2;password002_2
|
user002_1;password002_1;user002_2;password002_2
|
||||||
user003_1;password003_1;user003_2;password003_2
|
user003_1;password003_1;user003_2;password003_2
|
4
i3
4
i3
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/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`
|
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
|
Good at IMAP migration. More than 36 different IMAP server softwares
|
||||||
supported with success.
|
supported with success.
|
||||||
|
|
||||||
$Revision: 1.456 $
|
$Revision: 1.463 $
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
=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)
|
- hMailServer 5.3.3 [host2], 4.4.1 [host1] (see FAQ)
|
||||||
- iPlanet Messaging server 4.15, 5.1, 5.2
|
- iPlanet Messaging server 4.15, 5.1, 5.2
|
||||||
- IMail 7.15 (Ipswitch/Win2003), 8.12, 11.03 [host1]
|
- IMail 7.15 (Ipswitch/Win2003), 8.12, 11.03 [host1]
|
||||||
- Kerio 7.2.0P1 [host1]
|
- Kerio 7.2.0 Patch 1 [host1] [host2]
|
||||||
- MailEnable 4.23 [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],
|
- MDaemon 7.0.1, 8.0.2, 8.1, 9.5.4 (Windows server 2003 R2 platform), 12 [host2],
|
||||||
12.0.3 [host1]
|
12.0.3 [host1]
|
||||||
- Mercury 4.1 (Windows server 2000 platform)
|
- Mercury 4.1 (Windows server 2000 platform)
|
||||||
|
@ -393,7 +393,7 @@ Success stories reported with the following 44 imap servers
|
||||||
Exchange2007-EP-SP2,
|
Exchange2007-EP-SP2,
|
||||||
Exchange 2010 RTM (Release to Manufacturing) [host2],
|
Exchange 2010 RTM (Release to Manufacturing) [host2],
|
||||||
Exchange 2010 SP1 RU2[host2],
|
Exchange 2010 SP1 RU2[host2],
|
||||||
- Mirapoint
|
- Mirapoint, 4.1.9-GA [host1]
|
||||||
- Netscape Mail Server 3.6 (Wintel !)
|
- Netscape Mail Server 3.6 (Wintel !)
|
||||||
- Netscape Messaging Server 4.15 Patch 7
|
- Netscape Messaging Server 4.15 Patch 7
|
||||||
- OpenMail IMAP server B.07.00.k0 (Samsung Contact ?)
|
- 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/)
|
(http://www.washington.edu/imap/)
|
||||||
- UW - QMail v2.1
|
- UW - QMail v2.1
|
||||||
- VMS, Imap part of TCP/IP suite of VMS 7.3.2
|
- 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-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
|
Zimbra 5.0.24_GA_3356.RHEL4 [host1], 5.5, 6.x
|
||||||
|
|
||||||
|
@ -452,11 +453,11 @@ Pay special attention to options
|
||||||
--usecache
|
--usecache
|
||||||
|
|
||||||
If you have many mailboxes to migrate think about a little
|
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.
|
containing users and passwords.
|
||||||
The separator used in this example is ';'
|
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
|
user001_1;password001_1;user001_2;password001_2
|
||||||
user002_1;password002_1;user002_2;password002_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
|
{ while IFS=';' read u1 p1 u2 p2; do
|
||||||
imapsync --host1 imap.side1.org --user1 "$u1" --password1 "$p1" \
|
imapsync --host1 imap.side1.org --user1 "$u1" --password1 "$p1" \
|
||||||
--host2 imap.side2.org --user2 "$u2" --password2 "$p2" ...
|
--host2 imap.side2.org --user2 "$u2" --password2 "$p2" ...
|
||||||
done ; } < file.csv
|
done ; } < file.txt
|
||||||
|
|
||||||
On Windows the batch program can be:
|
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 ^
|
--host1 imap.side1.org --user1 %%G --password1 %%H ^
|
||||||
--host2 imap.side2.org --user2 %%I --password2 %%J ...
|
--host2 imap.side2.org --user2 %%I --password2 %%J ...
|
||||||
|
|
||||||
|
@ -516,7 +517,7 @@ Entries for imapsync:
|
||||||
|
|
||||||
Feedback (good or bad) will often be welcome.
|
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
|
=cut
|
||||||
|
|
||||||
|
@ -622,7 +623,7 @@ my(
|
||||||
$max_msg_size_in_bytes,
|
$max_msg_size_in_bytes,
|
||||||
$modules_version,
|
$modules_version,
|
||||||
$delete2folders, $delete2foldersonly, $delete2foldersbutnot,
|
$delete2folders, $delete2foldersonly, $delete2foldersbutnot,
|
||||||
$usecache, $debugcache,
|
$usecache, $debugcache, $cacheaftercopy,
|
||||||
$wholeheaderifneeded, %h1_msgs_copy_by_uid, $useuid, $h2_uidguess,
|
$wholeheaderifneeded, %h1_msgs_copy_by_uid, $useuid, $h2_uidguess,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -630,7 +631,7 @@ my(
|
||||||
|
|
||||||
# global variables initialisation
|
# 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_transferred = 0;
|
||||||
$total_bytes_skipped = 0;
|
$total_bytes_skipped = 0;
|
||||||
|
@ -705,6 +706,7 @@ if ( $fast ) {
|
||||||
|
|
||||||
# Activate --usecache if --useuid is set and no --nousecache
|
# Activate --usecache if --useuid is set and no --nousecache
|
||||||
$usecache = 1 if ( $useuid and ( ! defined( $usecache ) ) ) ;
|
$usecache = 1 if ( $useuid and ( ! defined( $usecache ) ) ) ;
|
||||||
|
$cacheaftercopy = 1 if ( $usecache and ( ! defined( $cacheaftercopy ) ) ) ;
|
||||||
|
|
||||||
print banner_imapsync(@argv_copy);
|
print banner_imapsync(@argv_copy);
|
||||||
|
|
||||||
|
@ -739,6 +741,8 @@ $skipsize = (defined $skipsize) ? $skipsize : 1;
|
||||||
$uid1 = defined($uid1) ? $uid1 : 1;
|
$uid1 = defined($uid1) ? $uid1 : 1;
|
||||||
$uid2 = defined($uid2) ? $uid2 : 1;
|
$uid2 = defined($uid2) ? $uid2 : 1;
|
||||||
|
|
||||||
|
$subscribe = defined($subscribe) ? $subscribe : 1;
|
||||||
|
|
||||||
# Allow size mismatch by default
|
# Allow size mismatch by default
|
||||||
$allowsizemismatch = defined($allowsizemismatch) ? $allowsizemismatch : 1;
|
$allowsizemismatch = defined($allowsizemismatch) ? $allowsizemismatch : 1;
|
||||||
|
|
||||||
|
@ -878,7 +882,7 @@ if ( ! ( 1
|
||||||
and $usecache
|
and $usecache
|
||||||
and ! $delete ) ) {
|
and ! $delete ) ) {
|
||||||
die_clean(
|
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" ) ;
|
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 ) ;
|
my $h2_uidnext = $imap2->uidnext( $h2_fold ) ;
|
||||||
|
$debug and print "uidnext h2: $h2_uidnext\n" ;
|
||||||
$h2_uidguess = $h2_uidnext ;
|
$h2_uidguess = $h2_uidnext ;
|
||||||
MESS: foreach my $m_id (@h1_hash_keys_sorted_by_uid) {
|
MESS: foreach my $m_id (@h1_hash_keys_sorted_by_uid) {
|
||||||
my $h1_size = $h1_hash{$m_id}{'s'};
|
my $h1_size = $h1_hash{$m_id}{'s'};
|
||||||
|
@ -1822,8 +1827,8 @@ sub banner_imapsync {
|
||||||
my @argv_copy = @_;
|
my @argv_copy = @_;
|
||||||
my $banner_imapsync = join("",
|
my $banner_imapsync = join("",
|
||||||
'$RCSfile: imapsync,v $ ',
|
'$RCSfile: imapsync,v $ ',
|
||||||
'$Revision: 1.456 $ ',
|
'$Revision: 1.463 $ ',
|
||||||
'$Date: 2011/08/24 04:21:30 $ ',
|
'$Date: 2011/11/12 21:58:52 $ ',
|
||||||
"\n",localhost_info(), "\n",
|
"\n",localhost_info(), "\n",
|
||||||
"Command line used:\n",
|
"Command line used:\n",
|
||||||
"$0 ", command_line_nopassword(@argv_copy), "\n",
|
"$0 ", command_line_nopassword(@argv_copy), "\n",
|
||||||
|
@ -2694,11 +2699,11 @@ sub copy_message {
|
||||||
$new_id = lastuid( $imap2, $h2_fold, $h2_uidguess ) ;
|
$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 );
|
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;
|
$total_bytes_transferred += $h1_size;
|
||||||
$nb_msg_transferred += 1;
|
$nb_msg_transferred += 1;
|
||||||
$debugcache and print "touch $cache_dir/${h1_msg}_$new_id\n" if ( $usecache ) ;
|
$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 $new_id =~ m{^\d+$} );
|
touch( "$cache_dir/${h1_msg}_$new_id" ) if ( $usecache and $cacheaftercopy and $new_id =~ m{^\d+$} ) ;
|
||||||
if ( $delete ) {
|
if ( $delete ) {
|
||||||
print "msg $h1_fold/$h1_msg deleted on host1\n";
|
print "msg $h1_fold/$h1_msg deleted on host1\n";
|
||||||
unless($dry) {
|
unless($dry) {
|
||||||
|
@ -2731,8 +2736,8 @@ sub cache_map {
|
||||||
$debugcache and print "C12: $file\n" ;
|
$debugcache and print "C12: $file\n" ;
|
||||||
( $uid1, $uid2 ) = match_a_cache_file( $file ) ;
|
( $uid1, $uid2 ) = match_a_cache_file( $file ) ;
|
||||||
|
|
||||||
if ( exists( $h1_msgs_hash_ref->{ $uid1 } )
|
if ( exists( $h1_msgs_hash_ref->{ $uid1 // q{} } )
|
||||||
and exists( $h2_msgs_hash_ref->{ $uid2 } ) ) {
|
and exists( $h2_msgs_hash_ref->{ $uid2 // q{} } ) ) {
|
||||||
# keep only the greatest uid2
|
# keep only the greatest uid2
|
||||||
# 130_2301 and
|
# 130_2301 and
|
||||||
# 130_231 => keep only 130 -> 2301
|
# 130_231 => keep only 130 -> 2301
|
||||||
|
@ -3396,6 +3401,7 @@ sub get_options {
|
||||||
"releasecheck!" => \$releasecheck,
|
"releasecheck!" => \$releasecheck,
|
||||||
"modules_version!" => \$modules_version,
|
"modules_version!" => \$modules_version,
|
||||||
"usecache!" => \$usecache,
|
"usecache!" => \$usecache,
|
||||||
|
"cacheaftercopy!" => \$cacheaftercopy,
|
||||||
"debugcache!" => \$debugcache,
|
"debugcache!" => \$debugcache,
|
||||||
"useuid!" => \$useuid,
|
"useuid!" => \$useuid,
|
||||||
);
|
);
|
||||||
|
@ -3580,7 +3586,7 @@ sub check_last_release {
|
||||||
}
|
}
|
||||||
|
|
||||||
sub imapsync_version {
|
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+)/;
|
$rcs =~ m/,v (\d+\.\d+)/;
|
||||||
my $VERSION = ($1) ? $1: "UNKNOWN";
|
my $VERSION = ($1) ? $1: "UNKNOWN";
|
||||||
return($VERSION);
|
return($VERSION);
|
||||||
|
@ -3808,7 +3814,7 @@ Several options are mandatory.
|
||||||
--dry : do nothing, just print what would be done.
|
--dry : do nothing, just print what would be done.
|
||||||
--subscribed : transfers subscribed folders.
|
--subscribed : transfers subscribed folders.
|
||||||
--subscribe : subscribe to the folders transferred on the
|
--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
|
--subscribe_all : subscribe to the folders transferred on the
|
||||||
host2 even if they are not subscribed on host1.
|
host2 even if they are not subscribed on host1.
|
||||||
--nofoldersizes : Do not calculate the size of each folder in bytes
|
--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>
|
<title>Imapsync: an IMAP migration tool ( release <!--#exec cmd="cat VERSION"--> )</title>
|
||||||
<meta name="generator" content="Bluefish 1.0.7"/>
|
<meta name="generator" content="Bluefish 1.0.7"/>
|
||||||
<meta name="author" content="Gilles LAMIRAL"/>
|
<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="copyright" content="None"/>
|
||||||
<meta name="keywords" content="imap, transfert, migration"/>
|
<meta name="keywords" content="imap, transfert, migration"/>
|
||||||
<meta name="description" content="imap migration tool"/>
|
<meta name="description" content="imap migration tool"/>
|
||||||
|
@ -29,8 +29,8 @@
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<ul class="none">
|
<ul class="none">
|
||||||
<li>Buy <a href="#buy_source">imapsync <b>source code</b></a> (any OS)</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> imapsync.exe</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>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>
|
<li>Are your <a href="#imap_server_success">imap servers <b>supported</b></a> by imapsync?</li>
|
||||||
</ul>
|
</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>
|
<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>
|
<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>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<h2>What is imapsync?</h2>
|
<h2>What is imapsync?</h2>
|
||||||
|
|
||||||
<p><b>imapsync</b> software is a command line tool allowing incremental and
|
<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.
|
(written by John Goerzen) for this purpose.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2><a id="NUMBERS"></a>Some numbers</h2>
|
<h2><a id="NUMBERS"></a>Some numbers for 2011</h2>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Number of <b>imapsync users</b> per month: between <b>2 and 3 thousands </b>users</li>
|
<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>Number of <b>imapsync transfers</b> per month: between <b>3 and 11 millions </b>transfers </li>
|
||||||
<li>Pourcentage of <b>Windows</b> users : <b>10%</b></li>
|
<li>Pourcentage between <b>operating systems</b> users running imapsync:
|
||||||
<li><b>Biggest user</b> usage: <b>5 millions</b> of IMAP mailbox transfers <b>in a month</b> (one every 2 seconds)</li>
|
<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>
|
</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>
|
<p>New features or bugfixes since previous releases:</p>
|
||||||
|
|
||||||
<ul>
|
<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>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>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><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>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>Kerio 7.2.0P1</b> success story.</li>
|
||||||
<li>Success: <b>MDaemon 12.0.3</b> success story.</li>
|
<li>Success: <b>MDaemon 12.0.3 success story as host1</b>.</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>
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<p>The next imapsync release should see:</p>
|
<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>
|
<h2><a id="buy_exe"></a>Buy standalone imapsync.exe for win32</h2>
|
||||||
<p>Struggle free from source code and Perl installation by<br/>
|
<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>
|
<p>
|
||||||
30 EUR is equal to around <b>45 USD</b>, no problem to pay in USD (or any currency) with paypal:
|
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>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>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> 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>
|
</table>
|
||||||
|
|
||||||
<h2><a id="imap_server_success"></a>Lists of imap server software failures and success stories</h2>
|
<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>
|
</ul>
|
||||||
|
|
||||||
<p>Now the long reported <b>success stories</b> list: <b>44 different imap server softwares supported!</b><br/>
|
<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>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<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>iPlanet Messaging server 4.15, 5.1, 5.2</li>
|
||||||
<li>IMail 7.15 (Ipswitch/Win2003), 8.12, 11.03 [host1]</li>
|
<li>IMail 7.15 (Ipswitch/Win2003), 8.12, 11.03 [host1]</li>
|
||||||
<li>Kerio 7.2.0P1 [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>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>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],
|
<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 RTM (Release to Manufacturing) [host2],
|
||||||
Exchange 2010 SP1 RU2 [host2]
|
Exchange 2010 SP1 RU2 [host2]
|
||||||
</li>
|
</li>
|
||||||
<li>Mirapoint server</li>
|
<li>Mirapoint server 4.1.9-GA [host1]</li>
|
||||||
<li>Netscape Mail Server 3.6 (Wintel)</li>
|
<li>Netscape Mail Server 3.6 (Wintel)</li>
|
||||||
<li>Netscape Messaging Server 4.15 Patch 7</li>
|
<li>Netscape Messaging Server 4.15 Patch 7</li>
|
||||||
<li>OpenMail IMAP server B.07.00.k0</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>
|
(http://www.washington.edu/imap/)</li>
|
||||||
<li>UW - QMail v2.1</li>
|
<li>UW - QMail v2.1</li>
|
||||||
<li>VMS, Imap part of TCP/IP suite of VMS 7.3.2</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,
|
<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>
|
Zimbra 5.0.24_GA_3356.RHEL4 [host1], 5.5, 6.x</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -449,7 +452,7 @@ alt="Viewable With Any Browser" />
|
||||||
<!--#config timefmt="%D" -->
|
<!--#config timefmt="%D" -->
|
||||||
<!--#config timefmt="%A %B %d, %Y" -->
|
<!--#config timefmt="%A %B %d, %Y" -->
|
||||||
<b>This document last modified on <!--#echo var="LAST_MODIFIED" --></b>
|
<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>
|
</p>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
159
memo
159
memo
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/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() {
|
software_version() {
|
||||||
|
|
||||||
|
@ -14,31 +14,71 @@ statistics_lfo() {
|
||||||
|
|
||||||
cat <<EOFF
|
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" # 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 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 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 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
|
tail -f /usr/local/apache/logs/access_log|cat -n|grep prj/imapsync/VERSION|cat -n |grep VERSION # lfo frequency
|
||||||
EOFF
|
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() {
|
statistics_ks() {
|
||||||
|
|
||||||
cat <<EOFF
|
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_????????|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_????????|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 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_????????|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 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
|
tail -f /var/log/apache2/access.log |cat -n|grep prj/imapsync/VERSION|cat -n |grep VERSION # ks frequency
|
||||||
EOFF
|
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() {
|
statistics_VERSION_lfo() {
|
||||||
|
|
||||||
TMPDIR=.
|
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
|
echo statistics_VERSION_synthesis
|
||||||
statistics_VERSION_synthesis() {
|
statistics_VERSION_synthesis() {
|
||||||
|
year=${1:-`date '+%Y'`}
|
||||||
(
|
(
|
||||||
cd /home/lf/glamiral/imapsync_stats
|
cd /home/lf/glamiral/imapsync_stats
|
||||||
echo Nb users each month
|
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
|
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
|
echo statistics_VERSION_monthly_os 08
|
||||||
statistics_VERSION_yearly_ip() {
|
statistics_VERSION_monthly_os() {
|
||||||
|
month=${1:-`date '+%m'`}
|
||||||
(
|
(
|
||||||
cd /home/imapsync/imapsync_stats
|
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
|
echo statistics_VERSION_synthesis
|
||||||
statistics_VERSION_synthesis() {
|
statistics_VERSION_synthesis() {
|
||||||
|
year=${1:-`date '+%Y'`}
|
||||||
(
|
(
|
||||||
cd /home/imapsync/imapsync_stats
|
cd /home/imapsync/imapsync_stats
|
||||||
echo Nb users each month
|
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
|
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
|
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
|
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
|
||||||
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
|
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 ^
|
--host1 imap.side1.org --user1 %%G --password1 %%H ^
|
||||||
--host2 imap.side2.org --user2 %%I --password2 %%J
|
--host2 imap.side2.org --user2 %%I --password2 %%J
|
||||||
|
|
165
tests.sh
165
tests.sh
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/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:
|
# Example 1:
|
||||||
# CMD_PERL='perl -I./Mail-IMAPClient-3.25/lib' sh -x tests.sh
|
# CMD_PERL='perl -I./Mail-IMAPClient-3.25/lib' sh -x tests.sh
|
||||||
|
@ -20,11 +20,15 @@ HOST2=${HOST2:-'localhost'}
|
||||||
echo HOST2=$HOST2
|
echo HOST2=$HOST2
|
||||||
|
|
||||||
# most tests use:
|
# most tests use:
|
||||||
CMD_PERL=${CMD_PERL:-'perl -I./Mail-IMAPClient-2.2.9'}
|
|
||||||
|
|
||||||
# few debugging tests use:
|
# few debugging tests use:
|
||||||
CMD_PERL_2xx='perl -I./Mail-IMAPClient-2.2.9'
|
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
|
#### Shell pragmas
|
||||||
|
|
||||||
|
@ -542,14 +546,14 @@ ll_nosyncinternaldates() {
|
||||||
|
|
||||||
ll_idatefromheader() {
|
ll_idatefromheader() {
|
||||||
|
|
||||||
can_send && sendtestmessage
|
# can_send && sendtestmessage
|
||||||
|
|
||||||
$CMD_PERL ./imapsync \
|
$CMD_PERL ./imapsync \
|
||||||
--host1 $HOST1 --user1 tata \
|
--host1 $HOST1 --user1 tata \
|
||||||
--passfile1 ../../var/pass/secret.tata \
|
--passfile1 ../../var/pass/secret.tata \
|
||||||
--host2 $HOST2 --user2 titi \
|
--host2 $HOST2 --user2 titi \
|
||||||
--passfile2 ../../var/pass/secret.titi \
|
--passfile2 ../../var/pass/secret.titi \
|
||||||
--folder INBOX.oneemail \
|
--folder INBOX.oneemail2 \
|
||||||
--idatefromheader --debug --dry
|
--idatefromheader --debug --dry
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -575,14 +579,14 @@ ll_subscribed()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ll_subscribe()
|
ll_nosubscribe()
|
||||||
{
|
{
|
||||||
$CMD_PERL ./imapsync \
|
$CMD_PERL ./imapsync \
|
||||||
--host1 $HOST1 --user1 tata \
|
--host1 $HOST1 --user1 tata \
|
||||||
--passfile1 ../../var/pass/secret.tata \
|
--passfile1 ../../var/pass/secret.tata \
|
||||||
--host2 $HOST2 --user2 titi \
|
--host2 $HOST2 --user2 titi \
|
||||||
--passfile2 ../../var/pass/secret.titi \
|
--passfile2 ../../var/pass/secret.titi \
|
||||||
--subscribed --subscribe
|
--subscribed --nosubscribe
|
||||||
}
|
}
|
||||||
|
|
||||||
ll_justconnect()
|
ll_justconnect()
|
||||||
|
@ -802,6 +806,28 @@ ll_search_SENTSINCE()
|
||||||
--search 'SENTSINCE 11-Jul-2011' --folder INBOX
|
--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 \
|
--host2 $HOST2 --user2 titi \
|
||||||
--passfile2 ../../var/pass/secret.titi \
|
--passfile2 ../../var/pass/secret.titi \
|
||||||
--folder INBOX.yop.yap --nofoldersizes \
|
--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/*'
|
echo 'sudo rm -f /home/vmail/titi/.yop.yap/cur/*'
|
||||||
}
|
}
|
||||||
|
@ -1283,10 +1310,10 @@ ll_tls_justlogin() {
|
||||||
|
|
||||||
|
|
||||||
ll_tls_devel() {
|
ll_tls_devel() {
|
||||||
CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' ll_justlogin ll_ssl_justlogin \
|
CMD_PERL=$CMD_PERL_2xx ll_justlogin ll_ssl_justlogin \
|
||||||
&& CMD_PERL='perl -I./Mail-IMAPClient-3.28/lib' ll_justlogin ll_ssl_justlogin \
|
&& CMD_PERL=$CMD_PERL_3xx ll_justlogin ll_ssl_justlogin \
|
||||||
&& CMD_PERL='perl -I./Mail-IMAPClient-2.2.9' ll_tls_justconnect ll_tls_justlogin \
|
&& CMD_PERL=$CMD_PERL_2xx 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_3xx ll_tls_justconnect ll_tls_justlogin
|
||||||
}
|
}
|
||||||
|
|
||||||
ll_tls() {
|
ll_tls() {
|
||||||
|
@ -1346,7 +1373,7 @@ ll_authmech_PLAIN() {
|
||||||
}
|
}
|
||||||
|
|
||||||
ll_authmech_NTLM() {
|
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 \
|
--host1 mail.freshgrillfoods.com --user1 ktraster \
|
||||||
--passfile1 ../../var/pass/secret.ktraster \
|
--passfile1 ../../var/pass/secret.ktraster \
|
||||||
--host2 $HOST2 --user2 titi \
|
--host2 $HOST2 --user2 titi \
|
||||||
|
@ -1357,7 +1384,7 @@ ll_authmech_NTLM() {
|
||||||
}
|
}
|
||||||
|
|
||||||
ll_authmech_NTLM_domain() {
|
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 \
|
--host1 mail.freshgrillfoods.com --user1 ktraster \
|
||||||
--passfile1 ../../var/pass/secret.ktraster \
|
--passfile1 ../../var/pass/secret.ktraster \
|
||||||
--host2 $HOST2 --user2 titi \
|
--host2 $HOST2 --user2 titi \
|
||||||
|
@ -1367,13 +1394,14 @@ ll_authmech_NTLM_domain() {
|
||||||
}
|
}
|
||||||
|
|
||||||
ll_authmech_NTLM_2() {
|
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 \
|
--host1 mail.freshgrillfoods.com --user1 ktraster \
|
||||||
--passfile1 ../../var/pass/secret.ktraster \
|
--passfile1 ../../var/pass/secret.ktraster \
|
||||||
--host2 $HOST2 --user2 titi \
|
--host2 $HOST2 --user2 titi \
|
||||||
--passfile2 ../../var/pass/secret.titi \
|
--passfile2 ../../var/pass/secret.titi \
|
||||||
--authmech1 NTLM --dry
|
--authmech1 NTLM --dry
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1556,8 +1584,6 @@ msw2() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
xxxxx_gmail() {
|
xxxxx_gmail() {
|
||||||
|
|
||||||
! ping -c1 imap.gmail.com || $CMD_PERL ./imapsync \
|
! ping -c1 imap.gmail.com || $CMD_PERL ./imapsync \
|
||||||
|
@ -1569,7 +1595,11 @@ xxxxx_gmail() {
|
||||||
--user1 tata \
|
--user1 tata \
|
||||||
--passfile1 ../../var/pass/secret.tata \
|
--passfile1 ../../var/pass/secret.tata \
|
||||||
--nofoldersizes \
|
--nofoldersizes \
|
||||||
--justfolders --dry --prefix2 '[Gmail]/'
|
--justfolders \
|
||||||
|
--regextrans2 "s, +$,,g" --regextrans2 "s, +/,/,g" \
|
||||||
|
--exclude INBOX.yop.YAP
|
||||||
|
|
||||||
|
#--dry --prefix2 '[Gmail]/'
|
||||||
}
|
}
|
||||||
|
|
||||||
xxxxx_gmail_2() {
|
xxxxx_gmail_2() {
|
||||||
|
@ -1584,7 +1614,6 @@ xxxxx_gmail_2() {
|
||||||
--passfile2 ../../var/pass/secret.gilles_gmail \
|
--passfile2 ../../var/pass/secret.gilles_gmail \
|
||||||
--nofoldersizes \
|
--nofoldersizes \
|
||||||
--regextrans2 's,(.*),SMS,'
|
--regextrans2 's,(.*),SMS,'
|
||||||
#--dry --prefix2 '[Gmail]/'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
xxxxx_gmail_3() {
|
xxxxx_gmail_3() {
|
||||||
|
@ -1641,10 +1670,8 @@ gmail_xxxxx() {
|
||||||
--host2 $HOST2 \
|
--host2 $HOST2 \
|
||||||
--user2 tata \
|
--user2 tata \
|
||||||
--passfile2 ../../var/pass/secret.tata \
|
--passfile2 ../../var/pass/secret.tata \
|
||||||
--useheader 'Message-Id' \
|
|
||||||
--useheader="X-Gmail-Received" \
|
|
||||||
--nofoldersizes \
|
--nofoldersizes \
|
||||||
--prefix1 '[Gmail]/' --dry --justfolders
|
--dry --justfolders
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1657,10 +1684,7 @@ gmail() {
|
||||||
--passfile1 ../../var/pass/secret.gilles_gmail \
|
--passfile1 ../../var/pass/secret.gilles_gmail \
|
||||||
--host2 $HOST2 \
|
--host2 $HOST2 \
|
||||||
--user2 tata \
|
--user2 tata \
|
||||||
--passfile2 ../../var/pass/secret.tata \
|
--passfile2 ../../var/pass/secret.tata
|
||||||
--useheader 'Message-Id' \
|
|
||||||
--useheader="X-Gmail-Received" \
|
|
||||||
--regextrans2 's/\[Gmail\]/Gmail/'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gmail_justfolders() {
|
gmail_justfolders() {
|
||||||
|
@ -1673,9 +1697,6 @@ gmail_justfolders() {
|
||||||
--host2 $HOST2 \
|
--host2 $HOST2 \
|
||||||
--user2 tata \
|
--user2 tata \
|
||||||
--passfile2 ../../var/pass/secret.tata \
|
--passfile2 ../../var/pass/secret.tata \
|
||||||
--useheader 'Message-Id' \
|
|
||||||
--useheader="X-Gmail-Received" \
|
|
||||||
--regextrans2 's/\[Gmail\]/Gmail/' \
|
|
||||||
--justfolders
|
--justfolders
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1704,12 +1725,9 @@ gmail_gmail() {
|
||||||
--passfile1 ../../var/pass/secret.gilles_gmail \
|
--passfile1 ../../var/pass/secret.gilles_gmail \
|
||||||
--host2 imap.gmail.com \
|
--host2 imap.gmail.com \
|
||||||
--ssl2 \
|
--ssl2 \
|
||||||
--user2 gilles.lamiral@gmail.com \
|
--user2 imapsync.gl@gmail.com \
|
||||||
--passfile2 ../../var/pass/secret.gilles_gmail \
|
--passfile2 ../../var/pass/secret.imapsync.gl_gmail \
|
||||||
--useheader 'Message-Id' --useheader="X-Gmail-Received" \
|
--justfolders
|
||||||
--regextrans2 's¤INBOX¤inbox_copy¤' \
|
|
||||||
--folder INBOX \
|
|
||||||
--allowsizemismatch
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1723,9 +1741,7 @@ gmail_gmail2() {
|
||||||
--ssl2 \
|
--ssl2 \
|
||||||
--user2 imapsync.gl@gmail.com \
|
--user2 imapsync.gl@gmail.com \
|
||||||
--passfile2 ../../var/pass/secret.imapsync.gl_gmail \
|
--passfile2 ../../var/pass/secret.imapsync.gl_gmail \
|
||||||
--useheader 'Message-Id' --skipsize \
|
--folder INBOX
|
||||||
--folder INBOX \
|
|
||||||
--allowsizemismatch
|
|
||||||
#--dry # --debug --debugimap # --authmech1 LOGIN
|
#--dry # --debug --debugimap # --authmech1 LOGIN
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1743,8 +1759,11 @@ yahoo_xxxx_login() {
|
||||||
}
|
}
|
||||||
|
|
||||||
yahoo_xxxx() {
|
yahoo_xxxx() {
|
||||||
|
# Yahoo works only with ssl (november 2011)
|
||||||
|
# Could do plain port 143 before
|
||||||
! ping -c1 imap.mail.yahoo.com || $CMD_PERL ./imapsync \
|
! ping -c1 imap.mail.yahoo.com || $CMD_PERL ./imapsync \
|
||||||
--host1 imap.mail.yahoo.com \
|
--host1 imap.mail.yahoo.com \
|
||||||
|
--ssl1 \
|
||||||
--user1 glamiral \
|
--user1 glamiral \
|
||||||
--passfile1 ../../var/pass/secret.gilles_yahoo \
|
--passfile1 ../../var/pass/secret.gilles_yahoo \
|
||||||
--host2 $HOST2 \
|
--host2 $HOST2 \
|
||||||
|
@ -1752,8 +1771,6 @@ yahoo_xxxx() {
|
||||||
--passfile2 ../../var/pass/secret.titi \
|
--passfile2 ../../var/pass/secret.titi \
|
||||||
--sep1 '.'
|
--sep1 '.'
|
||||||
|
|
||||||
# Yahoo works also with ssl
|
|
||||||
# --ssl1 \
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1769,7 +1786,7 @@ allow3xx() {
|
||||||
}
|
}
|
||||||
|
|
||||||
noallow3xx() {
|
noallow3xx() {
|
||||||
! perl -I./Mail-IMAPClient-3.28/lib ./imapsync \
|
! $CMD_PERL_3xx ./imapsync \
|
||||||
--host1 $HOST1 --user1 tata \
|
--host1 $HOST1 --user1 tata \
|
||||||
--passfile1 ../../var/pass/secret.tata \
|
--passfile1 ../../var/pass/secret.tata \
|
||||||
--host2 $HOST2 --user2 titi \
|
--host2 $HOST2 --user2 titi \
|
||||||
|
@ -1985,6 +2002,70 @@ ll_useuid_nousecache()
|
||||||
# specific tests
|
# 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() {
|
b2btech_1() {
|
||||||
$CMD_PERL ./imapsync \
|
$CMD_PERL ./imapsync \
|
||||||
|
@ -2410,7 +2491,7 @@ ll_nosyncinternaldates
|
||||||
ll_idatefromheader
|
ll_idatefromheader
|
||||||
ll_folder_rev
|
ll_folder_rev
|
||||||
ll_subscribed
|
ll_subscribed
|
||||||
ll_subscribe
|
ll_nosubscribe
|
||||||
ll_justfoldersizes
|
ll_justfoldersizes
|
||||||
ll_authmd5
|
ll_authmd5
|
||||||
ll_authmd51
|
ll_authmd51
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue