Lines 409-415
GetOptions(
Link Here
|
409 |
'sql-config!' => \$opt{'sql-config'}, |
409 |
'sql-config!' => \$opt{'sql-config'}, |
410 |
'ssl' => \$opt{'ssl'}, |
410 |
'ssl' => \$opt{'ssl'}, |
411 |
'ssl-port=s' => \$opt{'ssl-port'}, |
411 |
'ssl-port=s' => \$opt{'ssl-port'}, |
412 |
'ssl-version=s' => \$opt{'ssl-version'}, |
|
|
413 |
'syslog-socket=s' => \$opt{'syslog-socket'}, |
412 |
'syslog-socket=s' => \$opt{'syslog-socket'}, |
414 |
'syslog|s=s' => \$opt{'syslog'}, |
413 |
'syslog|s=s' => \$opt{'syslog'}, |
415 |
'log-timestamp-fmt:s' => \$opt{'log-timestamp-fmt'}, |
414 |
'log-timestamp-fmt:s' => \$opt{'log-timestamp-fmt'}, |
Lines 744-754
if ( defined $ENV{'HOME'} ) {
Link Here
|
744 |
|
743 |
|
745 |
# Do whitelist later in tmp dir. Side effect: this will be done as -u user. |
744 |
# Do whitelist later in tmp dir. Side effect: this will be done as -u user. |
746 |
|
745 |
|
747 |
my $sslversion = $opt{'ssl-version'} || 'sslv3'; |
|
|
748 |
if ($sslversion !~ /^(?:sslv3|tlsv1)$/) { |
749 |
die "spamd: invalid ssl-version: $opt{'ssl-version'}\n"; |
750 |
} |
751 |
|
752 |
$opt{'server-key'} ||= "$LOCAL_RULES_DIR/certs/server-key.pem"; |
746 |
$opt{'server-key'} ||= "$LOCAL_RULES_DIR/certs/server-key.pem"; |
753 |
$opt{'server-cert'} ||= "$LOCAL_RULES_DIR/certs/server-cert.pem"; |
747 |
$opt{'server-cert'} ||= "$LOCAL_RULES_DIR/certs/server-cert.pem"; |
754 |
|
748 |
|
Lines 899-907
sub compose_listen_info_string {
Link Here
|
899 |
$socket_info->{ip_addr}, $socket_info->{port})); |
893 |
$socket_info->{ip_addr}, $socket_info->{port})); |
900 |
|
894 |
|
901 |
} elsif ($socket->isa('IO::Socket::SSL')) { |
895 |
} elsif ($socket->isa('IO::Socket::SSL')) { |
902 |
push(@listeninfo, sprintf("SSL [%s]:%s, ssl version %s", |
896 |
push(@listeninfo, sprintf("SSL [%r]:%s", $socket_info->{ip_addr}, |
903 |
$socket_info->{ip_addr}, $socket_info->{port}, |
897 |
$socket_info->{port})); |
904 |
$opt{'ssl-version'}||'sslv3')); |
|
|
905 |
} |
898 |
} |
906 |
} |
899 |
} |
907 |
|
900 |
|
Lines 1072-1078
sub server_sock_setup_inet {
Link Here
|
1072 |
$sockopt{V6Only} = 1 if $io_socket_module_name eq 'IO::Socket::IP' |
1065 |
$sockopt{V6Only} = 1 if $io_socket_module_name eq 'IO::Socket::IP' |
1073 |
&& IO::Socket::IP->VERSION >= 0.09; |
1066 |
&& IO::Socket::IP->VERSION >= 0.09; |
1074 |
%sockopt = (%sockopt, ( |
1067 |
%sockopt = (%sockopt, ( |
1075 |
SSL_version => $sslversion, |
|
|
1076 |
SSL_verify_mode => 0x00, |
1068 |
SSL_verify_mode => 0x00, |
1077 |
SSL_key_file => $opt{'server-key'}, |
1069 |
SSL_key_file => $opt{'server-key'}, |
1078 |
SSL_cert_file => $opt{'server-cert'}, |
1070 |
SSL_cert_file => $opt{'server-cert'}, |
Lines 1093-1099
sub server_sock_setup_inet {
Link Here
|
1093 |
if (!$server_inet) { |
1085 |
if (!$server_inet) { |
1094 |
$diag = sprintf("could not create %s socket on [%s]:%s: %s", |
1086 |
$diag = sprintf("could not create %s socket on [%s]:%s: %s", |
1095 |
$ssl ? 'IO::Socket::SSL' : $io_socket_module_name, |
1087 |
$ssl ? 'IO::Socket::SSL' : $io_socket_module_name, |
1096 |
$adr, $port, $!); |
1088 |
$adr, $port, $ssl && $IO::Socket::SSL::SSL_ERROR ? |
|
|
1089 |
"$!,$IO::Socket::SSL::SSL_ERROR" : $!); |
1097 |
push(@diag_fail, $diag); |
1090 |
push(@diag_fail, $diag); |
1098 |
} else { |
1091 |
} else { |
1099 |
$diag = sprintf("created %s socket on [%s]:%s", |
1092 |
$diag = sprintf("created %s socket on [%s]:%s", |
Lines 3238-3244
Options:
Link Here
|
3238 |
-H [dir], --helper-home-dir[=dir] Specify a different HOME directory |
3231 |
-H [dir], --helper-home-dir[=dir] Specify a different HOME directory |
3239 |
--ssl Enable SSL on TCP connections |
3232 |
--ssl Enable SSL on TCP connections |
3240 |
--ssl-port port Override --port setting for SSL connections |
3233 |
--ssl-port port Override --port setting for SSL connections |
3241 |
--ssl-version sslversion Specify SSL protocol version to use |
|
|
3242 |
--server-key keyfile Specify an SSL keyfile |
3234 |
--server-key keyfile Specify an SSL keyfile |
3243 |
--server-cert certfile Specify an SSL certificate |
3235 |
--server-cert certfile Specify an SSL certificate |
3244 |
--socketpath=path Listen on a given UNIX domain socket |
3236 |
--socketpath=path Listen on a given UNIX domain socket |
Lines 3727-3740
Optionally specifies the port number for
Link Here
|
3727 |
SSL connections (default: whatever --port uses). See B<--ssl> for |
3719 |
SSL connections (default: whatever --port uses). See B<--ssl> for |
3728 |
more details. |
3720 |
more details. |
3729 |
|
3721 |
|
3730 |
=item B<--ssl-version>=I<sslversion> |
|
|
3731 |
|
3732 |
Specify the SSL protocol version to use, one of B<sslv3> or B<tlsv1>. |
3733 |
The default, B<sslv3>, is the most flexible, accepting a SSLv3 or |
3734 |
higher hello handshake, then negotiating use of SSLv3 or TLSv1 |
3735 |
protocol if the client can accept it. Specifying B<--ssl-version> |
3736 |
implies B<--ssl>. |
3737 |
|
3738 |
=item B<--server-key> I<keyfile> |
3722 |
=item B<--server-key> I<keyfile> |
3739 |
|
3723 |
|
3740 |
Specify the SSL key file to use for SSL connections. |
3724 |
Specify the SSL key file to use for SSL connections. |