Guus Sliepen
29fbce4497
Detect duplicate outgoing connections.
2007-05-18 10:29:10 +00:00
Guus Sliepen
fb0cfccf7d
Use splay trees instead of AVL trees.
2007-05-18 10:05:26 +00:00
Guus Sliepen
f02d3ed3e1
K&R style braces
2007-05-18 10:00:00 +00:00
Guus Sliepen
760dd966ef
Remove last references to the global variable "running".
2007-05-18 09:51:54 +00:00
Guus Sliepen
3909b8e51b
Remove the last bits of the legacy main_loop().
2007-05-18 09:43:52 +00:00
Guus Sliepen
ddc6a81a85
Remove global variable "now".
2007-05-18 09:34:06 +00:00
Guus Sliepen
7e1117197c
Move key regeneration handling to net_setup.c.
2007-05-17 23:57:48 +00:00
Guus Sliepen
563577a147
Use libevent to handle key expiration.
2007-05-17 23:33:07 +00:00
Guus Sliepen
8852d4407d
Use libevent to age learned MAC addresses.
2007-05-17 23:24:40 +00:00
Guus Sliepen
a530f94e7c
Use libevent to age past requests.
2007-05-17 23:14:42 +00:00
Guus Sliepen
aaf1851315
Redo SIGALRM handling.
2007-05-17 23:04:02 +00:00
Guus Sliepen
6d19ebd612
Use libevent to handle all non-fatal signals.
2007-05-17 22:41:34 +00:00
Guus Sliepen
531d5a904a
Properly use the timeout_initialized() macro.
2007-05-17 22:17:24 +00:00
Guus Sliepen
bf6490825e
Remove legacy event system.
2007-05-17 22:13:12 +00:00
Guus Sliepen
a67ab277c9
Use libevent for retrying outgoing connections.
2007-05-17 22:09:55 +00:00
Guus Sliepen
3321591d93
Use libevent to send MTU probes.
2007-05-17 22:01:07 +00:00
Guus Sliepen
ee7844905f
Configure events after obtaining a socket.
2007-05-17 21:47:27 +00:00
Guus Sliepen
294ce72441
Use libevent to handle HUP signal.
2007-05-17 21:34:58 +00:00
Guus Sliepen
4d0621b1f3
Use libevent to dump graphs when necessary.
...
event_add() can be called repeatedly, the second and later calls are ignored if
the event hasn't been removed yet.
2007-05-17 21:14:30 +00:00
Guus Sliepen
0f6f54ff8a
Use a separate event structure to handle meta data writes.
...
Make meta socket events persistent.
2007-05-17 20:20:10 +00:00
Guus Sliepen
17c8033029
128 listener sockets is way too much.
2007-05-17 19:52:12 +00:00
Guus Sliepen
d8dea8091f
Properly delete listener socket events on shutdown.
2007-05-17 19:51:26 +00:00
Guus Sliepen
6ea1dfc995
Port fixes from release 1.0.8.
2007-05-17 19:15:48 +00:00
Guus Sliepen
6af8900f8e
Don't free struct addrinfo too early. Spotted by Christian Cier-Zniewski.
2007-05-16 14:46:25 +00:00
Guus Sliepen
480dd127c8
Make sure connection->name is never NULL.
2007-05-16 14:42:08 +00:00
Guus Sliepen
f0cf4991e2
Apply patch from "dnk" making sockets non-blocking under Windows.
2007-05-14 09:21:09 +00:00
Guus Sliepen
3730156165
Only free members of connection_t that have been allocated.
2007-03-12 17:55:43 +00:00
Scott Lamb
38c25d62c2
Convert to libevent.
...
This is a quick initial conversion that doesn't yet show much advantage:
- We roll our own timeouts.
- We roll our own signal handling.
- We build up the meta connection fd events on each loop rather than
on state changes.
2007-02-27 01:57:01 +00:00
Scott Lamb
834290b00f
A couple missed tevent things.
...
(Sorry; had a couple changes queued.)
2007-02-27 01:30:57 +00:00
Scott Lamb
6362b12df7
Rename "event_t" to "tevent_t", along with associated functions.
...
This relieves some confusion and problems during the libevent transition.
In particular, "event_add" was defined by both.
(The 't' stands for 'timeout', 'tinc', 'temporary', or some such.)
2007-02-27 01:26:11 +00:00
Guus Sliepen
45fca3c723
Apply patch from Scott Lamb fixing some memory and resource leaks.
2007-02-14 09:21:34 +00:00
Guus Sliepen
6c6535a416
Apply patch from Scott Lamb preventing an infinite loop when sending SIGALRM.
2007-02-14 09:20:20 +00:00
Guus Sliepen
a1e72f84d0
Update copyright notices.
2007-01-05 13:18:36 +00:00
Guus Sliepen
d80cc7a5cc
rename() cannot replace existing files on Windows.
2007-01-05 05:44:01 +00:00
Guus Sliepen
5214ece030
Fix generic BSD tun device to write only the actual packet length.
...
Due to a copy&paste bug, it tried to write a packet with the maximum size.
This was not a problem until the maximum size was increased to support VLANs.
2007-01-05 04:49:02 +00:00
Guus Sliepen
40f02ff8ee
Tapreader socket should be bound to localhost only.
2007-01-04 15:28:36 +00:00
Guus Sliepen
03f3fc01e8
Use a ringbuffer in shared memory to transfer packets from the tapreader thread to the main thread.
...
It's a wonder it ever worked before. The socket that is created is not of a
datagram type, therefore packet boundaries were not preserved, which becomes
a problem as soon as the TAP-Win32 device receives packets in fast succession.
2007-01-03 18:18:54 +00:00
Guus Sliepen
855806b2f7
Do a simple test for linux/if_tun.h instead of no test at all.
2006-12-16 16:53:58 +00:00
Guus Sliepen
0322c0883b
Remove the test for linux/if_tun.h.
...
It has been available for years on any decent Linux distribution.
Although linux/if_tun.h is now required to compile tinc,
you can still run it on systems which only support Ethertap.
2006-12-16 16:40:09 +00:00
Guus Sliepen
b834d67d7c
Use the correct next pointer.
2006-12-12 14:54:39 +00:00
Guus Sliepen
8b55dfacb1
When building the minimum spanning tree, make sure we start from a reachable node.
2006-12-12 14:49:09 +00:00
Guus Sliepen
47d916ec5e
Search for lzo/lzo1x.h, lzo2/lzo1x.h and lzo1x.h.
2006-11-29 17:18:39 +00:00
Guus Sliepen
1bb5a284fe
Make sure resolved addressed for outgoing connections are freed, if there are any.
2006-11-29 16:57:46 +00:00
Guus Sliepen
e5b1b5cefb
EWOULDBLOCK does not exist on platforms without O_NONBLOCK
2006-11-14 12:28:04 +00:00
Guus Sliepen
0714ac6c59
Nodes use events, so event system should be initialised first and destroyed last.
2006-11-11 22:44:15 +00:00
Guus Sliepen
8d393b30a9
Support and autodetect LZO version 2.0 and later.
2006-11-11 20:10:46 +00:00
Guus Sliepen
0d1ac68c59
popen() requires pclose().
2006-11-11 14:37:03 +00:00
Guus Sliepen
0200d3cd5d
Added graph dumping ability based on Markus Goetz's patch.
2006-11-11 14:11:16 +00:00
Guus Sliepen
1728d5b2c4
The "active" bit in node.status is not used.
2006-11-11 13:43:00 +00:00
Guus Sliepen
134dc8995b
memcpy() addresses from packet headers before calling the lookup functions.
...
This probably fixes a problem on the ARM architecture that causes tinc to fail to lookup IPv4 addresses.
2006-08-09 22:31:10 +00:00
Guus Sliepen
64e0519cb5
Remove unused variable.
2006-08-08 13:50:58 +00:00
Guus Sliepen
ddcf079cad
Remove unused parameter from maskcmp().
2006-08-08 13:44:37 +00:00
Guus Sliepen
c620df3c15
Remove unused variables.
2006-08-08 13:44:19 +00:00
Guus Sliepen
9fa27097dd
Fix format string warnings.
2006-08-08 13:29:17 +00:00
Guus Sliepen
eb391c52ee
Do not break strict aliasing of status_t structs.
2006-08-08 13:21:08 +00:00
Guus Sliepen
2077451e07
Add generic host-up and host-down scripts.
...
Thanks to Menno Smits for a patch.
2006-06-12 21:45:39 +00:00
Guus Sliepen
f88c9942e1
Use memcpy() to copy sockaddrs returned by getaddrinfo().
...
Thanks to Miles Nordin for spotting this.
2006-06-11 18:53:27 +00:00
Guus Sliepen
412f3fb510
Restore length of the original packet in send_udppacket().
2006-04-26 16:29:47 +00:00
Guus Sliepen
de78d79db8
Update copyright notices, remove Ivo's email address.
2006-04-26 13:52:58 +00:00
Guus Sliepen
8ebb017a10
Fix a bug in handling prefixlengths that are not a multiple of 4.
...
Thanks to Sven-Haegar Koch for spotting the bug and providing the fix.
2006-04-12 08:38:35 +00:00
Guus Sliepen
af95368c0f
Fix signedness compiler warnings.
2006-03-19 13:06:21 +00:00
Guus Sliepen
fb1cda2ca4
Export flush_meta().
2006-03-19 12:43:45 +00:00
Guus Sliepen
098090468a
Missing #include.
2006-03-19 12:43:28 +00:00
Guus Sliepen
a90f1b652c
Make sure $NAME is set correctly when executing tinc-down script.
2006-02-06 12:30:51 +00:00
Guus Sliepen
228e7a5c8f
Apply patch from Scott Lamb adding an output buffer for the TCP sockets.
...
This helps coalescing multiple send_meta() commands into one TCP packet.
Also limit the size of the output buffer before dropping PACKETs.
2006-01-19 17:13:18 +00:00
Guus Sliepen
a5a4d2b865
Apply patch from Scott Lamb unifying configuration of TCP socket options.
2006-01-13 11:21:59 +00:00
Guus Sliepen
e02f13cdb3
EVP_Cleanup() when quitting.
2006-01-13 11:09:19 +00:00
Guus Sliepen
0912260755
Enable OpenSSL ENGINE, so crypto hardware gets used. Thanks to Andreas van Cranenburgh.
2005-11-16 10:45:11 +00:00
Guus Sliepen
e810545dc2
Prevent possible buffer overflows when using very large (>= 8192 bit) RSA keys.
...
Thanks to Tonnerre Lombard for noticing!
2005-06-03 10:16:03 +00:00
Guus Sliepen
df3220a154
Update copyright notices.
2005-05-04 18:09:30 +00:00
Guus Sliepen
faaaa1ef38
Searching through splay trees may change the tree variable.
2005-05-04 15:52:55 +00:00
Guus Sliepen
dc09f6fe89
Be on the safe side with initialisation of c->name.
2005-05-04 15:51:45 +00:00
Guus Sliepen
92c4a28d7d
Remove unused (and potentially segfaulting) net2str() call.
2005-04-06 20:43:37 +00:00
Guus Sliepen
6363ed4d9c
Don't try to add a non-existing node back to the node_udp_tree.
2005-01-20 15:14:25 +00:00
Guus Sliepen
39fe3b445c
Nodes should only be in the node_udp_tree if they are reachable.
2005-01-04 22:19:56 +00:00
Guus Sliepen
fe0bfa3e65
Correct size argument for strncat().
2005-01-04 22:18:58 +00:00
Guus Sliepen
56c36a14d8
Use the proper free function.
2004-12-03 13:27:33 +00:00
Guus Sliepen
18c617ecf2
Free memory used by connection_t after it is deleted from the connection tree.
2004-12-03 13:22:18 +00:00
Guus Sliepen
672ad5634c
Small fix.
2004-12-01 21:26:51 +00:00
Guus Sliepen
40b1692940
subnet-up/down hooks, use list_t for the todo list.
2004-12-01 20:06:39 +00:00
Guus Sliepen
c46f56a8b8
subnet-up/down hooks
2004-12-01 20:06:05 +00:00
Guus Sliepen
0077cfaae1
Make sure broadcast packet reach the local network interface.
2004-11-16 19:02:54 +00:00
Guus Sliepen
d8fe2ecdd8
Set BSD tuns to broadcast mode. On OpenBSD, this enables IPv6 on the tun device!
2004-11-10 23:20:59 +00:00
Guus Sliepen
4fe7aff4d1
Add BlockingTCP option, useful when using TCPOnly on slow or congested links.
2004-11-10 21:56:31 +00:00
Guus Sliepen
5bba3124c8
Support tunneling IPv6 on Solaris.
2004-11-10 21:14:08 +00:00
Guus Sliepen
d02d81ff9d
Let compiler decide when to inline.
2004-11-10 19:36:02 +00:00
Guus Sliepen
923abcfa35
Use the generic BSD tun/tap code.
2004-11-10 18:11:44 +00:00
Guus Sliepen
e8b11b1cca
Missing check for NULL-pointer.
2004-11-10 18:10:59 +00:00
Guus Sliepen
ca7948fc06
Hopefully this really fixes late packet handling.
2004-11-09 09:51:35 +00:00
Guus Sliepen
f7b9761000
Fixed another bug in late packet handling.
2004-11-08 22:30:13 +00:00
Guus Sliepen
14eab17829
Update to make it compile again.
2004-11-08 22:11:33 +00:00
Guus Sliepen
1f00810da3
static
2004-11-01 17:02:19 +00:00
Guus Sliepen
82b29e9a3b
Generic device driver for *BSD and MacOS/X
2004-11-01 17:01:56 +00:00
Guus Sliepen
922e5b7bea
Support alternative tun/tap driver from http://www-user.rhrk.uni-kl.de/~nissler/tuntap/
2004-11-01 15:18:53 +00:00
Guus Sliepen
faff649882
Don't let tinc service depend on NDIS component.
2004-11-01 15:18:22 +00:00
Guus Sliepen
396ac4be80
Correct return value.
2004-11-01 15:16:12 +00:00
Guus Sliepen
58153cca98
Allow tinc to work with the latest TAP-Win32 driver.
2004-10-01 18:26:15 +00:00
Guus Sliepen
6411e0d8bd
strndupa() is too arcane for some environments.
2004-10-01 18:24:41 +00:00
Guus Sliepen
b0a80007e8
Fix several #includes.
2004-10-01 18:23:08 +00:00
Guus Sliepen
7717cb0c54
Remove duplicate #include "system.h"
2004-09-20 20:56:14 +00:00
Guus Sliepen
5373129344
Marking potential late packets was in the wrong place.
2004-09-20 20:55:49 +00:00
Guus Sliepen
c44f69a302
Don't set $INTERFACE automatically, don't quit on EINTR/EAGAIN.
2004-07-17 12:04:30 +00:00
Guus Sliepen
dcec713675
Added UML network socket handling.
...
Now you can use tinc instead of uml_switch.
2004-07-17 00:09:14 +00:00
Guus Sliepen
fe84fafcb6
Handle timeouts during connecting the same way as other errors.
2004-06-21 14:37:52 +00:00
Guus Sliepen
e5e0dd7534
Clean up environment after executing scripts.
2004-06-14 14:32:10 +00:00
Guus Sliepen
9e44f116bf
Increase MTU by 4 bytes to allow VLAN tagged Ethernet frames in hub and switch mode.
2004-04-15 14:09:56 +00:00
Guus Sliepen
7926a156e5
Update copyrights, links, email addresses and let Subversion update $Id$ keywords.
2004-03-21 14:21:22 +00:00
Guus Sliepen
af86a3226e
Revert Martin Kihlgren's patch, it doesn't work the way it should.
2004-03-20 22:23:42 +00:00
Guus Sliepen
8df2224829
Fix declaration of update_node_address().
2004-03-20 15:33:07 +00:00
Guus Sliepen
56aad1bb48
Applied Martin Kihlgren's IdentityGenerosity patch,
...
simplified and renamed to StrictSource.
2004-03-20 15:28:55 +00:00
Guus Sliepen
a92c471a2b
Only read our public key if it wasn't already in the private key file.
2004-03-15 18:15:02 +00:00
Guus Sliepen
a67a21ef3c
Eat trailing whitespace in config files.
2004-03-15 18:05:41 +00:00
Guus Sliepen
4350704d65
Remove CVS related cruft.
2004-03-15 17:54:19 +00:00
Guus Sliepen
519d63bedb
Don't forget to update destination MAC address.
2003-12-27 16:32:52 +00:00
Guus Sliepen
aebc97a77f
Small fixes for PMTU discovery.
2003-12-24 10:48:15 +00:00
Guus Sliepen
35399784b6
Improvements for PMTU discovery and IPv4 packet fragmentation.
2003-12-22 11:04:17 +00:00
Guus Sliepen
6d41b429a2
Better name, show probed MTU in dump.
2003-12-20 21:25:17 +00:00
Guus Sliepen
9bab08e972
More sensible name, and try to set PMTU discovery on IPv6 sockets as well.
2003-12-20 21:09:33 +00:00
Guus Sliepen
6b12bea62f
Let tinc figure out the exact MTU of the link.
2003-12-20 19:47:53 +00:00
Guus Sliepen
e8fbef5de6
Forget multicast. Always inline some function.
2003-12-13 21:50:26 +00:00
Guus Sliepen
5a1406adef
Code beautification, start of multicast support.
2003-12-12 19:52:25 +00:00
Guus Sliepen
354b7ab20e
Fix proxy-neighborsolicitation.
2003-12-08 12:00:40 +00:00
Guus Sliepen
331cef948d
Don't retry if configuration is wrong from the beginning.
2003-12-07 14:31:09 +00:00
Guus Sliepen
a3cd273751
Missing space between words.
2003-12-07 14:29:02 +00:00
Guus Sliepen
25447b3841
Read MaxTimeout from tinc.conf like the manpage says.
2003-12-07 14:28:39 +00:00
Guus Sliepen
0b5e6cf04e
Complain if pid file cannot be created.
2003-11-27 23:24:59 +00:00
Guus Sliepen
e3220cacb5
Replace Opaque and Strict options with a TunnelServer option.
2003-11-17 15:30:18 +00:00
Guus Sliepen
0e59fb022c
Add Opaque option which prevent information from being forwarded to certain nodes.
2003-11-10 22:31:53 +00:00
Guus Sliepen
d35a510fff
Fix another bug in meta.c.
2003-10-12 11:40:00 +00:00
Guus Sliepen
ffb7327c20
Fix bug that could lead to an assertion failure in libcrypto when multiple
...
requests arrive and TCP packets are heavily fragmented.
2003-10-11 14:18:52 +00:00
Guus Sliepen
258b7ce220
Parentheses in the wrong spots.
2003-10-11 12:28:48 +00:00
Guus Sliepen
a1ab57e275
Check all EVP_ function calls.
2003-10-11 12:16:13 +00:00
Guus Sliepen
b0dd705a26
Check return value of EVP_* functions, and check if length before en/decryption
...
matches that after in meta.c.
2003-10-10 16:24:24 +00:00
Guus Sliepen
9d2bf718f2
Fix ASCII art.
2003-10-10 16:23:30 +00:00
Guus Sliepen
98edfb14fc
Some platforms don't know sa_family_t or define it other than uint16_t.
2003-10-08 12:09:37 +00:00
Guus Sliepen
f2ebdf7580
Set media status for newer TAP-Win32 driver.
2003-10-08 11:37:53 +00:00
Guus Sliepen
acf5f9c968
Missing declaration.
2003-10-08 11:37:20 +00:00
Guus Sliepen
ad39db95fe
Make sure type of AF_UNKNOWN is sa_family_t.
2003-10-06 16:49:42 +00:00
Guus Sliepen
5900c07fab
PIDs are of type pid_t, and use %ld when reading/writing them to the pidfile.
2003-10-06 16:13:08 +00:00
Guus Sliepen
6350334aa4
Don't confuse users with "Address family not supported" warnings.
2003-10-06 14:41:45 +00:00
Guus Sliepen
0842998c0b
Unused variable in struct.
2003-10-06 14:33:04 +00:00
Guus Sliepen
c97b8827ed
const
2003-10-06 13:57:12 +00:00
Guus Sliepen
60943122f7
Copy structs from packets to the stack before using them, to prevent
...
alignment issues.
2003-10-06 13:49:57 +00:00
Guus Sliepen
acbb9d6692
Better length checks.
2003-10-01 09:14:01 +00:00
Guus Sliepen
eeb97e3ef4
Generate keys with 0x10001 as public exponent, which has less prime factors
...
than 0xFFFF.
2003-09-25 10:34:16 +00:00
Guus Sliepen
288d956728
Check for short packets from the tun/tap device and from other tinc daemons.
2003-09-23 20:59:01 +00:00
Guus Sliepen
cbf5a741aa
Remove pidfile when exitting.
2003-09-08 21:52:47 +00:00
Guus Sliepen
0dba26267c
Prevent multiple inclusions.
2003-09-03 16:20:33 +00:00
Guus Sliepen
6c5f3d8b74
We don't have to tell GCC how to cast.
2003-08-28 21:05:11 +00:00
Guus Sliepen
762cc2d279
Remove old edges from unreachable nodes to us. This prevents the hosts/NAME-up
...
script from being called twice in some situations.
2003-08-28 15:27:12 +00:00