summary refs log tree commit diff
path: root/bounce.c
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 /bounce.c
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 'bounce.c')
-rw-r--r--bounce.c17
1 files changed, 13 insertions, 4 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);
 
when pagingJune McEnroe 2020-05-21Do not sort results in scoop by defaultJune McEnroe The -s flag now enables sorting (-g and -l also imply it), while the -S flag now launches the sqlite3 shell. Avoiding sorting by default is much faster and less memory-intensive as it doesn't require loading the entire result set into memory at once. 2020-05-21Expand and clarify documentationJune McEnroe 2020-05-21Execute PAGER with the SHELLJune McEnroe Same as how git executes it. Allows flags to be set in PAGER. 2020-05-21Automatically perform database migrations in litterboxJune McEnroe To simplify upgrades, restarting litterbox should be sufficient. The database can still be explicitly migrated with -m. 2020-05-20Don't install rc scripts on other platformsJune McEnroe Oops, meant to do this in the last commit. 2020-05-20Rewrite build and install like pounce 1.3June McEnroe man pages are no longer compressed! 2020-05-20Update email addressesJune McEnroe 2020-04-23Call updateConsumer from handleError 1.2p1June McEnroe This should prevent continually crashing on the same ERROR in the pounce buffer. 2020-04-20Use . as ${LDLIBS.$@} separatorJune McEnroe 2020-04-05Error on invalid ISUPPORT values 1.2June McEnroe 2020-04-05Only set RCS on FreeBSDJune McEnroe 2020-04-05Log bans and unbansJune McEnroe 2020-04-05Parse mode types from ISUPPORTJune McEnroe 2020-04-05Add unscoop matchers for ban/unban eventsJune McEnroe The IRC and Textual matchers miss bans mixed with other mode changes, but those are rare. 2020-04-05Check unscoop regexps with make testJune McEnroe 2020-04-05Add unscoop -n flag for checking regexpsJune McEnroe 2020-04-05Add Ban and Unban event typesJune McEnroe 2020-04-02Update styleJune McEnroe Replacing declarations followed by while loops with for loops and generating the short option string from the long options. 2020-03-31Update unscoop catgirl matchersJune McEnroe I'm not concerned about keeping the old matchers since I'm almost entirely certain I was the only one who ever used the old version of catgirl, and I already imported those logs. 2020-03-31Fix writing verbose to stderrJune McEnroe 2020-03-02Include <>/-/* around nicks in scoop coloring 1.1June McEnroe 2020-03-02Replace .mk files with configure scriptJune McEnroe 2020-02-28Implement the causal.agency/consumer capabilityJune McEnroe 2020-02-22Include <>/-/* around nicks in coloringJune McEnroe 2020-02-22Use (almost) the full range of IRC colors for nicksJune McEnroe