taps: fix error messages
This commit is contained in:
parent
564913c123
commit
691a193bba
2 changed files with 16 additions and 8 deletions
|
|
@ -10,7 +10,7 @@
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
#include <fnmatch.h>
|
#include <fnmatch.h>
|
||||||
#include <fcntl.h> /* open, O_NONBLOCK, &c */
|
#include <fcntl.h> /* open, O_NONBLOCK, &c */
|
||||||
#include <stdio.h> /* perror */
|
#include <error.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
|
|
||||||
|
|
@ -31,8 +31,7 @@
|
||||||
#define DO_OR_DIE(expr) DO_OR_DIE_X((expr) == 0)
|
#define DO_OR_DIE(expr) DO_OR_DIE_X((expr) == 0)
|
||||||
#define DO_OR_DIE_X(expr) \
|
#define DO_OR_DIE_X(expr) \
|
||||||
do if (!(expr)) { \
|
do if (!(expr)) { \
|
||||||
perror((#expr)); \
|
error(EXIT_FAILURE, errno, ("Failed assertion: " #expr)); \
|
||||||
exit(EXIT_FAILURE); \
|
|
||||||
} while(false)
|
} while(false)
|
||||||
|
|
||||||
struct allow_pattern {
|
struct allow_pattern {
|
||||||
|
|
@ -214,6 +213,7 @@ int main(int argc, char **argv) {
|
||||||
|
|
||||||
char **rest = argv + 1;
|
char **rest = argv + 1;
|
||||||
|
|
||||||
|
DO_OR_DIE_X(argc > 1);
|
||||||
if (strcmp(rest[0], "serve") == 0) {
|
if (strcmp(rest[0], "serve") == 0) {
|
||||||
cmdServe = true;
|
cmdServe = true;
|
||||||
++rest;
|
++rest;
|
||||||
|
|
@ -221,21 +221,26 @@ int main(int argc, char **argv) {
|
||||||
cmdGet = true;
|
cmdGet = true;
|
||||||
++rest;
|
++rest;
|
||||||
} else {
|
} else {
|
||||||
exit(EXIT_FAILURE);
|
error(EINVAL, EINVAL, "no subcommand \"%s\"", rest[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *patternsRaw = secure_getenv("TAPS_ALLOW");
|
const char *patternsRaw = secure_getenv("TAPS_ALLOW");
|
||||||
struct allow_patterns patterns = { 0 };
|
struct allow_patterns patterns = { 0 };
|
||||||
if (cmdServe && patternsRaw != NULL) { patterns = parsePatterns(patternsRaw); }
|
if (cmdServe && patternsRaw != NULL) {
|
||||||
DO_OR_DIE_X(patterns.patterns != NULL);
|
patterns = parsePatterns(patternsRaw);
|
||||||
|
DO_OR_DIE_X(patterns.patterns != NULL);
|
||||||
|
}
|
||||||
|
|
||||||
const char *servePath = secure_getenv("TAPS_SOCK");
|
const char *servePath = secure_getenv("TAPS_SOCK");
|
||||||
|
|
||||||
if (cmdServe && patterns.patterns != NULL) {
|
if (cmdServe) {
|
||||||
|
error(patterns.patterns == NULL, EINVAL, "TAPS_ALLOW");
|
||||||
acceptRequests(servePath, &patterns);
|
acceptRequests(servePath, &patterns);
|
||||||
} else if (cmdGet) {
|
} else if (cmdGet) {
|
||||||
|
error(ENOSYS, ENOSYS, "get");
|
||||||
} else {
|
} else {
|
||||||
exit(EXIT_FAILURE); }
|
error(EINVAL, EINVAL, "subcommand args");
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,5 +6,8 @@ mkShell.override { stdenv = stdenvNoCC; } {
|
||||||
virtiofsd
|
virtiofsd
|
||||||
crosvm # virtio-gpu
|
crosvm # virtio-gpu
|
||||||
npins
|
npins
|
||||||
|
] ++ [
|
||||||
|
man-pages
|
||||||
|
linux-manual
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue