Import Debian changes 1.0.16-1~bpo60+1

tinc (1.0.16-1~bpo60+1) squeeze-backports; urgency=low

  * Rebuild for squeeze-backports, no changes.

tinc (1.0.16-1) unstable; urgency=low

  * New upstream release.
  * Mention alarm option in /etc/init.d/tinc's usage information.
    Closes: #631761
This commit is contained in:
Michael Tokarev 2011-12-12 13:27:23 +04:00 committed by Guus Sliepen
commit 5a84bb737c
13 changed files with 85 additions and 51 deletions

View file

@ -1,3 +1,41 @@
commit 0f2aa4bd8b698608876bec141c5aef1aa619730b
Author: Guus Sliepen <guus@tinc-vpn.org>
Date: Sat Jul 23 14:12:23 2011 +0200
Releasing 1.0.16.
commit e16ead8dd9d4600664058069f0695832dfe068b2
Author: Guus Sliepen <guus@tinc-vpn.org>
Date: Sat Jul 23 14:11:44 2011 +0200
Use usleep() instead of sleep(), MinGW complained.
commit 50fcfea127c9d2fdf8894498a9fdcc6fb3bbb2ce
Author: Guus Sliepen <guus@tinc-vpn.org>
Date: Sun Jul 17 19:34:01 2011 +0200
Flush output buffer in send_tcppacket().
This is mainly important for Windows, where the select() call in the
main thread is not being woken up when the tapreader thread calls
route(), causing a delay of up to 1 second before the output buffer is
flushed. This would cause bad performance when UDP communication is not
possible.
commit be2fc8b0458b1e2ced3b5de410356d8d8639acff
Author: Guus Sliepen <guus@tinc-vpn.org>
Date: Sat Jul 16 10:47:35 2011 +0200
Make code to detect two nodes with the same Name less triggerhappy.
First of all, if there really are two nodes with the same name, much
more than 10 contradicting ADD_EDGE and DEL_EDGE messages will be sent.
Also, we forgot to reset the counters when nothing happened.
In case there is a ADD_EDGE/DEL_EDGE storm, we do not shut down, but
sleep an increasing amount of time, allowing tinc to recover gracefully
from temporary failures.
commit 05260f941c2a24eb3f09070a2550cf15e431266a
Author: Guus Sliepen <guus@tinc-vpn.org>
Date: Fri Jun 24 14:50:20 2011 +0200

7
NEWS
View file

@ -1,3 +1,10 @@
Version 1.0.16 July 23 2011
* Fixed a performance issue with TCP communication under Windows.
* Fixed code that, during network outages, would cause tinc to exit when it
thought two nodes with identical Names were on the VPN.
Version 1.0.15 June 24 2011
* Improved logging to file.

4
README
View file

@ -1,4 +1,4 @@
This is the README file for tinc version 1.0.15. Installation
This is the README file for tinc version 1.0.16. Installation
instructions may be found in the INSTALL file.
tinc is Copyright (C) 1998-2011 by:
@ -55,7 +55,7 @@ should be changed into "Device", and "Device" should be changed into
Compatibility
-------------
Version 1.0.15 is compatible with 1.0pre8, 1.0 and later, but not with older
Version 1.0.16 is compatible with 1.0pre8, 1.0 and later, but not with older
versions of tinc.

2
configure vendored
View file

@ -2731,7 +2731,7 @@ fi
# Define the identity of the package.
PACKAGE=tinc
VERSION=1.0.15
VERSION=1.0.16
cat >>confdefs.h <<_ACEOF

View file

@ -3,7 +3,7 @@ dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
AC_INIT
AC_CONFIG_SRCDIR([src/tincd.c])
AM_INIT_AUTOMAKE(tinc, 1.0.15)
AM_INIT_AUTOMAKE(tinc, 1.0.16)
AC_CONFIG_HEADERS([config.h])
AM_MAINTAINER_MODE

14
debian/changelog vendored
View file

@ -1,3 +1,17 @@
tinc (1.0.16-1~bpo60+1) squeeze-backports; urgency=low
* Rebuild for squeeze-backports, no changes.
-- Michael Tokarev <mjt@tls.msk.ru> Mon, 12 Dec 2011 13:27:23 +0400
tinc (1.0.16-1) unstable; urgency=low
* New upstream release.
* Mention alarm option in /etc/init.d/tinc's usage information.
Closes: #631761
-- Guus Sliepen <guus@debian.org> Sat, 23 Jul 2011 14:37:56 +0200
tinc (1.0.15-1) unstable; urgency=low
* New upstream release.

2
debian/tinc.init vendored
View file

@ -99,7 +99,7 @@ case "$1" in
signal_running ALRM
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|reload|restart|force-reload}"
echo "Usage: /etc/init.d/$NAME {start|stop|reload|restart|force-reload|alarm}"
exit 1
;;
esac

Binary file not shown.

View file

@ -165,7 +165,7 @@ int gettimeofday(struct timeval *tv, void *tz) {
#endif
#ifndef HAVE_USLEEP
int usleep(long usec) {
int usleep(long long usec) {
struct timeval tv = {usec / 1000000, (usec / 1000) % 1000};
select(0, NULL, NULL, NULL, &tv);
return 0;

View file

@ -42,7 +42,7 @@ extern int gettimeofday(struct timeval *, void *);
#endif
#ifndef HAVE_USLEEP
extern int usleep(long);
extern int usleep(long long);
#endif
#endif /* __DROPIN_H__ */

View file

@ -1,33 +0,0 @@
dnl Check to find the libev headers/libraries
AC_DEFUN([tinc_LIBEV],
[
AC_ARG_WITH(libev,
AS_HELP_STRING([--with-libev=DIR], [libev base directory, or:]),
[libev="$withval"
CPPFLAGS="$CPPFLAGS -I$withval/include"
LDFLAGS="$LDFLAGS -L$withval/lib"]
)
AC_ARG_WITH(libev-include,
AS_HELP_STRING([--with-libev-include=DIR], [libev headers directory]),
[libev_include="$withval"
CPPFLAGS="$CPPFLAGS -I$withval"]
)
AC_ARG_WITH(libev-lib,
AS_HELP_STRING([--with-libev-lib=DIR], [libev library directory]),
[libev_lib="$withval"
LDFLAGS="$LDFLAGS -L$withval"]
)
AC_CHECK_HEADERS(ev.h,
[],
[AC_MSG_ERROR("ev header files not found."); break]
)
AC_CHECK_LIB(ev, ev_loop,
[LIBS="$LIBS -lev"],
[AC_MSG_ERROR("libev libraries not found.")]
)
])

View file

@ -50,6 +50,7 @@ bool graph_dump = false;
time_t now = 0;
int contradicting_add_edge = 0;
int contradicting_del_edge = 0;
static int sleeptime = 10;
/* Purge edges and subnets of unreachable nodes. Use carefully. */
@ -464,19 +465,26 @@ int main_loop(void) {
keyexpires = now + keylifetime;
}
if(contradicting_del_edge > 10 && contradicting_add_edge > 10) {
logger(LOG_WARNING, "Possible node with same Name as us!");
/* Detect ADD_EDGE/DEL_EDGE storms that are caused when
* two tinc daemons with the same name are on the VPN.
* If so, sleep a while. If this happens multiple times
* in a row, sleep longer. */
if(rand() % 3 == 0) {
logger(LOG_ERR, "Shutting down, check configuration of all nodes for duplicate Names!");
running = false;
break;
if(contradicting_del_edge > 100 && contradicting_add_edge > 100) {
logger(LOG_WARNING, "Possible node with same Name as us! Sleeping %d seconds.", sleeptime);
usleep(sleeptime * 1000000LL);
sleeptime *= 2;
if(sleeptime < 0)
sleeptime = 3600;
} else {
sleeptime /= 2;
if(sleeptime < 10)
sleeptime = 10;
}
contradicting_add_edge = 0;
contradicting_del_edge = 0;
}
}
if(sigalrm) {
avl_node_t *node;

View file

@ -129,7 +129,7 @@ bool send_tcppacket(connection_t *c, const vpn_packet_t *packet) {
if(!send_request(c, "%d %hd", PACKET, packet->len))
return false;
return send_meta(c, (char *)packet->data, packet->len);
return send_meta(c, (char *)packet->data, packet->len) && flush_meta(c);
}
bool tcppacket_h(connection_t *c) {