about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2019-11-03 15:55:23 -0500
committerJune McEnroe <june@causal.agency>2019-11-03 15:55:23 -0500
commit3c6b153c69f9cf5e1582a44e8ff79c9476a18e5b (patch)
treea47bc1d12365cd460880df401c9a71388f99d368
parentSet up /var/run/calico and /usr/local/etc/pounce (diff)
downloadpounce-3c6b153c69f9cf5e1582a44e8ff79c9476a18e5b.tar.gz
pounce-3c6b153c69f9cf5e1582a44e8ff79c9476a18e5b.zip
Append bindHost to bindPath if it is a directory
Diffstat (limited to '')
-rw-r--r--bounce.c17
-rw-r--r--pounce.110
2 files changed, 22 insertions, 5 deletions
diff --git a/bounce.c b/bounce.c
index 01612e8..26bbeb8 100644
--- a/bounce.c
+++ b/bounce.c
@@ -172,7 +172,7 @@ static void signalHandler(int signal) {
 int main(int argc, char *argv[]) {
 	const char *bindHost = "localhost";
 	const char *bindPort = "6697";
-	const char *bindUnix = NULL;
+	char bindPath[PATH_MAX] = "";
 	char certPath[PATH_MAX] = "";
 	char privPath[PATH_MAX] = "";
 	const char *save = NULL;
@@ -227,7 +227,7 @@ int main(int argc, char *argv[]) {
 			break; case 'N': stateJoinNames = true;
 			break; case 'P': bindPort = optarg;
 			break; case 'Q': quit = optarg;
-			break; case 'U': bindUnix = optarg;
+			break; case 'U': strlcpy(bindPath, optarg, sizeof(bindPath));
 			break; case 'W': clientPass = optarg;
 			break; case 'a': auth = optarg;
 			break; case 'f': save = optarg;
@@ -248,6 +248,15 @@ int main(int argc, char *argv[]) {
 		}
 	}
 
+	if (bindPath[0]) {
+		struct stat st;
+		int error = stat(bindPath, &st);
+		if (error && errno != ENOENT) err(EX_CANTCREAT, "%s", bindPath);
+		if (S_ISDIR(st.st_mode)) {
+			strlcat(bindPath, "/", sizeof(bindPath));
+			strlcat(bindPath, bindHost, sizeof(bindPath));
+		}
+	}
 	if (!certPath[0]) {
 		snprintf(certPath, sizeof(certPath), DEFAULT_CERT_PATH, bindHost);
 	}
@@ -274,8 +283,8 @@ int main(int argc, char *argv[]) {
 	fclose(priv);
 
 	int bind[8];
-	size_t binds = bindUnix
-		? listenUnix(bind, ARRAY_LEN(bind), bindUnix)
+	size_t binds = bindPath[0]
+		? listenUnix(bind, ARRAY_LEN(bind), bindPath)
 		: listenBind(bind, ARRAY_LEN(bind), bindHost, bindPort);
 	int server = serverConnect(insecure, host, port);
 
diff --git a/pounce.1 b/pounce.1
index 2a72854..cbe62b3 100644
--- a/pounce.1
+++ b/pounce.1
@@ -1,4 +1,4 @@
-.Dd November 2, 2019
+.Dd November 3, 2019
 .Dt POUNCE 1
 .Os
 .
@@ -107,6 +107,14 @@ Bind to a UNIX-domain socket at
 .Ar path .
 Clients are accepted as sent by
 .Xr calico 1 .
+If
+.Ar path
+is a directory,
+the
+.Ar host
+set by
+.Fl H
+is appended to it.
 This option takes precedence over
 .Fl H
 and
y/cgit/favicon.ico?id=5a8f6f3698fbd69b97483c7b84bf661f4761124f&follow=1'>Remove default faviconJune McEnroe I hate these things and also this one sucks. 2021-09-21Use Z_FILTERED strategyJune McEnroe 2021-09-21Recalculate various lengths only as neededJune McEnroe This actually speeds things up quite a bit, saving roughly a second on a big PNG screenshot. Almost all the remaining time is spent in deflate. 2021-09-21Rewrite pngo, add explicit optionsJune McEnroe Interesting to see how my code habits have changed. 2021-09-16Fix /* **/ comment matchingJune McEnroe 2021-09-15Remove typer, add downgrade to READMEJune McEnroe 2021-09-15Set bot mode on downgradeJune McEnroe 2021-09-15Enter capsicum in downgradeJune McEnroe 2021-09-15Factor out common parts of downgrade messagesJune McEnroe Also bump the message cap to 1024 because that is ostensibly useful for replying to older messages. 2021-09-14Add downgrade IRC botJune McEnroe 2021-09-14Sort by title if authors matchJune McEnroe There are probably better things to sort by but title definitely always exists. 2021-09-13Swap-remove tags as they're foundJune McEnroe This makes it even faster. From ~1s on a sqlite3.c amalgamation to ~0.85s. 2021-09-12Replace htagml regex with strncmpJune McEnroe Since ctags only ever produces regular expressions of the form /^re$/ or /^re/ with no other special characters, instead unescape the pattern and simply use strncmp. Running on a sqlite3.c amalgamation, the regex version takes ~37s while the strncmp version takes ~1s, producing identical output. Big win! 2021-09-11Also defer printing comment for lone close-parensJune McEnroe 2021-09-10Publish "git-comment"June McEnroe 2021-09-10Add git comment --pretty optionJune McEnroe 2021-09-08Defer printing comment if line is blank or closing braceJune McEnroe This fixes badly indented comments. 2021-09-08Up default min-repeat to 30 linesJune McEnroe 2021-09-08Handle dirty lines in git-commentJune McEnroe 2021-09-08Document and install git-commentJune McEnroe 2021-09-08Add repeat and all options to git-commentJune McEnroe 2021-09-08Add group threshold to git-commentJune McEnroe