Commit graph

618 commits

Author SHA1 Message Date
Guus Sliepen
5eca9520d9 Small fixes so tinc compiles out of the box on SunOS 5.8 2002-09-15 14:55:54 +00:00
Guus Sliepen
8d472a415e port_t isn't used anymore and conflicts with MacOS/X headers. 2002-09-15 12:26:24 +00:00
Guus Sliepen
38c80bdd46 MacOS/X needs #define _P1003_1B_VISIBLE in order to use mlockall(). 2002-09-15 12:26:04 +00:00
Guus Sliepen
3e3b4a3190 What was I thinking? 2002-09-11 22:25:58 +00:00
Guus Sliepen
eaf1208e9d Fix placement of #include "config.h" 2002-09-10 22:13:01 +00:00
Guus Sliepen
dd888ca685 Link with libintl if necessary. 2002-09-10 21:46:05 +00:00
Guus Sliepen
c01f78ed36 Clean up after indent. 2002-09-10 21:29:42 +00:00
Guus Sliepen
161f917dd0 Fix compiler warnings. 2002-09-10 09:40:25 +00:00
Guus Sliepen
3bc5543475 Let GCC check format string and arguments of send_request(). 2002-09-09 22:41:56 +00:00
Guus Sliepen
6f9f6779e6 Remove redundant spaces. 2002-09-09 22:33:31 +00:00
Guus Sliepen
f75dcef72a Switch to K&R style indentation. 2002-09-09 21:25:28 +00:00
Guus Sliepen
5fc1ed17f4 Cleanups:
- Convert cp to cp(); so that automatic indenters work.
 - Convert constructions like if(x == NULL) to if(!x).
 - Move all assignments out of conditions.
2002-09-09 19:40:12 +00:00
Guus Sliepen
5638b9830f Why don't these connection_t's get cleaned up? 2002-09-06 21:22:35 +00:00
Guus Sliepen
a8ddba42b9 Fix MST algorithm. 2002-09-06 21:02:36 +00:00
Guus Sliepen
66741978e1 Reset the *correct* seqnos. 2002-09-06 14:31:12 +00:00
Guus Sliepen
d5b61fc0cd edge_weight_compare() shouldn't rely on edge_compare(). 2002-09-06 12:19:16 +00:00
Guus Sliepen
fbf8a47879 Remove global edge_tree. 2002-09-06 10:23:52 +00:00
Guus Sliepen
641705df90 Only reset seqno's when a key is sent or received. 2002-09-06 09:48:39 +00:00
Guus Sliepen
6fdaa8e1ca Small updates. 2002-09-04 19:57:53 +00:00
Guus Sliepen
8b2b67e26c Generalized request broadcasting/forwarding. 2002-09-04 16:26:45 +00:00
Guus Sliepen
431fa10b37 Small fixes. 2002-09-04 14:17:28 +00:00
Guus Sliepen
82ebfc923d Revert to edge and graph stuff. This time, use a directed graph. 2002-09-04 13:48:52 +00:00
Guus Sliepen
973530db62 Just ignore wrong ADD_NODEs instead of replying with a DEL_NODE, in the
hope other DEL_NODEs will catch up eventually.
2002-09-04 08:48:03 +00:00
Guus Sliepen
2af0bcc8fd Don't forget to set prevhop to myself for new connections. 2002-09-04 08:36:34 +00:00
Guus Sliepen
698d6ddac6 Prevent looping DEL_NODE/ADD_NODE messages after a node disconnects. 2002-09-04 08:33:08 +00:00
Guus Sliepen
4a7c2026ae Reduce KEY_CHANGED traffic. 2002-09-04 08:02:33 +00:00
Guus Sliepen
ddb96301a3 Woops. 2002-09-03 22:49:55 +00:00
Guus Sliepen
b5bb06200e A reachable node is always more preferable to an unreachable one... 2002-09-03 22:37:49 +00:00
Guus Sliepen
d134c4542d Drop graph and edge stuff. Use new node stuff instead. 2002-09-03 20:43:26 +00:00
Guus Sliepen
2cb21f8810 Replacement for the current routing algorithm. 2002-09-02 22:40:42 +00:00
Guus Sliepen
912e7e968f Gettext 1.11.5 compatibility. 2002-08-24 12:11:40 +00:00
Guus Sliepen
18948c5784 Added support for raw sockets. This can be used instead of tun/tap devices. 2002-07-18 14:30:45 +00:00
Guus Sliepen
227ccd3a8a Allow tincd to be locked into main memory. 2002-07-16 13:12:49 +00:00
Guus Sliepen
afabbd6b90 Added stub device.c for Cygwin. 2002-07-11 12:57:06 +00:00
Guus Sliepen
8949404db0 Started port to Cygwin. 2002-07-11 12:55:58 +00:00
Guus Sliepen
c98db1b861 Clear subnets before using them. 2002-07-11 12:42:43 +00:00
Guus Sliepen
8dd09568f1 Allow identical subnets from different owners. 2002-07-10 11:32:33 +00:00
Guus Sliepen
36cbaa32f4 Allow list of environment variables to be passed to execute_script().
When executing host-up/down scripts, include the address and port of the
remote host.
2002-07-10 11:27:06 +00:00
Guus Sliepen
a1bd878e11 Fix for prefixlengths of 32 (IPv4) and 128 (IPv6) bits. 2002-06-21 17:49:48 +00:00
Guus Sliepen
627f7c22b4 s/sliepen.warande.net/sliepen.eu.org/g
s/itimmermans@bigfoot.com/ivo@o2w.nl/g
2002-06-21 10:11:37 +00:00
Guus Sliepen
940fcb6701 Reset listen_sockets after SIGHUP. 2002-06-13 16:12:40 +00:00
Guus Sliepen
de6835a9dd Include darwin/device.c in distribution. 2002-06-10 15:08:23 +00:00
Guus Sliepen
69b758879e Added Darwin (MacOS/X) tun device handling. 2002-06-10 14:33:40 +00:00
Ivo Timmermans
944df3eeee Include netbsd's device.c in make dist 2002-06-09 16:19:20 +00:00
Guus Sliepen
78e8852184 - netinet/* include files depend on netinet/in_systm.h.
- Squash bashism in configure.in.
2002-06-08 14:08:57 +00:00
Guus Sliepen
e47e51e9d1 Use inttypes.h instead of stdint.h. 2002-06-08 13:46:43 +00:00
Guus Sliepen
116ba3b3da Cleanup:
- Remove checks for specific OS's, instead check for #defines/#includes.
 - Use uint??_t where appropriate.
 - Mask handling functions use void pointers to get rid of silly casts.
2002-06-08 12:57:10 +00:00
Wessel Dankers
d333fca4d6 This should work much better. 2002-06-07 11:14:05 +00:00
Guus Sliepen
14e570f5ee Use correct includes on NetBSD. 2002-06-05 00:25:55 +00:00
Guus Sliepen
5886b6a10d Make it work correctly with NetBSD tun device. 2002-06-05 00:20:40 +00:00
Guus Sliepen
4856d8e1f8 Support RSA_PUBKEYs (as opposed to RSAPublicKeys) so tinc accepts
public keys generated by the OpenSSL command line tools.
2002-06-02 16:06:33 +00:00
Guus Sliepen
2be8e69ca1 Only purge once when there are no more connections. 2002-05-01 09:15:58 +00:00
Guus Sliepen
7caa253df4 Fix very stupid bug in node_del(), which might have caused corruption of
subnets.
2002-04-29 20:05:07 +00:00
Guus Sliepen
67a6d7bcc4 Informative log message if execl() failed. 2002-04-27 11:40:45 +00:00
Ivo Timmermans
e6a67fc439 Typo 2002-04-26 18:13:00 +00:00
Guus Sliepen
b6ad4ce35a Add BindToAddress variable, similar to the late BindToIP. 2002-04-23 07:49:38 +00:00
Guus Sliepen
40c2e36a96 Support for MaxOS/X. 2002-04-19 14:06:40 +00:00
Ivo Timmermans
97d492d9e2 Put #ifndef checks for HAVE_RAND_PSEUDO_BYTES in the correct places. 2002-04-18 20:09:05 +00:00
Guus Sliepen
5df8a8cb3f masklength is better known as prefixlength. 2002-04-09 11:42:48 +00:00
Guus Sliepen
ad6b120349 Fix maskcheck() and maskcmp(). 2002-04-05 09:11:38 +00:00
Guus Sliepen
d8c249008a check_rsa() is broken, I don't know why, just remove it for now. 2002-04-01 21:28:39 +00:00
Guus Sliepen
438419734e Don't check_network_activity() if select() is interrupted by a signal. 2002-04-01 21:28:05 +00:00
Guus Sliepen
0fe3dc38ed Fix format strings. 2002-03-27 16:00:38 +00:00
Guus Sliepen
420f46acb0 Remove symlink to device.c when doing a make dist. 2002-03-27 15:47:06 +00:00
Guus Sliepen
c6d2f6c620 Remove cruft. 2002-03-27 15:26:44 +00:00
Guus Sliepen
5eba1e1f6f Limit the amount of packets in a queue to 8. 2002-03-27 15:01:37 +00:00
Guus Sliepen
0e7136027c Merge do_prune() with build_fdset(). Probably fixes the invalid filedescriptor error. 2002-03-27 14:02:36 +00:00
Guus Sliepen
7d07df71f9 Fix execute_script(). 2002-03-26 12:00:38 +00:00
Guus Sliepen
2de5e0eef9 Send REQ_KEY only once until ANS_KEY has arrived. 2002-03-25 15:51:58 +00:00
Guus Sliepen
33d8747021 Set myself->status.reachable. 2002-03-25 13:54:49 +00:00
Guus Sliepen
2749b997df Configuration variables were still handled case sensitively. 2002-03-24 17:14:01 +00:00
Guus Sliepen
c73bdd6bc8 OpenBSD tun device uses address family number instead of Ethernet type. 2002-03-24 17:08:38 +00:00
Guus Sliepen
8379c14b7f Respect type field. 2002-03-24 16:50:58 +00:00
Guus Sliepen
4252ae83a4 Set $INTERFACE correctly when using ethertap while compiled with tun/tap support. 2002-03-24 16:36:56 +00:00
Guus Sliepen
d699f3079c Execute hosts/name-up when a node becomes reachable, and hosts/name-down
when it becomes unreachable.
2002-03-24 16:28:27 +00:00
Guus Sliepen
6ad5dd1a9a Don't try to execute scripts unless they exist. 2002-03-24 16:22:59 +00:00
Guus Sliepen
594d5b5d15 Reset retry timeout when receiving the first PONG, not right after receiving the ACK. 2002-03-23 20:21:10 +00:00
Guus Sliepen
cbd8133ab4 Don't run graph algorithms if no edge is deleted in terminate_connection(). 2002-03-23 20:13:56 +00:00
Guus Sliepen
6aee1ad021 free() request strings when deleting past requests from the tree. 2002-03-23 20:12:29 +00:00
Guus Sliepen
ccea26e004 send_ack() was broken. 2002-03-23 20:01:05 +00:00
Guus Sliepen
3c5655f59e Fix compiler warnings, strictly use long int and %lx for options. 2002-03-22 13:31:18 +00:00
Guus Sliepen
d6b70ed6f8 Fix add_edge_h(). 2002-03-22 12:41:54 +00:00
Guus Sliepen
52e7699273 - Added support for jumbograms.
- Remove tcpaddress from edges, it is not used at all.
- Last bits of code to prevent looping requests.
2002-03-22 11:43:48 +00:00
Guus Sliepen
9da5390666 Put a break on requests that run around in circles. 2002-03-21 23:11:53 +00:00
Guus Sliepen
f48f8f4fed Updated SSSP algorithm to automatically detect indirect links (if a node uses
different addresses for connections to other nodes).
2002-03-19 22:48:25 +00:00
Guus Sliepen
5c2d74de86 Don't use s6_addr[16|32] anymore. 2002-03-19 00:08:23 +00:00
Guus Sliepen
9d99a789c3 Cleanup. 2002-03-19 00:07:09 +00:00
Guus Sliepen
305505f5ec Remember sockaddrs of listening sockets, use appropriate one when sending
UDP packets.
2002-03-18 22:47:20 +00:00
Guus Sliepen
106fc2b769 Fix #define s6_addr32. 2002-03-18 14:39:37 +00:00
Guus Sliepen
813c369a8f #define s6_addr32, needed for FreeBSD. 2002-03-18 14:19:02 +00:00
Guus Sliepen
b2579385de Only unmap IPv6 addresses. 2002-03-17 16:08:39 +00:00
Guus Sliepen
8b84c44175 Unmap v4mapped sockaddrs. 2002-03-17 15:59:29 +00:00
Guus Sliepen
07e37f8da0 Typo. 2002-03-15 15:50:14 +00:00
Guus Sliepen
e0dee53770 Different way of detecting neighbor solicitation requests. 2002-03-15 15:40:40 +00:00
Guus Sliepen
0e93f0aa02 Oops, don't forget to actually put the checksum in the response packet. 2002-03-15 15:08:21 +00:00
Guus Sliepen
e1de9ca990 Neighbor solicitation requests now work (I think). 2002-03-15 14:41:57 +00:00
Guus Sliepen
4b3aef9e69 Revert changes to Kruskal's algo. 2002-03-12 16:30:15 +00:00
Guus Sliepen
f219f156cf Put #ifdef NEIGHBORSOL around corresponding code. 2002-03-12 14:25:04 +00:00
Guus Sliepen
ecad9e9289 Remove silly cache thingy. 2002-03-12 14:20:44 +00:00
Guus Sliepen
d6c2c4f2b7 Packet sequence number/authentication warnings only if debug_lvl >= 5. 2002-03-12 14:19:51 +00:00
Guus Sliepen
2e7db2a693 Simplified implementation of Kruskal's minimum spanning tree algorithm. 2002-03-12 13:42:23 +00:00
Guus Sliepen
d2e0ed533c New strategy: forward icmp6 neighbor solicitations to intended target. 2002-03-11 13:56:00 +00:00
Guus Sliepen
46fa10cec7 Try to reply to neighbor solicitation requests. 2002-03-11 13:14:53 +00:00
Guus Sliepen
c2713ba7a5 prune_connections() before build_fdset(). 2002-03-11 11:45:12 +00:00
Guus Sliepen
4fda4560bb Cleanups, spelling fixes, allow symbol names for signals (-k option),
don't remove pidfile if other tincd is still running.
2002-03-11 11:23:04 +00:00
Guus Sliepen
5ffeb13d65 Don't retry to make outgoing connections when exitting. 2002-03-10 16:09:15 +00:00
Guus Sliepen
024ab44d98 Fix forwarding of IPv6 packets. 2002-03-10 14:04:48 +00:00
Guus Sliepen
0c16add71c Check if BindToDevice and PriorityInheritance are supported. 2002-03-01 15:14:29 +00:00
Guus Sliepen
7d5741859e Woops. 2002-03-01 14:33:48 +00:00
Guus Sliepen
ab90fa9bd1 Document and clean up MAC address expiry. 2002-03-01 14:25:10 +00:00
Guus Sliepen
14979f835d - Global time_t now, so that we don't have to call time() too often.
- MAC addresses expire after a time configurable by MACExpire (default 600
  seconds)
2002-03-01 14:09:31 +00:00
Guus Sliepen
f93b1334e0 Create/bind TCP and UDP listening sockets in pairs. 2002-03-01 13:18:54 +00:00
Guus Sliepen
c2b738e7b5 If "PriorityInheritance = yes" is specified in tinc.conf, the value of the
TOS field of the tunneled packets will be passed on to the UDP packets tinc
sends out.
2002-03-01 12:26:56 +00:00
Guus Sliepen
80ea653e8d Fix listening sockets. 2002-03-01 12:25:58 +00:00
Guus Sliepen
7f58ed7685 Make BindToInterface work. 2002-03-01 11:18:34 +00:00
Guus Sliepen
17bc5220c3 Fix send_request() bug. 2002-02-27 22:37:55 +00:00
Guus Sliepen
50403909b6 Allow multiple listening sockets. 2002-02-26 23:26:41 +00:00
Guus Sliepen
2ac7be0d51 Tweaking IPv6 support. 2002-02-26 22:47:51 +00:00
Guus Sliepen
23fda5688e - Change SA_LEN to SALEN, former one is already defined on some platforms.
- Use SALEN everywhere appropriate.
2002-02-20 22:37:38 +00:00
Guus Sliepen
dbc5b5bb5e - Use gai_strerror() where appropriate
- Clear hints before using them with getaddrinfo()
- Use sa_len on platforms that support them
2002-02-20 22:15:32 +00:00
Guus Sliepen
28cc9a6488 Preserve inpkt->len, needed for broadcasts. 2002-02-20 19:31:15 +00:00
Guus Sliepen
c6d0158831 Protocol now also exchanges cipher/digest/maclength/compression for the
meta connection.
2002-02-20 19:25:09 +00:00
Guus Sliepen
626d5956d2 Cache results of lookup_subnet_...(). 2002-02-20 17:16:15 +00:00
Guus Sliepen
e8e69460a7 Fix maskcmp() and maskcpy(). 2002-02-20 17:15:33 +00:00
Guus Sliepen
ed50931290 Forward packets in router mode. 2002-02-20 16:04:59 +00:00
Guus Sliepen
8c91fac315 Use AF_UNSPEC for listening sockets if AddressFamily = any. 2002-02-20 16:04:39 +00:00
Guus Sliepen
76f01453df Fix segfault when receiving HUP signal. 2002-02-20 16:04:07 +00:00
Guus Sliepen
c2b9c06062 - Non-blocking connect()s.
- Socket handling revamped to use sockaddr_t.
- tinc can now tunnel over IPv6.
- Handle all addresses and subnets in network byte order.
  Only convert them when they need to be printed.
- IPv6 subnets bigger than /128 now work.
- Use %s and strerror(errno) instead of %m.
2002-02-18 16:25:19 +00:00
Guus Sliepen
2fb8a62ede Added device.c for NetBSD, actually a copy of the OpenBSD one. 2002-02-12 14:40:12 +00:00
Guus Sliepen
f64b41a73b Get rid of sys/signal.h. 2002-02-12 14:36:45 +00:00
Guus Sliepen
dd611fb4f9 Don't use sa_sigaction (which NetBSD doesn't like) at all if we don't use siginfo. 2002-02-12 14:29:00 +00:00
Guus Sliepen
d9a62c6354 Added support for packet compression, thanks to Mark Glines.
Add "Compression = <level>" to the host config files, where level can be
0 (off), or any integer between 1 (fast) and 9 (best).
2002-02-11 15:59:18 +00:00
Guus Sliepen
94b171b305 Small fix. 2002-02-11 14:20:46 +00:00
Guus Sliepen
1708997bc8 - If no PrivateKeyFile is specified, /etc/tinc/netname/rsa_key.priv is assumed.
- Check RSA key before using it.
2002-02-11 14:20:21 +00:00
Guus Sliepen
1c34ba7fb8 Sensible defaults for $INTERFACE. 2002-02-11 12:33:01 +00:00
Guus Sliepen
24cc2a9065 Last bits of the merger. 2002-02-11 10:16:18 +00:00
Guus Sliepen
5bf4b88666 Forgot to merge new files from pre5. 2002-02-11 10:05:58 +00:00
Guus Sliepen
f0aa9641e8 Merging of the entire pre5 branch. 2002-02-10 21:57:54 +00:00
Ivo Timmermans
c2752b961c Conversion to struct addrinfo is almost complete for this file. 2001-11-16 22:41:38 +00:00
Ivo Timmermans
4f47da5b87 Don't include netutl.h. 2001-11-16 22:40:26 +00:00
Ivo Timmermans
a59bbc7231 Fixed silly typo: "np" instead of "no" 2001-11-16 22:31:41 +00:00
Ivo Timmermans
bf664c054f get_config_subnet needs to be fixed. 2001-11-16 22:31:15 +00:00
Ivo Timmermans
9b2b374734 route_ipv4 and route_ipv6 replaced by route_ip. 2001-11-16 17:40:50 +00:00
Ivo Timmermans
a4938b22e7 Don't include netutl.h. 2001-11-16 17:39:59 +00:00
Ivo Timmermans
ccda709f82 lookup_node_udp changed. 2001-11-16 17:39:38 +00:00
Ivo Timmermans
836766d4c5 First part of rewriting things to use struct addrinfo. 2001-11-16 17:38:39 +00:00
Ivo Timmermans
251f87c842 (re)added port to struct node_t 2001-11-16 15:56:44 +00:00
Ivo Timmermans
6cf744e4b2 Don't include netutl.h. 2001-11-16 12:22:02 +00:00
Ivo Timmermans
a79252af43 Obsoleted. 2001-11-16 12:21:22 +00:00
Ivo Timmermans
331d9402e8 Don't compile/link netutl.c. 2001-11-16 12:16:28 +00:00