[socat] * Wed Sep 21 2011 Paul Wouters <paul at xelerance.com> - 1.7.1.3-3 - support TUN endpoint without IP ad
Paul Wouters
pwouters at fedoraproject.org
Wed Sep 21 18:28:37 UTC 2011
commit 47404fc91479f3c825b3c210f2b9f2190a891fa7
Author: Paul Wouters <paul at xelerance.com>
Date: Wed Sep 21 14:28:11 2011 -0400
* Wed Sep 21 2011 Paul Wouters <paul at xelerance.com> - 1.7.1.3-3
- support TUN endpoint without IP address (rhbz#706226) [Till Maas]
socat-1.7.1.3-support-ipless-tuntap.patch | 69 +++++++++++++++++++++++++++++
socat.spec | 7 +++-
2 files changed, 75 insertions(+), 1 deletions(-)
---
diff --git a/socat-1.7.1.3-support-ipless-tuntap.patch b/socat-1.7.1.3-support-ipless-tuntap.patch
new file mode 100644
index 0000000..e46a3fe
--- /dev/null
+++ b/socat-1.7.1.3-support-ipless-tuntap.patch
@@ -0,0 +1,69 @@
+diff -up socat-1.7.1.3/xio-tun.c.orig socat-1.7.1.3/xio-tun.c
+--- socat-1.7.1.3/xio-tun.c.orig 2011-05-19 20:25:38.654799000 +0200
++++ socat-1.7.1.3/xio-tun.c 2011-05-19 20:37:48.675627004 +0200
+@@ -78,8 +78,8 @@ static int xioopen_tun(int argc, const c
+ char *ifaddr;
+ int result;
+
+- if (argc != 2) {
+- Error2("%s: wrong number of parameters (%d instead of 1)",
++ if (argc > 2 || argc < 0) {
++ Error2("%s: wrong number of parameters (%d instead of 0 or 1)",
+ argv[0], argc-1);
+ }
+
+@@ -146,30 +146,31 @@ static int xioopen_tun(int argc, const c
+ }
+
+ /*--------------------- setting interface address and netmask ------------*/
+- if ((ifaddr = strdup(argv[1])) == NULL) {
+- Error1("strdup(\"%s\"): out of memory", argv[1]);
+- return STAT_RETRYLATER;
++ if (argc == 2) {
++ if ((ifaddr = strdup(argv[1])) == NULL) {
++ Error1("strdup(\"%s\"): out of memory", argv[1]);
++ return STAT_RETRYLATER;
++ }
++ if ((result = xioparsenetwork(ifaddr, pf, &network)) != STAT_OK) {
++ /*! recover */
++ return result;
++ }
++ socket_init(pf, (union sockaddr_union *)&ifr.ifr_addr);
++ ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr =
++ network.netaddr.ip4.sin_addr;
++ if (Ioctl(sockfd, SIOCSIFADDR, &ifr) < 0) {
++ Error4("ioctl(%d, SIOCSIFADDR, {\"%s\", \"%s\"}: %s",
++ sockfd, ifr.ifr_name, ifaddr, strerror(errno));
++ }
++ ((struct sockaddr_in *)&ifr.ifr_netmask)->sin_addr =
++ network.netmask.ip4.sin_addr;
++ if (Ioctl(sockfd, SIOCSIFNETMASK, &ifr) < 0) {
++ Error4("ioctl(%d, SIOCSIFNETMASK, {\"0x%08u\", \"%s\"}, %s",
++ sockfd, ((struct sockaddr_in *)&ifr.ifr_netmask)->sin_addr.s_addr,
++ ifaddr, strerror(errno));
++ }
++ free(ifaddr);
+ }
+- if ((result = xioparsenetwork(ifaddr, pf, &network)) != STAT_OK) {
+- /*! recover */
+- return result;
+- }
+- socket_init(pf, (union sockaddr_union *)&ifr.ifr_addr);
+- ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr =
+- network.netaddr.ip4.sin_addr;
+- if (Ioctl(sockfd, SIOCSIFADDR, &ifr) < 0) {
+- Error4("ioctl(%d, SIOCSIFADDR, {\"%s\", \"%s\"}: %s",
+- sockfd, ifr.ifr_name, ifaddr, strerror(errno));
+- }
+- ((struct sockaddr_in *)&ifr.ifr_netmask)->sin_addr =
+- network.netmask.ip4.sin_addr;
+- if (Ioctl(sockfd, SIOCSIFNETMASK, &ifr) < 0) {
+- Error4("ioctl(%d, SIOCSIFNETMASK, {\"0x%08u\", \"%s\"}, %s",
+- sockfd, ((struct sockaddr_in *)&ifr.ifr_netmask)->sin_addr.s_addr,
+- ifaddr, strerror(errno));
+- }
+- free(ifaddr);
+-
+ /*--------------------- setting interface flags --------------------------*/
+ applyopts_single(&xfd->stream, opts, PH_FD);
+
diff --git a/socat.spec b/socat.spec
index 1b65472..454fda7 100644
--- a/socat.spec
+++ b/socat.spec
@@ -1,10 +1,11 @@
Summary: Bidirectional data relay between two data channels ('netcat++')
Name: socat
Version: 1.7.1.3
-Release: 2%{?dist}
+Release: 3%{?dist}
License: GPLv2
Url: http://www.dest-unreach.org/%{name}
Source: http://www.dest-unreach.org/socat/download/%{name}-%{version}.tar.gz
+Patch1: socat-1.7.1.3-support-ipless-tuntap.patch
Group: Applications/Internet
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: openssl-devel compat-readline5-devel ncurses-devel
@@ -23,6 +24,7 @@ The compat-readline5 library is used to avoid GPLv2 vs GPLv3 issues.
%setup -q
iconv -f iso8859-1 -t utf-8 CHANGES > CHANGES.utf8
mv CHANGES.utf8 CHANGES
+%patch1 -p1
%build
autoconf
@@ -62,6 +64,9 @@ rm -rf %{buildroot}
%doc %{_mandir}/man1/socat.1*
%changelog
+* Wed Sep 21 2011 Paul Wouters <paul at xelerance.com> - 1.7.1.3-3
+- support TUN endpoint without IP address (rhbz#706226) [Till Maas]
+
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.7.1.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
More information about the scm-commits
mailing list