gnu: dkimproxy: Add IPv6 support.
* gnu/packages/mail.scm (dkimproxy)[source]: Add patch. * gnu/packages/patches/dkimproxy-add-ipv6-support.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it.
This commit is contained in:
parent
41097b2dee
commit
66e39000c6
|
@ -756,6 +756,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/dfu-programmer-fix-libusb.patch \
|
%D%/packages/patches/dfu-programmer-fix-libusb.patch \
|
||||||
%D%/packages/patches/diffutils-gets-undeclared.patch \
|
%D%/packages/patches/diffutils-gets-undeclared.patch \
|
||||||
%D%/packages/patches/diffutils-getopt.patch \
|
%D%/packages/patches/diffutils-getopt.patch \
|
||||||
|
%D%/packages/patches/dkimproxy-add-ipv6-support.patch \
|
||||||
%D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch \
|
%D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch \
|
||||||
%D%/packages/patches/doc++-include-directives.patch \
|
%D%/packages/patches/doc++-include-directives.patch \
|
||||||
%D%/packages/patches/doc++-segfault-fix.patch \
|
%D%/packages/patches/doc++-segfault-fix.patch \
|
||||||
|
|
|
@ -1967,7 +1967,9 @@ DKIM and/or DomainKeys.")
|
||||||
version "/dkimproxy-" version ".tar.gz"))
|
version "/dkimproxy-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1gc5c7lg2qrlck7b0lvjfqr824ch6jkrzkpsn0gjvlzg7hfmld75"))))
|
"1gc5c7lg2qrlck7b0lvjfqr824ch6jkrzkpsn0gjvlzg7hfmld75"))
|
||||||
|
(patches
|
||||||
|
(search-patches "dkimproxy-add-ipv6-support.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
@ -1997,11 +1999,13 @@ DKIM and/or DomainKeys.")
|
||||||
(inputs
|
(inputs
|
||||||
`(("perl" ,perl)
|
`(("perl" ,perl)
|
||||||
("perl-crypt-openssl-rsa" ,perl-crypt-openssl-rsa)
|
("perl-crypt-openssl-rsa" ,perl-crypt-openssl-rsa)
|
||||||
|
("perl-io-socket-inet6" ,perl-io-socket-inet6)
|
||||||
("perl-mailtools" ,perl-mailtools)
|
("perl-mailtools" ,perl-mailtools)
|
||||||
("perl-mail-authenticationresults" ,perl-mail-authenticationresults)
|
("perl-mail-authenticationresults" ,perl-mail-authenticationresults)
|
||||||
("perl-mail-dkim" ,perl-mail-dkim)
|
("perl-mail-dkim" ,perl-mail-dkim)
|
||||||
("perl-net-dns" ,perl-net-dns)
|
("perl-net-dns" ,perl-net-dns)
|
||||||
("perl-net-server" ,perl-net-server)))
|
("perl-net-server" ,perl-net-server)
|
||||||
|
("perl-socket6" ,perl-socket6)))
|
||||||
(home-page "http://dkimproxy.sourceforge.net/")
|
(home-page "http://dkimproxy.sourceforge.net/")
|
||||||
(synopsis "SMTP-proxy for DKIM signing and verifying")
|
(synopsis "SMTP-proxy for DKIM signing and verifying")
|
||||||
(description "DKIMproxy is an SMTP-proxy that signs and/or verifies emails,
|
(description "DKIMproxy is an SMTP-proxy that signs and/or verifies emails,
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
From: Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
|
Date: Fri, 01 Mar 2019 20:51:32 +0100
|
||||||
|
Subject: [PATCH] dkimproxy: Add IPv6 support.
|
||||||
|
|
||||||
|
The following patch was copied verbatim from Debian[0].
|
||||||
|
|
||||||
|
[0]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=656041
|
||||||
|
|
||||||
|
---
|
||||||
|
--- dkimproxy-1.4.1.orig/lib/MSDW/SMTP/Server.pm
|
||||||
|
+++ dkimproxy-1.4.1/lib/MSDW/SMTP/Server.pm
|
||||||
|
@@ -11,7 +11,7 @@
|
||||||
|
# Written by Bennett Todd <bet@rahul.net>
|
||||||
|
|
||||||
|
package MSDW::SMTP::Server;
|
||||||
|
-use IO::Socket;
|
||||||
|
+use IO::Socket::INET6;
|
||||||
|
use IO::File;
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
@@ -88,14 +88,14 @@
|
||||||
|
=item new(interface => $interface, port => $port);
|
||||||
|
|
||||||
|
The interface and port to listen on must be specified. The interface
|
||||||
|
-must be a valid numeric IP address (0.0.0.0 to listen on all
|
||||||
|
-interfaces, as usual); the port must be numeric. If this call
|
||||||
|
-succeeds, it returns a server structure with an open
|
||||||
|
-IO::Socket::INET in it, ready to listen on. If it fails it dies, so
|
||||||
|
-if you want anything other than an exit with an explanatory error
|
||||||
|
-message, wrap the constructor call in an eval block and pull the
|
||||||
|
-error out of $@ as usual. This is also the case for all other
|
||||||
|
-methods; they succeed or they die.
|
||||||
|
+must be a valid numeric IPv4 or IPv6 address (0.0.0.0 or :: to listen
|
||||||
|
+on all interfaces, as usual); the port must be numeric. If this call
|
||||||
|
+succeeds, it returns a server structure with an open IO::Socket::INET6
|
||||||
|
+in it, ready to listen on. If it fails it dies, so if you want
|
||||||
|
+anything other than an exit with an explanatory error message, wrap
|
||||||
|
+the constructor call in an eval block and pull the error out of $@ as
|
||||||
|
+usual. This is also the case for all other methods; they succeed or
|
||||||
|
+they die.
|
||||||
|
|
||||||
|
=item accept([debug => FD]);
|
||||||
|
|
||||||
|
@@ -154,7 +154,7 @@
|
||||||
|
my ($this, @opts) = @_;
|
||||||
|
my $class = ref($this) || $this;
|
||||||
|
my $self = bless { @opts }, $class;
|
||||||
|
- $self->{sock} = IO::Socket::INET->new(
|
||||||
|
+ $self->{sock} = IO::Socket::INET6->new(
|
||||||
|
LocalAddr => $self->{interface},
|
||||||
|
LocalPort => $self->{port},
|
||||||
|
Proto => 'tcp',
|
||||||
|
only in patch2:
|
||||||
|
unchanged:
|
||||||
|
--- dkimproxy-1.4.1.orig/scripts/dkimproxy.out
|
||||||
|
+++ dkimproxy-1.4.1/scripts/dkimproxy.out
|
||||||
|
@@ -314,17 +314,11 @@
|
||||||
|
{
|
||||||
|
my $self = shift;
|
||||||
|
|
||||||
|
- # try to determine peer's address
|
||||||
|
- use Socket;
|
||||||
|
- my $peersockaddr = getpeername(STDOUT);
|
||||||
|
- my ($port, $iaddr) = sockaddr_in($peersockaddr);
|
||||||
|
- $ENV{REMOTE_ADDR} = inet_ntoa($iaddr);
|
||||||
|
-
|
||||||
|
# initialize syslog
|
||||||
|
eval
|
||||||
|
{
|
||||||
|
openlog("dkimproxy.out", "perror,pid,ndelay", "mail");
|
||||||
|
- syslog("debug", '%s', "connect from $ENV{REMOTE_ADDR}");
|
||||||
|
+ syslog("debug", '%s', "connect from $self->{server}->{peeraddr}");
|
||||||
|
};
|
||||||
|
if (my $E = $@)
|
||||||
|
{
|
Loading…
Reference in New Issue