Store the invitation data after a succesful join.
authorGuus Sliepen <guus@tinc-vpn.org>
Sun, 9 Jul 2017 14:12:55 +0000 (16:12 +0200)
committerGuus Sliepen <guus@tinc-vpn.org>
Sun, 9 Jul 2017 14:12:55 +0000 (16:12 +0200)
This can be used by the invitee to examine the file after a join, and
process it in different ways than the tinc CLI does.

doc/tinc.conf.5.in
src/invitation.c

index 22b01d2..8b67527 100644 (file)
@@ -781,6 +781,10 @@ It can be used to set up the corresponding network interface.
 If an executable file with this name exists,
 it will be executed right before the tinc daemon is going to close
 its connection to the virtual network device.
+.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.
 .El
 .Sh SEE ALSO
 .Xr tincd 8 ,
index ac410b8..b10151f 100644 (file)
@@ -607,6 +607,15 @@ make_names:
                return false;
        }
 
+       snprintf(filename, sizeof filename, "%s" SLASH "invitation-data", confbase);
+       FILE *finv = fopen(filename, "w");
+       if(!finv || fwrite(data, datalen, 1, finv) != 1) {
+               fprintf(stderr, "Could not create file %s: %s\n", filename, strerror(errno));
+               fclose(finv);
+               return false;
+       }
+       fclose(finv);
+
        snprintf(filename, sizeof filename, "%s" SLASH "tinc-up.invitation", confbase);
        FILE *fup = fopen(filename, "w");
        if(!fup) {