summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--bounce.c6
-rw-r--r--pounce.18
2 files changed, 11 insertions, 3 deletions
diff --git a/bounce.c b/bounce.c
index 38ddf28..65789ab 100644
--- a/bounce.c
+++ b/bounce.c
@@ -104,9 +104,10 @@ int main(int argc, char *argv[]) {
 	const char *real = NULL;
 	const char *join = NULL;
 	const char *away = "pounced :3";
+	const char *quit = "connection reset by purr";
 
 	int opt;
-	while (0 < (opt = getopt(argc, argv, "!A:C:H:K:NP:W:a:h:j:n:p:r:u:vw:"))) {
+	while (0 < (opt = getopt(argc, argv, "!A:C:H:K:NP:Q:W:a:h:j:n:p:r:u:vw:"))) {
 		switch (opt) {
 			break; case '!': insecure = true;
 			break; case 'A': away = optarg;
@@ -115,6 +116,7 @@ int main(int argc, char *argv[]) {
 			break; case 'K': strlcpy(privPath, optarg, sizeof(privPath));
 			break; case 'N': stateJoinNames = true;
 			break; case 'P': localPort = optarg;
+			break; case 'Q': quit = optarg;
 			break; case 'W': clientPass = sensitive(optarg);
 			break; case 'a': auth = sensitive(optarg);
 			break; case 'h': host = optarg;
@@ -234,7 +236,7 @@ int main(int argc, char *argv[]) {
 		}
 	}
 
-	serverFormat("QUIT\r\n");
+	serverFormat("QUIT :%s\r\n", quit);
 	for (size_t i = 0; i < event.len; ++i) {
 		if (event.clients[i]) {
 			clientFormat(event.clients[i], "ERROR :Disconnecting\r\n");
diff --git a/pounce.1 b/pounce.1
index 34f10d2..41555ed 100644
--- a/pounce.1
+++ b/pounce.1
@@ -1,4 +1,4 @@
-.Dd October 27, 2019
+.Dd October 28, 2019
 .Dt POUNCE 1
 .Os
 .
@@ -14,6 +14,7 @@
 .Op Fl H Ar host
 .Op Fl K Ar priv
 .Op Fl P Ar port
+.Op Fl Q Ar quit
 .Op Fl W Ar pass
 .Op Fl a Ar auth
 .Op Fl h Ar host
@@ -80,6 +81,11 @@ Bind to local
 .Ar port .
 The default port is 6697.
 .
+.It Fl Q Ar quit
+Quit with message
+.Ar quit
+when shutting down.
+.
 .It Fl W Ar pass
 Require the password
 .Ar pass