X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Ftincctl.c;h=00757c47a57b96d7c3f258acd92652be66e9cac1;hb=bfe231b977284ba78a582db96a05b5854ddf0d91;hp=c6d4aac51dfb853baf60a393a7199916aa74b3bf;hpb=11868b890d1a7f4cfbfb37099393b32019010f66;p=tinc diff --git a/src/tincctl.c b/src/tincctl.c index c6d4aac5..00757c47 100644 --- a/src/tincctl.c +++ b/src/tincctl.c @@ -89,7 +89,7 @@ static struct option const long_options[] = { static void version(void) { printf("%s version %s (built %s %s, protocol %d.%d)\n", PACKAGE, BUILD_VERSION, BUILD_DATE, BUILD_TIME, PROT_MAJOR, PROT_MINOR); - printf("Copyright (C) 1998-2014 Ivo Timmermans, Guus Sliepen and others.\n" + printf("Copyright (C) 1998-2015 Ivo Timmermans, Guus Sliepen and others.\n" "See the AUTHORS file for a complete list.\n\n" "tinc comes with ABSOLUTELY NO WARRANTY. This is free software,\n" "and you are welcome to redistribute it under certain conditions;\n" @@ -233,6 +233,12 @@ FILE *fopenmask(const char *filename, const char *mode, mode_t perms) { perms &= ~mask; umask(~perms); FILE *f = fopen(filename, mode); + + if(!f) { + fprintf(stderr, "Could not open %s: %s\n", filename, strerror(errno)); + return NULL; + } + #ifdef HAVE_FCHMOD if((perms & 0444) && f) fchmod(fileno(f), perms); @@ -854,8 +860,8 @@ static int cmd_start(int argc, char *argv[]) { return status; #else int pfd[2] = {-1, -1}; - if(pipe(pfd)) { - fprintf(stderr, "Could not create umbilical pipe: %s\n", strerror(errno)); + if(socketpair(AF_UNIX, SOCK_STREAM, 0, pfd)) { + fprintf(stderr, "Could not create umbilical socket: %s\n", strerror(errno)); free(nargv); return 1; }