Guus Sliepen
ab4d289faf
Make pid files backwards compatible and add address of listening socket.
...
The pid is now written first, so that a version 1.0.x tincd can be used to stop
a running version 1.1 tincd. Getsockname() is used to determine the address of
the first listening socket, so that tincctl can connect to the local tincd even
if AddressFamily = ipv6, or if BindToAddress or BindToInterface is used.
2011-06-25 21:35:27 +02:00
Guus Sliepen
a05fa7f882
Rename controlcookie file to pidfile.
2011-06-25 21:21:36 +02:00
Guus Sliepen
c64f64b875
Don't call exit_control() if we didn't do init_control().
2011-06-25 21:16:13 +02:00
Guus Sliepen
3b237afbda
Re-add support for SIGALRM.
2011-06-25 20:20:07 +02:00
Guus Sliepen
8733110dec
Ensure the right files end up in the tarball after make dist.
2011-06-25 17:08:40 +02:00
Guus Sliepen
7944cce19e
Don't use AM_CONDITIONAL for CURSES.
...
For some reason, this doesn't work when cross-compiling for Windows.
2011-06-25 00:06:06 +02:00
Guus Sliepen
365f60f3f8
Don't call event_del() from the mtuevent handler, always send_mtu_probe() in ans_key_h().
2011-06-24 22:49:18 +02:00
Guus Sliepen
1fe8ba2f06
Delete mtuevent if it is not used.
...
Keeping it around prevents ans_key_h() from restarting PMTU discovery.
2011-06-24 22:10:03 +02:00
Guus Sliepen
79e9a4f743
Merge branch 'master' of git://tinc-vpn.org/tinc into 1.1
...
Conflicts:
NEWS
README
configure.in
src/Makefile.am
2011-06-24 21:40:55 +02:00
Guus Sliepen
3c0511984f
Remove redundant @CFLAGS@ from AM_CFLAGS.
2011-06-24 12:27:04 +02:00
Guus Sliepen
532557beea
Only log UDP address changes at the appropriate debug levels.
2011-06-21 23:06:53 +02:00
Guus Sliepen
60ed7fe598
Reopen log file after SIGHUP.
...
This was missed by the previous merge.
2011-06-06 21:19:30 +02:00
Guus Sliepen
33f241d978
Merge branch 'master' of git://tinc-vpn.org/tinc into 1.1
...
Conflicts:
NEWS
configure.in
doc/tincd.8.in
lib/pidfile.c
lib/pidfile.h
lib/xalloc.h
lib/xmalloc.c
src/conf.c
src/conf.h
src/connection.c
src/connection.h
src/event.c
src/graph.c
src/graph.h
src/net.c
src/net.h
src/node.h
src/openssl/crypto.c
src/process.c
src/protocol.c
src/protocol_key.c
src/route.c
2011-06-06 20:42:15 +02:00
Guus Sliepen
601f3b2dd7
Clean up digests when freeing a connection_t.
2011-06-06 20:12:33 +02:00
Guus Sliepen
4b3fd94b1c
Improved --logfile option.
...
Instead of UNIX time, the log messages now start with the time in RFC3339
format, which human-readable and still easy for the computer to parse and sort.
The HUP signal will also cause the log file to be closed and reopened, which is
useful when log rotation is used. If there is an error while opening the log
file, this is logged to stderr.
2011-06-06 16:26:11 +02:00
Guus Sliepen
b3bbeab6e6
Attribution for Loïc Grenié.
2011-06-04 11:27:54 +02:00
Loïc Grenié
50af33d01f
Nearly tickless tinc.
...
Use pselect instead of select in main_loop (if available). This lets
tincd sleeps as long as there is nothing to do.
2011-06-04 11:19:46 +02:00
Guus Sliepen
8b3cc695b5
Don't ignore SIGCHLD, system() needs it.
...
But we do ignore SIGPIPE, and tinc 1.0.x signals that are no longer used
(SIGUSR1 and SIGUSR2), since the default handler of these signals is to
terminate tincd immediately.
2011-06-03 15:50:20 +02:00
Guus Sliepen
5989a29d7b
Fix format strings for Windows.
...
Windows doesn't like %zd, so cast (s)size_t to int. Also, some shorts were
incorrectly printed with %d instead of %hd.
2011-06-03 00:46:56 +02:00
Guus Sliepen
3ade33bfac
Use send() when writing to sockets, and the return type is ssize_t.
2011-06-03 00:34:30 +02:00
Guus Sliepen
5f4d57e846
Small fixes for Windows.
2011-06-02 23:40:27 +02:00
Guus Sliepen
2adc789401
Even simpler signal handling.
2011-06-02 22:14:53 +02:00
Guus Sliepen
2f42896789
Remove debugging message that was accidentily left in.
2011-06-02 21:29:11 +02:00
Guus Sliepen
c6b0e102ad
Don't treat packets coming in via TCP as having zero length.
2011-06-02 21:16:57 +02:00
Guus Sliepen
80ca91769d
Fix nodes joining the VPN after tincctl top started.
2011-06-02 21:14:50 +02:00
Guus Sliepen
311f60f4f0
Make traffic statistics more readable with configurable scaling.
2011-06-02 20:48:18 +02:00
Guus Sliepen
a8f0d21330
More stable sorting in tincctl top.
...
Although we use qsort(), which is not guaranteed to be stable, resorting the
previously sorted array is more stable than recreating and resorting the array
each time.
2011-06-02 20:27:16 +02:00
Guus Sliepen
2bda2aa885
Fix some compiler and cppcheck warnings.
2011-06-02 18:22:26 +02:00
Guus Sliepen
809dfd2f5b
Remove support for the Ethertap device.
2011-06-02 18:07:50 +02:00
Guus Sliepen
af2e0c9a32
Remove unused functions and variables.
2011-06-02 17:57:53 +02:00
Guus Sliepen
b7754e5aaa
Drop the GNU memcmp.c implementation.
2011-06-02 17:53:35 +02:00
Guus Sliepen
25b467638a
Drop the GNU malloc.c, realloc.c, and xmalloc.c.
...
We live in the 21st century, and we require C99 semantics, so we do not need to
work around buggy libcs. The xmalloc() and related functions are now static
inline functions.
2011-06-02 17:45:06 +02:00
Guus Sliepen
e452a933f9
Simplify signal handling.
...
We don't override any signal handlers anymore except those for SIGPIPE and
SIGCHLD. Fatal signals (SIGSEGV, SIGBUS etc.) will terminate tincd and
optionally dump core. The previous behaviour was to terminate gracefully and
try to restart, but that usually failed and made any core dump useless.
2011-06-02 17:14:30 +02:00
Guus Sliepen
4d440336c3
Remove outgoing event in free_connection().
2011-05-29 22:34:19 +02:00
Guus Sliepen
d29bfc9a45
Initialise priority field to zero for packets read from the VPN interface.
2011-05-29 22:14:35 +02:00
Guus Sliepen
4c403840ff
Cosmetic fix when pressing 's' in tincctl top.
2011-05-29 22:12:37 +02:00
Guus Sliepen
b3aeaf0f91
Show hostname and port in error message when connecting to a running tincd.
2011-05-29 22:10:54 +02:00
Sven-Haegar Koch
04de15984f
do_outgoing_connection() may delete a failed connection, and the structure
...
must not be accessed afterwards.
2011-05-29 22:05:14 +02:00
Sven-Haegar Koch
82109868b5
src/net_socket.c bind_to_address(): Use after free in error path.
2011-05-29 22:05:04 +02:00
Guus Sliepen
5bc957074a
Allow tincctl to connect to something besides localhost.
...
This would allow tincctl to connect to a remote tincd, or to a local tincd that
isn't listening on localhost, for example if it is using the BindToInterface or
BindToAddress options.
2011-05-29 14:41:05 +02:00
Guus Sliepen
64771f73eb
Remove a few unnecessary #includes.
...
Some spotted by Michael Tokarev.
2011-05-28 23:46:56 +02:00
Guus Sliepen
5cff8c47c1
Remove newlines from log messages.
2011-05-28 23:42:18 +02:00
Guus Sliepen
6d08eb1614
Fix sparse warnings and add an extra sprinkling of const.
...
This is more or less the equivalent of Sven-Haegar Koch's fixes in the 1.1
branch.
2011-05-28 23:36:52 +02:00
Sven-Haegar Koch
e6b21e1a51
fgets() returns NULL on error, not < 0
2011-05-28 15:24:39 +02:00
Sven-Haegar Koch
434e57ae5e
sparse fixup: warning: Using plain integer as NULL pointer
2011-05-28 15:24:39 +02:00
Sven-Haegar Koch
f4010694b3
sparse fixup: warning: non-ANSI function declaration of function '...'
2011-05-28 15:24:39 +02:00
Sven-Haegar Koch
d772289f6d
sparse fixup: warning: symbol '...' was not declared. Should it be static?
2011-05-28 15:24:39 +02:00
Sven-Haegar Koch
02e32cf61e
sparse fixup: error: too many arguments for function send_key_changed
2011-05-28 15:24:39 +02:00
Sven-Haegar Koch
b995243ac3
sparse fixup: error: dubious one-bit signed bitfield
2011-05-28 15:24:39 +02:00
Sven-Haegar Koch
bbd0025ae3
Use same definition for xalloc_fail_func as is really used.
2011-05-28 15:24:39 +02:00
Sven-Haegar Koch
3fca2cad48
Removed two newlines from the end of log messages which created empty lines.
2011-05-28 15:24:39 +02:00
Sven-Haegar Koch
9cce44dfe3
Fixed error logging on "Input buffer full" condition.
2011-05-28 15:24:38 +02:00
Guus Sliepen
07ffb1a198
Make return value of SetPriorityClass() behave the same as setpriority().
2011-05-22 15:56:04 +02:00
Guus Sliepen
453c44e7b2
Add the ability to dump all traffic going through route() over a control connection.
...
One can get the packet stream in pcap format, which can be decoded using
tcpdump, for example:
tincctl -n <netname> pcap | tcpdump -r -
2011-05-22 14:17:30 +02:00
Guus Sliepen
54c900e961
Reset tcplen after use.
2011-05-22 14:02:27 +02:00
Guus Sliepen
8ddcad5fa1
Check if an event is initialized before calling event_del().
...
Libevent prints a warning to stderr if we do that.
2011-05-22 13:24:01 +02:00
Guus Sliepen
931e30f91a
Always compact the buffer if it has reached MAXBUFSIZE.
2011-05-22 13:24:01 +02:00
Guus Sliepen
90c7fafe59
Compact input buffer before trying to read instead of after.
...
Also log an error when the input buffer contains more than MAXBUFSIZE bytes
already, instead of silently claiming the other side closed the connection.
2011-05-22 13:20:44 +02:00
Guus Sliepen
8de8f1d9e2
Fix some compiler warnings.
2011-05-17 10:58:22 +02:00
Guus Sliepen
f536504a7d
Add top.h.
2011-05-16 09:48:19 +02:00
Guus Sliepen
e272fab858
Add tincctl.h.
2011-05-16 09:46:54 +02:00
Guus Sliepen
6d97cb1e22
Nicer top command.
...
- Configurable refresh interval.
- Switch between cumulative count or current rate.
- Configurable sorting.
2011-05-15 16:30:13 +02:00
Guus Sliepen
4574b04f79
Allow inserting items in the middle of a list.
2011-05-15 16:29:54 +02:00
Guus Sliepen
97355690b9
Add a very primitive "top" command to tincctl.
2011-05-15 13:16:48 +02:00
Guus Sliepen
362d8a6358
Dump traffic statistics over control sockets.
2011-05-15 11:59:13 +02:00
Guus Sliepen
f5843e7d64
Add per-node traffic counters.
2011-05-15 00:42:29 +02:00
Guus Sliepen
ffa3a443b9
Several fixes for the buffer code.
2011-05-14 22:30:23 +02:00
Guus Sliepen
cdb793f687
Remove use of bufferevent and eventbuffers, use our own buffering instead.
2011-05-14 19:20:56 +02:00
Guus Sliepen
f431fcb35f
Add simple buffer management code.
...
Libevent 2.0's buffer code is not completely backward compatible with 1.4's.
In order to not (mis)use it anymore, we implement it ourselves. The buffers
are automatically expanding when necessary. When consuming data from the
buffer, no memmove()s are performed. Only when adding to the buffer would
write past the end do we shift everything back to the start.
2011-05-14 19:15:04 +02:00
Guus Sliepen
3794e551c7
Fix check for event initialization due to the merge.
2011-05-14 11:52:35 +02:00
Guus Sliepen
ce8775000a
Merge branch 'master' of git://tinc-vpn.org/tinc into 1.1
...
Conflicts:
NEWS
README
configure.in
doc/tincd.8.in
lib/pidfile.c
src/bsd/device.c
src/dropin.h
src/net.c
src/net_packet.c
src/node.c
src/process.c
src/tincd.c
2011-05-09 21:35:14 +02:00
Guus Sliepen
5686ad80b5
Releasing 1.0.14.
2011-05-08 23:17:46 +02:00
Guus Sliepen
67766d65f0
Update THANKS and copyright information.
2011-05-08 21:22:20 +02:00
Guus Sliepen
257cb6ac60
Always use the default signal handler for ABRT signals.
...
This will allow coredumps to be generated when tinc is daemonized.
Also add the -kABRT option.
2011-05-08 12:40:44 +02:00
Guus Sliepen
eacb5a28fb
Increase threshold for detecting two nodes with the same Name.
...
In commit 4a21aabada
, code was added to detect
contradicting ADD_EDGE and DEL_EDGE messages being sent, which is an indication
of two nodes with the same Name connected to the same VPN. However, these
contradictory messages can also happen when there is a network partitioning. In
the former case a loop happens which causes many contradictory message, while
in the latter case only a few of those messages will be sent. So, now we
increase the threshold to at least 10 of both ADD_EDGE and DEL_EDGE messages.
2011-05-08 12:16:26 +02:00
Julien Muchembled
f11c6101f3
Fix command-line '-o' option for host configuration
...
This fixes a regression introduced by commit 667b1ba
while refactoring option
parsing code.
2011-04-28 14:30:32 +02:00
Guus Sliepen
0aa86d4b8b
Do not set indirect flag on edges from nodes with multiple addresses.
...
Since tinc now handles UDP packets with a different source address and port
than used for TCP connections, the heuristic to treat edges as indirect when
tinc could detect that multiple addresses were used does not make sense
anymore, and can actually reduce performance.
2011-03-09 09:34:56 +01:00
Guus Sliepen
7cf68b5e35
Prevent anything from updating our own UDP address.
...
Because we don't want to keep track of that, and this will cause the node
structure from being relinked into the node tree, which results in myself
pointing to an invalid address.
2011-02-18 23:11:43 +01:00
Guus Sliepen
cdbbbfabea
Fix spurious misidentification of incoming UDP packets.
...
When a UDP packet was received with an unknown source address/port, and if it
failed a HMAC check against known keys, it could still incorrectly assign that
UDP address to another node. This would temporarily cause outgoing UDP packets
to go to the wrong destination address, until packets from the correct address
were received again.
2011-02-18 23:02:11 +01:00
Rumko
046d83bf91
DragonFlyBSD support
...
* added DragonFly BSD support
* added a check for sys/resource.h (needed on DragonFly)
2011-02-12 18:22:14 +01:00
Guus Sliepen
f017c7f98f
Add support for VDE through libvdeplug.
...
When compiled with vde/device.c, tinc will connect to a vde_switch instance
instead of using a tun/tap device.
2011-02-07 18:34:55 +01:00
Guus Sliepen
6c05bf082b
Remove unused variables.
2011-01-02 16:59:42 +01:00
Guus Sliepen
6a51d89cf7
Replace bogus #else with #endif.
...
Found by cppcheck, which complained about lenin not being initialized, but the
real problem is that reading packets would fail when using code compiled with
--tunemu on a normal tun device.
2011-01-02 16:55:42 +01:00
Guus Sliepen
3ce5e292da
Close all filedescriptors in Solaris close_device().
2011-01-02 16:50:24 +01:00
Guus Sliepen
f99661a4ca
Always send MTU probes at least once every PingInterval.
...
Before, if MTU probes failed, tinc would stop sending probes until the next
time keys were regenerated (by default, once every hour). Now it continues to
send them every PingInterval, so it recovers faster from temporary failures.
2011-01-02 15:02:23 +01:00
Guus Sliepen
cac0a5c651
Use setpriority() instead of nice() on UNIX-like systems.
...
The return value of nice() can not reliably indicate errors. The return value
of the setpriority() call is well-defined.
2010-11-20 14:31:11 +00:00
Guus Sliepen
3f59a26d80
Do not try to dereference myself->connection->config_tree.
...
This was a bug introduced due to an incomplete merge (commit
ff71f28902
).
2010-11-19 12:26:20 +00:00
Guus Sliepen
886a6f61a1
Merge branch 'master' into 1.1
...
Conflicts:
src/net_packet.c
src/openssl/rsagen.h
src/protocol_auth.c
src/protocol_key.c
2010-11-19 12:22:48 +00:00
Guus Sliepen
d91903ef3c
Attribution for Brandon Black.
2010-11-16 17:28:41 +01:00
Guus Sliepen
e764ff7be9
Fix variable length array declaration.
2010-11-16 16:45:36 +01:00
Guus Sliepen
5eb0440110
Free replay window when freeing a node_t.
2010-11-13 21:36:51 +01:00
Guus Sliepen
a9445e38f2
Fix warning message when setting SO_RCVBUF or SO_SNDBUF fails.
2010-11-13 21:34:59 +01:00
Brandon L Black
0d61d4ae13
Improved handling of queue-jumping packets on receive
2010-11-13 21:25:48 +01:00
Brandon L Black
23acc19bc0
Configurable ReplayWindow size, zero disables
2010-11-13 21:25:46 +01:00
Brandon L Black
8dfe1b374e
Configurable SO_RCVBUF/SO_SNDBUF for the UDP socket
2010-11-13 21:25:44 +01:00
Brandon L Black
3f410e2f8f
Experimental IFF_ONE_QUEUE support for Linux
2010-11-13 21:25:41 +01:00
Guus Sliepen
9e3ca39773
Use variable length arrays instead of alloca().
2010-11-13 15:55:38 +01:00
Guus Sliepen
23dddc2593
Link tincctl with dropin.o.
2010-11-13 15:46:19 +01:00
Guus Sliepen
a22041922f
Merge branch 'master' into 1.1
...
Conflicts:
doc/tincd.8.in
lib/pidfile.c
src/graph.c
src/net.c
src/net.h
src/net_packet.c
src/net_setup.c
src/net_socket.c
src/netutl.c
src/node.c
src/node.h
src/protocol_auth.c
src/protocol_key.c
src/tincd.c
2010-11-12 16:15:29 +01:00
Guus Sliepen
930bf74fbe
Don't use strlen() on a NULL pointer.
...
A bug introduced in commit 667b1bac77
caused tinc
to crash on startup.
2010-11-12 11:38:05 +01:00