Guus Sliepen
4c85542894
Drop support for localisation.
...
Localised messages don't make much sense for a daemon, and there is only the
Dutch translation which costs time to maintain.
2009-09-25 00:54:07 +02:00
Guus Sliepen
a227843b73
Remove checkpoint tracing.
...
This feature is not necessary anymore since we have tools like valgrind today
that can catch stack overflow errors before they make a backtrace in gdb
impossible.
2009-09-25 00:33:04 +02:00
Guus Sliepen
5dde6461a3
K&R style braces.
...
This is essentially commit f02d3ed3e1
from the
1.1 branch, making it easier to merge between master and 1.1.
2009-09-25 00:14:03 +02:00
Guus Sliepen
ab7c61b06f
Update the address of the Free Software Foundation in all copyright headers.
2009-09-25 00:01:00 +02:00
Guus Sliepen
c217d214f4
Remove all occurences of $Id$.
2009-09-24 23:39:16 +02:00
Guus Sliepen
b47c17bcde
Use a mutex to allow the TAP reader to process packets faster on Windows.
...
The TAP-Win32 device is not a socket, and select() under Windows only works
with sockets. Tinc used a separate thread to read from the TAP-Win32 device,
and passed this via a local socket to the main thread which could then select()
from it. We now use a global mutex, which is only unlocked when the main thread
is waiting for select(), to allow the TAP reader thread to process packets
directly.
2009-09-15 22:59:01 +02:00
Guus Sliepen
f80bf14f28
Also do not use drand48(), it is not available on Windows.
2009-09-14 23:28:28 +02:00
Guus Sliepen
81afa26e4a
Convert bitfields to integers in a safe way.
...
This is commit eb391c52ee
redone, but without the
non-standard anonymous union.
2009-09-09 12:04:08 +02:00
Guus Sliepen
9b394bc887
Ensure tinc compiles with gcc -std=c99.
...
We use a lot of C99 features already, but also some extensions which are not in
the standard.
2009-09-08 21:45:24 +02:00
Guus Sliepen
73d77dd416
Replace asprintf() by xasprintf().
2009-09-08 18:18:36 +02:00
Guus Sliepen
3308d13e7e
Handle UDP packets from different and ports than advertised.
...
Previously, tinc used a fixed address and port for each node for UDP packet
exchange. The port was the one advertised by that node as its listening port.
However, due to NAT the port might be different. Now, tinc sends a different
session key to each node. This way, the sending node can be determined from
incoming packets by checking the MAC against all session keys. If a match is
found, the address and port for that node are updated.
2009-04-03 01:05:23 +02:00
Guus Sliepen
43fa7283ac
Use a simple Random Early Drop algorithm in send_tcppacket().
2009-03-09 14:04:31 +01:00
Guus Sliepen
78fc59e994
Update THANKS and copyright information.
2009-03-05 14:12:36 +01:00
Guus Sliepen
503c32eb0e
Use a global list to track outgoing connections.
...
Previously an outgoing_t was maintained for each outgoing connection,
but the pointer to it was either stored in a connection_t or in an event_t.
This made it very hard to keep track of and to clean up.
Now a list is created when tinc starts and reads all the ConnectTo variables,
and which is recreated when tinc receives a HUP signal.
2009-01-20 13:12:41 +01:00
Guus Sliepen
116065afe3
Change flush_events() to expire_events().
...
The former function made a totally bogus shallow copy of the event_tree, called
the handler of each event and then deleted the whole tree. This should've
caused tinc to crash when an ALARM signal was sent more than once, but for some
reason it didn't. It also behaved incorrectly when a handler added a new event.
The new function just moves the expiration time of all events to the past.
2009-01-19 22:50:05 +01:00
Guus Sliepen
67df7fb7e1
Only send packets via UDP if UDP communication is possible.
...
When no session key is known for a node, or when it is doing PMTU discovery but
no MTU probes have returned yet, packets are sent via TCP. Some logic is added
to make sure intermediate nodes continue forwarding via TCP. The per-node
packet queue is now no longer necessary and has been removed.
2009-01-03 22:33:55 +01:00
Guus Sliepen
e9576632dc
Update copyright information.
2008-12-22 20:27:52 +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
1bb5a284fe
Make sure resolved addressed for outgoing connections are freed, if there are any.
2006-11-29 16:57:46 +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
0200d3cd5d
Added graph dumping ability based on Markus Goetz's patch.
2006-11-11 14:11:16 +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
de78d79db8
Update copyright notices, remove Ivo's email address.
2006-04-26 13:52:58 +00:00
Guus Sliepen
af95368c0f
Fix signedness compiler warnings.
2006-03-19 13:06:21 +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
df3220a154
Update copyright notices.
2005-05-04 18:09:30 +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
7926a156e5
Update copyrights, links, email addresses and let Subversion update $Id$ keywords.
2004-03-21 14:21:22 +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
5a1406adef
Code beautification, start of multicast support.
2003-12-12 19:52:25 +00:00
Guus Sliepen
e3220cacb5
Replace Opaque and Strict options with a TunnelServer option.
2003-11-17 15:30:18 +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
Guus Sliepen
89c9f3ed8f
When purging nodes, only delete them if nobody references them anymore.
2003-08-22 15:04:26 +00:00
Guus Sliepen
5ac4179df6
If we're not in main_loop() and the service is stopped, exit immediately.
2003-08-17 12:05:08 +00:00
Guus Sliepen
f08fc359a0
Install tinc as a service under Windows (MinGW). Remove cleanup_and_exit(),
...
either exit() directly on errors or let main_loop() shutdown gracefully.
2003-08-02 20:50:38 +00:00
Guus Sliepen
721e4caee0
Native Windows support.
2003-07-29 22:59:01 +00:00
Guus Sliepen
714fb32d03
Fix compile errors and warnings.
2003-07-29 10:50:15 +00:00
Guus Sliepen
5cb1471351
Don't initialise a CIPHER_CTX if cipher == NULL.
2003-07-23 22:17:31 +00:00
Guus Sliepen
eefa28059a
Use bools and enums where appropriate.
2003-07-22 20:55:21 +00:00
Guus Sliepen
e449d94cae
Big header file cleanup: everything that has to do with standard system
...
libraries is moved to system.h.
2003-07-17 15:06:27 +00:00
Guus Sliepen
5db596c684
Simplify logging, update copyrights and some minor cleanups.
2003-07-12 17:41:48 +00:00
Guus Sliepen
1401faf608
Sprinkling the source with static and attributes.
2003-07-06 23:16:29 +00:00
Guus Sliepen
0b9175e998
Define logger(), cleans up source code and allows us to write log entries
...
to a separate file.
2003-07-06 22:11:37 +00:00
Guus Sliepen
81f5713ab7
- simplify configure.in
...
- drop support for OpenSSL < 0.9.7
- add some missing definitions/includes
2003-07-06 17:15:25 +00:00
Guus Sliepen
c70f52087b
- Per-node EVP_CIPHER_CTX to avoid initialisation overhead.
...
- LZO compression, thanks to Teemu Kiviniemi.
- Updated dutch translation.
2003-05-06 21:13:18 +00:00
Guus Sliepen
1ad2394b84
Make sure outgoing_t is completely freed.
2003-04-19 11:12:45 +00:00
Guus Sliepen
51a1bcf001
HUP signal now closes connections to hosts if their host config file is
...
gone or changed. The tinc.conf file is reread for changes in the ConnectTo
lines.
2003-04-03 11:43:17 +00:00
Guus Sliepen
c08858baa9
- Fix indentation in some places.
...
- Optimise select loop.
- Remove unused function setup_outgoing_socket().
- Clear EVP_CIPHER_CTX structures before using them.
2003-01-17 00:37:20 +00:00