static int cmd_stop(int argc, char *argv[]) {
#ifndef HAVE_MINGW
- if(!connect_tincd())
+ if(!connect_tincd()) {
+ if(pid) {
+ if(kill(pid, SIGTERM))
+ return 1;
+ fprintf(stderr, "Sent TERM signal to process with PID %u.\n", pid);
+ return 0;
+ }
+
return 1;
+ }
sendline(fd, "%d %d", CONTROL, REQ_STOP);
if(!recvline(fd, line, sizeof line) || sscanf(line, "%d %d %d", &code, &req, &result) != 3 || code != CONTROL || req != REQ_STOP || result) {
return 1;
}
- char *hosts_dir = NULL;
- xasprintf(&hosts_dir, "%s" SLASH "hosts", confbase);
if(mkdir(hosts_dir, 0755) && errno != EEXIST) {
fprintf(stderr, "Could not create directory %s: %s\n", hosts_dir, strerror(errno));
return 1;
fclose(stdin);
if(!rsa_keygen(2048) || !ecdsa_keygen())
- return false;
+ return 1;
- return true;
+#ifndef HAVE_MINGW
+ char *filename;
+ xasprintf(&filename, "%s" SLASH "tinc-up", confbase);
+ if(access(filename, F_OK)) {
+ FILE *f = fopen(filename, "w");
+ if(!f) {
+ fprintf(stderr, "Could not create file %s: %s\n", filename, strerror(errno));
+ return 1;
+ }
+ fchmod(fileno(f), 0755);
+ fprintf(f, "#!/bin/sh\n\necho 'Unconfigured tinc-up script, please edit!'\n\n#ifconfig $INTERFACE <your vpn IP address> netmask <netmask of whole VPN>\n");
+ fclose(f);
+ }
+#endif
+
+ return 0;
}