* Support PriorityInheritance for IPv6 packets.
* Fixes for Solaris tun/tap support.
* Add a configurable expiration time for invitations.
-* Store invitation data after a succesful join.
+* Store invitation data after a successful join.
* Exit gracefully when the tun/tap device is in a bad state.
* Add the LogLevel option.
* AutoConnect now actively tries to heal split networks.
* Allow tinc to be compiled without LibreSSL or OpenSSL (this drops
compatibility with nodes running 1.0.x).
* Added a "fsck" command to check the configuration files for problems.
-* Tinc "start" now checks whether the daemon really started succesfully, and
+* Tinc "start" now checks whether the daemon really started successfully, and
displays error messages otherwise.
* Added systemd service files.
* Use the recvmmsg() function if available.
* Improved default settings of tun and tap devices on BSD platforms.
* Make IPv6 sockets bind only to IPv6 on Linux.
* Enable path MTU discovery by default.
-* Fixed a memory leak that occured when connections were closed.
+* Fixed a memory leak that occurred when connections were closed.
Thanks to Max Rijevski for his contributions to this version of tinc.
from looping, because "new" information that is already known is ignored and
not forwarded any further. However, since information can also be deleted
there's the possibility of a looping sequence of add/delete messages. This is
-resolved by additionaly adding a unique identifier to each broadcasted message.
+resolved by additionally adding a unique identifier to each broadcasted message.
Messages are dropped if the same message with that identifier has already been
seen.
A data packet can only be sent if the encryption key, cipher and digest are
known to both parties, and the connection is activated. If the encryption key
is not known, a request is sent to the destination using the meta connection to
-retreive it.
+retrieve it.
0 1 2 3 4 5 6 7 ... 97 98 99 100
| seqno | data | MAC |
understands the numeric codes sent.
The authentication scheme is described in the SECURITY2 file. After a
-succesful authentication, the server and the client will exchange all the
+successful authentication, the server and the client will exchange all the
information about other tinc daemons and subnets they know of, so that both
sides (and all the other tinc daemons behind them) have their information
synchronised.
server CHAL_REPLY 928ffe
+-> 160 bits SHA1 of H1
-After the correct challenge replies are recieved, both ends have proved
+After the correct challenge replies are received, both ends have proved
their identity. Further information is exchanged.
client ACK 655 123 0
If no
.Ar filename
is given, the file is read from standard input.
-If the verification is succesful,
+If the verification is successful,
a copy of the input with the signature removed is written to standard output,
and the exit code will be zero.
If the verification failed,
.It Pa @sysconfdir@/tinc/ Ns Ar NETNAME Ns Pa /invitations/
This directory contains outstanding invitations.
.It Pa @sysconfdir@/tinc/ Ns Ar NETNAME Ns Pa /invitation-data
-After a succesful join, this file contains a copy of the invitation data received.
+After a successful join, this file contains a copy of the invitation data received.
.El
.Sh SEE ALSO
.Xr tincd 8 ,
it doesn't even have to be the same on all the nodes of your VPN,
but it is recommended that you choose one anyway.
-We will asume you use a netname throughout this document.
+We will assume you use a netname throughout this document.
This means that you call tinc with the -n argument,
which will specify the netname.
@item Hostnames = <yes|no> (no)
This option selects whether IP addresses (both real and on the VPN)
should be resolved. Since DNS lookups are blocking, it might affect
-tinc's efficiency, even stopping the daemon for a few seconds everytime
+tinc's efficiency, even stopping the daemon for a few seconds every time
it does a lookup if your DNS server is not responding.
This does not affect resolving hostnames to IP addresses from the
@cindex Subnet
@item Subnet = <@var{address}[/@var{prefixlength}[#@var{weight}]]>
The subnet which this tinc daemon will serve.
-Tinc tries to look up which other daemon it should send a packet to by searching the appropiate subnet.
+Tinc tries to look up which other daemon it should send a packet to by searching the appropriate subnet.
If the packet matches a subnet,
it will be sent to the daemon who has this subnet in his host configuration file.
Multiple subnet lines can be specified for each daemon.
or can be "." to check against the local node's public key,
or "*" to allow a signature from any node whose public key is known.
If no @var{filename} is given, the file is read from standard input.
-If the verification is succesful, a copy of the input with the signature removed is written to standard output, and the exit code will be zero.
+If the verification is successful, a copy of the input with the signature removed is written to standard output, and the exit code will be zero.
If the verification failed, nothing will be written to standard output, and the exit code will be non-zero.
@end table
it exists) right after the invitation file is written, but before the URL has
been written to stdout. This allows one to change the invitation file
automatically before the invitation URL is passed to the invitee. Here is an
-example shell script that aproximately recreates the default invitation file:
+example shell script that approximately recreates the default invitation file:
@example
#!/bin/sh
md->curlen = 0;
}
- /* pad upto 120 bytes of zeroes
+ /* pad up to 120 bytes of zeroes
* note: that from 112 to 120 is the 64 MSB of the length. We assume that you won't hash
* > 2^64 bits of data... :-)
*/
return finalize_join();
case 2:
- fprintf(stderr, "Invitation succesfully accepted.\n");
+ fprintf(stderr, "Invitation successfully accepted.\n");
shutdown(sock, SHUT_RDWR);
success = true;
break;
if(!from->status.validkey) {
from->status.validkey = true;
from->status.waitingforkey = false;
- logger(DEBUG_META, LOG_INFO, "SPTPS key exchange with %s (%s) succesful", from->name, from->hostname);
+ logger(DEBUG_META, LOG_INFO, "SPTPS key exchange with %s (%s) successful", from->name, from->hostname);
}
return true;
fprintf(f, "Ed25519PublicKey = %s\n", data);
fclose(f);
- logger(DEBUG_CONNECTIONS, LOG_INFO, "Key succesfully received from %s (%s)", c->name, c->hostname);
+ logger(DEBUG_CONNECTIONS, LOG_INFO, "Key successfully received from %s (%s)", c->name, c->hostname);
// Call invitation-accepted script
environment_t env;
c->status.invitation_used = true;
- logger(DEBUG_CONNECTIONS, LOG_INFO, "Invitation %s succesfully sent to %s (%s)", cookie, c->name, c->hostname);
+ logger(DEBUG_CONNECTIONS, LOG_INFO, "Invitation %s successfully sent to %s (%s)", cookie, c->name, c->hostname);
return true;
}
bool pong_h(connection_t *c, const char *request) {
c->status.pinged = false;
- /* Succesful connection, reset timeout if this is an outgoing connection. */
+ /* Successful connection, reset timeout if this is an outgoing connection. */
if(c->outgoing) {
c->outgoing->timeout = 0;
if(sscanf(str, "%hx:%hx:%hx:%hx:%hx:%hx%n", &x[0], &x[1], &x[2], &x[3], &x[4], &x[5], &consumed) >= 6 && !str[consumed]) {
/*
Normally we should check that each part has two digits to prevent ambiguities.
- However, in old tinc versions net2str() will agressively return MAC addresses with one-digit parts,
+ However, in old tinc versions net2str() will aggressively return MAC addresses with one-digit parts,
so we have to accept them otherwise we would be unable to parse ADD_SUBNET messages.
*/
if(prefixlength >= 0) {
#endif
// Pass all log messages from the umbilical to stderr.
- // A nul-byte right before closure means tincd started succesfully.
+ // A nul-byte right before closure means tincd started successfully.
bool failure = true;
char buf[1024];
ssize_t len;
}
}
- /* Change "add" into "set" for variables that do not allow multiple occurences.
+ /* Change "add" into "set" for variables that do not allow multiple occurrences.
Turn on warnings when it seems variables might be removed unintentionally. */
if(action == 1 && !(variables[i].type & VAR_MULTIPLE)) {