RCS file: RCS/imapsync,v Working file: imapsync head: 2.284 branch: locks: strict gilles: 2.284 access list: symbolic names: keyword substitution: kv total revisions: 1184; selected revisions: 1184 description: ---------------------------- revision 2.284 locked by: gilles; date: 2024/03/15 05:51:31; author: gilles; state: Exp; lines: +171 -92 Bugfix. No exit on heavy load by default in normal context. Was introduced in revision 2.281 Enhancement. Added the syntax --host1 imap.foo:1234/bar/truc equivalent to --host1 imap.foo --port1 1234 --folderrec bar/truc Enhancement. Added the syntax --host2 imap.foo:1234/bar/truc equivalent to --host2 imap.foo --port2 1234 --subfolder2 bar/truc Enhancement. Now the ssl check is done systematically on the port given by --port1 and --port2 and allow an automatic connection in ssl. This way, options --ssl1 and --ssl2 are no longer mandatory when using ports different than the usual ones, 143 and 993. ---------------------------- revision 2.283 date: 2024/03/11 14:37:15; author: gilles; state: Exp; lines: +138 -12 Preparation to add the feature --host1 imap.foo.kk:1234/folderrec 2124 unit tests ---------------------------- revision 2.282 date: 2024/02/27 15:49:33; author: gilles; state: Exp; lines: +17 -11 Applied https://github.com/imapsync/imapsync/pull/381/files ---------------------------- revision 2.281 date: 2024/02/20 16:30:57; author: gilles; state: Exp; lines: +11 -11 Allow --exitonload in normal context, ie, command line. ---------------------------- revision 2.280 date: 2024/01/29 22:35:18; author: gilles; state: Exp; lines: +10 -8 typo ---------------------------- revision 2.279 date: 2024/01/11 19:14:11; author: gilles; state: Exp; lines: +36 -31 Crit. Some perlcrit fixed. ---------------------------- revision 2.278 date: 2024/01/07 19:10:15; author: gilles; state: Exp; lines: +317 -157 cosmetic with { ---------------------------- revision 2.277 date: 2024/01/02 16:04:36; author: gilles; state: Exp; lines: +25 -14 Enhancement. Now --subfolder2 FOO implies --exclude FOO to avoid subfoldering recursion ---------------------------- revision 2.276 date: 2023/12/26 17:37:14; author: gilles; state: Exp; lines: +42 -11 Bugfix. Pass --tests everywhere ---------------------------- revision 2.275 date: 2023/12/25 23:19:00; author: gilles; state: Exp; lines: +165 -118 Bugfix. Now detect errors in SEARCH command given by --search. Enhancement. Added exit value 121 when most errors are SEARCH errors. Changed all @_ to @ARG 2093 uit tests. ---------------------------- revision 2.274 date: 2023/12/22 13:04:51; author: gilles; state: Exp; lines: +11 -11 2 processors detected on petite this time... ---------------------------- revision 2.273 date: 2023/12/12 16:15:43; author: gilles; state: Exp; lines: +9 -9 Added an early debugsleep to debug timeout with /servimapsync ---------------------------- revision 2.272 date: 2023/12/11 13:47:56; author: gilles; state: Exp; lines: +35 -26 Bugfix. Now loging by default in Docker context. This allows the "tail -f" mechanism with /servimapsync when two same syncs are requested in parallel. ---------------------------- revision 2.271 date: 2023/11/30 18:51:58; author: gilles; state: Exp; lines: +110 -58 Bugfix. Button "Abort!" now working in Docker+CGI context. Added a pid file in that context. 2092 unit tests. ---------------------------- revision 2.270 date: 2023/11/25 20:34:53; author: gilles; state: Exp; lines: +301 -245 Added in final stats the number of Folders deleted on host2 Added in final stats the number of Folders failed to be deleted on host2, if any Refactoring. Deglobalized $delete2folders $delete2foldersonly $delete2foldersbutnot ---------------------------- revision 2.269 date: 2023/10/27 12:50:09; author: gilles; state: Exp; lines: +8 -8 word ---------------------------- revision 2.268 date: 2023/10/27 11:55:30; author: gilles; state: Exp; lines: +8 -8 gram ---------------------------- revision 2.267 date: 2023/10/27 11:48:34; author: gilles; state: Exp; lines: +28 -27 Renamed option --oauthrefreshscript1 to --oauthrefreshcmd1 and --oauthrefreshscript2 to --oauthrefreshcmd1 (shorter) ---------------------------- revision 2.266 date: 2023/10/26 15:53:01; author: gilles; state: Exp; lines: +59 -17 Added tom@mklab patch to have --oauthrefreshscript1 str : An optional script to call, to refresh the host1 access token before each authentication. And --oauthrefreshscript2 str ---------------------------- revision 2.265 date: 2023/10/23 18:39:41; author: gilles; state: Exp; lines: +13 -13 Added charecter & in the filtered characters in sub filter_forbidden_characters() ---------------------------- revision 2.264 date: 2023/10/17 11:09:25; author: gilles; state: Exp; lines: +12 -14 README part. --password1 and --user1 no more needed. ---------------------------- revision 2.263 date: 2023/10/15 20:13:55; author: gilles; state: Exp; lines: +11 -11 Bugfix. tests_login_imap_oauth number of tests. ---------------------------- revision 2.262 date: 2023/10/14 10:17:53; author: gilles; state: Exp; lines: +205 -146 Bugfix. Moved Readonly $SSL_VERIFY_POLICY => IO::Socket::SSL::SSL_VERIFY_NONE above to make all ssl unit test pass. Bugfix. Change oauth2/ directory path to oauth2/oauth2_gmail/ in unit tests. Tests. Added tests to show the bug --oauthdirect without --user or without --password not reconnecting well. Bugfix. --oauthdirect is ok to reconnect without --user nor --password Bugfix. --oauthaccesstoken is is ok to reconnect without --password Cosmetic changes. 2082 unit tests. ---------------------------- revision 2.261 date: 2023/09/27 11:26:09; author: gilles; state: Exp; lines: +10 -10 Bugfix. typo on eleasecheck. ---------------------------- revision 2.260 date: 2023/09/19 23:49:37; author: gilles; state: Exp; lines: +8 -8 Fakefix. Use Encode::find_encoding instead of find_encoding. Look at PAR::Packer -x needed even with -M Encode. Strange. ---------------------------- revision 2.259 date: 2023/09/18 19:57:26; author: gilles; state: Exp; lines: +76 -15 temporary directory is --tmpdir or $HOME/tmp or current directory, in order if defined. ---------------------------- revision 2.258 date: 2023/09/11 12:27:09; author: gilles; state: Exp; lines: +104 -127 Reviewed with Grammarly ---------------------------- revision 2.257 date: 2023/08/29 23:51:58; author: gilles; state: Exp; lines: +16 -14 Bugfix. Docker context ignored --tmpdir https://github.com/imapsync/imapsync/issues/413 ---------------------------- revision 2.256 date: 2023/08/29 23:03:06; author: gilles; state: Exp; lines: +41 -23 Bugfix. Updated the README part to disambiguate the --ssl and --tls options. Both are SSL/TLS. --ssl is imaps. --tls is STARTTLS behavior. ---------------------------- revision 2.255 date: 2023/08/21 10:40:56; author: gilles; state: Exp; lines: +48 -46 Bugfix. tests_pipemess() failed under Docker context. Not sure this fix the issue. ---------------------------- revision 2.254 date: 2023/08/20 21:41:09; author: gilles; state: Exp; lines: +40 -44 Replaced most "-e '/Dockerfile'" with skip_docker( ) ---------------------------- revision 2.253 date: 2023/08/18 20:29:32; author: gilles; state: Exp; lines: +15 -15 Docker context detection is now /Dockerfile instead of /.dockerenv ---------------------------- revision 2.252 date: 2023/08/17 14:54:12; author: gilles; state: Exp; lines: +31 -21 Bugfix. Made tests pass. tests_login_imap_starttls tests_compress_starttls on ks5 and docker context ---------------------------- revision 2.251 date: 2023/08/16 21:30:17; author: gilles; state: Exp; lines: +243 -104 Bugfix. --password1 and --password2 are no longer required when --oauthaccesstoken1 and --oauthaccesstoken2 are used, respectively. Bugfix. --user1 and --user2 are no longer required when --oauthdirect1 and --oauthdirect2 are used, respectively. Enhancement. It is now possible to check login with one side. Example: imapsync --host1 test1.lamiral.info --user1 test1 --password1 secret1 ---------------------------- revision 2.250 date: 2023/07/19 08:52:22; author: gilles; state: Exp; lines: +99 -63 Security. Changed the default tmpdir to $HOME/tmp (instead of /tmp on Linux) CVE-2023-34204 See https://nvd.nist.gov/vuln/detail/CVE-2023-34204 See https://github.com/imapsync/imapsync/issues/399 I did not changed the default in the CGI context because /var/tmp/imapsync_hash is written only if it doesn't exist and /var/tmp/imapsync_cgi/ is created under the supervision of an admin. and I am lazy to change all my hosts. Refactoring. Changed sub random_string() Added sub oauth2_code_verifier Added sub oauth2_code_challenge Began oauth2 integration. ---------------------------- revision 2.249 date: 2023/06/01 11:55:14; author: gilles; state: Exp; lines: +98 -87 Made --tests pass under Windows Cosmetics ---------------------------- revision 2.248 date: 2023/05/31 23:11:52; author: gilles; state: Exp; lines: +9 -9 no more $IO::Socket::SSL::DEBUG = 4 ---------------------------- revision 2.247 date: 2023/05/31 22:54:01; author: gilles; state: Exp; lines: +79 -81 Made --tests pass on macosx ---------------------------- revision 2.246 date: 2023/05/31 21:36:11; author: gilles; state: Exp; lines: +267 -113 made --tests pass under Docker context. ---------------------------- revision 2.245 date: 2023/05/30 17:53:34; author: gilles; state: Exp; lines: +70 -70 Made --tests pass after ks6ipv6.lamiral.info is down ---------------------------- revision 2.244 date: 2023/04/27 11:14:39; author: gilles; state: Exp; lines: +8 -8 commented "use IO::Socket::INET6 ;" ---------------------------- revision 2.243 date: 2023/04/25 08:05:58; author: gilles; state: Exp; lines: +60 -14 CGI context. Now the logfile can only be a-zA-Z0-9_- ---------------------------- revision 2.242 date: 2023/04/16 17:04:48; author: gilles; state: Exp; lines: +10 -10 Bugfix. Changed diskspace test with mkdir instead of touch ---------------------------- revision 2.241 date: 2023/04/16 14:55:49; author: gilles; state: Exp; lines: +8 -8 2020 unit tests. ---------------------------- revision 2.240 date: 2023/04/16 14:52:58; author: gilles; state: Exp; lines: +94 -13 Bugfix. CGI context. Exit with a "503 Service Unavailable" when no disk space is available. ---------------------------- revision 2.239 date: 2023/04/13 08:45:56; author: gilles; state: Exp; lines: +8 -8 CGI context. Max load from 1.5 to 1 ---------------------------- revision 2.238 date: 2023/04/06 14:00:33; author: gilles; state: Exp; lines: +11 -11 tests_cpu_number: on petite (Linux) => 2 ---------------------------- revision 2.237 date: 2023/04/06 12:34:33; author: gilles; state: Exp; lines: +10 -10 Back to 4 memory imapsync memory footprints left to the host as a quit criterium, 1 GB. ---------------------------- revision 2.236 date: 2023/04/05 08:18:01; author: gilles; state: Exp; lines: +9 -9 CGI context. Max load from 2 to 1.5 ---------------------------- revision 2.235 date: 2023/03/30 09:03:44; author: gilles; state: Exp; lines: +12 -12 Bugfix. Made --tests pass. ---------------------------- revision 2.234 date: 2023/03/30 08:34:06; author: gilles; state: Exp; lines: +11 -11 CGI context. Load 2 per cpu instead of load 1 max per cpu. CGI context. Memory threshold leaves 500 MB to the host instead of 1 GB. ---------------------------- revision 2.233 date: 2023/03/01 16:20:38; author: gilles; state: Exp; lines: +9 -8 No ipv6 available on macstadium lent Mac mini G3D ---------------------------- revision 2.232 date: 2023/03/01 12:09:58; author: gilles; state: Exp; lines: +11 -8 Comment about CGI memory threshold "leaves 4 memory imapsync memory footprints to the host, ie 1 GB free for anything else." ---------------------------- revision 2.231 date: 2023/01/24 22:23:42; author: gilles; state: Exp; lines: +12 -12 moved load_modules() ---------------------------- revision 2.230 date: 2023/01/24 14:36:04; author: gilles; state: Exp; lines: +190 -119 Bugfix. Reread oauth2 files upon disconnections ---------------------------- revision 2.229 date: 2022/09/14 18:08:24; author: gilles; state: Exp; lines: +16 -16 Make pass "make linuxtests win32tests win64tests mactests" ---------------------------- revision 2.228 date: 2022/09/13 12:14:02; author: gilles; state: Exp; lines: +10 -9 Doc. --oauthaccesstoken1 needs --password1 presence. This is a bug. ---------------------------- revision 2.227 date: 2022/07/28 15:59:38; author: gilles; state: Exp; lines: +347 -112 Bugfix. Fixed memory measurement on MacOS and Win32 Win64 ---------------------------- revision 2.226 date: 2022/07/15 12:02:47; author: gilles; state: Exp; lines: +30 -26 1966 unit tests ---------------------------- revision 2.225 date: 2022/07/14 16:56:11; author: gilles; state: Exp; lines: +14 -11 *** empty log message *** ---------------------------- revision 2.224 date: 2022/07/13 17:33:42; author: gilles; state: Exp; lines: +8 -8 typo connexions connections ---------------------------- revision 2.223 date: 2022/07/03 10:39:30; author: gilles; state: Exp; lines: +48 -11 Default is now like --noemailreport1 --noemailreport2, no final email report. Popular demand. Added a stat value: memory footprint times time spent during the sync. Unity MiB * hour. Line "Memory consumption at the end". ---------------------------- revision 2.222 date: 2022/06/29 12:13:58; author: gilles; state: Exp; lines: +9 -10 Remove --memorystress from CGI options. ---------------------------- revision 2.221 date: 2022/06/28 23:12:01; author: gilles; state: Exp; lines: +72 -63 CGI context. Refuse to serve when the cpu load is greater than 1 per cpu. A load of 3.9 with 4 cores is ok. ---------------------------- revision 2.220 date: 2022/06/28 19:01:18; author: gilles; state: Exp; lines: +8 -8 CGI context. Refuse to server when memory left is less than 1 GB. ---------------------------- revision 2.219 date: 2022/06/25 21:33:30; author: gilles; state: Exp; lines: +24 -19 heavy load by cpu limit from 6 to 3. Because 6 is too big on ks6 ---------------------------- revision 2.218 date: 2022/06/25 06:38:24; author: gilles; state: Exp; lines: +12 -9 Typo. memory_consumption_all_pids_percent with only 2 decimals. ---------------------------- revision 2.217 date: 2022/06/25 06:16:42; author: gilles; state: Exp; lines: +148 -52 CGI context. Bring back to exit on heavy load by cpu. limit is a load of 6 per core, roughly the number of processes running constantly per core. ---------------------------- revision 2.216 date: 2022/06/22 18:49:55; author: gilles; state: Exp; lines: +9 -9 typo seconde second ---------------------------- revision 2.215 date: 2022/06/22 01:44:01; author: gilles; state: Exp; lines: +34 -21 Added --exitonload option. Only available in CGI context for now. ---------------------------- revision 2.214 date: 2022/06/08 21:28:34; author: gilles; state: Exp; lines: +11 -11 load_percent_threshold is now room for two average imapsync processes. ---------------------------- revision 2.213 date: 2022/05/20 11:57:22; author: gilles; state: Exp; lines: +48 -33 Filtering buggy flags is now case insensitive. \Junk or \JUNK or \jUnK etc. Refactoring. Added sub tests_filterbuggyflags() ---------------------------- revision 2.212 date: 2022/05/19 11:18:09; author: gilles; state: Exp; lines: +67 -16 Bugfix. Do not crash when Proc::ProcessTable field pctmem does not exist. ---------------------------- revision 2.211 date: 2022/05/19 08:37:14; author: gilles; state: Exp; lines: +10 -10 Last commit 2.210 did not pass the unit tests. Fixed. ---------------------------- revision 2.210 date: 2022/05/19 08:09:57; author: gilles; state: Exp; lines: +10 -10 Added filtering \JUNK flag in cgi context or with --filterbuggyflags ---------------------------- revision 2.209 date: 2022/05/15 11:03:02; author: gilles; state: Exp; lines: +37 -9 Enhancement. heavy_load_percent_threshold now based on memory_footprint_average_bytes 300 MB ---------------------------- revision 2.208 date: 2022/05/13 20:14:25; author: gilles; state: Exp; lines: +8 -8 90% ---------------------------- revision 2.207 date: 2022/05/12 16:31:10; author: gilles; state: Exp; lines: +21 -21 memory limit to quit from 100% to 50%. Quick fix. ---------------------------- revision 2.206 date: 2022/05/12 11:07:07; author: gilles; state: Exp; lines: +139 -54 Added dependency. Perl module Proc::ProcessTable. Not mandatory anyway. For now. CGI context. Exit when 100% of RAM memory is used by processes. Exit with status value 69 and message "EX_UNAVAILABLE: service unavailable". Added the % of RAM used by all processes in the memory infi line. ---------------------------- revision 2.205 date: 2022/05/09 21:29:07; author: gilles; state: Exp; lines: +264 -247 perlcritic. Change all "= shift ;" to " = shift @ARG ;" ---------------------------- revision 2.204 date: 2022/05/03 22:28:53; author: gilles; state: Exp; lines: +34 -9 Do not report final emails when --dry or --justfolders ---------------------------- revision 2.203 date: 2022/04/26 22:57:46; author: gilles; state: Exp; lines: +42 -17 Bugfix. Allow quota like: QUOTA "user-defined quota (konsoleH)" (STORAGE 988 48829 MESSAGE 20 20) Enhancement. Added --memorystress to check memory crunching in normal run. ---------------------------- revision 2.202 date: 2022/04/18 23:40:20; author: gilles; state: Exp; lines: +89 -20 CGI context. Do not append the log file name to ../list_all_logs_auto.txt when there is no parameters. ---------------------------- revision 2.201 date: 2022/04/09 08:45:27; author: gilles; state: Exp; lines: +12 -12 Moved all getppid to mygetppid (it adds a comment on Windows, where ppid is too complicated to get. ---------------------------- revision 2.200 date: 2022/04/04 16:05:55; author: gilles; state: Exp; lines: +14 -10 typo. "check the certificate server" => "check the server certificate." ---------------------------- revision 2.199 date: 2022/04/01 19:45:33; author: gilles; state: Exp; lines: +15 -14 Enhancement. Added the local ip address for the imap connexions. It can help configuring firewalls to allow the imap source IP. ---------------------------- revision 2.198 date: 2022/04/01 11:13:01; author: gilles; state: Exp; lines: +10 -12 Added SERVER_NAME SERVER_ADDR SERVER_ADMIN variables and values to the output. ---------------------------- revision 2.197 date: 2022/03/30 10:43:22; author: gilles; state: Exp; lines: +29 -28 Bugfix. --tests --testslive was listing 0 folders. Added message "Use --noemailreport1 to avoid it" after putting the email final report in INBOX. ---------------------------- revision 2.196 date: 2022/03/25 20:35:59; author: gilles; state: Exp; lines: +120 -67 Bugfix. Dates were not displayed under Windows because POSIX::strftime %e is not portable. Bugfix. Several other places where dates were wrong on Windows. ---------------------------- revision 2.195 date: 2022/03/24 10:00:09; author: gilles; state: Exp; lines: +26 -29 Added warning "parsing headers of folder ... It can take time for huge folders. Be patient." ---------------------------- revision 2.194 date: 2022/03/17 11:04:16; author: gilles; state: Exp; lines: +16 -15 Bugfix. --var HTTP_COOKIE=proximapsync_runs=31 was not working because of the second = ---------------------------- revision 2.193 date: 2022/03/15 11:30:02; author: gilles; state: Exp; lines: +101 -105 Refactor. Deglobalized $debuglist $debugflags Refactor. Added sync->{ permanentflags2 } ---------------------------- revision 2.192 date: 2022/03/11 18:26:06; author: gilles; state: Exp; lines: +88 -46 Bugfix. Do not allow --skipcrossduplicates and --usecache. Exit EX_USAGE 64 ---------------------------- revision 2.191 date: 2022/03/08 10:55:21; author: gilles; state: Exp; lines: +131 -48 Added --var to pass values from proximapsync for variables REMOTE_ADDR REMOTE_HOST HTTP_REFERER HTTP_USER_AGENT SERVER_SOFTWARE SERVER_PORT HTTP_COOKIE ---------------------------- revision 2.190 date: 2022/03/01 21:48:11; author: gilles; state: Exp; lines: +31 -8 Bugfix. Do not turn on --delete2duplicates when --syncduplicates is on, unless --delete2duplicates is given. ---------------------------- revision 2.189 date: 2022/02/28 18:10:10; author: gilles; state: Exp; lines: +9 -11 Upped ERRORS_MAX_CGI from 20 to 500 ---------------------------- revision 2.188 date: 2022/02/26 22:43:55; author: gilles; state: Exp; lines: +182 -100 Refactor. Changed setlogfile() to be usable for different logs by proximapsync. ---------------------------- revision 2.187 date: 2022/02/23 12:01:25; author: gilles; state: Exp; lines: +26 -7 Documented why total sizes can differ even when the sync is perfect. ---------------------------- revision 2.186 date: 2022/02/22 22:39:50; author: gilles; state: Exp; lines: +27 -21 Bugfix. Redirect STDERR to STDOUT in all cases, --log or --nolog ---------------------------- revision 2.185 date: 2022/02/11 21:36:18; author: gilles; state: Exp; lines: +19 -11 Added option --emailreport1 and --emailreport2. On by default. Use --noemailreport1 and --noemailreport2 to avoid final emails reports in each INBOX. ---------------------------- revision 2.184 date: 2022/02/10 17:37:57; author: gilles; state: Exp; lines: +91 -31 Added final report to source account also. ---------------------------- revision 2.183 date: 2022/02/06 13:14:33; author: gilles; state: Exp; lines: +29 -29 Added folder name in the debug output of header identificators ---------------------------- revision 2.182 date: 2022/02/01 20:49:51; author: gilles; state: Exp; lines: +10 -10 Bugfix. GMT is good but the tests had to be changed also... ---------------------------- revision 2.181 date: 2022/02/01 20:19:22; author: gilles; state: Exp; lines: +23 -10 Bugfix. Use GMT in tests_email_report_message_id Bugfix. Make the email report w3c validated. Crazy man! ---------------------------- revision 2.180 date: 2022/02/01 15:14:51; author: gilles; state: Exp; lines: +373 -30 Enhancement. Append a final email report on account2 at the end of the synchronization. Will be optionnal soon. ---------------------------- revision 2.179 date: 2022/01/26 14:32:19; author: gilles; state: Exp; lines: +134 -139 README reread, grammarly on it. Added "Posta inviata" so \Sent with --automap ---------------------------- revision 2.178 date: 2022/01/12 21:28:37; author: gilles; state: Exp; lines: +75 -13 Added tests_compress_ssl() ---------------------------- revision 2.177 date: 2021/12/23 20:38:44; author: gilles; state: Exp; lines: +8 -8 Bugfix. 1849 -> 1848 unit tests ---------------------------- revision 2.176 date: 2021/12/23 20:19:04; author: gilles; state: Exp; lines: +35 -23 Bugfix. memory consumption on Mac was not relevant. Use RSS instead of VSZ, on Mac only. Linux stays with VSZ. ---------------------------- revision 2.175 date: 2021/12/21 17:46:14; author: gilles; state: Exp; lines: +23 -21 Bugix. Darwin, fixed loadavg tests, no more W/t/loadavg.out needed. ---------------------------- revision 2.174 date: 2021/12/14 15:51:58; author: gilles; state: Exp; lines: +62 -17 Added advice for: ERR_APPEND_SIZE ERR_CONNECTION_FAILURE_HOST1 ERR_CONNECTION_FAILURE_HOST2 ERR_AUTHENTICATION_FAILURE_USER1 ERR_AUTHENTICATION_FAILURE_USER2 ---------------------------- revision 2.173 date: 2021/12/09 18:30:34; author: gilles; state: Exp; lines: +61 -40 Bugfix. Made reconnect mechanism works with --oauthdirect1 --oauthdirect2 --oauthaccesstoken1 --oauthaccesstoken2 ---------------------------- revision 2.172 date: 2021/12/07 18:19:42; author: gilles; state: Exp; lines: +27 -17 Added some tests to tests_get_options_from_string() and tests_get_options_extra() I can not have the unknown options back with Getopt::Long::GetOptionsFromString(), just the unknown values, ie, caca but not --caca ---------------------------- revision 2.171 date: 2021/12/07 17:50:12; author: gilles; state: Exp; lines: +14 -8 Added --ssl1 --ssl2 --tls1 --tls2 --compress1 --compress2 to get_options_from_string() ---------------------------- revision 2.170 date: 2021/12/07 17:19:44; author: gilles; state: Exp; lines: +12 -8 Added --keepalive1 --keepalive2 --reconnectretry1 --reconnectretry2 in get_options_from_string() ---------------------------- revision 2.169 date: 2021/12/07 17:13:44; author: gilles; state: Exp; lines: +101 -36 Added --keepalive1 and --keepalive2 options. On by default. See https://metacpan.org/pod/Mail::IMAPClient#Keepalive Use --nokeepalive1 and --nokeepalive2 to disable Keepalive. ---------------------------- revision 2.168 date: 2021/12/05 23:27:27; author: gilles; state: Exp; lines: +29 -11 Added --debugflags --errorsmax --folder --timeout in options from file ---------------------------- revision 2.167 date: 2021/12/02 16:59:51; author: gilles; state: Exp; lines: +9 -9 Moved the call to extra options after the chdir of the CGI context. ---------------------------- revision 2.166 date: 2021/12/02 15:23:37; author: gilles; state: Exp; lines: +107 -9 Now read extra options on the first line of the file ./options_extra.txt if it is present and readable. ---------------------------- revision 2.165 date: 2021/11/30 20:27:38; author: gilles; state: Exp; lines: +30 -11 cpu_time rounded with 2 decimals. Added 4 tests when no compression is on. ---------------------------- revision 2.164 date: 2021/11/24 21:26:46; author: gilles; state: Exp; lines: +12 -11 Compression no more on by default. Just to see. ---------------------------- revision 2.163 date: 2021/11/20 20:11:46; author: gilles; state: Exp; lines: +8 -7 Bugfix. imapsync --version was buggy in docker context. ---------------------------- revision 2.162 date: 2021/11/20 10:16:33; author: gilles; state: Exp; lines: +14 -12 Docker. Current working directory changed from /var/tmp to /var/tmp/uid_$EFFECTIVE_USER_ID ---------------------------- revision 2.161 date: 2021/11/19 18:17:48; author: gilles; state: Exp; lines: +8 -8 Bugfix. inline doc mentioned always --nocompress1 ---------------------------- revision 2.160 date: 2021/11/19 14:40:58; author: gilles; state: Exp; lines: +10 -7 Added inline documentation about --nocompress1 and --nocompress2 ---------------------------- revision 2.159 date: 2021/11/19 14:29:31; author: gilles; state: Exp; lines: +113 -12 Dependency. Added use Compress::Zlib Enhancement. Added compression in imap. On by default no matter the capability announced. Use --nocompress1 and --nocompress2 to turn it off. ---------------------------- revision 2.158 date: 2021/11/13 20:01:35; author: gilles; state: Exp; lines: +13 -7 Added README help for --truncmess ---------------------------- revision 2.157 date: 2021/10/23 21:51:43; author: gilles; state: Exp; lines: +61 -16 Refactor. Deglobalized $debugcontent. Added debugcontent() function. 1800 unit tests. ---------------------------- revision 2.156 date: 2021/10/12 13:36:36; author: gilles; state: Exp; lines: +72 -71 Added comment for ERR_FLAGS "Many STORE errors with FLAGS. Retry with the option --noresyncflags" Refactored errors_incr() and errors_listing() Bugfix. errors_incr() existed with CATCH_ALL ---------------------------- revision 2.155 date: 2021/10/01 07:46:55; author: gilles; state: Exp; lines: +9 -8 Like --useheader X-Gmail-Received --useheader Message-Id when --gmail1 --gmail2 ---------------------------- revision 2.154 date: 2021/09/29 20:38:04; author: gilles; state: Exp; lines: +8 -8 Bugfix. Added 'E&AwE-le&AwE-ments envoye&AwE-s' in possible_special ---------------------------- revision 2.153 date: 2021/09/29 13:56:15; author: gilles; state: Exp; lines: +34 -12 Does not checknoabletosearch if --justfolders When creating folder check if selectable and consider ok if selectable ---------------------------- revision 2.152 date: 2021/09/29 12:03:12; author: gilles; state: Exp; lines: +362 -58 Added inline advice on error ERR_OVERQUOTA Added inline advice on error ERR_TRANSFER_EXCEEDED Renamed function bytes_display_string() bytes_display_string_bin() bytes_display_string_bin converts bytes to human KiB MiB GiB TiB PiB Added function bytes_display_string_dec() to convert bytes to human decimal KB MB GB TB PB (1000 base) ---------------------------- revision 2.151 date: 2021/09/08 10:34:25; author: gilles; state: Exp; lines: +23 -18 Bugfix. load average on macosx was sometimes buggy. locale float 3,14 instead of 3.14 ---------------------------- revision 2.150 date: 2021/08/08 12:10:51; author: gilles; state: Exp; lines: +9 -10 Refactor. Deglobalized warn_release variable ---------------------------- revision 2.149 date: 2021/07/31 11:24:24; author: gilles; state: Exp; lines: +7 -26 Removed --fast option. ---------------------------- revision 2.148 date: 2021/07/22 14:21:09; author: gilles; state: Exp; lines: +10 -10 Bugfix. abort didn't do charset=UTF-8; same for heavy load 503 Service Unavailable ---------------------------- revision 2.147 date: 2021/07/22 13:13:50; author: gilles; state: Exp; lines: +12 -12 Bugfix. The maximum number a pid can be is 2^22, not 2^32. ---------------------------- revision 2.146 date: 2021/07/22 12:48:21; author: gilles; state: Exp; lines: +8 -8 1742 unit tests. ---------------------------- revision 2.145 date: 2021/07/22 12:45:31; author: gilles; state: Exp; lines: +16 -13 Bugfix. Up the maximum number a pid can be. From 99999 to 2^32. See https://unix.stackexchange.com/questions/16883/what-is-the-maximum-value-of-the-process-id ---------------------------- revision 2.144 date: 2021/07/17 18:07:59; author: gilles; state: Exp; lines: +13 -10 Just an experimental loaddelay forced to 0. ---------------------------- revision 2.143 date: 2021/07/12 19:45:44; author: gilles; state: Exp; lines: +111 -15 Bugfix. Under docker context --version was buggy, too verbose. ---------------------------- revision 2.142 date: 2021/07/12 14:04:01; author: gilles; state: Exp; lines: +17 -19 Removed that hard limit --maxsize 35_651_584 set by --gmail2 since CAPABILITY is used and good. ---------------------------- revision 2.141 date: 2021/07/06 02:59:19; author: gilles; state: Exp; lines: +8 -8 cpu_time param ---------------------------- revision 2.140 date: 2021/07/05 20:14:18; author: gilles; state: Exp; lines: +14 -10 Fixed perlcrit 4 severity 4 violations. ---------------------------- revision 2.139 date: 2021/07/04 21:03:28; author: gilles; state: Exp; lines: +14 -14 Adapted to oauth2/generate_gmail_token ---------------------------- revision 2.138 date: 2021/07/01 08:40:50; author: gilles; state: Exp; lines: +13 -10 Moved oauthgenerateaccess() call. ---------------------------- revision 2.137 date: 2021/07/01 08:13:52; author: gilles; state: Exp; lines: +32 -10 Bugfix. imapsync did nothing with the previous change. ---------------------------- revision 2.136 date: 2021/06/30 23:16:13; author: gilles; state: Exp; lines: +295 -176 Review the README part. Added option --filterbuggyflags to filter the well known buggy flags that generate errors "BAD Invalid system flag" or "NO APPEND Invalid flag list". 1734 unit tests. Some refactoring. ---------------------------- revision 2.135 date: 2021/06/29 20:38:40; author: gilles; state: Exp; lines: +58 -46 Reviewed README section until flags options. ---------------------------- revision 2.134 date: 2021/06/29 12:14:49; author: gilles; state: Exp; lines: +40 -14 Avoid unit tests on polarhome macosx where "ssl3_get_server_certificate:certificate verify failed". No clue to fix that. ---------------------------- revision 2.133 date: 2021/06/28 08:07:25; author: gilles; state: Exp; lines: +13 -12 Fixed some unit tests for polarhome macosx ---------------------------- revision 2.132 date: 2021/06/26 23:19:40; author: gilles; state: Exp; lines: +40 -17 Added tests to test cpu_number() on Windows MacOS ---------------------------- revision 2.131 date: 2021/06/25 16:20:38; author: gilles; state: Exp; lines: +57 -13 Bugfix. cpu_number was accurate only on Linux. Added Freebsd ---------------------------- revision 2.130 date: 2021/06/25 11:11:03; author: gilles; state: Exp; lines: +108 -36 Added percentage of all cpu in stats ---------------------------- revision 2.129 date: 2021/06/24 16:59:49; author: gilles; state: Exp; lines: +8 -8 Removed a debug print ---------------------------- revision 2.128 date: 2021/06/24 16:54:00; author: gilles; state: Exp; lines: +8 -8 1702 tests ---------------------------- revision 2.127 date: 2021/06/24 15:42:11; author: gilles; state: Exp; lines: +46 -16 Added statistic line "CPU time and %cpu" ---------------------------- revision 2.126 date: 2021/06/24 09:37:47; author: gilles; state: Exp; lines: +87 -33 Added --loglogfile option. Append ../list_all_logs_auto.txt with the logfile name. On by default in CGI context. Some refactoring, file_to_array file_to_string functions. ---------------------------- revision 2.125 date: 2021/06/20 16:50:46; author: gilles; state: Exp; lines: +66 -25 Do not check selectable folders for huge accounts with more than 152 folders. 98percentile of /X ---------------------------- revision 2.124 date: 2021/06/17 12:29:22; author: gilles; state: Exp; lines: +8 -8 Testfix. Sometimes GMT is output UTC. ---------------------------- revision 2.123 date: 2021/06/17 11:56:20; author: gilles; state: Exp; lines: +30 -27 CGI context. Sync duplicates by default in cgi context. ---------------------------- revision 2.122 date: 2021/06/16 19:36:21; author: gilles; state: Exp; lines: +15 -17 Stats. Final line "Biggest message" was in fact "Biggest message" to be transferred. Now it is "Biggest message transferred". ---------------------------- revision 2.121 date: 2021/06/15 22:43:18; author: gilles; state: Exp; lines: +150 -89 Refactor. Splited sub myGetOptions() into sub setvalfromcgikey sub setvalfromlist sub setvalfromhash sub setvalfromcheckbox. Not very clean but better than the huge old one. ---------------------------- revision 2.120 date: 2021/06/15 22:32:28; author: gilles; state: Exp; lines: +54 -38 Change time presentation on ETA and in final stats. Example: Wednesday 16 June 2021-06-16 00:32:05 +0200 CEST Added the timezone and full day ---------------------------- revision 2.119 date: 2021/06/06 10:21:34; author: gilles; state: Exp; lines: +162 -109 Added localtimez function to replace localtime, date and time with the timezone added. Not replaced yet. Remove a useless warning "File xxx.pid does not exist" in tail function. Made oauth2 tests dependent on oauth2_string_for_oauthdirect.txt oauth2_access_token.txt presence. Added info "Exiting because of --justbanner" with --justbanner ---------------------------- revision 2.118 date: 2021/05/31 22:18:16; author: gilles; state: Exp; lines: +16 -11 In CGI context, the log directory is no longer ./LOG_imapsync/ but simply ./ It should fasten the searches and grep ---------------------------- revision 2.117 date: 2021/05/27 18:04:12; author: gilles; state: Exp; lines: +20 -16 Load limit 3x => 6x ---------------------------- revision 2.116 date: 2021/05/21 16:41:12; author: gilles; state: Exp; lines: +39 -53 load limit upped to 3 ---------------------------- revision 2.115 date: 2021/05/05 23:41:12; author: gilles; state: Exp; lines: +11 -8 Advantage of a file when using --oauthaccesstoken1 str ---------------------------- revision 2.114 date: 2021/05/05 19:03:24; author: gilles; state: Exp; lines: +48 -21 Documented --oauthaccesstoken1 and --oauthdirect1 and the 2 sisters. ---------------------------- revision 2.113 date: 2021/05/03 20:47:18; author: gilles; state: Exp; lines: +118 -35 Implemented --oauthaccesstoken1 and --oauthaccesstoken2 1691 unit tests ---------------------------- revision 2.112 date: 2021/04/30 17:55:05; author: gilles; state: Exp; lines: +257 -248 Added --noabletosearch README Removed trailing blanks, perlcrit "Found "\N{SPACE}" at the end of the line" ---------------------------- revision 2.111 date: 2021/04/30 07:40:41; author: gilles; state: Exp; lines: +615 -408 Added options --oauthdirect1 and --oauthdirect2 to support OAUTH2 authentication. The parameter value is the direct string given to the XOAUTH2 imap command. Added option --syncduplicates to sync duplicates. Added option --trylogin on by default. After a login failure of any king, imapsync tries to login with the LOGIN command. Use --notrylogin to avoid that. Reduced sub login_imap() number of parameters from 19 to 10. Added options --oauthaccesstoken1 and --oauthaccesstoken2, not implemented yet. Removed old OAUTH1 support. I hope no one will be touched by this removal, if yes, I'll bring it back. ---------------------------- revision 2.110 date: 2021/03/28 17:34:29; author: gilles; state: Exp; lines: +25 -16 --timeout can now be a float (was only integer). Same for --timeout1 --timeout2 Warning about a timeout by the webserver in CGI mode. $timeout no longer a variable (global). ---------------------------- revision 2.109 date: 2021/03/13 19:39:37; author: gilles; state: Exp; lines: +59 -25 Added message ""No log file because of option --nolog". Added possibility of no logging in cgi context, with log=0 or log= in the parameters Added possibility of float number for --simulong instead of integer. 1672 unit tests. ---------------------------- revision 2.108 date: 2021/02/25 10:35:33; author: gilles; state: Exp; lines: +27 -23 Bugfix. In sub delete_messages_on_any, the uidexpunge_or_expunge call was always done with an empty array so no expunge was done there. Fortunately, expunge was done elsewhere so this bug was not disastrous. There is functionnal tests to check expunge behaviour anyway. ---------------------------- revision 2.107 date: 2021/02/09 20:02:55; author: gilles; state: Exp; lines: +9 -9 Back from Message-Id to Message-Id Received in cgisetcontext ---------------------------- revision 2.106 date: 2021/02/09 19:59:13; author: gilles; state: Exp; lines: +222 -16 Added some tests in sub tests_regexmess to remove a buggy header on multi-lines not all starting with a blank. 's{X-Spam-Report:.*?\n(^[^\n]+:|^\r?\n)}{$1}xms' ---------------------------- revision 2.105 date: 2021/02/02 11:17:15; author: gilles; state: Exp; lines: +30 -14 Added tests "Add a final \r\n if missing" in sub tests_regexmess ---------------------------- revision 2.104 date: 2021/01/27 15:14:09; author: gilles; state: Exp; lines: +76 -70 Added test to "Change 8bit characters in whole email to X characters" in sub tests_regexmess ---------------------------- revision 2.103 date: 2021/01/20 16:28:06; author: gilles; state: Exp; lines: +46 -20 Removed the exit_clean call when "Can not go to tls encryption on" in sub login_imap() 1652 tests ---------------------------- revision 2.102 date: 2020/12/13 23:48:30; author: gilles; state: Exp; lines: +43 -20 Bugfix. EXIT_ERR_APPEND_VIRUS had no message upon exit. Bugfix. In --dry mode the final "Messages transferred : 0 (could be 1264 without dry mode)" is ok when the folders does not exist yet. ---------------------------- revision 2.101 date: 2020/12/08 23:47:13; author: gilles; state: Exp; lines: +171 -40 Added EXIT_CONNECTION_FAILURE_HOST1 101 return code Added EXIT_CONNECTION_FAILURE_HOST2 102 return code Added EXIT_AUTHENTICATION_FAILURE_USER1 161 return code Added EXIT_AUTHENTICATION_FAILURE_USER2 162 return code Do both side login and authentication before exiting on falure. ---------------------------- revision 2.100 date: 2020/12/07 00:45:50; author: gilles; state: Exp; lines: +24 -9 New numbering from 1.999 directly to 2.100 I want to avoid 1.1000 and sorting issues in directory listing. Added option --dry1 it avoids to fetch the message on host1. --dry1 is on when --dry is on. It speeds up --dry very much. ---------------------------- revision 1.999 date: 2020/12/02 20:41:50; author: gilles; state: Exp; lines: +69 -34 Added a section "How do you know a sync is finished and well done?" When creating a directory, now the current directory is also printed. It helps when the directory created is relative. Bugfix. resolv: imapsync.lamiral.info => 2001:41d0:2:84e0::1 (was 91.121.221.224) ---------------------------- revision 1.998 date: 2020/08/17 10:18:25; author: gilles; state: Exp; lines: +302 -108 1638 regression tests. Added option --abortbyfile to be able to be aborted by a file presence (context: webserver on windows) Reviewed and fixed sub acls_sync(). Did not work and made bad things. Added exit value EXIT_BY_FILE => 7 Added exit value EXIT_TRANSFER_EXCEEDED => 118 ---------------------------- revision 1.997 date: 2020/07/16 10:58:14; author: gilles; state: Exp; lines: +20 -17 Gmail update gmail12: maxbytespersecond 20_000 maxbytesafter 1_000_000_000 gmail1 : maxbytespersecond 40_000 maxbytesafter 3_000_000_000 (was 2_500_000_000) gmail2 : maxbytespersecond 20_000 maxbytesafter 1_000_000_000 ---------------------------- revision 1.996 date: 2020/06/19 09:53:38; author: gilles; state: Exp; lines: +69 -20 Added exit 118 EXIT_TRANSFER_EXCEEDED when "Maximum bytes transferred reached" with option --exitwhenover Added error type ERR_TRANSFER_EXCEEDED. ---------------------------- revision 1.995 date: 2020/06/17 18:55:01; author: gilles; state: Exp; lines: +9 -8 Added exitwhenover as an option in cgi context. ---------------------------- revision 1.994 date: 2020/06/14 12:10:30; author: gilles; state: Exp; lines: +76 -22 Bugfix. Fixed some "Exiting with return value ()". Added ERR_NOTHING_REPORTED error and exit EXIT_CATCH_ALL ie 1 in case. ---------------------------- revision 1.993 date: 2020/06/12 09:10:20; author: gilles; state: Exp; lines: +10 -8 Docfix. Fixed issue https://github.com/imapsync/imapsync/issues/213 Precision about --delete2duplicates ---------------------------- revision 1.992 date: 2020/05/29 12:14:53; author: gilles; state: Exp; lines: +156 -34 Bugfix. fatal string causing "Wide character in subroutine entry" ---------------------------- revision 1.991 date: 2020/05/12 20:37:48; author: gilles; state: Exp; lines: +86 -25 Bugfix. --checknoabletosearch was not adaptive. Fix. tests sslheck now use test1.lamiral.info instead of imapsync.lamiral.info Fix. tests_resolv now use ks6ipv6.lamiral.info instead of ks2ipv6.lamiral.info Bugfix. Better closing of logfile at the end in order to avoid in Apache error log "AH01215: print() on closed filehandle $logfile_handle" ---------------------------- revision 1.990 date: 2020/05/03 17:07:36; author: gilles; state: Exp; lines: +7 -7 Bugfix. Forgot to map ERR_Host1_FETCH to EXIT_ERR_FETCH, ---------------------------- revision 1.989 date: 2020/05/03 17:07:17; author: gilles; state: Exp; lines: +8 -7 *** empty log message *** ---------------------------- revision 1.988 date: 2020/04/29 21:52:20; author: gilles; state: Exp; lines: +37 -8 Sanitize host1 and host2 values. Remove blanks and / characters. ---------------------------- revision 1.987 date: 2020/04/29 02:34:00; author: gilles; state: Exp; lines: +253 -18 Added an analyse and classification of the errors encountered. Most common error encountered is printed at the end. Exit value 112 is now replaced by the most common error encountered exit value 113 is EXIT_OVERQUOTA 114 is EXIT_ERR_APPEND 115 is EXIT_ERR_FETCH 116 is EXIT_ERR_CREATE 117 is EXIT_ERR_SELECT 111 is EXIT_WITH_ERRORS ERR_UNCLASSIFIED ---------------------------- revision 1.986 date: 2020/04/26 11:05:55; author: gilles; state: Exp; lines: +37 -36 Changed filter_forbidden_characters() to replace non-ascii and control characters and spaces by character _ ---------------------------- revision 1.985 date: 2020/04/25 14:50:30; author: gilles; state: Exp; lines: +48 -23 Added unit tests to prepare "Wide character in subroutine entry". ---------------------------- revision 1.984 date: 2020/04/22 10:35:44; author: gilles; state: Exp; lines: +30 -15 Bugfix. Empty subject https://github.com/imapsync/imapsync/pull/216 added unit test regression. ---------------------------- revision 1.983 date: 2020/03/19 02:08:12; author: gilles; state: Exp; lines: +96 -13 Filter flags \PRIORITY \READRCPT in cgi context. Now check if SEARCH ALL works on both accounts and then add --noabletosearch if one can not. Use --nochecknoabletosearch to avoid that behavior. ---------------------------- revision 1.982 date: 2020/03/16 15:17:02; author: gilles; state: Exp; lines: +60 -29 Rewrote tests in tests_msgs_from_maxmin() (same ones anyway) ---------------------------- revision 1.981 date: 2020/02/14 12:10:13; author: gilles; state: Exp; lines: +18 -8 Bugfix. CGI not fatal with imapsync --tests ---------------------------- revision 1.980 date: 2020/01/18 20:37:27; author: gilles; state: Exp; lines: +9 -9 Updated @regexflag in cgi context. ---------------------------- revision 1.979 date: 2020/01/14 22:26:11; author: gilles; state: Exp; lines: +47 -30 Added regex --regexflag from /X analyse in cgi context. ---------------------------- revision 1.978 date: 2020/01/08 21:56:12; author: gilles; state: Exp; lines: +11 -11 Added single quote ' filtering in filter_forbidden_characters() ---------------------------- revision 1.977 date: 2019/12/23 20:18:02; author: gilles; state: Exp; lines: +10 -10 No tests_resolv( ) since resolv is not really used and tests_resolv( ) fails on mac (I do not have write to /etc/hosts) ---------------------------- revision 1.976 date: 2019/12/19 15:37:33; author: gilles; state: Exp; lines: +16 -12 Moved tests tests_probe_imapssl tests_mailimapclient_connect tests_resolv at the end. ---------------------------- revision 1.975 date: 2019/12/19 10:44:23; author: gilles; state: Exp; lines: +21 -13 Commented the tests_kill* tests Added a resolv petiteipv6.lamiral.info before check it (frequent failure) ---------------------------- revision 1.974 date: 2019/12/16 13:01:18; author: gilles; state: Exp; lines: +18 -9 Enhancement, internal. Use Debug_fh to set where go the --debugimap outputs. ---------------------------- revision 1.973 date: 2019/12/15 00:27:10; author: gilles; state: Exp; lines: +8 -8 Bugfix. Upgraded ks2 Dovecot and now logout in ssl does not cause failure ---------------------------- revision 1.972 date: 2019/12/14 23:45:12; author: gilles; state: Exp; lines: +9 -9 Added -utf8 when requiring CGI. Hope it will allow utf8 characters in passwords. ---------------------------- revision 1.971 date: 2019/12/14 23:41:41; author: gilles; state: Exp; lines: +8 -8 Bugfix. CGI context. charset was charset=ISO-8859-1 in header (CGI.pm default). Now "text/plain; charset=UTF-8" ---------------------------- revision 1.970 date: 2019/12/09 23:09:05; author: gilles; state: Exp; lines: +297 -259 Reread README part. Change tests. ks2ipv6.lamiral.info replaced by petiteipv6.lamiral.info 1510 unit tests ---------------------------- revision 1.969 date: 2019/11/29 13:00:32; author: gilles; state: Exp; lines: +9 -9 1509 unit tests ---------------------------- revision 1.968 date: 2019/11/29 12:42:13; author: gilles; state: Exp; lines: +29 -19 Bugfix. binmode UTF-8 for log and output. ---------------------------- revision 1.967 date: 2019/11/27 20:41:34; author: gilles; state: Exp; lines: +9 -9 Bugfix. Bad tests count under docker ---------------------------- revision 1.966 date: 2019/11/27 20:23:08; author: gilles; state: Exp; lines: +10 -9 Commented test probe_imapssl: ks2ipv6.lamiral.info ---------------------------- revision 1.965 date: 2019/11/27 20:16:32; author: gilles; state: Exp; lines: +13 -11 Removed some tests that take time and sometimes fail (ipv6 related) ---------------------------- revision 1.964 date: 2019/11/27 15:50:39; author: gilles; state: Exp; lines: +52 -27 CGI context. Adaptation to a local http server webserver. pidfile and cgidir. Added Encode Encode::IMAPUTF7 and MIME::Base64 modules versions. Removed doublon "use MIME::Base64". Bugfix. Make --tests pass on docker context and under root. ---------------------------- revision 1.963 date: 2019/11/25 12:38:44; author: gilles; state: Exp; lines: +52 -18 Skip tests under Win Win64 and Mac that fail. ipv6 related or fork ones. ---------------------------- revision 1.962 date: 2019/11/22 09:51:29; author: gilles; state: Exp; lines: +19 -9 Added dependencies: * MIME::Base64 * Encode Added test for Encode::find_encoding that fails with the binaries not cmpiled with perl -x ---------------------------- revision 1.961 date: 2019/11/19 19:45:02; author: gilles; state: Exp; lines: +117 -47 Added module dependency to Encode::IMAPUTF7 Bugfix. Folders names with + characters must stay as they are. Bugfix. When using --subfolder2 SUB --delete2folders, do not delete the folder SUB. ---------------------------- revision 1.960 date: 2019/10/31 23:08:18; author: gilles; state: Exp; lines: +54 -7 Added test to remove header bad. ---------------------------- revision 1.959 date: 2019/10/07 21:21:45; author: gilles; state: Exp; lines: +318 -92 Added tests: tests_kill_zero() tests_killpid_by_parent() tests_killpid_by_brother() tests_abort() cgidir is . when used by Net::Server::HTTP Bugfix. Added SSL_cipher_list => 'DEFAULT:!DH' to tests with ssl Bugfix. PIDs can be negative under Windows. Bugfix. --resynclabels was not on with --gmail1 --gmail2 1502 unit tests under Unix ---------------------------- revision 1.958 date: 2019/09/11 21:16:40; author: gilles; state: Exp; lines: +40 -37 cgi context is now set on with env variables SERVER_SOFTWARE and SERVER_PORT it is because Net::Server::HTTP does not set SERVER_SOFTWARE but SERVER_PORT It is a preparation to a homemade web server to serve on imapsync as a cgi and get free from Apache or a complicated web server stuff configuration. ---------------------------- revision 1.957 date: 2019/08/29 17:40:13; author: gilles; state: Exp; lines: +34 -25 Bugfix. Do not compute a folder size if the folder does not exist. Happened with --skipemptyfolders ---------------------------- revision 1.956 date: 2019/08/02 20:18:52; author: gilles; state: Exp; lines: +118 -55 Bugfix. Reviewed all exit_clean to include a final CR on the error message. Bugfix. New foldersize tried to select non existent folder that caused a premature exit when host2 account is mostly empty. Bugfix. --justconnect did not show the line "IP address:" ---------------------------- revision 1.955 date: 2019/07/31 20:30:27; author: gilles; state: Exp; lines: +69 -36 Bugfix in docker context. killing myself in docker context doesn't seem to work well, as well as sending signals several times. So just install catch_exit with INT (ctr-c on terminals) and exits if still alive after killing myself. ---------------------------- revision 1.954 date: 2019/07/29 18:04:07; author: gilles; state: Exp; lines: +19 -14 Bufix. In docker context, print "context detected" only with --debug. imapsync --version printed the release on the third line instead of the first. ---------------------------- revision 1.953 date: 2019/07/29 05:12:18; author: gilles; state: Exp; lines: +9 -9 Bugfix. tests_imapsync_context under Docker bugfix. ---------------------------- revision 1.952 date: 2019/07/29 04:52:52; author: gilles; state: Exp; lines: +8 -8 1477 regression tests ---------------------------- revision 1.951 date: 2019/07/29 04:40:48; author: gilles; state: Exp; lines: +66 -9 Added context in --releasecheck user_agent. CGI or Docker or Standard. ---------------------------- revision 1.950 date: 2019/07/28 02:24:17; author: gilles; state: Exp; lines: +604 -189 Folders sizes are now presented per folder from host1 and host2 as well as the differrences between them. ---------------------------- revision 1.949 date: 2019/07/18 03:44:00; author: gilles; state: Exp; lines: +59 -32 Refactor. timenext() deglobalized. Added tests_timenext(). ---------------------------- revision 1.948 date: 2019/07/17 16:51:50; author: gilles; state: Exp; lines: +153 -128 Refactor. Moved main instructions into sub single_sync(). Goal is to prepare multiple different syncs. ---------------------------- revision 1.947 date: 2019/07/15 01:10:05; author: gilles; state: Exp; lines: +119 -45 Bugfix. Count all fatal errors. ---------------------------- revision 1.946 date: 2019/07/09 18:01:42; author: gilles; state: Exp; lines: +136 -48 Usability. Added the number of errors and the max number of errors allowed at the final line "Exiting with return value xx" Deglobalized $foldersizes to $sync->{ foldersizes } Usability. Added ETA at the beginning of a folder process. 1467 regression tests ---------------------------- revision 1.945 date: 2019/06/26 19:30:56; author: gilles; state: Exp; lines: +151 -94 Proofread the documentation part, what will go to README. The pod at the beginning. ---------------------------- revision 1.944 date: 2019/06/25 16:44:08; author: gilles; state: Exp; lines: +8 -8 Bugfix. Readonly syntax. "Readonly my %EXIT_TXT => (" ---------------------------- revision 1.943 date: 2019/06/25 08:34:51; author: gilles; state: Exp; lines: +47 -30 Usability. Added the error message text after "Exiting with return value xx". Example: Exiting with return value 16 (EXIT_AUTHENTICATION_FAILURE) Usability. Added what function is called when installing a signal. Example: "kill -QUIT 19839 # special behavior: call to sub catch_exit" ---------------------------- revision 1.942 date: 2019/06/24 20:43:43; author: gilles; state: Exp; lines: +51 -37 Bugfix. USR1 signal for toggle_sleep call was never installed. Usability. Now --justfolders will activate --foldersizesatend Enhancement. Added PROCESS_ID when "Tail -f finished." Bugfix. The number of messages deleted was not accurate at all. Usability. masked the warning "no header by parse_headers so taking whole header with BODY.PEEK[HEADER]" to --debug mode. Usability. Moved the warning "no header found so adding our own" to --debug mode. Tests. Added ETA simulation with --simulong (for the progress info on /X) Bugfix. Change the longest line in --exchange2 and --office from 10500 to 10239. (\n inserted for those long lines) Enhancement. --maxage and --minage can take float as value in order to filter with less than a day. (Need --noabletosearch also). ---------------------------- revision 1.941 date: 2019/06/04 22:55:24; author: gilles; state: Exp; lines: +54 -19 Usability. Now "imapsync --host1 ks" or "imapsync --host2" is ok and do like a --justconnect on servers. Useful to cjeck rapidely a imap server. ---------------------------- revision 1.940 date: 2019/06/04 06:29:31; author: gilles; state: Exp; lines: +14 -9 Added 'junk', 'Junk E-Mail', 'Junk Email' as possible_special of \Junk Added 'Deleted Messages' as possible_special of \Trash ---------------------------- revision 1.939 date: 2019/05/27 21:58:33; author: gilles; state: Exp; lines: +10 -9 Back to a test Mail::IMAPClient 3.40 failed but Mail::IMAPClient 3.42 succeed. ---------------------------- revision 1.938 date: 2019/05/27 18:45:06; author: gilles; state: Exp; lines: +111 -33 CGI context. --addheader is on by default. Added option --appendlimit xxxx in order to override the value got by APPENDLIMIT in CAPABILITY. Added option --truncmess to allow transfer of too big messages. When you think it's better to have a truncated message than no message at all. 1453 regression tests. ---------------------------- revision 1.937 date: 2019/05/01 22:14:00; author: gilles; state: Exp; lines: +328 -326 CGI context. Only Message-Id to identify messages, instead of Message-Id Received. Fixed perl critic about blanks. Fixed tests comments ---------------------------- revision 1.936 date: 2019/04/29 05:26:19; author: gilles; state: Exp; lines: +26 -23 Bugfix. Do not tail when abort. Usability. --testslive values can be overwritten like --testslive --user1 empty Same thing for --testslive6 ---------------------------- revision 1.935 date: 2019/04/28 02:10:24; author: gilles; state: Exp; lines: +293 -44 Added File::Tail dependency. Added --tail option. Will do like a tail -f on the logfile of another imapsync with the same pidfile. Good in CGI context. Maybe... We'll see. It was one of my first whishes for cgi behaviour 1441 unit tests. ---------------------------- revision 1.934 date: 2019/04/26 08:23:24; author: gilles; state: Exp; lines: +134 -52 Added following options available in cgi context: --subfolder1 --subfolder2 --justfolders --justfoldersizes --delete1 --delete2 CGI context. Added the equivalent command line parameters like: Command line used, run by /usr/bin/perl: /usr/lib/cgi-bin/imapsync --host1 test1.lamiral.info Usability. Turns off --automap when --subfolder1 or --subfolder2 is used. ---------------------------- revision 1.933 date: 2019/04/23 11:42:42; author: gilles; state: Exp; lines: +47 -98 CGI context. Added default like --maxsize 1_000_000_000 (Out of memory prevention?) Usability. maxsize is the minimum of --maxsize and APPENDLIMIT=xxx or each one if the other no exists. ---------------------------- revision 1.932 date: 2019/04/13 22:09:04; author: gilles; state: Exp; lines: +93 -24 Added --sanitize to remove egding blanks on host1 user1 password1 etc. --sanitize on by default. Use --noanitize to avoid it ---------------------------- revision 1.931 date: 2019/04/13 16:10:24; author: gilles; state: Exp; lines: +109 -22 Added test tests_check_binary_embed_all_dyn_libs to detect non embedded dynamic libraries in binaries Darwin and Win32 ---------------------------- revision 1.930 date: 2019/04/11 22:32:38; author: gilles; state: Exp; lines: +467 -211 All exits are now done with a specific return code related to the error causing the exit. Removed sub die_clean() die_clean() calls replaced by exit_clean() calls ---------------------------- revision 1.929 date: 2019/04/08 09:14:13; author: gilles; state: Exp; lines: +425 -300 Bug fix. With --gmail1 or --gmail2 do not sync [Gmail]/All Mail if it is not requested. Bug fix. When asked to terminate by a signal, kill myself by the signal instead of an exit call. Applied Martin Cracauer's advice on https://www.cons.org/cracauer/sigint.html "Proper handling of SIGINT/SIGQUIT" I hope it fixes the not always working double-ctrl-c to end the sync. See bug report https://github.com/imapsync/imapsync/issues/142 ---------------------------- revision 1.928 date: 2019/03/28 11:12:44; author: gilles; state: Exp; lines: +648 -317 Added --subfolder1 Foo/Bar option in order to restore a backup made with --subfolder2 Foo/Bar --folderrec Foo/Bar is imply by --subfolder1 Foo/Bar because it's the most common purpose. Deglobalized $debug @regextrans2 $sep1 $sep2 $fixslash2 Added --resynclabels to resync the Gmail labels X-GM-LABELS Bugfix. --synclabels now create sublabels with --subfolder2 Bugfix. --subfolder2 Pf2/Sub2 and --subfolder2 Sub2 perform the same when Pf2 is the --prefix2 1336 non-regression tests ---------------------------- revision 1.927 date: 2019/03/22 14:45:55; author: gilles; state: Exp; lines: +9 -8 Active --resynclabels when --gmail1 --gmail2 ---------------------------- revision 1.926 date: 2019/03/22 14:06:38; author: gilles; state: Exp; lines: +283 -88 Call abort() before simulong() to be able to abort a long simulong. Bugfix. --synclabels --subfolder2 create sublabels only and not a mixture. Enhancement. Added --resynclabels 1286 non-regression tests ---------------------------- revision 1.925 date: 2019/03/03 12:25:02; author: gilles; state: Exp; lines: +8 -8 1268 tests ---------------------------- revision 1.924 date: 2019/03/03 12:22:37; author: gilles; state: Exp; lines: +50 -27 Tolerate more load. Double the threshold. accept load at 2 per core instead of 1 per core ---------------------------- revision 1.923 date: 2019/03/03 12:00:05; author: gilles; state: Exp; lines: +29 -20 Moved cgiload( $sync ) in order to log exites on heavy load ---------------------------- revision 1.922 date: 2019/02/26 13:03:58; author: gilles; state: Exp; lines: +43 -35 Fixed tests to pass under the docker image ---------------------------- revision 1.921 date: 2019/02/18 10:21:03; author: gilles; state: Exp; lines: +10 -8 Bugfix. Errors of APPEND were not counted as missing messages on host2! ---------------------------- revision 1.920 date: 2019/02/09 15:45:31; author: gilles; state: Exp; lines: +37 -33 Better "Extra arguments found" error message, added "or some misspelling options" ---------------------------- revision 1.919 date: 2019/02/09 14:20:41; author: gilles; state: Exp; lines: +74 -32 Added authmech X-MASTERAUTH. To be used for Kerio with --authmech1 X-MASTERAUTH or --authmech2 X-MASTERAUTH Patch from https://github.com/imapsync/imapsync/pull/53/files ---------------------------- revision 1.918 date: 2019/02/07 12:16:28; author: gilles; state: Exp; lines: +79 -44 Fixed test since macosx.polarhome.com can not do ipv6 these days. Allow --tests --testslive for cover analyse ---------------------------- revision 1.917 date: 2019/02/06 12:13:44; author: gilles; state: Exp; lines: +279 -110 Added --addheader description in the README part. Bugfix --debugssl 0 was impossible and equivalent to --debugssl 1 Deglobalized $justfolders now $sync->{ justfolders } Deglobalized %h2_folders_of_md5 it's now $sync->{ h2_folders_of_md5 } Bugfix. Now split the deletion of messages in several chunks (--split) Added stat "Messages found in host1 not in host2" Added stat "Messages found in host2 not in host1" Removed stat "Total bytes duplicate hostX" Removed stat "Total bytes error" Added stat "Load end is" Added comments on final stat about messages in 1 not in 2 Added comments on final stat about messages in 2 not in 1 Added comment on final stat about unidentified messages 1264 unit tests. ---------------------------- revision 1.916 date: 2019/01/05 14:45:10; author: gilles; state: Exp; lines: +550 -470 Added missing "Entering tests_..." and "Leaving tests_..." in tests_* subroutines. Some perlcritic fixes. ---------------------------- revision 1.915 date: 2019/01/04 12:39:56; author: gilles; state: Exp; lines: +12 -15 Remove the unit test $imap->new() $imap->connect() because IO::Socket::IP kills us on this. ---------------------------- revision 1.914 date: 2019/01/03 04:38:10; author: gilles; state: Exp; lines: +10 -10 unit test revised for match_a_pid_number() ---------------------------- revision 1.913 date: 2019/01/03 04:31:11; author: gilles; state: Exp; lines: +9 -8 A pid can be up to 99999 on FreeBSD ---------------------------- revision 1.912 date: 2019/01/03 04:18:54; author: gilles; state: Exp; lines: +14 -14 Added prints in sub remove_pidfile_not_running() in order to debug bad behavior on freeBSD ---------------------------- revision 1.911 date: 2019/01/03 02:52:43; author: gilles; state: Exp; lines: +29 -11 Added --sigprint HUP in order to allow some asynchronous prints in CGI mode and avoid timeouts from browser ---------------------------- revision 1.910 date: 2018/12/25 18:20:48; author: gilles; state: Exp; lines: +77 -38 Added --addheader suggestion at the final stats. Added a counter of crossduplicates on host2, presented on final stats. ---------------------------- revision 1.909 date: 2018/12/09 21:23:54; author: gilles; state: Exp; lines: +8 -8 Typo. loose lose ---------------------------- revision 1.908 date: 2018/11/20 13:22:07; author: gilles; state: Exp; lines: +80 -39 Played with IO::Prompt and IO::Prompter to remove perl critic. Failed... Deglobalized $passfile1 and $passfile2 ---------------------------- revision 1.907 date: 2018/11/16 10:08:11; author: gilles; state: Exp; lines: +142 -135 Localized %SIG Fixed Host1 Host2 prints to be more homogene ---------------------------- revision 1.906 date: 2018/11/08 18:37:18; author: gilles; state: Exp; lines: +120 -47 Added tests_operators_and_exclam_precedence() Added tests_teelaunch() Added tests_logfileprepa() ---------------------------- revision 1.905 date: 2018/10/22 17:28:02; author: gilles; state: Exp; lines: +10 -9 Added IO::Socket::IP in the list of modules versions. ---------------------------- revision 1.904 date: 2018/10/19 11:57:24; author: gilles; state: Exp; lines: +157 -59 1238 unit tests Refactored appendlimit() to use Mail::IMAPClient::capability like the API. No hack from internal $imap->{ APPENDLIMIT } With --office1 option, folder "Files" is excluded because it's a "special" folder. Like --exclude "^Files$". Unless --noexclude is used. With --office2 option, folder "Files" on host1 is renamed like --f1f2 "Files=Files_renamed_by_imapsync". Unless --nof1f2 is used. ---------------------------- revision 1.903 date: 2018/10/06 09:16:57; author: gilles; state: Exp; lines: +9 -9 --noskipcrossduplicates with --gmail12 ---------------------------- revision 1.902 date: 2018/10/05 19:50:23; author: gilles; state: Exp; lines: +12 -10 Added --folderlast '[Gmail]/All Mail' within --gmail12 ---------------------------- revision 1.901 date: 2018/10/03 23:49:51; author: gilles; state: Exp; lines: +815 -412 Removed --maxsize 25_000_000 from --gmail2 because now it's get from APPENDLIMIT in CAPABILITY (and it is currently 35651584, greater than 25_000_000) Moved opening { in all sub to next line. ---------------------------- revision 1.900 date: 2018/10/03 23:17:11; author: gilles; state: Exp; lines: +16 -16 Deglobalized $maxsize ---------------------------- revision 1.899 date: 2018/10/03 22:50:23; author: gilles; state: Exp; lines: +332 -14 Added automatic --maxsize from CAPABILITY APPENDLIMIT=xxxx (Gmail) ---------------------------- revision 1.898 date: 2018/09/28 14:12:21; author: gilles; state: Exp; lines: +89 -29 Added --maxsize 35_651_584 with --gmail2 (Should me replaced by automatic APPEND_LIMIT in CAPABILITY). Soon. Added --exclude '^Files$' with --office2 ---------------------------- revision 1.897 date: 2018/09/19 14:54:26; author: gilles; state: Exp; lines: +96 -74 Deglobalized $delete1, $delete2, $delete2duplicates, $expunge2, $uidexpunge2 Started sub tests_uidexpunge_or_expunge() sub uidexpunge_or_expunge() ---------------------------- revision 1.896 date: 2018/09/19 11:51:17; author: gilles; state: Exp; lines: +81 -60 Deletions on host1 are done by batch during a resync. ---------------------------- revision 1.895 date: 2018/09/13 17:38:53; author: gilles; state: Exp; lines: +97 -87 Refactor. Deglobarized variable * $exitwhenover, * $total_bytes_skipped * $nb_msg_skipped ---------------------------- revision 1.894 date: 2018/09/11 13:59:54; author: gilles; state: Exp; lines: +19 -14 Commented test for @regexflag = ( 's/\\Flagged/X/g' ) since \F is new and was a bug anyway. ---------------------------- revision 1.893 date: 2018/09/11 09:09:34; author: gilles; state: Exp; lines: +89 -75 Bugfix. --exchange1 and --exchange2 were not options! No one complained... Added inline explanations for --office1 --office2 --exchange1 --exchange2 (what they set and how to unset) Added --noregexmess to avoid the regexmess setting with --office2 and --exchange2 (wrap long lines >= 10500 char) Added --noregexflag to avoid the regexflag set by exchange2 (remove \Flagged flag) Bugfix. The regex to remove flag \Flagged was wrong. It worked because of another filter run after... ---------------------------- revision 1.892 date: 2018/09/04 04:04:34; author: gilles; state: Exp; lines: +9 -9 --skipcrossduplicates activated with --gmail1 --gmail2 ---------------------------- revision 1.891 date: 2018/09/04 03:28:09; author: gilles; state: Exp; lines: +175 -123 Enhancement. Added option --synclabels to sync Gmail labels. It should speed up Gmail to Gmail syncs. --synclabels applies only during a copy of a message for now. resyncing labels will be coded later. ---------------------------- revision 1.890 date: 2018/09/01 21:45:41; author: gilles; state: Exp; lines: +117 -114 Refactoring. Replaced $imap1 and $imap2 by $sync->{imap1} and $sync->{imap2} ---------------------------- revision 1.889 date: 2018/08/31 01:02:06; author: gilles; state: Exp; lines: +19 -7 Applied https://github.com/imapsync/imapsync/issues/95 Thanks jh1995! ---------------------------- revision 1.888 date: 2018/08/29 11:02:59; author: gilles; state: Exp; lines: +9 -9 Gives CGI.pm release. Calls memory_consumption_of_pids_win32() with Cygwin (https://github.com/imapsync/imapsync/pull/22) ---------------------------- revision 1.887 date: 2018/08/23 19:10:44; author: gilles; state: Exp; lines: +11 -10 --maxsleep override $MAX_SLEEP in gmail*() subroutines. Default $sync->{ sigignore } to empty list. ---------------------------- revision 1.886 date: 2018/08/06 15:02:51; author: gilles; state: Exp; lines: +28 -11 Added mygetppid because getppid is not available on Windows. Removed --nosubscribed since it is not coded and useless anyway. ---------------------------- revision 1.885 date: 2018/07/07 04:14:26; author: gilles; state: Exp; lines: +8 -8 Sheband uses env now. Fed up to change freebsd /usr/local/bin/perl ---------------------------- revision 1.884 date: 2018/07/07 03:40:54; author: gilles; state: Exp; lines: +18 -15 Added PPID info where PID is printed. ---------------------------- revision 1.883 date: 2018/07/03 03:55:03; author: gilles; state: Exp; lines: +32 -8 Added freebsd support for loadavg and cpu_cores ---------------------------- revision 1.882 date: 2018/05/05 21:10:43; author: gilles; state: Exp; lines: +8 -8 typo ---------------------------- revision 1.881 date: 2018/05/05 20:43:36; author: gilles; state: Exp; lines: +96 -61 proofread the doc part. ispell on README. ---------------------------- revision 1.880 date: 2018/05/05 12:44:21; author: gilles; state: Exp; lines: +26 -21 Splitted sub usage() with call to sub mypod2usage(). Crit level 4 on open/close not far away. ---------------------------- revision 1.879 date: 2018/04/20 13:02:13; author: gilles; state: Exp; lines: +20 -13 Back to `` because of backtick() does not work always on Darwin ---------------------------- revision 1.878 date: 2018/04/19 00:51:45; author: gilles; state: Exp; lines: +76 -40 Perlcrit. Removed the select in teelaunch() Perlcrit. *STDERR change is now localized. Perlcrit. Hard 'LOG_imapsync' is now $DEFAULT_LOGDIR Proxy mode. Log file will be named with a suffix "_remote.txt" Refactor. sub logfile() is deglobalized. (removed $debug lines) ---------------------------- revision 1.877 date: 2018/04/18 22:00:46; author: gilles; state: Exp; lines: +31 -13 Changed sub myprint and sub myprintf in order to suppress the select in teelaunch ---------------------------- revision 1.876 date: 2018/04/18 03:02:32; author: gilles; state: Exp; lines: +20 -17 Bugfix. ARRAY ref not defined with --subscribed ---------------------------- revision 1.875 date: 2018/04/18 02:27:18; author: gilles; state: Exp; lines: +32 -25 Refactor. $tmpdir unglobalized Win32. No USR1 on Windows so skip signals tests on Win32 ---------------------------- revision 1.874 date: 2018/04/18 00:46:46; author: gilles; state: Exp; lines: +53 -40 Perlcrit. Use IPC::Open3::open3 instead of backticks `` ---------------------------- revision 1.873 date: 2018/04/17 00:24:54; author: gilles; state: Exp; lines: +9 -9 Added SERVER_SOFTWARE Added SERVER_PORT ---------------------------- revision 1.872 date: 2018/04/16 23:10:03; author: gilles; state: Exp; lines: +17 -11 Bugfix to pass --tests under root user. ---------------------------- revision 1.871 date: 2018/04/13 18:00:06; author: gilles; state: Exp; lines: +71 -12 Added toggle sleep from 2s to 0s with signal USR1 ---------------------------- revision 1.870 date: 2018/04/08 17:25:54; author: gilles; state: Exp; lines: +46 -46 Changed gilles.lamiral@laposte.net => gilles@lamiral.info ---------------------------- revision 1.869 date: 2018/04/08 17:21:15; author: gilles; state: Exp; lines: +29 -30 https://imapsync.lamiral.info/ instead of http://imapsync.lamiral.info/ in ID support-url Removed uname info from banner, adder ram info. Change utf8 char ° to nb in tests summary ---------------------------- revision 1.868 date: 2018/04/03 01:55:24; author: gilles; state: Exp; lines: +13 -12 Renamed total_ram_memory() => ram_memory_info() ---------------------------- revision 1.867 date: 2018/04/03 00:35:58; author: gilles; state: Exp; lines: +21 -18 Refactor. sub under_cgi_context() uses $mysync. ---------------------------- revision 1.866 date: 2018/03/29 04:58:11; author: gilles; state: Exp; lines: +10 -9 Changed inline signal message ---------------------------- revision 1.865 date: 2018/03/29 04:50:26; author: gilles; state: Exp; lines: +98 -86 Moved the inline help "I am asked to stop immediately" after the final stats. Tidied up sub myGetOptions() ---------------------------- revision 1.864 date: 2018/03/28 21:33:28; author: gilles; state: Exp; lines: +12 -18 Before tidy up sub myGetOptions ---------------------------- revision 1.863 date: 2018/03/28 16:57:22; author: gilles; state: Exp; lines: +10 -8 Added inline advice to resync after an end commanded by a TERM or QUIT signal. ---------------------------- revision 1.862 date: 2018/03/28 14:48:37; author: gilles; state: Exp; lines: +21 -20 Reduced the loadavg ingo in the header status in CGI context. Added the hostname in in the header status in CGI context. ---------------------------- revision 1.861 date: 2018/03/27 03:04:03; author: gilles; state: Exp; lines: +41 -48 Refactor. Use of debugmemory() Moved the hostname printing at first line. The goal is for clarity when in proxy mode. Added free RAM info in the banner Added free RAM and total RAM in the status in CGI context. ---------------------------- revision 1.860 date: 2018/03/26 21:14:01; author: gilles; state: Exp; lines: +97 -67 Reviewed tests_get_options_cgi(), renamed to tests_get_options_cgi_context() Reviewed tests_get_options ---------------------------- revision 1.859 date: 2018/03/22 12:55:34; author: gilles; state: Exp; lines: +13 -8 Bugfix. Predeclare $sync->{folder} as ARRAY ref. $sync->{folder} = [] ; ---------------------------- revision 1.858 date: 2018/03/21 07:53:26; author: gilles; state: Exp; lines: +14 -11 Refactoring. Deglobalized $justconnect ---------------------------- revision 1.857 date: 2018/03/21 07:40:12; author: gilles; state: Exp; lines: +80 -31 Refactor. Changed how --f1f2 is handled. Was a hash, now a list. ---------------------------- revision 1.856 date: 2018/03/20 02:24:52; author: gilles; state: Exp; lines: +31 -19 Refactoring. Deglobalized @folder ---------------------------- revision 1.855 date: 2018/03/19 14:15:53; author: gilles; state: Exp; lines: +18 -21 Refactoring. Deglobalized $addheader Refactoring. Deglobalized $justlogin ---------------------------- revision 1.854 date: 2018/03/19 13:45:31; author: gilles; state: Exp; lines: +32 -25 Unglobalized $version Unglobalized $releasecheck Added sub debugmemory() ---------------------------- revision 1.853 date: 2018/03/12 13:43:11; author: gilles; state: Exp; lines: +9 -9 Back to default signals. INT => reconnect. TERM or QUIT => stats and exit. (cgicontext ignored TERM) ---------------------------- revision 1.852 date: 2018/03/12 03:11:04; author: gilles; state: Exp; lines: +132 -29 Added --sigexit; For example --sigexit QUIT --sigexit TERM to exit when receiving QUIT or TERM signals. Added --sigreconnect. For example --sigreconnect INT to reconnect to both imap servers when receiving INT signal. Added --sigignore. For example --sigignore TERM to "ignore" the TERM signal. In fact print stats during the sync. Default is like: --sigexit QUIT --sigexit TERM --sigreconnect INT Added sub sig_install() to install any behavior with any signal (the ones actually received in Unix). Number of tests with --tests is 1137 ---------------------------- revision 1.851 date: 2018/03/04 15:19:04; author: gilles; state: Exp; lines: +10 -10 Inline help. Clarified --errorsmax inline help. ---------------------------- revision 1.850 date: 2018/02/21 04:15:32; author: gilles; state: Exp; lines: +66 -41 Option --abort now creates a log too, in order to see if imapsync ends by signal come from --abort or something else. ---------------------------- revision 1.849 date: 2018/02/18 18:45:36; author: gilles; state: Exp; lines: +14 -10 Added \t\r\n characters replaced by _ in sub filter_forbidden_characters() ---------------------------- revision 1.848 date: 2018/02/07 00:58:59; author: gilles; state: Exp; lines: +50 -28 Cleaned up --releasecheck stuff. Clarified SSL_VERIFY_NONE default. ---------------------------- revision 1.847 date: 2017/12/18 11:04:26; author: gilles; state: Exp; lines: +56 -33 Bugfix. Fixed sub epoch() to allow that kind of silly INTERNALDATE 00-Jan-0000 00:00:00 +0000 (Thanks to IBM Domino...) Added inline documentation about --releasecheck and --noreleasecheck Default upstream is still --releasecheck. Just a line to change to have --noreleasecheck by default (as before) Bugfix. --releasecheck on was hardcoded in cgi context. Now it depends on the default behavior chosen. Bug pending. Still have to fix --releasecheck on with --help ---------------------------- revision 1.846 date: 2017/11/30 02:00:12; author: gilles; state: Exp; lines: +34 -12 Added sub memory_stress Added sub tests_memory_stress memory_stress() crunch 3/4 of the RAM. tests_memory_stress() is the associated test. ---------------------------- revision 1.845 date: 2017/11/28 23:36:43; author: gilles; state: Exp; lines: +51 -29 Added --noresyncflags : Do not resync flags for already transfered messages. May be useful when a user has already started to play with its host2 account. ---------------------------- revision 1.844 date: 2017/11/16 14:38:38; author: gilles; state: Exp; lines: +107 -43 Crit. Removed 4 "Warnings disabled". crit level 4 ---------------------------- revision 1.843 date: 2017/11/05 22:23:57; author: gilles; state: Exp; lines: +38 -30 Added --nocheckfoldersexist ( Default is like --checkfoldersexist ) ---------------------------- revision 1.842 date: 2017/10/30 18:47:37; author: gilles; state: Exp; lines: +246 -115 Refactoring. Removed global variables $h1_prefix and $h2_prefix Bugfix. cpu_number() returns always an integer >= 1. ---------------------------- revision 1.841 date: 2017/10/27 12:37:39; author: gilles; state: Exp; lines: +55 -41 Detect extra arguments. Meaning usually a quoting issue in the command line, options not well parsed. ---------------------------- revision 1.840 date: 2017/10/22 14:28:00; author: gilles; state: Exp; lines: +9 -9 No limitssssss ---------------------------- revision 1.839 date: 2017/10/04 17:50:29; author: gilles; state: Exp; lines: +132 -39 In case the pidfile already exists, remove it if no process match its content. Do nothing if the pidfile doesn't content a pid number 0 0 => unknown. ---------------------------- revision 1.819 date: 2017/07/07 23:21:45; author: gilles; state: Exp; lines: +70 -27 Added --testslive6 to check ipv6 connectivity ---------------------------- revision 1.818 date: 2017/07/06 03:06:36; author: gilles; state: Exp; lines: +42 -27 Removed from --tests call to: tests_imapsping() tests_tcpping() tests_resolv() tests_resolvrev() ---------------------------- revision 1.817 date: 2017/07/05 21:58:42; author: gilles; state: Exp; lines: +30 -22 --ipv4 is now synonim of --inet4 --ipv6 is now synonim of --inet6 ---------------------------- revision 1.816 date: 2017/07/05 14:50:28; author: gilles; state: Exp; lines: +101 -16 Added dependency use IO::Socket::INET6 Added sub probe_imapssl(). Not use yet. Will replace imapsping() ---------------------------- revision 1.815 date: 2017/06/27 16:45:20; author: gilles; state: Exp; lines: +10 -10 MAX_SLEEP 30 => 2 ---------------------------- revision 1.814 date: 2017/06/26 22:50:41; author: gilles; state: Exp; lines: +213 -66 Added raw LIST folders. Added IP print of both hosts, using peerhost(). Added sub resolv() and others but not using them for now. Still a problem with IPv6 on port 143 only, 993 with ssl is ok. "Invalid argument" when connecting. Solved with Mail::IMAPClient patched like this: use IO::Socket::INET6 instead of IO::Socket::INET ---------------------------- revision 1.813 date: 2017/05/24 17:46:13; author: gilles; state: Exp; lines: +93 -38 Added --maxsleep in order to avoid timeouts with --maxbytespersecond and --maxmessagespersecond Default is like --maxsleep 30 30 seconds sleeping at max. ---------------------------- revision 1.812 date: 2017/05/23 21:12:37; author: gilles; state: Exp; lines: +10 -10 941 unit tests. ---------------------------- revision 1.811 date: 2017/05/23 21:10:12; author: gilles; state: Exp; lines: +24 -24 Sync also messages with no internal date. No blanks in automatic logfile name. ---------------------------- revision 1.810 date: 2017/05/02 18:46:30; author: gilles; state: Exp; lines: +10 -10 Fixed a test in tests_umask_str() in order to pass it on Darwin ---------------------------- revision 1.809 date: 2017/05/02 18:34:34; author: gilles; state: Exp; lines: +45 -45 Isolated bad tests in notmatch() and match(): q{} against q{}, so commented now. ---------------------------- revision 1.808 date: 2017/05/02 17:35:25; author: gilles; state: Exp; lines: +160 -75 Better tests ending in exe in case of failure (was 0 I do not know why, a PAR bug) Report which tests failed at the end of tests. ---------------------------- revision 1.807 date: 2017/04/28 13:43:07; author: gilles; state: Exp; lines: +30 -25 testsunit() isolated. ---------------------------- revision 1.806 date: 2017/04/28 09:50:40; author: gilles; state: Exp; lines: +81 -31 Added --testsunit in order to run any unit test individualy from the command line. Several --testsunit are allowed. Example: imapsync --testsunit tests_true --testsunit tests_always_fail ---------------------------- revision 1.805 date: 2017/04/27 13:04:58; author: gilles; state: Exp; lines: +50 -40 Added test to mkpath with trailing dots foo... in folder name for --usecache. It does not fail. ---------------------------- revision 1.804 date: 2017/04/27 00:39:51; author: gilles; state: Exp; lines: +10 -10 Fix number of fake test on Win32. ---------------------------- revision 1.803 date: 2017/04/26 17:52:34; author: gilles; state: Exp; lines: +123 -119 Perl crit fixes: * $! $OS_ERROR * $@ $EVAL_ERROR many others. ---------------------------- revision 1.802 date: 2017/04/25 16:13:33; author: gilles; state: Exp; lines: +231 -229 crit about blanks ---------------------------- revision 1.801 date: 2017/04/24 20:51:00; author: gilles; state: Exp; lines: +116 -75 Bugfix. logfile must not have / from user1 and user2. ---------------------------- revision 1.800 date: 2017/04/24 13:51:44; author: gilles; state: Exp; lines: +19 -18 Bugfix. passfile1 passfile2 failure only if used! ---------------------------- revision 1.799 date: 2017/04/24 12:47:34; author: gilles; state: Exp; lines: +20 -10 Check passfile exist before reading it and exit on failure. ---------------------------- revision 1.798 date: 2017/04/24 02:41:46; author: gilles; state: Exp; lines: +61 -29 Make all tests run on MSWin32, either success or skip ---------------------------- revision 1.797 date: 2017/04/23 13:35:47; author: gilles; state: Exp; lines: +353 -23 Moved /etc/imapsync.hash to $CGI_HASHFILE => '/var/tmp/imapsync_hash' Added note( 'Entering ...' ) and note( 'Leaving ...' ) to all tests_...() functions ---------------------------- revision 1.796 date: 2017/04/23 12:25:22; author: gilles; state: Exp; lines: +115 -28 Added umask setting to 0077 in cgi context. ---------------------------- revision 1.795 date: 2017/04/22 13:01:28; author: gilles; state: Exp; lines: +55 -16 Refactor. Replaced hard cgi context test $ENV{SERVER_SOFTWARE} by function call to under_cgi_context() ---------------------------- revision 1.794 date: 2017/04/15 16:59:24; author: gilles; state: Exp; lines: +10 -10 871 unit tests ---------------------------- revision 1.793 date: 2017/04/15 16:56:06; author: gilles; state: Exp; lines: +136 -54 Tests should pass under nobody in /var/tmp/ now. ---------------------------- revision 1.792 date: 2017/04/05 03:06:42; author: gilles; state: Exp; lines: +22 -22 Added GMT setting to test setlogfile() ---------------------------- revision 1.791 date: 2017/04/05 02:27:50; author: gilles; state: Exp; lines: +26 -9 Added docker context in order to be run under nobody without permission issues. ---------------------------- revision 1.790 date: 2017/04/04 11:27:09; author: gilles; state: Exp; lines: +10 -10 Added 'Objets envoy&AOk-s' for --automap ---------------------------- revision 1.789 date: 2017/03/24 22:44:11; author: gilles; state: Exp; lines: +11 -9 Fix issue "SSL routines:ssl3_check_cert_and_algorithm:dh key too small" with http://stackoverflow.com/questions/36417224/openssl-dh-key-too-small-error SSL_cipher_list => 'DEFAULT:!DH' ---------------------------- revision 1.788 date: 2017/03/20 23:26:26; author: gilles; state: Exp; lines: +10 -10 852 unit tests ---------------------------- revision 1.787 date: 2017/03/20 23:23:39; author: gilles; state: Exp; lines: +130 -84 Added --maxbytesafter in order to start --maxbytespersecond limitation only after --maxbytesafter amount of data transferred ---------------------------- revision 1.786 date: 2017/03/20 03:32:12; author: gilles; state: Exp; lines: +44 -39 Bugfix. Abort on heavy load was not working because of load_and_delay strictly needed 4 arguments ---------------------------- revision 1.785 date: 2017/03/14 18:06:38; author: gilles; state: Exp; lines: +12 -10 No systematic NOP! ---------------------------- revision 1.784 date: 2017/03/14 17:51:48; author: gilles; state: Exp; lines: +120 -30 Changed abandon points (last FOLDER) to reconnection points. ---------------------------- revision 1.783 date: 2017/03/13 06:22:43; author: gilles; state: Exp; lines: +24 -90 Removed Mail::IMAPClient ads! ---------------------------- revision 1.782 date: 2017/03/13 01:20:24; author: gilles; state: Exp; lines: +486 -384 Added --domino1 --domino2 to facilitate Domino options setting. Added password setting via environment variables IMAPSYNC_PASSWORD1 IMAPSYNC_PASSWORD2 ---------------------------- revision 1.781 date: 2017/03/09 12:50:07; author: gilles; state: Exp; lines: +30 -22 Usability. No more "... says it has NO CAPABILITY for AUTHENTICATE LOGIN" ---------------------------- revision 1.780 date: 2017/03/09 11:00:05; author: gilles; state: Exp; lines: +54 -20 Added --office1 --office2 to load simplify sync from and to office 365 (parameters from the FAQ.d/FAQ.Exchange.txt) ---------------------------- revision 1.779 date: 2017/03/07 13:05:02; author: gilles; state: Exp; lines: +85 -65 Removed most of the perlcrit (Severity: 3) Regular expression without "/x" flag ---------------------------- revision 1.778 date: 2017/03/02 00:22:59; author: gilles; state: Exp; lines: +125 -83 Fixed some perlcrit level 4 ---------------------------- revision 1.777 date: 2017/03/01 01:25:58; author: gilles; state: Exp; lines: +20 -16 Added memory_available ---------------------------- revision 1.776 date: 2017/02/28 22:58:38; author: gilles; state: Exp; lines: +89 -68 Added tests_not_long_imapsync_version_public() ---------------------------- revision 1.775 date: 2017/02/17 01:54:27; author: gilles; state: Exp; lines: +27 -23 loadavg on Win32 ---------------------------- revision 1.774 date: 2017/02/15 12:55:50; author: gilles; state: Exp; lines: +40 -25 Bugfix. $tls1 and $tls2 vs $mysync->{tls1} $mysync->{tls2} somewhere ---------------------------- revision 1.773 date: 2017/02/14 23:21:05; author: gilles; state: Exp; lines: +155 -41 Splited loadavg() in 3 calls loadavg_windows() loadavg_darwin() loadavg_linux() Bugfix. Output "Load is" was not complete, miss the important 3 load values! ---------------------------- revision 1.772 date: 2017/02/01 01:31:22; author: gilles; state: Exp; lines: +14 -14 Bugfix. Output Load is was inacurate ---------------------------- revision 1.771 date: 2017/01/31 22:10:51; author: gilles; state: Exp; lines: +10 -10 Bugfix. gmail2() had bad regextrans2 ---------------------------- revision 1.770 date: 2017/01/29 21:48:44; author: gilles; state: Exp; lines: +52 -45 Added $imap1->reconnect in case getting metadata from host2 is too long and host1 timesout. Bugfix. getoption uses $mysync not $sync ---------------------------- revision 1.769 date: 2017/01/28 05:54:43; author: gilles; state: Exp; lines: +60 -61 Removed global $dry and $dry_message => $sync->{dry} $sync->{dry_message} ---------------------------- revision 1.768 date: 2017/01/19 06:12:02; author: gilles; state: Exp; lines: +12 -11 Bugfix. CGI context a newline was bad in $sync->{loadavg} ---------------------------- revision 1.767 date: 2017/01/19 05:53:02; author: gilles; state: Exp; lines: +11 -10 use Net::Ping instead of just require. ---------------------------- revision 1.766 date: 2017/01/19 05:29:42; author: gilles; state: Exp; lines: +12 -12 sslcheck localhost => imapsync.lamiral.info ---------------------------- revision 1.765 date: 2017/01/19 05:16:42; author: gilles; state: Exp; lines: +10 -10 806 unit tests ---------------------------- revision 1.764 date: 2017/01/19 05:12:17; author: gilles; state: Exp; lines: +184 -59 Added --sslcheck and made it on by default. Use --nosslcheck to unset it. --sslcheck checks ssl port 993 and turn on ssl if it is open. ---------------------------- revision 1.763 date: 2017/01/19 00:49:43; author: gilles; state: Exp; lines: +10 -10 792 unit tests ---------------------------- revision 1.762 date: 2017/01/19 00:46:30; author: gilles; state: Exp; lines: +113 -90 --showpasswords now show also passwords with --debugimap Load does not generate Perl warnings on Win32 ---------------------------- revision 1.761 date: 2017/01/17 06:08:49; author: gilles; state: Exp; lines: +12 -9 debug for --gmail1 --gmail2 ---------------------------- revision 1.760 date: 2017/01/17 04:43:51; author: gilles; state: Exp; lines: +90 -11 Added --gmail1 --gmail2 --gmail12 to simplify gmail syncs. It sets parameters from the FAQ --ssl --host etc. Allow parameters passed by POST. ---------------------------- revision 1.759 date: 2017/01/16 13:20:57; author: gilles; state: Exp; lines: +10 -10 Bugfix. Add / after CGI_TMPDIR_TOP ---------------------------- revision 1.758 date: 2017/01/15 19:34:42; author: gilles; state: Exp; lines: +71 -26 Splitted get_options(). Now call either get_options_cgi() or get_options_cmd() I applied David M advice, remove all but what is safe in the context. ---------------------------- revision 1.757 date: 2017/01/12 10:33:47; author: gilles; state: Exp; lines: +10 -10 nb tests ---------------------------- revision 1.756 date: 2017/01/12 10:14:32; author: gilles; state: Exp; lines: +175 -154 tmpdir is cgidir in cgi context. different for each account couple (host,user,pass). ---------------------------- revision 1.755 date: 2017/01/12 03:25:42; author: gilles; state: Exp; lines: +28 -22 Now goes to TLS if STARTTLS is in CAPABILITY and ssl is off and notls is not there. ---------------------------- revision 1.754 date: 2017/01/11 06:43:05; author: gilles; state: Exp; lines: +11 -14 *** empty log message *** ---------------------------- revision 1.753 date: 2017/01/11 04:59:22; author: gilles; state: Exp; lines: +280 -80 Added load average from /proc/loadavg Added abort if load is too heavy in cgi context. ---------------------------- revision 1.752 date: 2017/01/10 00:48:45; author: gilles; state: Exp; lines: +13 -13 timestart with milliseconds. ---------------------------- revision 1.751 date: 2017/01/09 06:57:00; author: gilles; state: Exp; lines: +30 -36 Added milliseconds in logfile name since in cgi context several runs is possible in one second. ---------------------------- revision 1.750 date: 2017/01/05 13:47:10; author: gilles; state: Exp; lines: +57 -36 Added /dist/ link in releasecheck. Added tests_check_last_release( ) Made check_last_release() testable. ---------------------------- revision 1.749 date: 2017/01/05 03:18:01; author: gilles; state: Exp; lines: +10 -10 *** empty log message *** ---------------------------- revision 1.748 date: 2017/01/05 01:48:34; author: gilles; state: Exp; lines: +166 -109 Added cookie imapsync_runs in cgi context. Refactor. $host1 $user1 $password1 $host2 $user2 $password2 under $sync now. Added output() to delay some output in cgi context. ---------------------------- revision 1.747 date: 2016/12/24 15:38:49; author: gilles; state: Exp; lines: +152 -26 Added sub rand32() Added sub createhashfileifneeded() Added sub hashsync() Added sub hashsynclocal() Temporary dir different for each individual sync but same dir if same parameters host1 host2 user1 user2 password1 password2 ---------------------------- revision 1.746 date: 2016/12/19 20:14:37; author: gilles; state: Exp; lines: +81 -23 Extracted the $cgi object creation from sub myGetOptions() Started sub tests_get_options_cgi() Added tests to sub tests_get_options() ---------------------------- revision 1.745 date: 2016/12/14 23:12:37; author: gilles; state: Exp; lines: +102 -41 Refactoring. get_options( @ARGV ) uses @ARGV as a parameter. Refactoring. sub get_options() only gets options (use to add stuff about their values). Refactoring. What was in sub get_options() has gone into sub after_get_options() Refactoring. sub unsetunsafe( ) is now sub sub setcgicontext( ) and has more settings. Bugfix. sub ask_for_password used <> which could open remaining options from @ARGS. Uses now Refactoring. Use Getopt::Long::GetOptionsFromArray() instead of Getopt::Long::GetOptions() Added test sub tests_get_options() Refactoring. Added sub printenv() extracted code from sub get_options() ---------------------------- revision 1.744 date: 2016/12/13 13:04:21; author: gilles; state: Exp; lines: +105 -106 Removed local package Imapsync::Getopt::Long ---------------------------- revision 1.743 date: 2016/12/12 11:43:46; author: gilles; state: Exp; lines: +60 -18 Added --abort option to terminate a previous call still running. Useful in remote context, ie online. ---------------------------- revision 1.742 date: 2016/12/07 16:17:10; author: gilles; state: Exp; lines: +25 -11 Added --simulong int. To simulate a long response in web context. ---------------------------- revision 1.741 date: 2016/11/22 21:27:43; author: gilles; state: Exp; lines: +10 -10 Now print " could not append ( Subject:[$subject], Date:[$h1_date], Size:[$h1_size] ) " whn append fails. ---------------------------- revision 1.740 date: 2016/11/17 15:05:01; author: gilles; state: Exp; lines: +10 -10 Print always permanentflags info. Was only in debug mode. ---------------------------- revision 1.739 date: 2016/11/03 20:31:10; author: gilles; state: Exp; lines: +87 -36 Added sub tests_match( ). Changed name sub tests_dontmatch( ) => tests_notmatch( ) 710 tests noregression. ---------------------------- revision 1.738 date: 2016/11/01 10:11:31; author: gilles; state: Exp; lines: +115 -59 --expunge --expunge1 are pure aliases now (don't know why they were distinct). ---------------------------- revision 1.737 date: 2016/10/11 12:40:59; author: gilles; state: Exp; lines: +16 -16 blanks ---------------------------- revision 1.736 date: 2016/10/10 21:02:49; author: gilles; state: Exp; lines: +3215 -3215 all tabs converted to spaces. By notepad++ ---------------------------- revision 1.735 date: 2016/10/10 20:48:53; author: gilles; state: Exp; lines: +21 -21 crit fix. open my ---------------------------- revision 1.734 date: 2016/10/10 14:05:09; author: gilles; state: Exp; lines: +60 -60 Renamed sub is_valid_directory() to do_valid_directory() Rewrote modulesversion() tp avoid no strict 'refs' usage. use a closure instead ---------------------------- revision 1.733 date: 2016/10/09 21:38:44; author: gilles; state: Exp; lines: +166 -184 Some crit fixes. ---------------------------- revision 1.732 date: 2016/09/29 20:56:35; author: gilles; state: Exp; lines: +106 -106 Small perlcritics. ---------------------------- revision 1.731 date: 2016/09/29 12:24:56; author: gilles; state: Exp; lines: +32 -26 Added --noabletosearch1 --noabletosearch2; Still support --noabletosearch, which turn on both --noabletosearch1 --noabletosearch2 ---------------------------- revision 1.730 date: 2016/09/17 14:30:45; author: gilles; state: Exp; lines: +32 -28 Variable $delete is now $delete1 Change doc --delete => --delete1 --delete still supported, --delete1 and --delete are aliases. ---------------------------- revision 1.729 date: 2016/09/12 06:24:07; author: gilles; state: Exp; lines: +16 -14 typo. ---------------------------- revision 1.728 date: 2016/08/30 11:38:30; author: gilles; state: Exp; lines: +11 -11 Typo ---------------------------- revision 1.727 date: 2016/08/19 10:30:36; author: gilles; state: Exp; lines: +53 -110 Bugfix. Fall back separator to / even when host has no mailbox at all. Usability. Better warning about default ssl SSL_VERIFY_NONE ---------------------------- revision 1.726 date: 2016/08/16 21:32:35; author: gilles; state: Exp; lines: +19 -19 Changed "Checking --regexflag --skipmess --regexmess --maxlinelengthcmd --pipemess commands" with a space string instead of an empty one. Because pipemess() now fails when output is empty. ---------------------------- revision 1.725 date: 2016/08/16 00:01:48; author: gilles; state: Exp; lines: +122 -83 Some perl critics. ---------------------------- revision 1.724 date: 2016/08/13 11:04:06; author: gilles; state: Exp; lines: +362 -150 Refactor. No more global $pidfile, $pidfilelocking, $nb_errors, $errorsdump, @errors_log. Refactor. Changed exit_clean. From exit_clean( 0 ) to exit_clean( $sync, $EX_OK ) ; Refactor. Changed errors_incr. From errors_incr( $error ) to errors_incr( $sync, $error ). Refactor. From stats( ) to stats( $sync ). Added constants: * $EXIT_WITH_ERRORS_MAX * $EXIT_BY_SIGNAL * $EXIT_WITH_ERRORS * $EXIT_PID_FILE_ALREADY_EXIST * $INTERVAL_TO_EXIT ---------------------------- revision 1.723 date: 2016/07/29 21:57:03; author: gilles; state: Exp; lines: +12 -11 Force Unconnected state with Ctrl-c. ---------------------------- revision 1.722 date: 2016/07/29 21:14:11; author: gilles; state: Exp; lines: +20 -12 Added sub debugsleep() Changed --debugsleep to take a float parameter. --debugsleep 4.5 add a sleep of 4.5 seconds every folder and before every copied message. ---------------------------- revision 1.721 date: 2016/07/29 17:25:00; author: gilles; state: Exp; lines: +57 -29 Do reconnections when hit by a signal Ctrl-c, aka INT signal. 2 consecutive Ctrl-c within 1 second then exit the program. ---------------------------- revision 1.720 date: 2016/07/29 15:01:38; author: gilles; state: Exp; lines: +324 -225 Some Perl critics "not one of the allowed literal values". Now still 188 violations of ValuesAndExpressions::ProhibitMagicNumbers. ---------------------------- revision 1.719 date: 2016/07/25 19:27:47; author: gilles; state: Exp; lines: +229 -152 Change some print to myprint. Fixed some perlcritic level 4 & 5 sub pipemess now abort on empty message generated. sub pipemess prints stderr ---------------------------- revision 1.718 date: 2016/07/20 10:45:51; author: gilles; state: Exp; lines: +21 -13 Added --inet4 to force AF_INET connextion in ssl mode. Added --inet6 too to force AF_INET6 in ssl mode. Might be useless. ---------------------------- revision 1.717 date: 2016/07/13 14:05:20; author: gilles; state: Exp; lines: +130 -57 Started tests_message_for_host2() Added cyrillic for hard part --automap --pipemess test with pipe (cat|cat) --pipemess tests with arrors ---------------------------- revision 1.716 date: 2016/07/12 09:02:25; author: gilles; state: Exp; lines: +209 -81 Added full mocked tests to sub tests_delete1emptyfolders(). Test::MockObject is really helpful! Changed pipemess() to return both message and stderr output, in list context. Scalar context stays the same, for now. Added list context tests to tests_pipemess() ---------------------------- revision 1.715 date: 2016/07/05 21:17:48; author: gilles; state: Exp; lines: +10 -10 Removed from errors list "ignoring folder because it is not in host1 whole folders list". Too hard too. ---------------------------- revision 1.714 date: 2016/07/05 21:12:23; author: gilles; state: Exp; lines: +10 -10 Remove "not selectable" folders from the errors list. Too hard. ---------------------------- revision 1.713 date: 2016/07/05 12:50:35; author: gilles; state: Exp; lines: +21 -18 Added "ignoring folder" in the errors list. ---------------------------- revision 1.712 date: 2016/06/30 01:35:02; author: gilles; state: Exp; lines: +202 -21 Added option --delete1emptyfolders ; 8 hours to write it. Added module dependency Test::MockObject for some tests. Only require for now. ---------------------------- revision 1.711 date: 2016/06/22 20:23:33; author: gilles; state: Exp; lines: +10 -10 Removed a useless debug output ---------------------------- revision 1.710 date: 2016/06/22 14:47:23; author: gilles; state: Exp; lines: +28 -27 Perlcritic fixes. ValuesAndExpressions::ProhibitMagicNumbers some 3 and is_a_release_number tests. ---------------------------- revision 1.709 date: 2016/06/22 11:32:40; author: gilles; state: Exp; lines: +58 -37 Perlcritic fixes. ValuesAndExpressions::ProhibitMagicNumbers -1 => $LAST or $MINUS_ONE. ---------------------------- revision 1.708 date: 2016/06/22 10:32:45; author: gilles; state: Exp; lines: +193 -192 Perlcritic fixes. ProhibitParensWithBuiltins, Last ones. ---------------------------- revision 1.707 date: 2016/06/18 00:37:24; author: gilles; state: Exp; lines: +64 -81 Perlcritic fixes. ProhibitParensWithBuiltins, exists() => exists. But not all. Need to examine precedence with not or and etc. Uncommented call to $test_builder->reset( ) Don't know why it was commented but it was bad for knowing tests go wrong. ---------------------------- revision 1.706 date: 2016/06/17 13:34:09; author: gilles; state: Exp; lines: +13 -13 Sugar. "return (" => "return(" ---------------------------- revision 1.705 date: 2016/06/17 13:28:23; author: gilles; state: Exp; lines: +422 -422 Replaced all print( calls by myprint( calls. It prepares better output handling, I hope. ---------------------------- revision 1.704 date: 2016/06/17 13:25:16; author: gilles; state: Exp; lines: +36 -36 Replaced smyprintf by mysprintf ---------------------------- revision 1.703 date: 2016/06/17 13:12:09; author: gilles; state: Exp; lines: +700 -697 Perlcritic fixes. Rmoved parentheses, ProhibitParensWithBuiltins, for defined|scalar|push|keys|unshift|uc but added parentheses to print. Replaced printf by myprintf Replaced sprinf by smyprintf. ---------------------------- revision 1.702 date: 2016/06/15 22:43:35; author: gilles; state: Exp; lines: +495 -495 Fixed perl critic 458 violations of ValuesAndExpressions::ProhibitInterpolationOfLiterals. "Useless interpolation of literal string". 2 left but critic bugs on them. "\1foo" is not '\1foo' but critic suggests equality. ---------------------------- revision 1.701 date: 2016/06/12 23:39:04; author: gilles; state: Exp; lines: +812 -812 Fixed perlcritic "Don't use whitespace at the end of lines". Was 627 violations of CodeLayout::ProhibitTrailingWhitespace. Now 0. For now... ---------------------------- revision 1.700 date: 2016/06/12 20:55:25; author: gilles; state: Exp; lines: +33 -33 Fixed perlcritic latest ouble-sigil dereference $$foo => ${ $ffo } and $#$foo => $#{ $foo } ---------------------------- revision 1.699 date: 2016/06/12 19:51:52; author: gilles; state: Exp; lines: +29 -29 Fixed perlcritic Double-sigil dereference @$foo => @{ $foo } ---------------------------- revision 1.698 date: 2016/06/12 19:39:15; author: gilles; state: Exp; lines: +33 -36 Fixed perlcritic %$foo => %{ $ff } Double-sigil dereference ---------------------------- revision 1.697 date: 2016/06/12 18:42:18; author: gilles; state: Exp; lines: +53 -24 Perl critic fixes. 10 x "Unnamed numeric literals make code less maintainable.". use Readonly to fix them. ---------------------------- revision 1.696 date: 2016/06/09 23:42:34; author: gilles; state: Exp; lines: +201 -201 Fixed perlcritic 'Quotes used with a string containing no non-whitespace characters'. "" or '' => q{} " " or ' ' => q{ } ---------------------------- revision 1.695 date: 2016/06/09 18:17:14; author: gilles; state: Exp; lines: +15 -10 Check connected state in sub create_folder(). ---------------------------- revision 1.694 date: 2016/06/08 21:01:15; author: gilles; state: Exp; lines: +43 -17 Added patch: [imapsync/imapsync] Update XOAUTH2 support to work with Google's newer .json files (#68). ---------------------------- revision 1.693 date: 2016/06/07 21:13:03; author: gilles; state: Exp; lines: +38 -28 CGI loaded when needed only. In CGI mode, Remove all content in unsafe evalued options. In CGI mode, help solving permission issues. ---------------------------- revision 1.692 date: 2016/05/25 16:34:15; author: gilles; state: Exp; lines: +11 -11 Small typo ---------------------------- revision 1.691 date: 2016/05/24 20:56:34; author: gilles; state: Exp; lines: +25 -18 Fixed -1 false output for big account %d => %s in printf. Wrote and use getpwuid_any_os. getpwuid breaks on Windows. ---------------------------- revision 1.690 date: 2016/05/14 21:21:56; author: gilles; state: Exp; lines: +33 -23 *** empty log message *** ---------------------------- revision 1.689 date: 2016/05/09 17:58:11; author: gilles; state: Exp; lines: +155 -20 Started to be CGI compatible. Started package Imapsync::Getopt::Long. ---------------------------- revision 1.688 date: 2016/03/27 22:56:47; author: gilles; state: Exp; lines: +11 -11 Check return code of message_to_file in sub message_for_host2. ---------------------------- revision 1.687 date: 2016/03/24 20:39:33; author: gilles; state: Exp; lines: +10 -10 Replaced message_string() call by message_to_file() and won 1x again. Now imapsync crunches only 2x biggest message size in memory. ---------------------------- revision 1.686 date: 2016/03/24 20:21:57; author: gilles; state: Exp; lines: +27 -27 Changed append_message_on_host2() to pass message string by reference. Memory usage passed from 5x to 3x. 3x remains from underlying Mail::IMAPClient module in Mail::IMAPClient::message_string() ---------------------------- revision 1.685 date: 2016/03/24 17:02:13; author: gilles; state: Exp; lines: +65 -35 Added memory debug in order to decrease the 5x message size in memory. ---------------------------- revision 1.684 date: 2016/03/17 08:35:03; author: gilles; state: Exp; lines: +24 -16 Bugfix. No more warning about "Use of uninitialized value $sockargs[7] in join or string at" in ssl or tls mode. Was due to "'SSL_version' => undef". ---------------------------- revision 1.683 date: 2016/03/07 02:41:11; author: gilles; state: Exp; lines: +22 -10 Added --sslargs1 in documentation. ---------------------------- revision 1.682 date: 2016/03/01 00:47:54; author: gilles; state: Exp; lines: +16 -11 *** empty log message *** ---------------------------- revision 1.681 date: 2016/02/04 03:34:49; author: gilles; state: Exp; lines: +12 -13 Bugfix. Syntax error! ---------------------------- revision 1.680 date: 2016/02/04 02:11:32; author: gilles; state: Exp; lines: +25 -27 Bugfix. Added --expungeaftereach in sub delete_message_on_host1(). Usability. Added "use --noexpungeaftereach to speed up" if --delete is used. ---------------------------- revision 1.679 date: 2016/01/25 01:57:54; author: gilles; state: Exp; lines: +11 -11 Bugfix. "Can't use an undefined value as a HASH reference at /usr/bin/imapsync line 1247." ---------------------------- revision 1.678 date: 2016/01/21 19:47:02; author: gilles; state: Exp; lines: +14 -21 README part check. ---------------------------- revision 1.677 date: 2016/01/19 14:55:06; author: gilles; state: Exp; lines: +295 -289 help message easier to copy in README part. ---------------------------- revision 1.676 date: 2016/01/16 05:30:00; author: gilles; state: Exp; lines: +282 -77 Changed basic option list by --help output. ---------------------------- revision 1.675 date: 2016/01/06 01:10:05; author: gilles; state: Exp; lines: +11 -9 Added --errorsmax in --help message. ---------------------------- revision 1.674 date: 2015/12/28 18:31:06; author: gilles; state: Exp; lines: +17 -10 Added --debugssl int. Default is like --debugssl 1 (Only print out errors). ---------------------------- revision 1.673 date: 2015/12/26 02:00:05; author: gilles; state: Exp; lines: +141 -145 Added --timeout1 Added --timeout2 (--timeout still available to set both with the same value) Added --sslargs1 to pass any ssl parameter for host1 connection. Added --sslargs2 to pass any ssl parameter for host2 connection. Example --sslargs1 SSL_verify_mode=1 --sslargs1 SSL_version=SSLv3 Removed --allow3xx option. ---------------------------- revision 1.672 date: 2015/12/10 10:23:49; author: gilles; state: Exp; lines: +9 -8 Added require Encode::Byte to solve "The locale codeset (cp1252) isn't one that perl can decode" on Win32. ---------------------------- revision 1.671 date: 2015/12/09 03:22:46; author: gilles; state: Exp; lines: +48 -47 Added env_proxy call in sub xoauth2() to read proxy settings from environment variable without PERL_LWP_ENV_PROXY=1 ---------------------------- revision 1.670 date: 2015/12/03 02:36:41; author: gilles; state: Exp; lines: +11 -12 Bugfix. logfile missed user2. ---------------------------- revision 1.669 date: 2015/12/03 02:03:53; author: gilles; state: Exp; lines: +138 -83 --logdir --logfile now compatible with old --logfile alone. tests cases. ---------------------------- revision 1.668 date: 2015/12/02 13:23:22; author: gilles; state: Exp; lines: +94 -86 Fixed some perlcritics. ---------------------------- revision 1.667 date: 2015/11/30 02:44:12; author: gilles; state: Exp; lines: +156 -60 --automap implemented. Added --justautomap to see what will happen with --automap and --f1f2 options. ---------------------------- revision 1.666 date: 2015/11/23 14:56:56; author: gilles; state: Exp; lines: +50 -19 Doc fix. --logfile path inline and in usage(). Added require JSON::WebToken::Crypt::RSA and Crypt::OpenSSL::RSA to a good build on Win32. Tested OAUTH2 on windows. Works. Bug fix. Changed "Host1: checking all wanted folders exist" not efficient algorythm to allow a 2.4 million folders account. Yes, some people have this... ---------------------------- revision 1.665 date: 2015/11/06 00:45:35; author: gilles; state: Exp; lines: +29 -9 Made quota wrnings, quota human usable. ---------------------------- revision 1.664 date: 2015/11/04 18:09:22; author: gilles; state: Exp; lines: +362 -323 Back to require IO::Socket::SSL; instead of use. Reformated the usage output. Added --f1f2 str1=str2 : Force folder str1 to be synced to str2. --f1f2 overrides any automap mapping and any regextrans2 ---------------------------- revision 1.663 date: 2015/10/03 23:59:27; author: gilles; state: Exp; lines: +12 -9 Bugfix. Return with previous Debug when no quota available. ---------------------------- revision 1.662 date: 2015/10/03 22:14:37; author: gilles; state: Exp; lines: +84 -24 Added quota_extract_storage_limit_in_bytes() Added quota_extract_storage_current_in_bytes() ---------------------------- revision 1.661 date: 2015/09/28 15:36:41; author: gilles; state: Exp; lines: +18 -19 Better prints. ---------------------------- revision 1.660 date: 2015/09/28 14:18:10; author: gilles; state: Exp; lines: +21 -15 IMAP output as an early stage of quota and ID. ---------------------------- revision 1.659 date: 2015/09/21 22:47:50; author: gilles; state: Exp; lines: +107 -29 Better ID format sent. Order terms like in thr RFC. Added imapsync_id_github, in case. ---------------------------- revision 1.658 date: 2015/09/19 08:56:07; author: gilles; state: Exp; lines: +8 -8 RCS date in id. ---------------------------- revision 1.657 date: 2015/09/19 08:26:04; author: gilles; state: Exp; lines: +206 -77 Started to use global $sync-> in order to reduce number of parameters in routines. ---------------------------- revision 1.656 date: 2015/09/13 16:11:07; author: gilles; state: Exp; lines: +46 -24 Some perlcritic fixes. ---------------------------- revision 1.655 date: 2015/09/11 01:57:51; author: gilles; state: Exp; lines: +15 -12 Bugfix testing automap. ---------------------------- revision 1.654 date: 2015/09/11 01:23:42; author: gilles; state: Exp; lines: +121 -76 Added --automap to implement rfc6154. Turned on by default. Use --noautomap to avoid it. ---------------------------- revision 1.653 date: 2015/09/05 21:35:56; author: gilles; state: Exp; lines: +27 -25 IO::Socket::SSL mandatory to run. SSL_VERIFY_NONE in --ssl and --tls ---------------------------- revision 1.652 date: 2015/08/28 14:59:59; author: gilles; state: Exp; lines: +8 -8 "Initial difference" -> "Start difference" ---------------------------- revision 1.651 date: 2015/08/18 22:35:05; author: gilles; state: Exp; lines: +8 -8 fixed xoauth2 calls. ---------------------------- revision 1.650 date: 2015/08/16 00:42:58; author: gilles; state: Exp; lines: +28 -28 Changed some output, added Host1: or Host2 at the begining of line. ---------------------------- revision 1.649 date: 2015/08/10 03:10:15; author: gilles; state: Exp; lines: +7 -7 576 tests. ---------------------------- revision 1.648 date: 2015/08/10 02:58:21; author: gilles; state: Exp; lines: +99 -39 Added guess_prefix() and guess_separator() Guess prefixes and separators instead of forcing the user to find them. ---------------------------- revision 1.647 date: 2015/08/07 04:35:15; author: gilles; state: Exp; lines: +33 -20 Added folders counting outputs. ---------------------------- revision 1.646 date: 2015/08/07 00:07:39; author: gilles; state: Exp; lines: +16 -6 Added sub imap_utf7_encode( ). Not used. ---------------------------- revision 1.645 date: 2015/07/31 14:48:11; author: gilles; state: Exp; lines: +11 -11 Better outpout in login_imap() ---------------------------- revision 1.644 date: 2015/07/17 01:22:52; author: gilles; state: Exp; lines: +9 -7 Added NOOP in --dry mode during fake APPEND. ---------------------------- revision 1.643 date: 2015/06/24 01:01:00; author: gilles; state: Exp; lines: +17 -10 Added --fetch_hash_set "1:*" to permit Mail2World success. Need a patched Mail::IMAPClient 3.35 in sub fetch_hash() See https://rt.cpan.org/Public/Bug/Display.html?id=105456 ---------------------------- revision 1.642 date: 2015/05/11 01:07:37; author: gilles; state: Exp; lines: +9 -6 Added JSON::WebToken in modules list. ---------------------------- revision 1.641 date: 2015/05/09 17:52:27; author: gilles; state: Exp; lines: +27 -128 Replaced imap servers software list by a link to the web list. Added option --subfolder2 SUB Move whole host1 folders hierarchy under folder SUB. ---------------------------- revision 1.640 date: 2015/05/05 01:03:34; author: gilles; state: Exp; lines: +18 -12 No folders sizes if --justfolders, unless really wanted. ---------------------------- revision 1.639 date: 2015/04/16 19:33:59; author: gilles; state: Exp; lines: +7 -7 *** empty log message *** ---------------------------- revision 1.638 date: 2015/04/09 22:47:24; author: gilles; state: Exp; lines: +19 -11 No warning about messages when --dry --justfolders together. ---------------------------- revision 1.637 date: 2015/04/01 01:36:37; author: gilles; state: Exp; lines: +9 -9 Bugfix. Win32 regression with long_path_2_prefix test. Was too long. ---------------------------- revision 1.636 date: 2015/03/31 14:54:41; author: gilles; state: Exp; lines: +107 -65 Added errors dump. By default. Use --noerrorsdump to avoid it. Added --errorsmax switch. Default is like --errorsmax 50. Exit after 50 errors encountered. ---------------------------- revision 1.635 date: 2015/03/30 07:36:08; author: gilles; state: Exp; lines: +19 -15 Changed basic example to a working one with test1.lamiral.info ---------------------------- revision 1.634 date: 2015/03/25 02:10:56; author: gilles; state: Exp; lines: +10 -7 Bugfix. Remove tmp files upon failure as well. ---------------------------- revision 1.633 date: 2015/03/25 01:14:36; author: gilles; state: Exp; lines: +96 -73 IO::Socket::SSL not mandatory. (Sometimes hard to install). Bugfix. SKIP sections for Unix or Windows tests. Removed no_plan. 561 non-regression tests. ---------------------------- revision 1.632 date: 2015/03/23 23:29:16; author: gilles; state: Exp; lines: +16 -6 Added tests_live_result() call at the end of --livetests ---------------------------- revision 1.631 date: 2015/03/23 00:04:04; author: gilles; state: Exp; lines: +52 -41 README part review. ---------------------------- revision 1.630 date: 2015/03/20 03:07:59; author: gilles; state: Exp; lines: +93 -52 Bugfix. Made --tests succeed on Windows. At least at home. ---------------------------- revision 1.629 date: 2015/03/19 03:43:24; author: gilles; state: Exp; lines: +10 -16 Usability. Better output of folders excluded by --exclude and folders included by --include ---------------------------- revision 1.628 date: 2015/03/19 03:03:28; author: gilles; state: Exp; lines: +80 -38 Bugfix. tests_imapsync_basename only check substring imapsync in the command name used. Feature. Added --maxlinelengthcmd that will be called upon when a line over --maxlinelength is detected. --maxlinelengthcmd 'reformime -r7' on Linux. ---------------------------- revision 1.627 date: 2015/03/16 15:55:57; author: gilles; state: Exp; lines: +34 -21 Added --testslive ---------------------------- revision 1.626 date: 2015/03/15 02:52:43; author: gilles; state: Exp; lines: +20 -20 Update tests_skipmess() ---------------------------- revision 1.625 date: 2015/03/14 00:32:41; author: gilles; state: Exp; lines: +31 -15 Bugfix. New disarmreadreceipts was buggy in IMAP. Fixed. \r in the beginning. ---------------------------- revision 1.624 date: 2015/03/13 02:05:12; author: gilles; state: Exp; lines: +41 -18 Searching for "deep recursion" with skipmess on "Partial" messages. Not found. ---------------------------- revision 1.623 date: 2015/03/12 16:33:59; author: gilles; state: Exp; lines: +21 -6 Made check folders exist on host1 independent of checkselectable. ---------------------------- revision 1.622 date: 2015/03/12 16:28:38; author: gilles; state: Exp; lines: +24 -11 Bugfix. --folderfirst and --folderlast generated an error when their value folder does not exist. Existence is checked. ---------------------------- revision 1.621 date: 2015/03/12 10:40:11; author: gilles; state: Exp; lines: +86 -21 Bugfix --disarmreadreceipts last fix was a bad one. In IMAP \n is \r\n. Added error handling for --pipemess Adapted tests for "Content-Type: Message/Partial" --slipmess ---------------------------- revision 1.620 date: 2015/03/10 04:07:33; author: gilles; state: Exp; lines: +141 -10 Bugfix. --disarmreadreceipts used to change Disposition-Notification-To in the body when not available in the header. Now never changed in the body in all cases. ---------------------------- revision 1.619 date: 2015/03/10 03:13:30; author: gilles; state: Exp; lines: +301 -22 Use \x00 as a separator to detect --delete 2, instead of ¤. Added tests for --skipmess, especially for header "Content-Type: Message/Partial" Bug detected --disarmreadreceipts isn't correct. Added tests and fix in tests. Added tests in tests_regexmess(). Disposition-Notification-To: better handled. ---------------------------- revision 1.618 date: 2015/03/07 04:38:59; author: gilles; state: Exp; lines: +261 -205 Added --pipemess in order to pass all message to an external filter tool like "reformime -r7". ---------------------------- revision 1.617 date: 2015/03/04 01:09:50; author: gilles; state: Exp; lines: +18 -19 Link to http://www.imap.org/ changed to archive.org. ---------------------------- revision 1.616 date: 2015/03/02 23:14:42; author: gilles; state: Exp; lines: +86 -10 Added xoauth2 support. Thanks to Joaquin Lopez. ---------------------------- revision 1.615 date: 2015/03/01 23:26:10; author: gilles; state: Exp; lines: +76 -46 Fixed tests with "header_line_normalize: remove last blanks". Remove the last blanks ( Gmail bug ) to identify message with headers. Term::ReadKey and IO::Socket::SSL now in use statements instead of require (so they became mandatory). Change list of use pragmas order to facilitate reading. ---------------------------- revision 1.614 date: 2015/02/22 22:43:16; author: gilles; state: Exp; lines: +90 -46 Added inline help. About --nofoldersizes, foldernames listings, --passfile1 --passfile2. Change usage order. ---------------------------- revision 1.613 date: 2015/02/22 01:08:51; author: gilles; state: Exp; lines: +23 -10 Fixed issue with 1282658400 and logfile() by and system upgrade. Looks like Ubuntu 10.4 was buggy. ---------------------------- revision 1.612 date: 2015/02/03 23:20:51; author: gilles; state: Exp; lines: +17 -13 Fixed tests_logfile() when TZ is not mine. Works for epoch 0 but found a difference for 1282658400 ---------------------------- revision 1.611 date: 2015/02/02 16:14:43; author: gilles; state: Exp; lines: +18 -18 Started inline help; talk about options everywhere it means and help to lean imapsync. Change default useheader. Now it is really like --useheader "Message-Id" --useheader "Received" HMailServer replies two lines with --useheader "Message-Id" --useheader "Message-ID" in older releases. ---------------------------- revision 1.610 date: 2015/01/20 12:07:30; author: gilles; state: Exp; lines: +21 -15 Bugfix in imap_utf7_decode() + must not be escaped. ---------------------------- revision 1.609 date: 2014/11/28 17:06:53; author: gilles; state: Exp; lines: +14 -8 Bugfix. --skipmess was not skipping. ---------------------------- revision 1.608 date: 2014/11/28 16:47:29; author: gilles; state: Exp; lines: +95 -12 Added --skipmess to skip messages matching a regex. Example --skipmess 'm/[\x80-ff]/' ---------------------------- revision 1.607 date: 2014/11/14 16:25:06; author: gilles; state: Exp; lines: +46 -40 Added several checks if IsUnconnected. Goal avoid imap commands while disconnected. ---------------------------- revision 1.606 date: 2014/11/14 14:49:13; author: gilles; state: Exp; lines: +16 -13 Added total size transferred after each message copied. Added number of total to be synced as a denominator dddd after each message copied, nnn/dddd, where nnn is the number of messages copied. ---------------------------- revision 1.605 date: 2014/11/11 00:00:37; author: gilles; state: Exp; lines: +40 -10 Bugfix. On Windows file path with brackets [] are special. [a] must be written [[]a[]] ---------------------------- revision 1.604 date: 2014/11/08 00:29:26; author: gilles; state: Exp; lines: +36 -9 Added --skipemptyfolders to skip empty host1 folders. They are not created on host2. ---------------------------- revision 1.603 date: 2014/11/07 22:06:33; author: gilles; state: Exp; lines: +26 -26 Typo from previous save with gedit and ¤ ---------------------------- revision 1.602 date: 2014/11/07 21:57:57; author: gilles; state: Exp; lines: +82 -19 Added utf8 output for folder names that use special characters in utf7imap ---------------------------- revision 1.601 date: 2014/10/28 10:48:07; author: gilles; state: Exp; lines: +22 -22 Moved foldersizes call after folders lists print. ---------------------------- revision 1.600 date: 2014/10/27 10:41:52; author: gilles; state: Exp; lines: +8 -8 Remove /x from regex applied with --include and --exclude. Blanks no longer have to be explicit with \ or [ ]. ---------------------------- revision 1.599 date: 2014/10/26 23:42:12; author: gilles; state: Exp; lines: +14 -10 Added help usage for --nomixfolders ---------------------------- revision 1.598 date: 2014/10/21 00:27:07; author: gilles; state: Exp; lines: +20 -7 Added tests to check --regextrans2 's,(.*),\L$1,' Exchange issue with folders with same name and --delete2. ---------------------------- revision 1.597 date: 2014/10/06 10:48:26; author: gilles; state: Exp; lines: +12 -11 Changed --nomixdiffcasefolders to --nomixfolders. Bugfix. --nomixdiffcasefolders was not parsed in command line so it did not work. ---------------------------- revision 1.596 date: 2014/09/04 17:17:36; author: gilles; state: Exp; lines: +11 -6 Added --logfile in help output. Added --nolog in help output. ---------------------------- revision 1.595 date: 2014/09/01 19:39:16; author: gilles; state: Exp; lines: +7 -7 Changed output, no examine anymore, only select. ---------------------------- revision 1.594 date: 2014/08/16 22:40:02; author: gilles; state: Exp; lines: +14 -9 Fixed "imapsync doesn't see created folders in stats phase". Second time. ---------------------------- revision 1.593 date: 2014/07/08 11:19:43; author: gilles; state: Exp; lines: +18 -7 Added --nomixdiffcasefolders to avoid merging folders that are considered different on host1 but the same on destination host2 because of case sensitivities and insensitivities. ---------------------------- revision 1.592 date: 2014/05/22 10:03:17; author: gilles; state: Exp; lines: +23 -12 Bugfix. Make TLS works with last IO::Socket::SSL default value (SSL_verify_mode => 'SSL_VERIFY_NONE') in tls. ---------------------------- revision 1.591 date: 2014/05/22 01:32:52; author: gilles; state: Exp; lines: +30 -19 Bugfix. IO::Tee and Open3 in backstic() were incompatible. FailedBugFix. Tried to fix Tls issue "ERROR: Unable to start TLS: SSL connect attempt failed with unknown error error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed at c:/strawberry/perl/site/lib/Mail/IMAPClient.pm line 455." No success. ---------------------------- revision 1.590 date: 2014/05/20 23:07:14; author: gilles; state: Exp; lines: +12 -6 Added option --disarmreadreceipts to fix resending read receipts with Exchange as host2. ---------------------------- revision 1.589 date: 2014/05/20 21:35:16; author: gilles; state: Exp; lines: +93 -37 Added logging by default in subdirectory LOG_imapsync/. Added option --log. --log is on by default. --nolog to disable logging. Added option --logfile. Default is like LOG_imapsync/YYYY_MM_DD_HH_MM_SS_user2.txt where YYYY_MM_DD_HH_MM_SS is the current date and time like 2014_05_20_23_45_10 Use IO::Tee Perl module for logging. Fixed bug when creating folders on host2 with sep2 to \\ (Lotus Notes). Updated the code to easily switch on --noreleasecheck by default. ---------------------------- revision 1.588 date: 2014/05/15 10:36:10; author: gilles; state: Exp; lines: +18 -11 Added FTGate support (no EXAMINE). ---------------------------- revision 1.587 date: 2014/05/09 17:03:27; author: gilles; state: Exp; lines: +14 -7 Typo when advising about prefix. Easy way to switch releasecheck of by default. ---------------------------- revision 1.586 date: 2014/04/10 16:02:39; author: gilles; state: Exp; lines: +9 -7 Just a test for good_date and pop2imap ---------------------------- revision 1.585 date: 2014/02/17 15:24:34; author: gilles; state: Exp; lines: +39 -34 Warn syncing messges will not be simulated when --dry mode is on and folder on host2 does not exist yet. Try to get folder size when a folder on host2 has the same name but with a different case like OLD_MAIL -> old_mail. Avoid "does not exist" output. ---------------------------- revision 1.584 date: 2014/02/05 00:40:59; author: gilles; state: Exp; lines: +77 -50 Debug. Print separator given by NAMESPACE even when --sep1 oe --sep2 is used. Debug. Prints prefix given by NAMESPACE even when --prefix1 or --prefix2 is used. (Preparation for advising not to use --prefix unless suggested) ---------------------------- revision 1.583 date: 2014/02/04 03:04:35; author: gilles; state: Exp; lines: +15 -11 Bug fix. --ssl1 --tls2 was buggy because of default SSL_VERIFY_PEER. "Can not go to tls encryption on [localhost]:Unable to start TLS: Cannot determine peer hostname for verificationerror:00000000:lib(0):func(0):reason(0)" ---------------------------- revision 1.582 date: 2014/01/24 01:43:19; author: gilles; state: Exp; lines: +20 -12 Bugfix. Check if going to tls is ok, exit otherwise with explicit error message. Thanks to Dennis Schridde for reporting this ugly bug. ---------------------------- revision 1.581 date: 2014/01/15 02:42:06; author: gilles; state: Exp; lines: +41 -15 Added --debugmaxlinelength Added --minmaxlinelength to select messages with long lines only. ---------------------------- revision 1.580 date: 2013/12/25 02:52:36; author: gilles; state: Exp; lines: +51 -27 Added --skipcrossduplicates to avoid copying messages that are already copied in another folder. Added --debugcrossduplicates to print which messages (UIDs) are skipped with --skipcrossduplicates (and in what other folders they are). ---------------------------- revision 1.579 date: 2013/12/18 13:53:19; author: gilles; state: Exp; lines: +9 -8 --maxmessagespersecond, value can be float like 3.2 ---------------------------- revision 1.578 date: 2013/12/17 02:14:09; author: gilles; state: Exp; lines: +73 -9 Added --maxbytespersecond to limit byte transfer rate. Added --maxmessagespersecond to limit messages tranfer rate (office365 throttle limitation). ---------------------------- revision 1.577 date: 2013/12/05 05:57:51; author: gilles; state: Exp; lines: +28 -10 Added tests to play with win32 \\?\C:\TEMP syntax and try to solve long path bug. ---------------------------- revision 1.576 date: 2013/11/19 14:37:24; author: gilles; state: Exp; lines: +19 -14 Added --debugmemory option that prints memory consumption after each message is copied. ---------------------------- revision 1.575 date: 2013/11/06 13:55:38; author: gilles; state: Exp; lines: +12 -7 Do not append message if the fetch failed. ---------------------------- revision 1.574 date: 2013/10/28 16:22:04; author: gilles; state: Exp; lines: +16 -8 Added --create_folder_old in case users want the old behavior of create_folder(). ---------------------------- revision 1.573 date: 2013/10/28 14:44:10; author: gilles; state: Exp; lines: +48 -7 Bugfix. Applied patch for create_folder() and nested folders. Thanks to Erik Torsner. ---------------------------- revision 1.572 date: 2013/10/27 02:04:01; author: gilles; state: Exp; lines: +13 -8 Bug fix. Final statistics were avoided for newly created folders. ---------------------------- revision 1.571 date: 2013/10/25 14:34:27; author: gilles; state: Exp; lines: +58 -20 Added --folderfirst : Sync this folder first. --folderfirst "Work" Added --folderlast : Sync this folder last. --folderlast "[Gmail]/All Mail" --folderlast : then this one, etc. ---------------------------- revision 1.570 date: 2013/10/25 12:52:02; author: gilles; state: Exp; lines: +7 -7 --delete2foldersonly Junk example. ---------------------------- revision 1.569 date: 2013/10/16 21:58:17; author: gilles; state: Exp; lines: +125 -39 Fixed bug on Windows with --tmpdir "E:\TEMP". The colon was badly converted to _, ending with "E_\TEMP". The fix also automatically moves the old cache to the new one if the new does not exist yet. Fix. Example for --delete2foldersonly "/Junk$/" in help message. ---------------------------- revision 1.568 date: 2013/09/28 02:43:51; author: gilles; state: Exp; lines: +25 -13 Bug fix. On Win32 trailing blanc in cache dir name raized an error. Blanc now move to underscore _. ---------------------------- revision 1.567 date: 2013/09/18 20:38:10; author: gilles; state: Exp; lines: +8 -7 Fixed a warning when RFC822.SIZE is null or undef. ---------------------------- revision 1.566 date: 2013/09/13 13:23:41; author: gilles; state: Exp; lines: +11 -12 Added --authmech EXTERNAL. Not tested yet. ---------------------------- revision 1.565 date: 2013/09/13 01:16:20; author: gilles; state: Exp; lines: +8 -6 Fusemail success. RackSpace success. ---------------------------- revision 1.564 date: 2013/08/18 19:28:47; author: gilles; state: Exp; lines: +114 -22 Adapted behavior for allowing --maxdate --mindate with --noabletosearch. Use internat date instead of Date: header. ---------------------------- revision 1.563 date: 2013/08/16 00:59:30; author: gilles; state: Exp; lines: +8 -7 Added QQMail success. ---------------------------- revision 1.562 date: 2013/08/16 00:41:48; author: gilles; state: Exp; lines: +38 -16 Speed fix. Does not resync the flags when flags on host2 do not respect RFC. \Seen -> \SEEN. imapsync detects this as same flag. Atmail 6.x [host1] success. Fix for QQMail IMAP4Server. With --noabletosearch the previous fetch with 1:999999 is replaced by an uidnext request. ---------------------------- revision 1.561 date: 2013/08/09 23:49:23; author: gilles; state: Exp; lines: +15 -8 Added --timeout in the --help output. Default timeout is 120 seconds now (was nothing by imapsync, 600 with underlying modules). ---------------------------- revision 1.560 date: 2013/08/09 23:06:04; author: gilles; state: Exp; lines: +7 -7 Added --addheader suggestion for messages with no header found. ---------------------------- revision 1.559 date: 2013/08/06 11:33:53; author: gilles; state: Exp; lines: +7 -7 Apply same treatment to --delete2duplicates as --delete2. If --uidexpunge2 can be done, do it, else do --expunge2 (unless --nouidexpunge2 or --noexpunge2). ---------------------------- revision 1.558 date: 2013/08/03 01:13:37; author: gilles; state: Exp; lines: +18 -16 Bugfix. SSL_version was not well treated. ---------------------------- revision 1.557 date: 2013/08/01 19:28:09; author: gilles; state: Exp; lines: +7 -7 Bugfix. max_line_length('a') was wrong. ---------------------------- revision 1.556 date: 2013/08/01 00:10:03; author: gilles; state: Exp; lines: +42 -28 Added --ssl1_SSL_version ssl2_SSL_version option to change default SSL_version. For example --ssl2_SSL_version SSLv3 fix connection to cmail.cmich.edu on Windows. Fixed a warning about regex with \E on Perl >= 5.16 ---------------------------- revision 1.555 date: 2013/07/23 11:41:10; author: gilles; state: Exp; lines: +7 -6 Fix warning for extract_header() ---------------------------- revision 1.554 date: 2013/07/22 01:23:12; author: gilles; state: Exp; lines: +7 -7 typo - when error printed. ---------------------------- revision 1.553 date: 2013/07/22 01:18:30; author: gilles; state: Exp; lines: +9 -7 Bug fix. Header lines can contain \r\n. ---------------------------- revision 1.552 date: 2013/07/22 00:51:52; author: gilles; state: Exp; lines: +74 -11 Added "Subject: lala" when line length exceeds maxlinelength to help ti find what are those messages. Added also size, flags and internal date. ---------------------------- revision 1.551 date: 2013/07/19 14:05:50; author: gilles; state: Exp; lines: +698 -650 Added option --maxlinelength to skip messages whose max line length is over a number of bytes. ---------------------------- revision 1.550 date: 2013/07/19 00:13:22; author: gilles; state: Exp; lines: +1029 -585 Added success Domino 8.5.2 Added option --messageidnodomain to fix Mailenable bug changing the domain part of Message-Id header, and avoid duplicates Added option --syncflagsaftercopy to fix Mailenable bug not getting the flags with the APPEND. Added back the banner of IMAP servers, ie, the first line given after the connection established. Added --fixInboxINBOX, turned on by default, to map automatically Inbox INBOX folder names. IMAP server removing consecutive spaces on the header part doesn't generate duplicates (MailEnable does that). Better output of mailbox sizes in human style (could be 1024.00 Kib, now it is 1.000 Mib). Changed bytes_display_string(). Option --debugflags now prints flags on first sync (the copy) and also the PERMANENTFLAGS outpout. Fixed nearly 200 perlcritic at level 3, all level 4. Still 5 eval "" at level 5 and 12 critics at level 3. ---------------------------- revision 1.549 date: 2013/07/06 01:09:03; author: gilles; state: Exp; lines: +81 -11 Fixed two bugs coming from adding return( ) at the end of functions. Added tests to remove Disposition-Notification-To: header with regexmess:. ---------------------------- revision 1.548 date: 2013/07/04 02:25:05; author: gilles; state: Exp; lines: +247 -201 Removed all perlcritic severity 4. Still 5 critics at severity 5. 98 critics severity 4 fixed. ---------------------------- revision 1.547 date: 2013/07/03 01:24:34; author: gilles; state: Exp; lines: +11 -8 DBOX 2.41 success. Kerio 8 success. ---------------------------- revision 1.546 date: 2013/07/02 03:49:32; author: gilles; state: Exp; lines: +14 -8 Fixed IO::Socket::IP bug on Win32? Removed SSL::DEBUG Added "copying.." in dry mode. ---------------------------- revision 1.545 date: 2013/06/06 20:43:56; author: gilles; state: Exp; lines: +27 -125 Rmoved sub starttls() Removed sub myconnect() Removed sub RawSocket2() Applied patch from Jim Klimov to handle proxyauth failures ---------------------------- revision 1.544 date: 2013/06/02 23:36:16; author: gilles; state: Exp; lines: +25 -24 Remove myconnect() use. Replaced by $imap->connect() Removed sub Split add in Mail::IMAPClient ---------------------------- revision 1.543 date: 2013/05/22 01:22:03; author: gilles; state: Exp; lines: +12 -7 SSL_verify_mode 0 to avoid warning about Man-In-The-Middle. ---------------------------- revision 1.542 date: 2013/05/06 08:30:35; author: gilles; state: Exp; lines: +7 -7 Syntax with "" fix. ---------------------------- revision 1.541 date: 2013/05/06 07:10:29; author: gilles; state: Exp; lines: +111 -74 Started perlcritic corrections. Left 4 eval at level 5. ---------------------------- revision 1.540 date: 2013/04/22 11:05:51; author: gilles; state: Exp; lines: +11 -982 Removed old 2.2.9 Mail::IMAPClient patch stuff. ---------------------------- revision 1.539 date: 2013/04/22 00:54:22; author: gilles; state: Exp; lines: +12 -12 Fixed require namespace with uri_escape() calls. ---------------------------- revision 1.538 date: 2013/04/22 00:46:54; author: gilles; state: Exp; lines: +94 -9 Added XOAUTH authentication. Thanks to Eduardo Bortoluzzi Junior. ---------------------------- revision 1.537 date: 2013/04/19 06:59:17; author: gilles; state: Exp; lines: +9 -9 MDaemon 9.6.5, Surgemail 6.3d-72 ---------------------------- revision 1.536 date: 2013/04/17 14:33:12; author: gilles; state: Exp; lines: +7 -7 Added --delete1 as an alias for --delete ---------------------------- revision 1.535 date: 2013/04/17 12:47:58; author: gilles; state: Exp; lines: +42 -33 Updated README part. ---------------------------- revision 1.534 date: 2013/04/16 15:31:50; author: gilles; state: Exp; lines: +26 -17 Added --search1 and --search2 to allow different searches on each host. ---------------------------- revision 1.533 date: 2013/04/10 12:03:39; author: gilles; state: Exp; lines: +8 -6 Comment in select_msgs() ---------------------------- revision 1.532 date: 2013/04/10 08:33:52; author: gilles; state: Exp; lines: +11 -9 Fixed Scott issue again. Was not enough. ---------------------------- revision 1.531 date: 2013/04/09 08:10:38; author: gilles; state: Exp; lines: +7 -7 Fixed Scott issue, took long time (all messages list) even with --useuid --delete --nousecache --maxage 1 ---------------------------- revision 1.530 date: 2013/04/09 08:00:54; author: gilles; state: Exp; lines: +13 -14 Clarified select_msgs() a little. ---------------------------- revision 1.529 date: 2013/03/29 14:32:26; author: gilles; state: Exp; lines: +14 -12 Phil patch. ---------------------------- revision 1.528 date: 2013/03/29 03:12:45; author: gilles; state: Exp; lines: +60 -21 Applied Phil patch. ---------------------------- revision 1.527 date: 2013/03/29 01:15:05; author: gilles; state: Exp; lines: +10 -8 Mail2World Server Zarafa Gateway ---------------------------- revision 1.526 date: 2013/02/27 22:40:45; author: gilles; state: Exp; lines: +9 -7 Apple Server Zarafa server ---------------------------- revision 1.525 date: 2013/02/05 12:52:10; author: gilles; state: Exp; lines: +9 -9 Typo synchronise -> synchronize. ---------------------------- revision 1.524 date: 2013/01/31 20:41:29; author: gilles; state: Exp; lines: +8 -7 Small fix in help message. \\D ---------------------------- revision 1.523 date: 2013/01/31 14:12:21; author: gilles; state: Exp; lines: +118 -99 Reorganized the --help message. ---------------------------- revision 1.522 date: 2013/01/28 02:50:49; author: gilles; state: Exp; lines: +13 -13 Printing info with several host1 folder going to one host2 folder is in --debug mode now. ---------------------------- revision 1.521 date: 2013/01/23 07:48:01; author: gilles; state: Exp; lines: +7 -7 Speed. --nocheckmessageexists is activated by default since --checkmessageexists often slow down transfers too much. ---------------------------- revision 1.520 date: 2013/01/23 07:41:48; author: gilles; state: Exp; lines: +103 -30 Fix. Removed reference to DWTFPL since license is NOLIMIT now. License file is LICENSE now, no longer COPYING. Fix. Handle the case where several folders on host1 go to one folder on host2 with --delete2 option. The bug was imapsync was copying messages and deleting them on next folder. ---------------------------- revision 1.519 date: 2012/12/31 09:51:40; author: gilles; state: Exp; lines: +11 -9 Usability fix. --foldersizesatend is on if --foldersizes is on. Off if --nofoldersizesatend ---------------------------- revision 1.518 date: 2012/12/24 00:27:34; author: gilles; state: Exp; lines: +9 -6 Bugfix. When identtifying with header, change tabulations to spaces (Gmail bug on with "Received:" on multilines). ---------------------------- revision 1.517 date: 2012/12/11 07:13:04; author: gilles; state: Exp; lines: +17 -10 Added Deerfield VisNetic MailServer 5.8.6 Bugfix. Automatic --nocheckmessageexists when --noabletosearch is set. ---------------------------- revision 1.516 date: 2012/11/02 22:15:04; author: gilles; state: Exp; lines: +43 -38 Added current date at the beginning of the run, useful when imapsync doesn't end properly or hasn't finished yet. Better output for diff statistics. ---------------------------- revision 1.515 date: 2012/10/31 12:56:02; author: gilles; state: Exp; lines: +12 -9 Added Initial difference to compare it with Final difference. ---------------------------- revision 1.514 date: 2012/10/31 01:39:38; author: gilles; state: Exp; lines: +32 -16 Added --foldersizesatend and --nofoldersizesatend, on by default. Added statistic host2 minus host1: number of messages and bytes. ---------------------------- revision 1.513 date: 2012/10/30 22:31:49; author: gilles; state: Exp; lines: +40 -19 Add --fixslash2 to avoid 'Invalid mailbox name' when --sep2 is not / and sep1 is / and host1 folders contain --sep2 characters. ---------------------------- revision 1.512 date: 2012/10/30 01:44:26; author: gilles; state: Exp; lines: +22 -8 Added option --showpasswords --showpasswords : shows passwords on output instead of "MASKED". Off by default. ---------------------------- revision 1.511 date: 2012/10/27 22:37:57; author: gilles; state: Exp; lines: +44 -20 Added --delete2duplicates; Delete messages in host2 that are duplicates. --delete2duplicates is on when --delete2 is on unless --nodelete2duplicates. ---------------------------- revision 1.510 date: 2012/10/27 15:18:44; author: gilles; state: Exp; lines: +36 -30 Added --pidfilelocking option to abort in case another imapsync may be running. ---------------------------- revision 1.509 date: 2012/10/24 14:57:56; author: gilles; state: Exp; lines: +41 -13 Added option --noabletosearch to allow listing messages without SEARCH command. Hack for imap server softalk 7.6.4. (8.6 is fine about search) ---------------------------- revision 1.508 date: 2012/09/10 21:10:13; author: gilles; state: Exp; lines: +81 -17 Added ETA after each copy. Estimated Time of Arrival. ---------------------------- revision 1.507 date: 2012/09/09 12:57:44; author: gilles; state: Exp; lines: +20 -12 Bugfix. Previous fix about characters *|?:"<> in cache path was not complete. ---------------------------- revision 1.506 date: 2012/09/07 14:51:00; author: gilles; state: Exp; lines: +10 -7 Option. Added --noexpungeaftereach to speedup --delete --expunge from Gmail. ---------------------------- revision 1.505 date: 2012/09/07 10:40:55; author: gilles; state: Exp; lines: +10 -10 Usability. Added Host1 or Host2 before "Nb messages" "Total size" with --foldersiszes ---------------------------- revision 1.504 date: 2012/08/28 13:10:26; author: gilles; state: Exp; lines: +10 -9 Bugfix. sentsince sentbefore in int seconds. ---------------------------- revision 1.503 date: 2012/08/27 23:42:39; author: gilles; state: Exp; lines: +36 -19 Added transfer rate and messages rate after each copy. ---------------------------- revision 1.502 date: 2012/08/27 10:00:43; author: gilles; state: Exp; lines: +43 -22 Added option --nocheckmessageexists to check speed up with Tobbit imap server. Bugfix. Convert *|?:"<> characters to _ because they are forbidden on Windows paths. Use Time::HiRes time to get time with better precesion than the second. ---------------------------- revision 1.501 date: 2012/08/13 12:59:23; author: gilles; state: Exp; lines: +101 -101 Changed tmp dir for tests to W/tmp ---------------------------- revision 1.500 date: 2012/08/10 04:58:46; author: gilles; state: Exp; lines: +40 -28 Bugfix. The cache system didn't work in Win32 (problem with \ transformation) Added option --nocheckselectable to fix INBOX issue with Jana-server. Documentation. Example for --delete2foldersbutnot ---------------------------- revision 1.499 date: 2012/07/30 10:56:26; author: gilles; state: Exp; lines: +45 -31 Bugfix. Check the return of touch calls. ---------------------------- revision 1.498 date: 2012/07/20 14:28:45; author: gilles; state: Exp; lines: +22 -6 Added several connection ckecks like old good imapsync-1.181 to imapsync-1.398 ---------------------------- revision 1.497 date: 2012/07/14 19:48:04; author: gilles; state: Exp; lines: +43 -28 Added --authmech PREAUTH capabiliy. (Patch from David Abrahams). ---------------------------- revision 1.496 date: 2012/07/12 20:53:49; author: gilles; state: Exp; lines: +12 -11 Bugfix. Unsubsribe folder before deleting it (can bug sometimes). ---------------------------- revision 1.495 date: 2012/07/11 04:56:33; author: gilles; state: Exp; lines: +7 -8 Bugfix about last patch $h2_total_bytes_duplicate ---------------------------- revision 1.494 date: 2012/07/11 03:50:43; author: gilles; state: Exp; lines: +40 -12 Usability. Use KiB MiB GiB etc in result summary. Patch from Mark Atwood. ---------------------------- revision 1.493 date: 2012/06/30 00:28:51; author: gilles; state: Exp; lines: +9 -9 Bug fix. Port 143 when --ssl and --tls together. ---------------------------- revision 1.492 date: 2012/06/29 23:32:04; author: gilles; state: Exp; lines: +7 -7 Bug fix. Don't filter flag when --nofilterflags is used during the message copy. ---------------------------- revision 1.491 date: 2012/06/20 09:53:27; author: gilles; state: Exp; lines: +8 -8 Added value of internal date in --debug mode. ---------------------------- revision 1.490 date: 2012/05/22 21:03:40; author: gilles; state: Exp; lines: +10 -14 Updated Cyrus info. ---------------------------- revision 1.489 date: 2012/05/22 20:54:13; author: gilles; state: Exp; lines: +20 -14 Print dry mode when expunging. ---------------------------- revision 1.488 date: 2012/04/15 17:38:21; author: gilles; state: Exp; lines: +8 -8 Reverse patch applied in 1.485 It was "2) eval and --delete2foldersonly --delete2foldersbutnot that need also good escaping." The "good" escaping was bad. No escaping needed. It permits imapsync variables like ${h2_sep} in --delete2foldersonly But good escaping has to be done in parameter value like --delete2foldersbutnot /\[Gmail\]/ instead of --delete2foldersbutnot /[Gmail]/ (for example). ---------------------------- revision 1.487 date: 2012/02/29 05:29:21; author: gilles; state: Exp; lines: +7 -7 Fixed a useless Perl warning. ---------------------------- revision 1.486 date: 2012/02/23 23:05:49; author: gilles; state: Exp; lines: +10 -10 Removed "Memory/biggest message ratio" in final stats, useless now. Fixed a warning about memory_consumption when the call fails. ---------------------------- revision 1.485 date: 2012/02/19 22:24:23; author: gilles; state: Exp; lines: +16 -12 Applied Pierre GUILLAUME patch about 1) $cache_dir and bsd_globs() that needs escaped characters. 2) eval and --delete2foldersonly --delete2foldersbutnot that need also good escaping. Thanks Pierre. ---------------------------- revision 1.484 date: 2012/02/07 00:19:33; author: gilles; state: Exp; lines: +8 -7 Just a comment about examine versus select on host1. ---------------------------- revision 1.483 date: 2012/02/06 23:16:06; author: gilles; state: Exp; lines: +7 -7 Bug fix. Read-only mode on host1 can't be done with --delete (back to select instead of examine). ---------------------------- revision 1.482 date: 2012/01/23 00:39:12; author: gilles; state: Exp; lines: +25 -10 Added --exitwhenover option to avoid locking when transfers exceed maximum limit, See for example http://support.google.com/a/bin/answer.py?hl=en&answer=1071518 --exitwhenover 2500000000 if host1 is Gmail --exitwhenover 500000000 if host2 is Gmail ---------------------------- revision 1.481 date: 2012/01/22 23:43:02; author: gilles; state: Exp; lines: +24 -9 Check if a message exists before fetching it (could have been deleted recently) ---------------------------- revision 1.480 date: 2012/01/08 05:11:03; author: gilles; state: Exp; lines: +8 -7 a1.net fix. ---------------------------- revision 1.479 date: 2011/12/16 05:30:27; author: gilles; state: Exp; lines: +33 -26 Unified outout in --debug mode. Lines start with Host1 or Host2. ---------------------------- revision 1.478 date: 2011/12/16 04:10:32; author: gilles; state: Exp; lines: +11 -9 Changed output about messages ignored to better reflect what is going on. ---------------------------- revision 1.477 date: 2011/12/11 10:07:09; author: gilles; state: Exp; lines: +8 -8 --split down to 100 to follow the recommendation of RFC2683 section 3.2.1.5 Thanks to Phil Pearl for this advice. ---------------------------- revision 1.476 date: 2011/12/10 01:33:50; author: gilles; state: Exp; lines: +34 -8 Applied Ameir Abdeldayem patch to deal with errors like "Host1 Sent/15 size 1428 ignored (no header so we ignore this message)" It happens with Sent folder when no Message-Id nor Received header are defined in a message. ---------------------------- revision 1.475 date: 2011/12/08 08:23:16; author: gilles; state: Exp; lines: +7 -7 Default header used to identify a message are now "Message-Id" and "Received". ---------------------------- revision 1.474 date: 2011/12/02 20:30:16; author: gilles; state: Exp; lines: +9 -9 Default down from 1000 to --split1 500. (Cyrus "Word too long") ---------------------------- revision 1.473 date: 2011/12/01 14:06:23; author: gilles; state: Exp; lines: +8 -8 Fixed output. fetch_hash_2 no longer exists. ---------------------------- revision 1.472 date: 2011/12/01 12:44:48; author: gilles; state: Exp; lines: +11 -6 Added start and end dates in the final statistics. ---------------------------- revision 1.471 date: 2011/11/24 09:29:26; author: gilles; state: Exp; lines: +21 -20 Checked and updated "Similar softwares" section in documentation. ---------------------------- revision 1.470 date: 2011/11/23 18:14:20; author: gilles; state: Exp; lines: +7 -7 typo ---------------------------- revision 1.469 date: 2011/11/20 17:44:35; author: gilles; state: Exp; lines: +16 -9 Added --nofilterflags to chech STORE flags ignoring PERMANENTFLAGS (Exchange tests) ---------------------------- revision 1.468 date: 2011/11/18 01:23:37; author: gilles; state: Exp; lines: +33 -105 Replaced fetch_hash_2() calls by normal fetch_hash() ---------------------------- revision 1.467 date: 2011/11/17 15:00:15; author: gilles; state: Exp; lines: +20 -16 Subscribe to host2 folders only for those not already subscribed. ---------------------------- revision 1.466 date: 2011/11/17 14:31:55; author: gilles; state: Exp; lines: +76 -60 Use examine() on host1 instead of select(). ---------------------------- revision 1.465 date: 2011/11/17 14:02:53; author: gilles; state: Exp; lines: +22 -22 Changed imapsync homepage from http://www.linux-france.org/prj/imapsync/ to http://imapsync.lamiral.info/ Fix select behavior on host2 to allow Gmail folders that don't exist but that are listed. ---------------------------- revision 1.464 date: 2011/11/14 23:59:46; author: gilles; state: Exp; lines: +8 -8 Replaced // by ? : equivalent to be perl 5.8 compliant. ---------------------------- revision 1.463 date: 2011/11/12 21:58:52; author: gilles; state: Exp; lines: +9 -7 --subscribe is on by defaut. ---------------------------- revision 1.462 date: 2011/10/16 23:48:58; author: gilles; state: Exp; lines: +14 -11 Added --nocacheaftercopy to avoid bad uids in cache with --useuid or --usecache and strange uid generator like dbmail 2.2.17 ---------------------------- revision 1.461 date: 2011/10/07 21:02:15; author: gilles; state: Exp; lines: +8 -8 MailEnable Mirapoint ---------------------------- revision 1.460 date: 2011/09/21 20:19:46; author: gilles; state: Exp; lines: +8 -8 Avoid Perl warning 'Use of uninitialized value $uid1 in exists'. Thanks to Klaus Franken ---------------------------- revision 1.459 date: 2011/09/21 20:10:38; author: gilles; state: Exp; lines: +7 -7 Kerio 7.2.0 Patch 1 as host2 ---------------------------- revision 1.458 date: 2011/08/24 22:26:20; author: gilles; state: Exp; lines: +7 -6 Yahoo host1 success. ---------------------------- revision 1.457 date: 2011/08/24 21:55:56; author: gilles; state: Exp; lines: +10 -10 Renamed file.csv to file.txt ---------------------------- revision 1.456 date: 2011/08/24 04:21:30; author: gilles; state: Exp; lines: +15 -13 Help message on --sep when namespace separator is NIL. Yahoo case. ---------------------------- revision 1.455 date: 2011/07/29 03:00:25; author: gilles; state: Exp; lines: +8 -8 Empty default value for $h1_flags $h2_flags to avoid useless Perl warnings. ---------------------------- revision 1.454 date: 2011/07/15 16:17:06; author: gilles; state: Exp; lines: +22 -10 file.csv example ---------------------------- revision 1.453 date: 2011/07/15 00:35:37; author: gilles; state: Exp; lines: +10 -6 MDaemon 12.0.3 failure as host2 (APPEND buggy) ---------------------------- revision 1.452 date: 2011/07/11 00:29:06; author: gilles; state: Exp; lines: +64 -47 Added the --search option allowing to select messages with the powerful IMAP SEARCH command. ---------------------------- revision 1.451 date: 2011/06/30 11:44:38; author: gilles; state: Exp; lines: +7 -8 Added IO::Socket::INET version info. ---------------------------- revision 1.450 date: 2011/06/21 00:17:20; author: gilles; state: Exp; lines: +7 -7 Bugfix. Fixed ps call to work with Solaris 10. Thanks to Daniel Rohde. ---------------------------- revision 1.449 date: 2011/06/16 12:20:42; author: gilles; state: Exp; lines: +13 -10 Kerio 7.2.0P1 success. MDaemon 12.0.3 success. ---------------------------- revision 1.448 date: 2011/06/03 00:54:15; author: gilles; state: Exp; lines: +9 -9 Bugfix. Date reference to select messages with --maxdate --mindate is the beginning of imapsync run now. ---------------------------- revision 1.447 date: 2011/06/02 00:01:01; author: gilles; state: Exp; lines: +13 -13 Added PERMANENTFLAGS output with --debugflags ---------------------------- revision 1.446 date: 2011/05/31 09:11:18; author: gilles; state: Exp; lines: +17 -17 Bugfix. Try to handle Markus bug in foldersizes() when select_msgs() returns a list of undef. ---------------------------- revision 1.445 date: 2011/05/31 08:00:45; author: gilles; state: Exp; lines: +53 -46 Check if uidexpunge is supported at the beginning of execution, not when needed. Set --uidexpunge2 if --delete2 or --expunge2 if uidexpunge not supported. Changed all warn() calls (STDERR) to print calls (STDOUT) ---------------------------- revision 1.444 date: 2011/05/30 15:16:46; author: gilles; state: Exp; lines: +10 -7 good_date() "24 Aug 77" -> "24-Aug-1977" ---------------------------- revision 1.443 date: 2011/05/28 16:50:27; author: gilles; state: Exp; lines: +125 -41 Patched tests_good_date() and good_date() with Dax Kelson patches. ---------------------------- revision 1.442 date: 2011/05/28 16:14:31; author: gilles; state: Exp; lines: +28 -8 Started code to deal with epoch of messages. ---------------------------- revision 1.441 date: 2011/05/26 01:01:25; author: gilles; state: Exp; lines: +14 -11 Handle better folder creation, not a failure when folder "already exists" during its creation. ---------------------------- revision 1.440 date: 2011/05/26 00:40:51; author: gilles; state: Exp; lines: +28 -28 Replaced default setting. Now --delete2 sets --uidexpunge2 instead of --expunge2 (unless --nouidexpunge2 is set) ---------------------------- revision 1.439 date: 2011/05/25 03:11:41; author: gilles; state: Exp; lines: +65 -9 Added epoch() routine to prepare the safe bidirectional sync (maybe...) ---------------------------- revision 1.438 date: 2011/05/25 00:47:27; author: gilles; state: Exp; lines: +9 -8 Adapted the usage output multiline character to Unix or Win, \ or ^ ---------------------------- revision 1.437 date: 2011/05/25 00:29:04; author: gilles; state: Exp; lines: +8 -7 Bugfix. Avoid a "no number" warning when size is null. ---------------------------- revision 1.436 date: 2011/05/23 23:30:20; author: gilles; state: Exp; lines: +8 -12 Added "Date" in the default --useheader list. ("Message-Id", "Message-ID", "Date") ---------------------------- revision 1.435 date: 2011/05/23 23:06:31; author: gilles; state: Exp; lines: +29 -12 Bugfix. Bad header beginning with a blank character. ---------------------------- revision 1.434 date: 2011/05/16 07:16:19; author: gilles; state: Exp; lines: +142 -57 Bugfix. Made --usecache work with --maxage or --maxsize or --min* ---------------------------- revision 1.433 date: 2011/05/16 03:07:59; author: gilles; state: Exp; lines: +191 -49 Improved the way imapsync deals with headers: - Stopped getting first 2KB of message. Not a good idea. - If $imap2->parse_headers() fails then take the whole header (instead of body). - Default is like --useheader Message-Id --useheader Message-ID - Use header Message-Id and header Date as sig md5 when taking the whole header. Better output in debug mode. ---------------------------- revision 1.432 date: 2011/05/15 22:06:19; author: gilles; state: Exp; lines: +8 -7 Options --usecache and --maxsize --minsize can safely be used if --delete is there ---------------------------- revision 1.431 date: 2011/05/15 00:47:03; author: gilles; state: Exp; lines: +17 -8 Added tests of mkpath very long path > 300 char. Win32 fails on them. ---------------------------- revision 1.430 date: 2011/05/14 23:13:06; author: gilles; state: Exp; lines: +14 -9 Bugfix. Added special case for Inbox vs INBOX bug creation ("Couldn't create folder [Inbox] from [INBOX]: 143 NO INBOX already exists!") ---------------------------- revision 1.429 date: 2011/05/14 21:24:31; author: gilles; state: Exp; lines: +8 -8 Adapted regression tests for good_date() when no zone is given. ---------------------------- revision 1.428 date: 2011/05/14 02:31:02; author: gilles; state: Exp; lines: +8 -8 Bugfix. intarnal date needs zone data. Default to +0000. ---------------------------- revision 1.427 date: 2011/05/14 01:48:07; author: gilles; state: Exp; lines: +15 -13 Bugfix. Starttls() only for 2.2.9 ---------------------------- revision 1.426 date: 2011/05/14 01:14:16; author: gilles; state: Exp; lines: +8 -8 Fix. Removed a debug print always printed. ---------------------------- revision 1.425 date: 2011/05/14 00:33:46; author: gilles; state: Exp; lines: +16 -15 Bugfix. Changed the way imapsync knows whether a folder exists or not. Exchange might be happy and stop deconnecting for this reason. ---------------------------- revision 1.424 date: 2011/05/14 00:12:38; author: gilles; state: Exp; lines: +20 -9 Added a warning and die if --usecache and one of --maxsize--minsize --maxage --minage is used. ---------------------------- revision 1.423 date: 2011/05/13 22:26:01; author: gilles; state: Exp; lines: +23 -12 Bugfix. Reconnections are well done in tls mode now. Zimbra 5.0.24_GA_3356.RHEL4 [host1] Exchange 2010 SP1 RU2 [host2] Added --debugsleep to have to play will kill and reconnections. ---------------------------- revision 1.422 date: 2011/05/08 17:21:38; author: gilles; state: Exp; lines: +17 -12 Added --debugLIST to track messages list uid or number only. Bugfix: a lack of variable initialisation caused to fetch no existing messages. The APPEND error then the FETCH 0 byte error may be fixed now. ---------------------------- revision 1.421 date: 2011/05/08 12:28:10; author: gilles; state: Exp; lines: +8 -8 relogin1 before each folder select. ---------------------------- revision 1.420 date: 2011/05/08 00:54:05; author: gilles; state: Exp; lines: +15 -18 --splitX are set into sub login_imap() now. ---------------------------- revision 1.419 date: 2011/05/08 00:36:36; author: gilles; state: Exp; lines: +58 -8 Added --relogin1 option (--relogin1 5) to force a reconnection when FETCH message fails on host1. ---------------------------- revision 1.418 date: 2011/05/07 22:15:36; author: gilles; state: Exp; lines: +95 -38 Added --debugcontent to avoid debugging content (can be big) with --debug option. Added --debugflags to permit flag debugging only. Added --flagsCase to correct flag case that are not RFC compliant \SEEN -> \Seen (on by default). Added output to track 0 byte messages during the fetch on host1. ---------------------------- revision 1.417 date: 2011/05/05 16:12:02; author: gilles; state: Exp; lines: +7 -7 Bugfix. --proxyauth2 was setting proxyauth1! Thanks to Denis BREAN! ---------------------------- revision 1.416 date: 2011/05/01 20:44:40; author: gilles; state: Exp; lines: +8 -8 MDaemon 12 Exchange 6.5 host1 ---------------------------- revision 1.415 date: 2011/04/30 15:33:31; author: gilles; state: Exp; lines: +20 -14 Bugfix. Modified create_folder() to avoid Inbox -> INBOX problem ("already exists"). ---------------------------- revision 1.414 date: 2011/04/30 00:25:38; author: gilles; state: Exp; lines: +41 -19 Bugfix. --maxsize --minsize now work with --useuid Bugfix. flag sync of already transfered messages now take care of --maxsize --minsize options. ---------------------------- revision 1.413 date: 2011/04/28 22:55:48; author: gilles; state: Exp; lines: +25 -12 --delete2 implies --expunge2 now unless --noexpunge2 is given. exit if --delete and --delete2 are given together. Same behavior for --expunge or --expunge1. ---------------------------- revision 1.412 date: 2011/04/28 14:49:59; author: gilles; state: Exp; lines: +17 -15 Added 0 length message tracking when fetching host1. ---------------------------- revision 1.411 date: 2011/04/19 23:34:30; author: gilles; state: Exp; lines: +19 -11 Bugfix for "Folders in host2 not in host1" list when folders are given by --folder option or equivalent. The old list listed too many folders with --folder INBOX for example. ---------------------------- revision 1.410 date: 2011/04/19 23:11:42; author: gilles; state: Exp; lines: +9 -8 Updated success list. ---------------------------- revision 1.409 date: 2011/04/16 20:15:05; author: gilles; state: Exp; lines: +7 -6 Added --takebody option. ---------------------------- revision 1.408 date: 2011/04/11 01:37:34; author: gilles; state: Exp; lines: +9 -8 Added Gimap (Gmail imap) success. Added IMail 11.03 [host1] success ---------------------------- revision 1.407 date: 2011/04/02 23:07:09; author: gilles; state: Exp; lines: +21 -12 Made --delete2 works with --uselib or --usecache ---------------------------- revision 1.406 date: 2011/03/10 01:35:57; author: gilles; state: Exp; lines: +15 -13 No longer --useuid with --fast Debug output with permanentflags. ---------------------------- revision 1.405 date: 2011/03/07 13:41:54; author: gilles; state: Exp; lines: +13 -11 Added isync url. Sleep 2 seconds after foldersizes calls. ---------------------------- revision 1.404 date: 2011/02/21 03:35:39; author: gilles; state: Exp; lines: +7 -7 typo ---------------------------- revision 1.403 date: 2011/02/21 00:52:16; author: gilles; state: Exp; lines: +47 -7 Added uid guessing with APPEND to improve --usecache for Exchange or Zarafa imap servers. ---------------------------- revision 1.402 date: 2011/01/25 05:17:05; author: gilles; state: Exp; lines: +47 -174 Removed all the $imapX->IsUnconnected() since reconnect can be done. Overrided append_file() for 2.2.9, copy from 3.25 ---------------------------- revision 1.401 date: 2011/01/25 02:22:37; author: gilles; state: Exp; lines: +195 -151 Added --useuid to speed up or deal with problems using headers. Added --notakebody to avoid getting first 2Ko body when got "no header" Replaced --debug_cache by --debugcache ---------------------------- revision 1.400 date: 2011/01/22 04:46:04; author: gilles; state: Exp; lines: +94 -22 Fixed cache (chose only the greatest uid with dupplicate 11_21+11_201 or 11_21+101_21) Fixed cache, dealing with filenames containing \ characters. ---------------------------- revision 1.399 date: 2011/01/21 00:04:09; author: gilles; state: Exp; lines: +29 -21 Added --debug_cache option to alow cache dfebugging only. ---------------------------- revision 1.398 date: 2011/01/18 03:03:24; author: gilles; state: Exp; lines: +7 -6 Fix. Removed too much about buffersize. ---------------------------- revision 1.397 date: 2011/01/18 02:39:12; author: gilles; state: Exp; lines: +25 -19 Changed --delete2foldersnot option name to --delete2foldersbutnot ---------------------------- revision 1.396 date: 2011/01/18 02:03:49; author: gilles; state: Exp; lines: +23 -11 Added --authmd51 and --authmd52 options to allow CRAM-MD5 authentication per host. ---------------------------- revision 1.395 date: 2011/01/15 04:57:28; author: gilles; state: Exp; lines: +8 -8 --debugimap* implies --debug now. ---------------------------- revision 1.394 date: 2011/01/15 04:46:16; author: gilles; state: Exp; lines: +21 -11 Added info about biggest messages. ---------------------------- revision 1.393 date: 2011/01/15 03:40:43; author: gilles; state: Exp; lines: +7 -7 *** empty log message *** ---------------------------- revision 1.392 date: 2011/01/15 03:29:37; author: gilles; state: Exp; lines: +17 -8 Added --delete2foldersnot option: do not delete folders matching regex. ---------------------------- revision 1.391 date: 2011/01/10 23:11:49; author: gilles; state: Exp; lines: +7 -7 *** empty log message *** ---------------------------- revision 1.390 date: 2011/01/10 05:47:43; author: gilles; state: Exp; lines: +403 -94 Added --usecache option. Goal: speed up the synchronisation. ---------------------------- revision 1.389 date: 2011/01/06 04:28:58; author: gilles; state: Exp; lines: +7 -6 Mirapoint host1 success ---------------------------- revision 1.388 date: 2010/12/29 22:46:08; author: gilles; state: Exp; lines: +44 -10 Added help to guess separator and prefix when NAMESPACE is not available. ---------------------------- revision 1.387 date: 2010/12/22 02:27:39; author: gilles; state: Exp; lines: +13 -8 Added option --delete2foldersonly : delete only folders matching regex. ---------------------------- revision 1.386 date: 2010/12/09 22:34:25; author: gilles; state: Exp; lines: +7 -7 hMailServer 4.4.1 ---------------------------- revision 1.385 date: 2010/12/03 23:40:12; author: gilles; state: Exp; lines: +34 -25 Changed default behaviour: now --delete implies --expunge It is safer with multiples runs. ---------------------------- revision 1.384 date: 2010/12/02 01:07:48; author: gilles; state: Exp; lines: +48 -34 Code cleanup. Wrote create_folder() Wrote select_folder() Simplified folder loop (a beginning) ---------------------------- revision 1.383 date: 2010/11/28 04:28:52; author: gilles; state: Exp; lines: +14 -12 Allow size mismatch by default. Use --useheader 'Message-Id' by default. Use --noauthmd5 by default. Why? Because users don't have to spend time or mine reading or not reading the documentation, spend time turning on options to success. or speed. ---------------------------- revision 1.382 date: 2010/11/19 21:31:35; author: gilles; state: Exp; lines: +23 -12 Added a way to handle no headers in messages: take first 2Ko body. ---------------------------- revision 1.381 date: 2010/11/19 20:48:27; author: gilles; state: Exp; lines: +7 -7 Fixed 'ps' call for Solaris. ---------------------------- revision 1.380 date: 2010/11/19 20:44:25; author: gilles; state: Exp; lines: +12 -11 updated success list. ---------------------------- revision 1.379 date: 2010/11/12 00:44:02; author: gilles; state: Exp; lines: +7 -7 dkimap is now a success story! ---------------------------- revision 1.378 date: 2010/11/12 00:22:59; author: gilles; state: Exp; lines: +19 -11 Added --nouid1 --nouid2 options to support dkimap and other imap server without uid capability. ---------------------------- revision 1.377 date: 2010/11/09 02:12:40; author: gilles; state: Exp; lines: +8 -7 Added Authen::NTLM in modules_VERSION() ---------------------------- revision 1.376 date: 2010/11/09 01:14:33; author: gilles; state: Exp; lines: +17 -10 Added --domain1 --domain2 options for NTLM authentication. ---------------------------- revision 1.375 date: 2010/11/07 23:26:01; author: gilles; state: Exp; lines: +12 -15 Adapted documentation to new distribution rule. ---------------------------- revision 1.374 date: 2010/11/07 18:31:06; author: gilles; state: Exp; lines: +10 -7 imapsync is no longer gratis on the homepage. ---------------------------- revision 1.373 date: 2010/11/07 18:23:13; author: gilles; state: Exp; lines: +7 -7 Smarter Mail 5.5 ---------------------------- revision 1.372 date: 2010/11/03 00:10:29; author: gilles; state: Exp; lines: +9 -8 No thanks for *.bin and *.exe ---------------------------- revision 1.371 date: 2010/11/02 07:37:35; author: gilles; state: Exp; lines: +9 -7 hMailServer 5.3.3 [host2] success Oracle Beehive [host1] success ---------------------------- revision 1.370 date: 2010/10/31 23:07:12; author: gilles; state: Exp; lines: +7 -7 Prepare to move from linux-france.org with independant name. ---------------------------- revision 1.369 date: 2010/10/31 23:03:22; author: gilles; state: Exp; lines: +9 -6 No thanks with imapsync.exe just homepage link. ---------------------------- revision 1.368 date: 2010/10/31 22:17:52; author: gilles; state: Exp; lines: +9 -3 Applied proxyauth-v2_1.366.patch on 1.366 ---------------------------- revision 1.367 date: 2010/10/31 00:01:44; author: gilles; state: Exp; lines: +44 -13 Applied patch patches/proxyauth_1.366.patch from Jorge López Pérez. ---------------------------- revision 1.366 date: 2010/10/25 17:15:52; author: gilles; state: Exp; lines: +11 -12 Permit host* to have change the case of headers. ---------------------------- revision 1.365 date: 2010/10/25 11:42:41; author: gilles; state: Exp; lines: +131 -157 Fix tls getline pb (read too early) Changes place of starttls() myconnect() and other functions. ---------------------------- revision 1.364 date: 2010/10/25 09:56:27; author: gilles; state: Exp; lines: +10 -15 Fix STARTTLS capability detection bug. ---------------------------- revision 1.363 date: 2010/10/24 17:16:43; author: gilles; state: Exp; lines: +99 -48 Added --delete2folders option. Deletes folders in host2 that are not in host1. ---------------------------- revision 1.362 date: 2010/10/22 19:23:34; author: gilles; state: Exp; lines: +24 -8 Added imapsync basename to see how imapsync.exe is used. ---------------------------- revision 1.361 date: 2010/10/19 22:58:06; author: gilles; state: Exp; lines: +28 -8 Added --nomodules_version option to avoid Roger libeay32.dll missing problem. Added test to ckeck if the release number from lfo VERSION file is a number. ---------------------------- revision 1.360 date: 2010/10/19 22:08:23; author: gilles; state: Exp; lines: +8 -7 Better documentation to subscribe to the imapsync list. ---------------------------- revision 1.359 date: 2010/10/08 01:17:29; author: gilles; state: Exp; lines: +15 -9 Fixed "Your vendor has not defined POSIX macro SIGALRM" bug on win32. ---------------------------- revision 1.358 date: 2010/10/08 00:40:42; author: gilles; state: Exp; lines: +97 -18 Add memory_consumption for win32. ---------------------------- revision 1.357 date: 2010/10/04 21:50:56; author: gilles; state: Exp; lines: +10 -10 Suppressed ref passage in foldersizes() sub. ---------------------------- revision 1.356 date: 2010/10/04 02:44:00; author: gilles; state: Exp; lines: +1270 -1251 Move all subroutines below main. Changed "local $SIG{ALRM}" to "POSIX::sigaction(SIGALRM" ---------------------------- revision 1.355 date: 2010/09/21 01:50:34; author: gilles; state: Exp; lines: +39 -19 Added tests_max() max() functions. Added memory consumption. Added memory consumption ratio to biggest message transfered. ---------------------------- revision 1.354 date: 2010/09/16 00:25:20; author: gilles; state: Exp; lines: +27 -15 Added memory_consumption_ratio() Added memory_consumption_of_pid() Removed memory_consumption ---------------------------- revision 1.353 date: 2010/09/14 22:46:33; author: gilles; state: Exp; lines: +19 -9 Added --minsize option. ---------------------------- revision 1.352 date: 2010/09/14 21:53:55; author: gilles; state: Exp; lines: +48 -12 Added memory_consumption() Added tests_memory_consumption() Started to analyse memory consumption. ---------------------------- revision 1.351 date: 2010/09/06 16:28:17; author: gilles; state: Exp; lines: +9 -7 Fixed PERL_VERSION format in imapsync_version_lfo() ---------------------------- revision 1.350 date: 2010/09/06 01:05:09; author: gilles; state: Exp; lines: +33 -24 Added --noreleasecheck option. Added User-agent information (OS, perl version, Mail::IMAPClient version) ---------------------------- revision 1.349 date: 2010/09/06 00:25:03; author: gilles; state: Exp; lines: +71 -13 Added new release checking ---------------------------- revision 1.348 date: 2010/09/05 21:28:35; author: gilles; state: Exp; lines: +16 -18 Strong regex for month in good_date() ---------------------------- revision 1.347 date: 2010/09/05 21:12:10; author: gilles; state: Exp; lines: +61 -50 Rewrote good_date and removed Date::Manip usage. ---------------------------- revision 1.346 date: 2010/09/05 16:28:18; author: gilles; state: Exp; lines: +34 -36 Simplified default output. ---------------------------- revision 1.345 date: 2010/08/24 01:44:59; author: gilles; state: Exp; lines: +45 -45 Better output when copying messages. ---------------------------- revision 1.344 date: 2010/08/20 02:06:13; author: gilles; state: Exp; lines: +123 -49 Added function fetch_hash_2() allowing a list of uid to be fetched. Changed fetch_hash() calls by fetch_hash_2() calls This fixed the bug "Be more effiscient with large mailboxes", search ALL was useless with --maxage or --minage in fetch_hash() ---------------------------- revision 1.343 date: 2010/08/15 18:02:11; author: gilles; state: Exp; lines: +9 -7 Fix. bug in _read_line sysread can return undef; ---------------------------- revision 1.342 date: 2010/08/15 11:02:41; author: gilles; state: Exp; lines: +12 -13 Clarity. Print capability after authenticated state. ---------------------------- revision 1.341 date: 2010/08/15 10:56:45; author: gilles; state: Exp; lines: +42 -14 Added Mail::IMAPClient::capability_update() to reset the capability cache. Bug fix. Some imap server change their capability after authentification, imapsync used the capability cache from the first CAPABILITY call. ---------------------------- revision 1.340 date: 2010/08/09 00:03:21; author: gilles; state: Exp; lines: +7 -7 Bug fix. Stupid undef breaking --syncinternaldates ---------------------------- revision 1.339 date: 2010/07/28 15:07:56; author: gilles; state: Exp; lines: +27 -20 Made a justconnect() routine. ---------------------------- revision 1.338 date: 2010/07/28 14:56:26; author: gilles; state: Exp; lines: +42 -27 Added SYNOPSIS at the top of the documentation. ---------------------------- revision 1.337 date: 2010/07/16 23:23:40; author: gilles; state: Exp; lines: +12 -6 Added --usedatemanip option (not documented in --help) Turned off Date::Manip usage by default: release 6.x vs 5.x buggy, and dprof showed slow routines come from Date::Manip ---------------------------- revision 1.336 date: 2010/07/16 22:04:25; author: gilles; state: Exp; lines: +8 -7 Bugfix. $syncinternaldates could not be set 0. Unbelievable! ---------------------------- revision 1.335 date: 2010/07/16 00:44:25; author: gilles; state: Exp; lines: +26 -15 Bugfix. Fixed Date_TimeZone break under win32. ---------------------------- revision 1.334 date: 2010/07/15 12:20:48; author: gilles; state: Exp; lines: +50 -32 Added statistics about "Messages void (noheader) on hostX" ---------------------------- revision 1.333 date: 2010/07/14 23:55:13; author: gilles; state: Exp; lines: +7 -9 docfix ---------------------------- revision 1.332 date: 2010/07/14 23:09:02; author: gilles; state: Exp; lines: +251 -178 Reviewed variable names. Began to push subroutines below main. ---------------------------- revision 1.331 date: 2010/07/13 23:28:59; author: gilles; state: Exp; lines: +6 -6 default values for h1_mess_duplicate h1_mess_size_total_duplicate ---------------------------- revision 1.330 date: 2010/07/13 03:44:36; author: gilles; state: Exp; lines: +56 -36 Bugfix. Duplicate messages on host2 were not deleted with --delete2 ---------------------------- revision 1.329 date: 2010/07/12 23:28:00; author: gilles; state: Exp; lines: +13 -21 --skipsize turned on by default. Why? all examples on internet use --skipsize. imapsync can not change buggy imp servers. Useless code cleanup. ---------------------------- revision 1.328 date: 2010/07/12 22:49:23; author: gilles; state: Exp; lines: +18 -19 Changed basic documention: - examples with --password1 instead of --passfile1 Why? all exemples on internet use --password1 so users use --password1 even I've never told them to do so. Usability fix. ---------------------------- revision 1.327 date: 2010/07/12 00:23:02; author: gilles; state: Exp; lines: +7 -5 Good exit at the end. ---------------------------- revision 1.326 date: 2010/07/12 00:16:03; author: gilles; state: Exp; lines: +9 -7 Default value when no reconnect. ---------------------------- revision 1.325 date: 2010/07/11 23:26:04; author: gilles; state: Exp; lines: +72 -38 Added --pidfile option. Added die_clean() exit_clean() functions to remove pid file before quitting. ---------------------------- revision 1.324 date: 2010/07/11 21:28:23; author: gilles; state: Exp; lines: +24 -18 Added --debugimap1 --debugimap2 to permit imap outpout with only one host. ---------------------------- revision 1.323 date: 2010/07/11 21:10:17; author: gilles; state: Exp; lines: +28 -10 Added Reconnect_counter() Added reconnect statistics ---------------------------- revision 1.322 date: 2010/07/10 22:30:18; author: gilles; state: Exp; lines: +46 -9 Added regression tests to remove first "From " header line. tests_regexmess() ---------------------------- revision 1.321 date: 2010/07/09 03:27:31; author: gilles; state: Exp; lines: +6 -6 Added Smarter Mail 5.0 success. ---------------------------- revision 1.320 date: 2010/07/09 03:02:07; author: gilles; state: Exp; lines: +20 -23 Better reconnect handling. ---------------------------- revision 1.319 date: 2010/07/09 00:49:26; author: gilles; state: Exp; lines: +9 -7 Added Maxcommandlength call. ---------------------------- revision 1.318 date: 2010/07/07 23:44:35; author: gilles; state: Exp; lines: +43 -39 Added --subscribe_all option. Reviewed and updated inline help. ---------------------------- revision 1.317 date: 2010/07/07 22:49:09; author: gilles; state: Exp; lines: +13 -6 Bug report guideline: upgrade! ---------------------------- revision 1.316 date: 2010/06/29 16:18:09; author: gilles; state: Exp; lines: +10 -11 Typo bandwidth. ---------------------------- revision 1.315 date: 2010/06/11 02:51:54; author: gilles; state: Exp; lines: +8 -6 *** empty log message *** ---------------------------- revision 1.314 date: 2010/06/11 01:42:44; author: gilles; state: Exp; lines: +455 -16 Added reconnect behavior with Mail::IMAPClient 2.2.9 ---------------------------- revision 1.313 date: 2010/06/10 00:37:09; author: gilles; state: Exp; lines: +6 -6 36 success stories ---------------------------- revision 1.312 date: 2010/06/10 00:35:46; author: gilles; state: Exp; lines: +6 -5 1und1 success story ---------------------------- revision 1.311 date: 2010/04/27 23:03:39; author: gilles; state: Exp; lines: +35 -12 Fixed bug in compare_lists(). Thanks to Pertti Karppinen. ---------------------------- revision 1.310 date: 2010/02/26 01:24:59; author: gilles; state: Exp; lines: +10 -11 Removed modules_VERSION() call (useless) Replaced Phil regex with /e one. ---------------------------- revision 1.309 date: 2010/02/25 23:18:04; author: gilles; state: Exp; lines: +63 -65 Better imap banner handling (first line read). removed sub myconnect_v2() Removed Mail::IMAPClient::Socket use. Added sub RawSocket2() (RawSocket 3.23 failed as is, do not know why) Added Mail::IMAPClient::Ignoresizeerrors for 2.2.9 Honot --allowsizemismatch with 2.2.9 ---------------------------- revision 1.308 date: 2010/02/24 01:29:11; author: gilles; state: Exp; lines: +15 -9 Fixed STARTTLS missing imap begin line. ---------------------------- revision 1.307 date: 2010/02/09 17:49:34; author: gilles; state: Exp; lines: +68 -9 Added tests_imap2_folder_name() 's/.*?(?:(\\(?:Answered|Flagged|Deleted|Seen|Recent|Draft)\s?)|$)/$1/g' check (good!) ---------------------------- revision 1.306 date: 2010/02/07 21:38:15; author: gilles; state: Exp; lines: +71 -6 Added regression test about the "keep only" --regexflag example. Added debug to understand all the regexflag transformations. ---------------------------- revision 1.305 date: 2010/01/20 22:26:03; author: gilles; state: Exp; lines: +14 -14 Better output. ---------------------------- revision 1.304 date: 2010/01/20 22:10:24; author: gilles; state: Exp; lines: +32 -23 Added statistic about messages deleted Added statistic about average bandwith rate ---------------------------- revision 1.303 date: 2010/01/20 04:12:52; author: gilles; state: Exp; lines: +13 -12 cosmetic changes. ---------------------------- revision 1.302 date: 2010/01/20 03:34:59; author: gilles; state: Exp; lines: +59 -51 Flags are now exactly synced from host1 to host2. Previous releases just added flags, It was a wrong behavior since when a \Seen flag is removed on host1 a sync have to remove it on host2. imapsync is not imapadd. ---------------------------- revision 1.301 date: 2010/01/18 06:24:16; author: gilles; state: Exp; lines: +92 -23 Added TLSv1 support. ---------------------------- revision 1.300 date: 2010/01/16 03:34:37; author: gilles; state: Exp; lines: +250 -250 Changed name of variables. "from" replaced by imap1 "to" by imap2. f_* replaced by h1_* t_* replaced by h2_* Cosmetic but easier to read nd maintain. ---------------------------- revision 1.299 date: 2010/01/15 00:19:32; author: gilles; state: Exp; lines: +10 -10 imapsync is no longer GPL software. imapsync is WTFPL software. The best licence I found. ---------------------------- revision 1.298 date: 2010/01/14 23:43:22; author: gilles; state: Exp; lines: +6 -8 Fix. Removed identical "my" declaration. ---------------------------- revision 1.297 date: 2010/01/14 17:36:17; author: gilles; state: Exp; lines: +13 -11 Rewrote flags_filter(), same behavior, no regex. ---------------------------- revision 1.296 date: 2010/01/14 16:57:58; author: gilles; state: Exp; lines: +72 -8 Filter flags sync with the list given by PERMANENTFLAGS on --host2 ---------------------------- revision 1.295 date: 2010/01/14 15:04:27; author: gilles; state: Exp; lines: +10 -6 --expunge only expunge --host1 (fixed output about that) ---------------------------- revision 1.294 date: 2010/01/14 02:12:17; author: gilles; state: Exp; lines: +37 -10 Added --tmpdir option. The funny part is it's useless now. ---------------------------- revision 1.293 date: 2010/01/12 05:34:27; author: gilles; state: Exp; lines: +6 -6 Change call for donation. ---------------------------- revision 1.292 date: 2010/01/12 05:15:53; author: gilles; state: Exp; lines: +8 -7 freshmeat rate is gone. paypal is good to encourage myself. ---------------------------- revision 1.291 date: 2010/01/12 04:36:03; author: gilles; state: Exp; lines: +10 -10 Load Term::ReadKey when needed. ---------------------------- revision 1.290 date: 2010/01/12 03:42:09; author: gilles; state: Exp; lines: +7 -7 One line per folder when printing the each folder list. ---------------------------- revision 1.289 date: 2010/01/12 01:54:52; author: gilles; state: Exp; lines: +6 -6 Removed unused Date_Cmp from import. ---------------------------- revision 1.288 date: 2009/09/02 20:37:22; author: gilles; state: Exp; lines: +8 -6 Request all folder list only when needed (sometimes the list is very long) ---------------------------- revision 1.287 date: 2009/08/24 00:32:36; author: gilles; state: Exp; lines: +6 -6 - fixed fetch_hash() to return FLAGS as "" not () when no FLAGS set. (reading Mail-IMAPClient-3.19 code) ---------------------------- revision 1.286 date: 2009/07/24 15:53:04; author: gilles; state: Exp; lines: +10 -7 Bug fix: allow3x is on by default (was badly done after check_lib_version()) ---------------------------- revision 1.285 date: 2009/07/03 00:59:20; author: gilles; state: Exp; lines: +38 -17 Applied "patch -p0 < patches/imapsync.1.284.patch" Attached is a patch against 1.284 with the following changes: - [Bug] to_folder_name() failed to escape $f_prefix so --prefix1 was treated like --prefix1 instead - [Enhancement] updated parse_header_msg1() to return 0 on duplicate or undef on "no header" so now the "+ Skipping msg" will show either "no header" or "duplicate" as appropriate - [Bug] flag handling: make sure we don't try to set \Recent as RFC 2060 doesn't allow for that - [Enhancement] flag handling: only add missing flags instead of always calling $to->store() to set flags even when the flags already matched what we wanted... my first patch just used string comparison, this patch actually uses a hash for comparison so we're smarter about flags even when the order on $from and $to are different now - definitely helps speed up imapsync when lots of messages have flags and running sync in multiple passes Phil ---------------------------- revision 1.284 date: 2009/06/30 03:14:24; author: gilles; state: Exp; lines: +15 -19 allow Mail::IMAPClient 3.0.xx by default Removed Mail::IMAPClient::Ssl since 3.0.19 has it now. ---------------------------- revision 1.283 date: 2009/06/30 02:54:57; author: gilles; state: Exp; lines: +123 -94 Applied Phil Lobbes patch as is : ./patches/imapsync.1.282.patch ---------------------------- revision 1.282 date: 2009/05/11 00:05:39; author: gilles; state: Exp; lines: +15 -10 Added option --justlogin ---------------------------- revision 1.281 date: 2009/04/24 13:58:15; author: gilles; state: Exp; lines: +29 -6 Added tests_flags_regex() regression tests. ---------------------------- revision 1.280 date: 2009/04/02 11:32:10; author: gilles; state: Exp; lines: +103 -47 Applied Phil patch with many IsUnconnected() calls. ---------------------------- revision 1.279 date: 2009/03/22 00:12:15; author: gilles; state: Exp; lines: +9 -7 isUnconnected BAD IsUnconnected GOOD! ---------------------------- revision 1.278 date: 2009/02/23 00:40:25; author: gilles; state: Exp; lines: +14 -12 Less imap output with +FLAGS.SILENT Changed unsubscribe subscribe order in documentation. Typos. ---------------------------- revision 1.277 date: 2009/02/21 12:10:50; author: gilles; state: Exp; lines: +8 -6 Better example explanation. ---------------------------- revision 1.276 date: 2009/02/21 04:04:08; author: gilles; state: Exp; lines: +15 -22 Removed mailto: in MAILING-LIST section. ---------------------------- revision 1.275 date: 2009/02/21 02:04:26; author: gilles; state: Exp; lines: +25 -14 Change real password to "MASKED" in command line output. ---------------------------- revision 1.274 date: 2009/02/21 01:10:02; author: gilles; state: Exp; lines: +14 -8 --delete 2 is now a fatal error. ---------------------------- revision 1.273 date: 2009/02/21 00:48:40; author: gilles; state: Exp; lines: +36 -37 Print a warning and return error code each time a disconnection occurs. ---------------------------- revision 1.272 date: 2009/02/20 23:41:09; author: gilles; state: Exp; lines: +78 -78 Fixed many English errors (thanks to Reuben Thomas) ---------------------------- revision 1.271 date: 2009/02/19 23:38:32; author: gilles; state: Exp; lines: +28 -35 Bug fix about $t_prefix and INBOX '.' was hardcoded. Small change on documentation. ---------------------------- revision 1.270 date: 2009/02/14 22:21:35; author: gilles; state: Exp; lines: +16 -11 Another Phil Lobbes patch. Exit with error code and warning when a server disconnect during the folder loop. ---------------------------- revision 1.269 date: 2009/02/14 22:08:18; author: gilles; state: Exp; lines: +65 -38 Applied Phil Lobbes patches. - catch (what should be) fatal eval errors for regextrans2, $regexflag, $regexmess, instead of silently ignoring them and letting the user think they are working/OK - fix login_imap() Died at .../imapsync line 780 when IsUnconnected() and log some more useful into to stderr than just 'Died at...' - check_lib_version() contains a bad use of unset match/capture variables - added and now use new function myconnect() and myconnect_v2() does not require hack/override of Mail::IMAPClient::connect and is backwards compatible with Mail::IMAPClient v2.x - redo $Mail::IMAPClient::Authuser hack since only Mail::IMAPClient v2 does not have Authuser() Many thanks to Phil. ---------------------------- revision 1.268 date: 2009/02/14 03:27:51; author: gilles; state: Exp; lines: +22 -21 Fixed bad VERSION_IMAPClient output ---------------------------- revision 1.267 date: 2008/10/07 11:36:02; author: gilles; state: Exp; lines: +14 -10 Better test to check non existing folders on destination server. ---------------------------- revision 1.266 date: 2008/10/07 05:56:52; author: gilles; state: Exp; lines: +27 -10 *** empty log message *** ---------------------------- revision 1.265 date: 2008/08/30 14:20:38; author: gilles; state: Exp; lines: +7 -7 carp to warn ---------------------------- revision 1.264 date: 2008/08/27 15:19:05; author: gilles; state: Exp; lines: +7 -8 Archiveopteryx 3.0.0 ---------------------------- revision 1.263 date: 2008/08/26 02:58:11; author: gilles; state: Exp; lines: +59 -22 Added modules versions output. ---------------------------- revision 1.262 date: 2008/08/16 17:19:29; author: gilles; state: Exp; lines: +6 -6 Work fine under XP. ---------------------------- revision 1.261 date: 2008/08/16 15:56:00; author: gilles; state: Exp; lines: +32 -41 - Fixed bug about ssl and justconnect option - Cleaned connect code. - Started gmail support. ---------------------------- revision 1.260 date: 2008/08/13 03:14:14; author: gilles; state: Exp; lines: +54 -13 - Added option --idatefromheader : sets the internal dates on host2 same as the "Date:" headers. ---------------------------- revision 1.259 date: 2008/08/13 01:22:10; author: gilles; state: Exp; lines: +49 -21 - Made a function for regexmess() --regexmess to be able to check it easily - Added function tests_regexmess() to check regexmess(), 3 tests. - Removed imapsync copyleft GPL licence output (boring). Replaced by wishlist link. - Added thank_author() to avoid duplicate code about thanks. - Better bug report documentation. ---------------------------- revision 1.258 date: 2008/07/28 21:38:36; author: gilles; state: Exp; lines: +18 -18 Change report bug information order. ---------------------------- revision 1.257 date: 2008/07/28 21:17:56; author: gilles; state: Exp; lines: +10 -19 removed comment and ugly output ---------------------------- revision 1.256 date: 2008/06/29 01:28:51; author: gilles; state: Exp; lines: +14 -5 Applied patch from Simon Heimlicher to avoid non-selectable folders. ---------------------------- revision 1.255 date: 2008/06/24 16:38:49; author: gilles; state: Exp; lines: +7 -6 Domino (Notes) 4.61 ---------------------------- revision 1.254 date: 2008/06/16 18:59:26; author: gilles; state: Exp; lines: +19 -13 Some server (Microsoft Exchange 6.0.6249.0 for example) returns message size a lot s than the real size Now imapsync accept this silly behavior. ---------------------------- revision 1.253 date: 2008/06/16 18:48:01; author: gilles; state: Exp; lines: +6 -6 Archiveopteryx 2.09 ---------------------------- revision 1.252 date: 2008/05/08 02:30:17; author: gilles; state: Exp; lines: +36 -6 Added mailing list information. ---------------------------- revision 1.251 date: 2008/05/08 02:08:44; author: gilles; state: Exp; lines: +56 -14 Fixed message_string returning empty message when < expected size. ---------------------------- revision 1.250 date: 2008/04/21 03:46:01; author: gilles; state: Exp; lines: +11 -7 Bug fix "parse_headers want an ARRAY ref" ---------------------------- revision 1.249 date: 2008/03/19 02:14:24; author: gilles; state: Exp; lines: +7 -7 warn about BUG_IMAPClient_3.xx ---------------------------- revision 1.248 date: 2008/03/19 02:05:46; author: gilles; state: Exp; lines: +14 -19 Cleaned check_lib_version() ---------------------------- revision 1.247 date: 2008/03/19 01:41:49; author: gilles; state: Exp; lines: +1 -1 Added id in output warn when no header found. ---------------------------- revision 1.246 date: 2008/03/19 01:07:26; author: gilles; state: Exp; lines: +19 -16 Removed $^W use. ---------------------------- revision 1.245 date: 2008/03/10 23:49:42; author: gilles; state: Exp; lines: +53 -23 Back to append_string() Turn on --syncinternaldates by default Date_Init("TZ=GMT") if no timezone (windows) set. ---------------------------- revision 1.244 date: 2008/02/29 22:43:22; author: gilles; state: Exp; lines: +5 -545 Removed old *_2() functions (unused) ---------------------------- revision 1.243 date: 2008/02/29 16:47:58; author: gilles; state: Exp; lines: +632 -53 Moved functins *_2() into override_imapclient() ---------------------------- revision 1.242 date: 2008/02/29 00:28:15; author: gilles; state: Exp; lines: +24 -13 Ignore message when it has no header. ---------------------------- revision 1.241 date: 2007/12/31 13:39:02; author: gilles; state: Exp; lines: +6 -6 Bug fix. --exclude and remove_from_requested_folders() ---------------------------- revision 1.240 date: 2007/12/31 13:35:59; author: gilles; state: Exp; lines: +7 -6 MDaemon 8.0.2 ---------------------------- revision 1.239 date: 2007/12/29 02:44:10; author: gilles; state: Exp; lines: +7 -7 Typo if ---------------------------- revision 1.238 date: 2007/12/29 02:41:52; author: gilles; state: Exp; lines: +15 -10 Fixed --version exit bug with Test::More ---------------------------- revision 1.237 date: 2007/12/29 02:15:35; author: gilles; state: Exp; lines: +10 -15 check_lib_version() rewrote and reused. ---------------------------- revision 1.236 date: 2007/12/29 01:54:27; author: gilles; state: Exp; lines: +215 -38 Removed bad warning about ssl Started to be IMAPClient 3.0.0 compliant Fixed bad --include behavior (added already added folders) Started unit tests. Rockliffe Mailsite 4.5.6 Courier 4.1.1 ---------------------------- revision 1.235 date: 2007/11/10 02:52:29; author: gilles; state: Exp; lines: +7 -5 wonko_imapsync link ---------------------------- revision 1.234 date: 2007/10/30 15:34:06; author: gilles; state: Exp; lines: +55 -32 Remove every else else between braces } else { ---------------------------- revision 1.233 date: 2007/10/30 03:20:53; author: gilles; state: Exp; lines: +69 -7 Added connect2() to replace buggy connect() with bad hostname. ---------------------------- revision 1.232 date: 2007/10/30 01:41:17; author: gilles; state: Exp; lines: +24 -23 Added imapmigrate link (cyrus-utils) Checked each SIMILAR SOFTWARES link and fixed bad ones. Courier IMAP 3.0.8 success Fixed Mail::IMAPClient version output. ---------------------------- revision 1.231 date: 2007/10/30 00:28:40; author: gilles; state: Exp; lines: +12 -11 bug fix avoid append_file2 on MSWin32, not the opposite :-) ---------------------------- revision 1.230 date: 2007/10/30 00:01:34; author: gilles; state: Exp; lines: +14 -9 Added bug fix to MSWin32 system and append_file2() problem. ---------------------------- revision 1.229 date: 2007/10/29 23:02:46; author: gilles; state: Exp; lines: +15 -11 Added OS name in --help ---------------------------- revision 1.228 date: 2007/10/29 22:49:07; author: gilles; state: Exp; lines: +8 -8 Added DBMail 0.9 failure. Commented lib_version check. ---------------------------- revision 1.227 date: 2007/10/20 02:30:31; author: gilles; state: Exp; lines: +7 -6 GMX IMAP4 StreamProxy success. ---------------------------- revision 1.226 date: 2007/10/20 01:33:34; author: gilles; state: Exp; lines: +11 -9 Updated help message about --authuser : avoid --authmech1 SOMETHING ---------------------------- revision 1.225 date: 2007/08/21 03:04:08; author: gilles; state: Exp; lines: +10 -6 Uppercase authmech input. ---------------------------- revision 1.224 date: 2007/08/16 23:54:26; author: gilles; state: Exp; lines: +9 -10 Ubuntu package. Date with minus %d-%b-%Y ---------------------------- revision 1.223 date: 2007/06/15 04:08:44; author: gilles; state: Exp; lines: +7 -7 Domino 7.0.1 Exchange 6.5.7638.1 ---------------------------- revision 1.222 date: 2007/06/10 17:49:12; author: gilles; state: Exp; lines: +17 -11 Added Deerfield VisNetic MailServer 5.8.6 [from] success. 33 different imap server softwares are (well) supported. Added Dovecot 1.0.0 [dest] success. Added requires Date::Manip in case --syncinternaldates is used (will be a use Date::Manip in future releases if this fix is a really good one). This date rewrite was needed by Deerfield VisNetic bug (it sends the timestamp with one digit, not two (and dovecot 1.0.0 is not tolerant). Added paypal address at the end of execution. ---------------------------- revision 1.221 date: 2007/05/29 13:09:18; author: gilles; state: Exp; lines: +9 -9 Turn to --nofastio1 --nofastio2 by default. ---------------------------- revision 1.220 date: 2007/05/25 02:15:59; author: gilles; state: Exp; lines: +7 -6 Flags \Recent can be uppercase \RECENT now. ---------------------------- revision 1.219 date: 2007/04/04 09:32:20; author: gilles; state: Exp; lines: +18 -12 Added uname info and perl version to the banner. ---------------------------- revision 1.218 date: 2007/04/04 07:52:22; author: gilles; state: Exp; lines: +8 -8 - Zimbra releases - use prefix1 bugfix for a rpm .spec ---------------------------- revision 1.217 date: 2007/03/06 13:12:23; author: gilles; state: Exp; lines: +103 -6 - Added _cram_md5_2() and authenticate2() to correct a bug from the Mail::IMAPClient perl library. username can't be longer than 24 due to a lack of blank second parameter in MIME::Base64::encode() call. ---------------------------- revision 1.216 date: 2007/03/06 04:25:52; author: gilles; state: Exp; lines: +10 -7 Updated distribution list. ---------------------------- revision 1.215 date: 2007/03/06 03:50:35; author: gilles; state: Exp; lines: +16 -8 Updated documentation. ---------------------------- revision 1.214 date: 2007/02/26 10:31:32; author: gilles; state: Exp; lines: +6 -6 Fixed a mistake in the EXAMPLE section. ---------------------------- revision 1.213 date: 2007/02/16 04:07:19; author: gilles; state: Exp; lines: +168 -11 - Back to append_file() modified -> append_file2() ---------------------------- revision 1.212 date: 2007/02/13 05:18:15; author: gilles; state: Exp; lines: +12 -12 32 imap server softwares supported. Fixed a long standing bug (header keywords weren't uppercased like said in the comment above) ---------------------------- revision 1.211 date: 2007/02/08 03:25:36; author: gilles; state: Exp; lines: +23 -20 MDaemon 9.5.4 success Mercury 4.1 success UW v12.264 success Docum: link to wishlist ---------------------------- revision 1.210 date: 2007/02/08 02:58:52; author: gilles; state: Exp; lines: +19 -10 - Added whole command line output (I'm fed up to ask for) - Added link to the imapsync thanks wishlist. I like to help people for free, but I like books too :-) - Added count of skipped message due to --dry mode ---------------------------- revision 1.209 date: 2007/02/02 02:06:50; author: gilles; state: Exp; lines: +9 -6 - Started to list the distributions containing an imapsync port. ---------------------------- revision 1.208 date: 2007/02/01 22:31:14; author: gilles; state: Exp; lines: +50 -28 - lib Term::ReadKey optional + fix syntax without. - folders in destination are computed from the source ones. - Back to append_string() use because of syncinternaldates "bug" with append_file(). - more output when no header are detected. ---------------------------- revision 1.207 date: 2007/01/14 15:59:12; author: gilles; state: Exp; lines: +10 -10 Updated --help output ---------------------------- revision 1.206 date: 2007/01/14 15:55:02; author: gilles; state: Exp; lines: +9 -9 --include is no longer an exclusive option. I doesn't erase --folder --folderrec --subscribed options ---------------------------- revision 1.205 date: 2007/01/13 09:12:05; author: gilles; state: Exp; lines: +6 -6 Be case insensitive with INBOX ---------------------------- revision 1.204 date: 2007/01/13 07:51:21; author: gilles; state: Exp; lines: +14 -6 Try LOGIN auth login on first failure login. ---------------------------- revision 1.203 date: 2007/01/13 06:58:15; author: gilles; state: Exp; lines: +9 -7 Server list updated ---------------------------- revision 1.202 date: 2007/01/06 05:07:08; author: gilles; state: Exp; lines: +7 -6 SmarterMail success ---------------------------- revision 1.201 date: 2007/01/03 23:49:10; author: gilles; state: Exp; lines: +30 -6 Use login2() instead of login() (literal form is not always supported. ---------------------------- revision 1.200 date: 2007/01/02 08:27:04; author: gilles; state: Exp; lines: +48 -15 use message_to_file()instead of message_string() use append_file() instead of append_string() fixed INBOX with --prefix2 problem. Authmechanism() can't receive 'LOGIN' as argument (bug ?). ---------------------------- revision 1.199 date: 2006/12/30 15:53:51; author: gilles; state: Exp; lines: +7 -6 Sun Java System Messaging Server success ---------------------------- revision 1.198 date: 2006/12/30 04:23:36; author: gilles; state: Exp; lines: +19 -15 Added a comment about CPU and memory hungriness. Removed exit(1) on No auth CAPABILITY. Authenticate is always done now. ---------------------------- revision 1.197 date: 2006/12/10 02:49:39; author: gilles; state: Exp; lines: +7 -10 Updated online documantation about new --include and --exclude behavior ---------------------------- revision 1.196 date: 2006/12/10 02:41:37; author: gilles; state: Exp; lines: +21 -15 - Now IO::Socket::SSL is loaded only with -ssl* - multiple --include are taken like a "or" list , not an "and" list. ---------------------------- revision 1.195 date: 2006/12/08 04:48:54; author: gilles; state: Exp; lines: +10 -8 Added OpenMail success Counted how many different imap server software succeeded. ---------------------------- revision 1.194 date: 2006/12/08 04:04:34; author: gilles; state: Exp; lines: +22 -12 Added --folderrec option Now --folder --subscribed and --folderrec can be used simultaneously. ---------------------------- revision 1.193 date: 2006/12/08 03:29:14; author: gilles; state: Exp; lines: +8 -8 Replace PLAIN with LOGIN ---------------------------- revision 1.192 date: 2006/12/04 13:57:45; author: gilles; state: Exp; lines: +10 -9 Added imap server releases ---------------------------- revision 1.191 date: 2006/11/11 22:11:25; author: gilles; state: Exp; lines: +7 -7 imap servers section DBMail 2.2rc1 ---------------------------- revision 1.190 date: 2006/11/11 00:13:15; author: gilles; state: Exp; lines: +10 -6 Be case inseitive with header keywords. ---------------------------- revision 1.189 date: 2006/11/04 16:47:38; author: gilles; state: Exp; lines: +6 -6 typo CommuniGatePro ---------------------------- revision 1.188 date: 2006/10/30 01:18:37; author: gilles; state: Exp; lines: +22 -17 Fixed typos about transfer* ---------------------------- revision 1.187 date: 2006/09/29 12:18:53; author: gilles; state: Exp; lines: +6 -6 bug fixed when "userauthuserpassword" is over 76 characters ---------------------------- revision 1.186 date: 2006/09/29 12:09:15; author: gilles; state: Exp; lines: +6 -6 Surgemail release ---------------------------- revision 1.185 date: 2006/09/28 11:15:20; author: gilles; state: Exp; lines: +6 -5 Surgemail success. ---------------------------- revision 1.184 date: 2006/08/22 01:25:18; author: gilles; state: Exp; lines: +9 -5 Added advice in case bad PLAIN AUTHENTICATE. ---------------------------- revision 1.183 date: 2006/08/22 01:17:28; author: gilles; state: Exp; lines: +7 -6 exit if --authmech1 method is not supported by an imap server. ---------------------------- revision 1.182 date: 2006/08/01 23:07:42; author: gilles; state: Exp; lines: +8 -6 David Tobit V8 ---------------------------- revision 1.181 date: 2006/07/19 14:45:29; author: gilles; state: Exp; lines: +22 -7 Added several controls to check connected status. ---------------------------- revision 1.180 date: 2006/07/19 13:45:55; author: gilles; state: Exp; lines: +7 -7 Updated success list ---------------------------- revision 1.179 date: 2006/07/18 01:57:31; author: gilles; state: Exp; lines: +7 -6 Fixed bug about variable mess_size_total_skipped. Thanks to Doug Gorton ---------------------------- revision 1.178 date: 2006/07/02 23:26:07; author: gilles; state: Exp; lines: +10 -8 Added Mailsite success ---------------------------- revision 1.177 date: 2006/06/13 20:03:21; author: gilles; state: Exp; lines: +14 -14 typos ---------------------------- revision 1.176 date: 2006/06/08 23:00:56; author: gilles; state: Exp; lines: +6 -6 typo ---------------------------- revision 1.175 date: 2006/06/08 00:52:00; author: gilles; state: Exp; lines: +28 -9 Added --regexflag option to remove "bad" flags when needed. ---------------------------- revision 1.174 date: 2006/06/07 22:17:37; author: gilles; state: Exp; lines: +6 -6 Scalix release ---------------------------- revision 1.173 date: 2006/05/31 11:48:24; author: gilles; state: Exp; lines: +10 -6 Updated "IMAP SERVERS" success list: - Added Scalix - Added Eudora WorldMail v2 ---------------------------- revision 1.172 date: 2006/05/09 23:06:29; author: gilles; state: Exp; lines: +10 -5 Added split value 1000 by default ---------------------------- revision 1.171 date: 2006/04/27 08:25:04; author: gilles; state: Exp; lines: +21 -13 Added more information with --justconnect - OS system. - kernel (uname -a) - perl version ---------------------------- revision 1.170 date: 2006/04/27 06:58:37; author: gilles; state: Exp; lines: +21 -30 Move "Multiple copies" bug in the FAQ. Removed "Flag bug in first sync". Added how to report bug. ---------------------------- revision 1.169 date: 2006/04/13 21:36:15; author: gilles; state: Exp; lines: +7 -6 Added Zimbra IMAP success. ---------------------------- revision 1.168 date: 2006/04/02 01:49:10; author: gilles; state: Exp; lines: +32 -10 Added --delete2 option: remove messages on destination that are not on the source server. ---------------------------- revision 1.167 date: 2006/03/30 02:33:00; author: gilles; state: Exp; lines: +6 -6 SPLIT print in debug mode only. ---------------------------- revision 1.166 date: 2006/03/30 02:22:39; author: gilles; state: Exp; lines: +30 -30 Use of parse_headers() instead of parse_headers() Finished to fix bug "word too long" by splitting request also in parse_headers2() function. ---------------------------- revision 1.165 date: 2006/03/30 01:41:22; author: gilles; state: Exp; lines: +125 -9 Fixed a bug with interactive passwords (it was not used...) Added function parse_headers2() from IMAPClient.pm ---------------------------- revision 1.164 date: 2006/03/26 03:17:48; author: gilles; state: Exp; lines: +97 -9 Fixed the bug "Word too large" by spliting requests on demand with --split1 and --split2 options. Added Split() fetch_hash2() in lib ---------------------------- revision 1.163 date: 2006/03/24 04:18:58; author: gilles; state: Exp; lines: +61 -51 Added ask_for_password() function FLAGS INTERNALDATE and RFC822.SIZE fetch together ---------------------------- revision 1.162 date: 2006/03/22 03:45:05; author: gilles; state: Exp; lines: +59 -31 Added --authuser1 --authuser2 options ---------------------------- revision 1.161 date: 2006/03/20 00:09:41; author: gilles; state: Exp; lines: +12 -42 Fixed default auth to CRAM-MD5 unless not told to. ---------------------------- revision 1.160 date: 2006/03/19 23:54:48; author: gilles; state: Exp; lines: +82 -23 Added SSL support. Added options --ssl1 --ssl2 Added PLAIN auth support Added options --authmech1 --authmech2 ---------------------------- revision 1.159 date: 2006/03/11 13:00:52; author: gilles; state: Exp; lines: +11 -8 Added failure story dkimap Fixed bug when both --minage and --maxage are used. Changed message date selection : date sent instead of internal date. ---------------------------- revision 1.158 date: 2006/03/02 06:28:30; author: gilles; state: Exp; lines: +38 -29 Made acls_sync() to_folder_name() ---------------------------- revision 1.157 date: 2006/03/02 04:32:01; author: gilles; state: Exp; lines: +15 -11 Made --include --exclude options possibly be a list. ---------------------------- revision 1.156 date: 2006/03/02 03:14:12; author: gilles; state: Exp; lines: +6 -5 Added imap_tools link. ---------------------------- revision 1.155 date: 2006/02/28 02:18:13; author: gilles; state: Exp; lines: +14 -7 Updated AUTHOR section. Talked about confirmation request Talked about comp.mail.imap ---------------------------- revision 1.154 date: 2006/02/28 02:03:40; author: gilles; state: Exp; lines: +18 -17 Fixed doc: No need to rerun imapsync with expunge now. ---------------------------- revision 1.153 date: 2006/02/22 02:41:52; author: gilles; state: Exp; lines: +10 -9 updated usage() ---------------------------- revision 1.152 date: 2006/02/17 02:57:21; author: gilles; state: Exp; lines: +55 -18 Made the --justconnect a real "just connect" connection, not a auth connection like it is now. ---------------------------- revision 1.151 date: 2006/02/17 01:28:57; author: gilles; state: Exp; lines: +9 -6 Added documentation about --regextrans2, dry mode. ---------------------------- revision 1.150 date: 2006/02/16 05:23:05; author: gilles; state: Exp; lines: +9 -7 DBMail 2.0.7 failure story ---------------------------- revision 1.149 date: 2006/02/14 00:44:44; author: gilles; state: Exp; lines: +9 -8 Documented --exclude 'fold1|fold2|f3' ---------------------------- revision 1.148 date: 2006/02/14 00:30:49; author: gilles; state: Exp; lines: +7 -7 More debug for dbmail pb. ---------------------------- revision 1.147 date: 2006/02/08 07:54:46; author: gilles; state: Exp; lines: +7 -9 Just a little debug for Jim. ---------------------------- revision 1.146 date: 2006/01/13 02:43:18; author: gilles; state: Exp; lines: +6 -6 MDaemon ---------------------------- revision 1.145 date: 2005/12/04 01:58:54; author: gilles; state: Exp; lines: +54 -12 Added --minage option ---------------------------- revision 1.144 date: 2005/11/28 00:32:05; author: gilles; state: Exp; lines: +60 -17 Added RFC compliance about NAMESPACE prefixes. Added --prefix1 option. ---------------------------- revision 1.143 date: 2005/11/27 20:36:12; author: gilles; state: Exp; lines: +12 -10 made --regextrans2 a multiple option ---------------------------- revision 1.142 date: 2005/11/16 01:08:49; author: gilles; state: Exp; lines: +7 -5 Added expunge1 and expunge2 getoption code ---------------------------- revision 1.141 date: 2005/11/16 01:05:16; author: gilles; state: Exp; lines: +6 -6 fixed bug about subscribed folders. Was introduced by a line commented in 1.137 ---------------------------- revision 1.140 date: 2005/10/30 10:16:52; author: gilles; state: Exp; lines: +21 -8 Added --expunge1 --expunge2 options ---------------------------- revision 1.139 date: 2005/07/16 12:46:22; author: gilles; state: Exp; lines: +6 -6 server list ---------------------------- revision 1.138 date: 2005/07/16 11:12:45; author: gilles; state: Exp; lines: +20 -13 Added failure story. Added license information and url in imap server list. ---------------------------- revision 1.137 date: 2005/06/26 03:08:35; author: gilles; state: Exp; lines: +22 -11 Added --fastio1 --fastio2 options. Fixed bad variable declaration with --maxage. ---------------------------- revision 1.136 date: 2005/06/23 02:24:19; author: gilles; state: Exp; lines: +42 -29 Fixed --maxsize --skipsize bug ---------------------------- revision 1.135 date: 2005/06/21 01:29:44; author: gilles; state: Exp; lines: +25 -33 Removed md5 test on perl lib ---------------------------- revision 1.134 date: 2005/06/03 10:33:11; author: gilles; state: Exp; lines: +8 -8 updated documentation. ---------------------------- revision 1.133 date: 2005/05/21 02:33:29; author: gilles; state: Exp; lines: +45 -31 Added foldersizes function ---------------------------- revision 1.132 date: 2005/05/20 03:18:48; author: gilles; state: Exp; lines: +23 -16 Updated doc with all options. ---------------------------- revision 1.131 date: 2005/05/20 02:47:56; author: gilles; state: Exp; lines: +5 -37 Removed unused code ---------------------------- revision 1.130 date: 2005/05/20 02:40:26; author: gilles; state: Exp; lines: +23 -15 Added --useheader option ---------------------------- revision 1.129 date: 2005/05/19 01:54:31; author: gilles; state: Exp; lines: +14 -11 Added --buffersize option. No sync acls by default now. ---------------------------- revision 1.128 date: 2005/05/18 18:52:09; author: gilles; state: Exp; lines: +7 -6 Groupwise ---------------------------- revision 1.127 date: 2005/05/09 04:14:48; author: gilles; state: Exp; lines: +6 -7 Fixed bug about @regexmess who was applied for the first message only. Thanks to Scott Glenn. ---------------------------- revision 1.126 date: 2005/05/09 04:04:20; author: gilles; state: Exp; lines: +26 -21 Applied patch from Dag-Erling Smørgrav about acl sync pb ---------------------------- revision 1.125 date: 2005/04/22 01:12:18; author: gilles; state: Exp; lines: +23 -9 Allow password input on command line if none by options --password nor --passfile Thanks to Brian Cunnie for his patch. ---------------------------- revision 1.124 date: 2005/04/13 11:37:38; author: gilles; state: Exp; lines: +9 -7 Added Samsung Contact success ---------------------------- revision 1.123 date: 2005/03/19 04:25:46; author: gilles; state: Exp; lines: +17 -6 Added check about flags undef Bug reported from Novell NetMail by Dan Wang ---------------------------- revision 1.122 date: 2005/03/19 04:11:33; author: gilles; state: Exp; lines: +8 -6 Updated Success stories ---------------------------- revision 1.121 date: 2005/02/01 04:03:30; author: gilles; state: Exp; lines: +7 -5 Added links imapcopy and migrationtool ---------------------------- revision 1.120 date: 2005/02/01 02:38:38; author: gilles; state: Exp; lines: +7 -6 Success stories : MDaemon ---------------------------- revision 1.119 date: 2005/02/01 01:54:08; author: gilles; state: Exp; lines: +13 -8 Fixed undef flag array problem (that I've never encounter). Don't remenber who gave the patch patches/imapsync-undef_arrayref.diff ---------------------------- revision 1.118 date: 2005/01/17 14:45:25; author: gilles; state: Exp; lines: +10 -8 --regexmess option can be repeated ---------------------------- revision 1.117 date: 2005/01/16 13:51:49; author: gilles; state: Exp; lines: +17 -11 Changed get_separator() Calling namespace capability if needed ---------------------------- revision 1.116 date: 2005/01/16 01:50:23; author: gilles; state: Exp; lines: +50 -49 Added --regexmess option ---------------------------- revision 1.115 date: 2005/01/10 00:14:45; author: gilles; state: Exp; lines: +10 -12 Tried to get flags in one command, but it is too slow. ---------------------------- revision 1.114 date: 2005/01/07 09:58:59; author: gilles; state: Exp; lines: +82 -76 moved parse_header_msg1 ---------------------------- revision 1.113 date: 2005/01/07 07:28:40; author: gilles; state: Exp; lines: +9 -9 Added conditional --dry actions ---------------------------- revision 1.112 date: 2005/01/04 04:49:43; author: gilles; state: Exp; lines: +19 -18 acl only if option ---------------------------- revision 1.111 date: 2005/01/04 04:05:07; author: gilles; state: Exp; lines: +9 -13 Suppressed perl warnings ---------------------------- revision 1.110 date: 2005/01/04 03:56:59; author: gilles; state: Exp; lines: +92 -12 Better performances ---------------------------- revision 1.109 date: 2005/01/02 00:47:24; author: gilles; state: Exp; lines: +6 -9 Removed useless lines ---------------------------- revision 1.108 date: 2004/12/29 03:19:48; author: gilles; state: Exp; lines: +8 -7 --prefix2 applied before --regextrans2 ---------------------------- revision 1.107 date: 2004/12/28 23:24:05; author: gilles; state: Exp; lines: +30 -9 Added option --nosyncacls Added synchronization of acls (by default) Added --justfolders ---------------------------- revision 1.106 date: 2004/12/28 03:35:00; author: gilles; state: Exp; lines: +9 -8 If --sep2 or --sep1 is given then it has precedence over the separator given by imap namespace. ---------------------------- revision 1.105 date: 2004/12/28 03:32:30; author: gilles; state: Exp; lines: +7 -11 Removed commented code about separator ---------------------------- revision 1.104 date: 2004/11/13 02:30:24; author: gilles; state: Exp; lines: +7 -6 Added Worldmail success ---------------------------- revision 1.103 date: 2004/10/19 04:15:27; author: gilles; state: Exp; lines: +9 -11 Removed search("ALL") from foldersizes code ---------------------------- revision 1.102 date: 2004/10/15 14:41:25; author: gilles; state: Exp; lines: +36 -21 Add use of fetch_hash() in foldersizes counting. ---------------------------- revision 1.101 date: 2004/10/12 15:17:37; author: gilles; state: Exp; lines: +7 -6 Added OpenWave ---------------------------- revision 1.100 date: 2004/10/08 00:57:33; author: gilles; state: Exp; lines: +33 -12 Added time infos ---------------------------- revision 1.99 date: 2004/10/04 18:42:40; author: gilles; state: Exp; lines: +15 -8 Added explanation about --skipheader option : only one regex taken into account. ---------------------------- revision 1.98 date: 2004/09/29 15:49:53; author: gilles; state: Exp; lines: +11 -6 Ordered message transfer by uid. Thanks to David Alix suggestion. ---------------------------- revision 1.97 date: 2004/09/29 15:00:26; author: gilles; state: Exp; lines: +7 -6 Success stories : Domino 5.0.6 ---------------------------- revision 1.96 date: 2004/07/09 09:08:43; author: gilles; state: Exp; lines: +41 -36 Rewrote foldersizes using size() instead of new and not available everywhere fetch_hash(). ---------------------------- revision 1.95 date: 2004/07/08 23:31:53; author: gilles; state: Exp; lines: +44 -6 Applied --foldersizes patch as is from Reed Sandberg ---------------------------- revision 1.94 date: 2004/06/15 03:42:56; author: gilles; state: Exp; lines: +13 -6 Added time stat ---------------------------- revision 1.93 date: 2004/06/14 23:13:55; author: gilles; state: Exp; lines: +18 -11 Added stats about messages transfered and messages skipped ---------------------------- revision 1.92 date: 2004/05/29 02:23:14; author: gilles; state: Exp; lines: +17 -13 Updated usage() ---------------------------- revision 1.91 date: 2004/04/07 18:51:24; author: gilles; state: Exp; lines: +7 -6 - Expunging the destination server is commented. - Expunge each message deleted message from the source server if --expunge ---------------------------- revision 1.90 date: 2004/04/07 18:14:05; author: gilles; state: Exp; lines: +13 -6 Added --regextrans2 option ---------------------------- revision 1.89 date: 2004/03/31 17:37:23; author: gilles; state: Exp; lines: +17 -13 Changed debug output ---------------------------- revision 1.88 date: 2004/03/29 23:33:00; author: gilles; state: Exp; lines: +27 -11 Added BUGS section about "Multiple copies". ---------------------------- revision 1.87 date: 2004/03/24 00:08:35; author: gilles; state: Exp; lines: +6 -5 Updated Servers list. ---------------------------- revision 1.86 date: 2004/03/21 23:25:47; author: gilles; state: Exp; lines: +19 -7 Added --skipheader option Added --skipsize option ---------------------------- revision 1.85 date: 2004/03/13 20:39:10; author: gilles; state: Exp; lines: +7 -6 Updated pod IMAP SERVERS ---------------------------- revision 1.84 date: 2004/03/13 03:43:34; author: gilles; state: Exp; lines: +8 -7 Sort also same type headers (like Received) ---------------------------- revision 1.83 date: 2004/03/12 02:29:00; author: gilles; state: Exp; lines: +8 -5 Do not parse first blanks in headers (dbmail bug, thanks to Christophe Labouisse) ---------------------------- revision 1.82 date: 2004/03/12 01:40:27; author: gilles; state: Exp; lines: +6 -6 removed only ---------------------------- revision 1.81 date: 2004/03/12 01:39:51; author: gilles; state: Exp; lines: +11 -5 AUTHOR pod section ---------------------------- revision 1.80 date: 2004/03/12 01:11:22; author: gilles; state: Exp; lines: +6 -6 IMail Win2003 ---------------------------- revision 1.79 date: 2004/03/12 01:08:12; author: gilles; state: Exp; lines: +6 -5 Added IMail 7.15 ---------------------------- revision 1.78 date: 2004/03/12 01:04:10; author: gilles; state: Exp; lines: +19 -9 --timeout option added. Thanks to William Hernandez (fromESS/PR Webmasters) ---------------------------- revision 1.77 date: 2004/03/11 05:33:22; author: gilles; state: Exp; lines: +26 -8 Better authmd5 stuff Added option --noauthmd5 ---------------------------- revision 1.76 date: 2004/02/18 21:34:46; author: gilles; state: Exp; lines: +9 -6 Added mailutil ref ---------------------------- revision 1.75 date: 2004/02/18 14:27:40; author: gilles; state: Exp; lines: +6 -6 dovecot version ---------------------------- revision 1.74 date: 2004/02/12 03:11:14; author: gilles; state: Exp; lines: +11 -6 Updated SIMILAR SOFTWARES ---------------------------- revision 1.73 date: 2004/02/12 00:12:46; author: gilles; state: Exp; lines: +11 -5 www.imap.org ---------------------------- revision 1.72 date: 2004/02/09 15:42:33; author: gilles; state: Exp; lines: +39 -9 Better MD5 handling ---------------------------- revision 1.71 date: 2004/01/29 04:28:36; author: gilles; state: Exp; lines: +23 -7 Added statistics about bytes transfered, skipped ---------------------------- revision 1.70 date: 2004/01/29 03:32:01; author: gilles; state: Exp; lines: +9 -5 Updated "Huge Migration". ---------------------------- revision 1.69 date: 2004/01/29 02:27:41; author: gilles; state: Exp; lines: +45 -16 Patch from Kaspar Brand as is. ---------------------------- revision 1.68 date: 2004/01/28 03:49:29; author: gilles; state: Exp; lines: +17 -13 Added "Success stories" Sorted "Success stories" Added windows note. ---------------------------- revision 1.67 date: 2004/01/28 03:10:24; author: gilles; state: Exp; lines: +6 -6 Better description for google. ---------------------------- revision 1.66 date: 2004/01/23 20:27:28; author: gilles; state: Exp; lines: +6 -6 Added IMAP sync words for google response. ---------------------------- revision 1.65 date: 2003/12/24 03:04:34; author: gilles; state: Exp; lines: +20 -7 Wrote separator_invert() Use separator_invert() to transform separators ---------------------------- revision 1.64 date: 2003/12/23 19:45:46; author: gilles; state: Exp; lines: +5 -8 Removed auth capability debug ---------------------------- revision 1.63 date: 2003/12/23 19:44:47; author: gilles; state: Exp; lines: +7 -6 One line only for --version ---------------------------- revision 1.62 date: 2003/12/23 19:28:12; author: gilles; state: Exp; lines: +6 -5 Added ref pop2imap ---------------------------- revision 1.61 date: 2003/12/23 19:23:07; author: gilles; state: Exp; lines: +11 -6 Updated Success stories ---------------------------- revision 1.60 date: 2003/12/23 18:21:44; author: gilles; state: Exp; lines: +8 -8 Try separator() ---------------------------- revision 1.59 date: 2003/12/23 18:19:24; author: gilles; state: Exp; lines: +34 -16 Added MD5 auth ---------------------------- revision 1.58 date: 2003/12/23 17:26:45; author: gilles; state: Exp; lines: +44 -27 Preparation to MD5 auth ---------------------------- revision 1.57 date: 2003/12/23 03:04:16; author: gilles; state: Exp; lines: +14 -6 Prepared code for separator() use. Added --justconnect option. ---------------------------- revision 1.56 date: 2003/12/13 19:38:33; author: gilles; state: Exp; lines: +7 -7 Removed tha bad help message about nested folders and --folder option ---------------------------- revision 1.55 date: 2003/12/13 18:16:56; author: gilles; state: Exp; lines: +30 -15 Better subscribe behavior ---------------------------- revision 1.54 date: 2003/12/12 18:13:01; author: gilles; state: Exp; lines: +7 -6 Updated "Success stories". ---------------------------- revision 1.53 date: 2003/12/12 17:34:45; author: gilles; state: Exp; lines: +17 -6 Added comments. Added subscribe code. ---------------------------- revision 1.52 date: 2003/12/12 17:16:51; author: gilles; state: Exp; lines: +12 -4 Use join() for the banner (less ugly). ---------------------------- revision 1.51 date: 2003/12/12 17:12:39; author: gilles; state: Exp; lines: +25 -9 Updated the INSTALL pod doc. Prepared the --subscribe option. ---------------------------- revision 1.50 date: 2003/12/01 16:32:15; author: gilles; state: Exp; lines: +6 -4 Added Mail::IMAPClient::VERSION ---------------------------- revision 1.49 date: 2003/12/01 16:19:46; author: gilles; state: Exp; lines: +6 -6 Updated success stories. ---------------------------- revision 1.48 date: 2003/11/21 04:23:10; author: gilles; state: Exp; lines: +26 -4 Added "HUGE MIGRATION" pod section. (Thanks Tommi Lätti ---------------------------- revision 1.47 date: 2003/11/21 03:15:31; author: gilles; state: Exp; lines: +19 -4 Added a SECURITY pod doc section. ---------------------------- revision 1.46 date: 2003/11/21 02:52:37; author: gilles; state: Exp; lines: +6 -4 Documented --subscribed option in usage() Add GPL link ---------------------------- revision 1.45 date: 2003/11/21 02:42:49; author: gilles; state: Exp; lines: +28 -8 Added usage of sysexists constants. Exit in error if a problem occurs with options. Added --subscribed option ---------------------------- revision 1.44 date: 2003/11/11 18:01:49; author: gilles; state: Exp; lines: +5 -5 Fixed get_separator call bug for "to" server. Thanks Eric Yung. ---------------------------- revision 1.43 date: 2003/11/11 02:18:45; author: gilles; state: Exp; lines: +35 -8 Added --sep1 and --sep2 options in case NAMESPACE can not be used Wrote get_separator() function. ---------------------------- revision 1.42 date: 2003/10/20 22:56:57; author: gilles; state: Exp; lines: +27 -16 Added --syncinternaldates option ---------------------------- revision 1.41 date: 2003/10/20 19:19:52; author: gilles; state: Exp; lines: +9 -4 RFC 2060: \Recent can not be altered by the client. Thanks to Tomasz Orzechowski ---------------------------- revision 1.40 date: 2003/10/17 01:34:59; author: gilles; state: Exp; lines: +5 -5 Added condition to add prefix2 ---------------------------- revision 1.39 date: 2003/10/17 01:26:20; author: gilles; state: Exp; lines: +4 -14 Removed commented code ---------------------------- revision 1.38 date: 2003/10/17 01:25:40; author: gilles; state: Exp; lines: +12 -7 Added --prefix2 option for the INBOX. namespace problem with cyrus imap servers. ---------------------------- revision 1.37 date: 2003/10/16 01:37:52; author: gilles; state: Exp; lines: +9 -8 Added a loop in case there is several identical key header ---------------------------- revision 1.36 date: 2003/10/16 01:23:51; author: gilles; state: Exp; lines: +4 -38 Removed commented code in parse section. ---------------------------- revision 1.35 date: 2003/10/16 01:22:52; author: gilles; state: Exp; lines: +20 -19 Use of parse_header_msg() in "to" server ---------------------------- revision 1.34 date: 2003/10/16 01:18:07; author: gilles; state: Exp; lines: +49 -24 Wrote parse_header_msg() Use of parse_header_msg for "from" server. ---------------------------- revision 1.33 date: 2003/10/16 00:47:43; author: gilles; state: Exp; lines: +6 -6 Added prefix in debug output for headers ---------------------------- revision 1.32 date: 2003/10/16 00:36:17; author: gilles; state: Exp; lines: +17 -5 Added code to check internal dates Commented code about internal dates ---------------------------- revision 1.31 date: 2003/08/28 16:07:28; author: gilles; state: Exp; lines: +5 -5 Fixed bug converting separators ---------------------------- revision 1.30 date: 2003/08/27 16:40:38; author: gilles; state: Exp; lines: +9 -5 Added output separators Fixed bad output fot "To folders" ---------------------------- revision 1.29 date: 2003/08/24 02:01:28; author: gilles; state: Exp; lines: +6 -4 Updated doc about fixed flags first time bug. ---------------------------- revision 1.28 date: 2003/08/24 01:55:25; author: gilles; state: Exp; lines: +8 -30 Set the flags using append_strings() instead of store() Flags are well set since the first run now. ---------------------------- revision 1.27 date: 2003/08/23 14:40:57; author: gilles; state: Exp; lines: +4 -10 Removed unused code ---------------------------- revision 1.26 date: 2003/08/23 14:36:58; author: gilles; state: Exp; lines: +18 -11 Updated doc with imap servers, freshmeat url ---------------------------- revision 1.25 date: 2003/08/23 01:44:33; author: gilles; state: Exp; lines: +18 -12 Fixed pb with no UIDPLUS and flags ---------------------------- revision 1.24 date: 2003/08/23 00:05:57; author: gilles; state: Exp; lines: +13 -5 Added server software output Added server capability output ---------------------------- revision 1.23 date: 2003/08/22 21:55:01; author: gilles; state: Exp; lines: +37 -8 Added code to better sync flags ---------------------------- revision 1.22 date: 2003/08/22 17:17:18; author: gilles; state: Exp; lines: +22 -17 Added code to underdstand why Daniele can't create folders ---------------------------- revision 1.21 date: 2003/08/22 16:25:07; author: gilles; state: Exp; lines: +4 -9 Removed commented code adding INBOX. prefix ---------------------------- revision 1.20 date: 2003/08/21 16:31:53; author: gilles; state: Exp; lines: +6 -5 Fixed banner output. Must be after getoptions because of --version ---------------------------- revision 1.19 date: 2003/08/21 16:18:32; author: gilles; state: Exp; lines: +11 -8 Added code and comment to understand why message uid was not printed Solution : some imap server don't have UIDPLIS Capability ---------------------------- revision 1.18 date: 2003/08/21 14:37:45; author: gilles; state: Exp; lines: +5 -5 Removed unuseful param in $from->folders call ---------------------------- revision 1.17 date: 2003/08/21 13:49:05; author: gilles; state: Exp; lines: +5 -4 Fixed banner ---------------------------- revision 1.16 date: 2003/08/21 13:47:14; author: gilles; state: Exp; lines: +12 -11 Added imapxfer url, thanks to Daniele Frijia. Added [] to see blank caracter in folder names. Added a banner with imapsync version. ---------------------------- revision 1.15 date: 2003/07/17 12:22:23; author: gilles; state: Exp; lines: +4 -4 Added imap debug mode to server2 ---------------------------- revision 1.14 date: 2003/07/17 11:58:56; author: gilles; state: Exp; lines: +14 -12 - Fixed port2 variable. Thanks again Patrick C. F. Ernzer ---------------------------- revision 1.13 date: 2003/07/16 17:28:59; author: gilles; state: Exp; lines: +6 -3 - fix "you forgot to honour the --port option" Thanks to Patrick C. F. Ernzer ---------------------------- revision 1.12 date: 2003/07/07 20:19:58; author: gilles; state: Exp; lines: +20 -4 Updated documentation : - Added IMAP SERVERS section (Success and bad stories). - Updated SIMILAR SOFTWARES section. ---------------------------- revision 1.11 date: 2003/07/04 23:32:23; author: gilles; state: Exp; lines: +7 -5 - use of namespace separator, Thanks to Sebastien Namèche. ---------------------------- revision 1.10 date: 2003/05/05 22:37:48; author: gilles; state: Exp; lines: +5 -5 Updated --folder documentation. ---------------------------- revision 1.9 date: 2003/05/05 22:33:50; author: gilles; state: Exp; lines: +8 -7 Commented INBOX prefix addition (cyrus "buggy" namespace) ---------------------------- revision 1.8 date: 2003/05/05 21:05:14; author: gilles; state: Exp; lines: +20 -4 When folders are given with the --folder option then nested are also taken into account. ---------------------------- revision 1.7 date: 2003/03/15 03:40:54; author: gilles; state: Exp; lines: +19 -9 Added documentation. ---------------------------- revision 1.6 date: 2003/03/14 02:17:24; author: gilles; state: Exp; lines: +5 -3 Added positive exit if errors occurred. ---------------------------- revision 1.5 date: 2003/03/14 01:20:37; author: gilles; state: Exp; lines: +14 -6 Better debug output. ---------------------------- revision 1.4 date: 2003/03/14 01:01:08; author: gilles; state: Exp; lines: +143 -15 Added documentation. Added --folder option. Added error counter. ---------------------------- revision 1.3 date: 2003/03/12 23:19:58; author: gilles; state: Exp; lines: +276 -166 Adapted from transfert-bal-verify.pl Added usage() Changed variable names. Added get_options() Added option controls. ---------------------------- revision 1.2 date: 2001/07/29 23:27:52; author: gilles; state: Exp; lines: +7 -4 8bit -> X ---------------------------- revision 1.1 date: 2001/07/29 22:34:01; author: gilles; state: Exp; Initial revision =============================================================================