After upgrading iproute2 from 2.6.16.20060323 to 2.6.18.20061002, my vpnc doesn't work anymore: # vpnc Connect Banner: | // welcome message from vpn router Error: either "to" is duplicate, or "(null)" is a garbage. VPNC started in background (pid: 4884)... So vpnc starts and also sets routes, brings tun0 up and updates /etc/resolv.conf, but I have no connection and there's this weird error message. Tested on an amd64 pc and a x86 laptop.
I can confirm this bug. I also have a temporary workaround. In /etc/vpnc/vpnc-script comment out the line IPROUTE="`which ip 2> /dev/null`" This forces vpnc not to rely on iproute2 and to fallback to the standard commands. It looks like the syntax of iproute2 changed. In my opinion the final solution would be to correct the vpnc-script.
I can confirm this bug. Another solution would be: # echo '>=sys-apps/iproute2-2.6.18' >> /etc/portage/package.mask # emerge -av sys-apps/iproute2 But you're right, the actual cause of this bug is to be found upstream. I'll write them an e-mail to notify them of the problem. But since the last release is about 1.5 years old, I doubt they will be fixing it.
It's actually a problem with the "ip route" command. It produces output where "mtu" is substituted with "(null)". The vpnc-script only works with a correct output of the ip command so the problem is not with them, but instead with the iproute2 package. In the vpnc-script try rewriting "sed 's/cache//;s/metric \?[0-9]\+ [0-9]\+//g'" under "fix_ip_get_output () {" to "sed 's/cache//;s/ (null)/mtu/;s/metric \?[0-9]\+ [0-9]\+//g'". Then connection works again (this tries to fix the output of the ip route command).
this is fixed upstream and we now use svn snaps.
Problem still occurs with vpnc-0.3.4_pre20061029 $ sudo vpnc Connect Banner: | Sie sind verbunden mit dem VPN-Server des RHRK. Getunnelt wird nur der Datenverkehr zur Universit�. Error: either "to" is duplicate, or "(null)" is a garbage. VPNC started in background (pid: 19449)...
(In reply to comment #5) > Problem still occurs with vpnc-0.3.4_pre20061029 > > $ sudo vpnc > ... > Error: either "to" is duplicate, or "(null)" is a garbage. > VPNC started in background (pid: 19449)... Same here ..
(In reply to comment #4) > this is fixed upstream and we now use svn snaps. Hanno could you please either look into what Mathias pointed out in #c3 (which works) or create a newer snapshot that fixes this behaviour ?
Should be now fixed within iproute, can you please test? I'll commit a new vpnc-snap.
So, are you happy with the latest version (0.3.4_pre20061219)? To fix bug #158271 ("stabilize sys-apps/iproute2-2.6.18.20061002") we need to stablize this version first. So feedback is appreciated.
Unfortunatelly iproute2-2.6.19.20061214, which is required for the newest vpnc, doesn't compile on my system: CONFIG_GACT_PROB -c -o m_pedit.o m_pedit.c In Datei, eingefügt von ../include/libiptc/libiptc.h:6, von ../include/iptables.h:5, von m_ipt.c:20: ../include/linux/netfilter_ipv4/ip_tables.h:20:38: Fehler: linux/netfilter/x_tables.h: Datei oder Verzeichnis nicht gefunden In file included from ../include/libiptc/libiptc.h:6, from ../include/iptables.h:5, from m_ipt.c:20: ../include/linux/netfilter_ipv4/ip_tables.h:87: Fehler: Feld »counters« hat unvollständigen Typen ../include/linux/netfilter_ipv4/ip_tables.h:115:39: Fehler: linux/netfilter/xt_tcpudp.h: Datei oder Verzeichnis nicht gefunden ../include/linux/netfilter_ipv4/ip_tables.h:144: Fehler: »XT_FUNCTION_MAXNAMELEN« ist hier nicht deklariert (nicht in einer Funktion) In file included from m_ipt.c:20: ../include/iptables.h:56: Warnung: »struct xt_entry_match« innerhalb Parameterliste deklariert ../include/iptables.h:56: Warnung: sein Gültigkeitsbereich umfasst nur diese Definition bzw. Deklaration, was Sie wahrscheinlich nicht wollten ../include/iptables.h:63: Warnung: »struct xt_entry_match« innerhalb Parameterliste deklariert ../include/iptables.h:70: Warnung: »struct xt_entry_match« innerhalb Parameterliste deklariert ../include/iptables.h:74: Warnung: »struct xt_entry_match« innerhalb Parameterliste deklariert m_ipt.c: In Funktion »build_st«: m_ipt.c:356: Fehler: Ungültige Anwendung von »sizeof« auf unvollständigen Typen »struct xt_entry_target« m_ipt.c:360: Fehler: Dereferenzierung eines Zeigers auf unvollständigen Typen m_ipt.c:364: Fehler: Dereferenzierung eines Zeigers auf unvollständigen Typen m_ipt.c:368: Fehler: Dereferenzierung eines Zeigers auf unvollständigen Typen m_ipt.c: In Funktion »parse_ipt«: m_ipt.c:499: Fehler: Dereferenzierung eines Zeigers auf unvollständigen Typen m_ipt.c: In Funktion »print_ipt«: m_ipt.c:547: Fehler: Dereferenzierung eines Zeigers auf unvollständigen Typen m_ipt.c:559: Fehler: Dereferenzierung eines Zeigers auf unvollständigen Typen x86_64-pc-linux-gnu-gcc -D_GNU_SOURCE -march=k8 -O2 -pipe -fomit-frame-pointer -Wstrict-prototypes -Wall -I../include -DRESOLVE_HOSTNAMES -DCONFIG_GACT -DCONFIG_GACT_PROB -c -o p_ip.o p_ip.c make[1]: *** [m_ipt.o] Fehler 1 make[1]: *** Warte auf noch nicht beendete Prozesse... rm emp_ematch.lex.c emp_ematch.yacc.c make[1]: Leaving directory `/var/tmp/portage/iproute2-2.6.19.20061214/work/iproute2-2.6.19-061214/tc' make: *** [all] Fehler 2 2.6.18 works. I don't know why it's complaining about the x_tables, since I have them enabled: # zgrep XTABLES /proc/config.gz CONFIG_NETFILTER_XTABLES=y Maybe another bug?
The combination of =net-misc/vpnc-0.3.4_pre20061219 and =sys-apps/iproute2-2.6.19.20061214 works fine here (PowerPC64). I vote for marking those two stable as current stable versions seem not to work.
I confirm that it works for me too here, now.