projects
/
u
/
mdw
/
catacomb
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
progs/pixie.[c1]: Don't replace the existing pixie by default.
[u/mdw/catacomb]
/
progs
/
pixie.c
diff --git
a/progs/pixie.c
b/progs/pixie.c
index
79162a8
..
1d2be67
100644
(file)
--- a/
progs/pixie.c
+++ b/
progs/pixie.c
@@
-83,6
+83,7
@@
static unsigned flags = 0;
#define F_SYSLOG 1u
#define F_FETCH 2u
#define F_SYSLOG 1u
#define F_FETCH 2u
+#define F_REPLACE 4u
/*----- Event logging -----------------------------------------------------*/
/*----- Event logging -----------------------------------------------------*/
@@
-848,7
+849,7
@@
static void pixserv_accept(int fd, unsigned mode, void *p)
{
int nfd;
struct sockaddr_un sun;
{
int nfd;
struct sockaddr_un sun;
- s
ize
_t sunsz = sizeof(sun);
+ s
ocklen
_t sunsz = sizeof(sun);
if (mode != SEL_READ)
return;
if (mode != SEL_READ)
return;
@@
-1005,7
+1006,7
@@
static void pix_setup(struct sockaddr_un *sun, size_t sz)
pxlog("stale socket found; removing it");
unlink(sun->sun_path);
close(fd);
pxlog("stale socket found; removing it");
unlink(sun->sun_path);
close(fd);
- } else {
+ } else
if (flags & F_REPLACE)
{
if (verbose)
pxlog("server already running; shutting it down");
if (write(fd, "QUIT\n", 5) < 0) {
if (verbose)
pxlog("server already running; shutting it down");
if (write(fd, "QUIT\n", 5) < 0) {
@@
-1014,7
+1015,8
@@
static void pix_setup(struct sockaddr_un *sun, size_t sz)
}
sleep(1);
close(fd);
}
sleep(1);
close(fd);
- }
+ } else
+ die(EXIT_FAILURE, "pixie already running; not starting");
goto again;
}
chmod(sun->sun_path, 0600);
goto again;
}
chmod(sun->sun_path, 0600);
@@
-1188,6
+1190,7
@@
protect important keys. Options provided:\n\
-q, --quiet Emit fewer log messages.\n\
-v, --version Emit more log messages.\n\
-s, --socket=FILE Name the pixie's socket.\n\
-q, --quiet Emit fewer log messages.\n\
-v, --version Emit more log messages.\n\
-s, --socket=FILE Name the pixie's socket.\n\
+-r, --replace Replace existing pixie, if one is running.\n\
-c, --command=COMMAND Shell command to read a passphrase.\n\
-f, --fetch Fetch passphrases from the terminal.\n\
-t, --timeout=TIMEOUT Length of time to retain a passphrase in memory.\n\
-c, --command=COMMAND Shell command to read a passphrase.\n\
-f, --fetch Fetch passphrases from the terminal.\n\
-t, --timeout=TIMEOUT Length of time to retain a passphrase in memory.\n\
@@
-1262,6
+1265,7
@@
int main(int argc, char *argv[])
{ "passphrase", 0, 0, 'P' },
{ "verify-passphrase", 0, 0, '+' },
{ "socket", OPTF_ARGREQ, 0, 's' },
{ "passphrase", 0, 0, 'P' },
{ "verify-passphrase", 0, 0, '+' },
{ "socket", OPTF_ARGREQ, 0, 's' },
+ { "replace", 0, 0, 'r' },
{ "command", OPTF_ARGREQ, 0, 'c' },
{ "fetch", 0, 0, 'f' },
{ "timeout", OPTF_ARGREQ, 0, 't' },
{ "command", OPTF_ARGREQ, 0, 'c' },
{ "fetch", 0, 0, 'f' },
{ "timeout", OPTF_ARGREQ, 0, 't' },
@@
-1276,7
+1280,7
@@
int main(int argc, char *argv[])
{ 0, 0, 0, 0 }
};
{ 0, 0, 0, 0 }
};
- int i = mdwopt(argc, argv, "hVuqvCPs:c:ft:idl", opts, 0, 0, 0);
+ int i = mdwopt(argc, argv, "hVuqvCPs:
r
c:ft:idl", opts, 0, 0, 0);
if (i < 0)
break;
if (i < 0)
break;
@@
-1320,6
+1324,9
@@
int main(int argc, char *argv[])
case 's':
path = optarg;
break;
case 's':
path = optarg;
break;
+ case 'r':
+ flags |= F_REPLACE;
+ break;
case 't':
if ((timeout = pixserv_timeout(optarg)) == 0)
die(1, "bad timeout `%s'", optarg);
case 't':
if ((timeout = pixserv_timeout(optarg)) == 0)
die(1, "bad timeout `%s'", optarg);