From 9106bd61fa1a7ecff0ea8d805295ed3d3aa68c20 Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Tue, 4 Dec 2018 10:39:38 -0500 Subject: Add -a auth option for unimplemented SASL --- catgirl.1 | 7 +++++++ chat.c | 3 ++- chat.h | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/catgirl.1 b/catgirl.1 index ef15890..84ed857 100644 --- a/catgirl.1 +++ b/catgirl.1 @@ -10,6 +10,7 @@ .Nm .Op Fl Nv .Op Fl W Ar pass +.Op Fl a Ar auth .Op Fl h Ar host .Op Fl j Ar chan .Op Fl l Ar path @@ -40,6 +41,12 @@ See .Sx ENVIRONMENT for details. . +.It Fl a Ar auth +Authenticate with SASL PLAIN. +.Ar auth +is a colon-separated +username and password pair. +. .It Fl h Ar host Connect to .Ar host . diff --git a/chat.c b/chat.c index fede433..f3d7cc2 100644 --- a/chat.c +++ b/chat.c @@ -50,10 +50,11 @@ static char *prompt(const char *prompt) { int main(int argc, char *argv[]) { int opt; - while (0 < (opt = getopt(argc, argv, "NW:h:j:l:n:p:r:u:vw:"))) { + while (0 < (opt = getopt(argc, argv, "NW:a:h:j:l:n:p:r:u:vw:"))) { switch (opt) { break; case 'N': self.notify = true; break; case 'W': self.webp = dupe(optarg); + break; case 'a': self.auth = dupe(optarg); break; case 'h': self.host = dupe(optarg); break; case 'j': self.join = dupe(optarg); break; case 'l': logOpen(optarg); diff --git a/chat.h b/chat.h index 6c1cf0f..7e320eb 100644 --- a/chat.h +++ b/chat.h @@ -35,6 +35,7 @@ typedef unsigned char byte; struct { char *host; char *port; + char *auth; char *pass; char *webp; char *nick; -- cgit 1.4.1 s='txt' type='search' size='10' name='q' value=''/>
path: root/config.c (unfollow)
Commit message (Collapse)Author
2019-11-18Document accept and exit behaviorJune McEnroe
2019-11-18Remove ISUPPORT draft referenceJune McEnroe
I don't actually deal with it at all other than storing them for syncing clients.
2019-11-18Document inadvertent echo bugJune McEnroe
2019-11-15Request NAMES on sync by defaultJune McEnroe
This inverts the meaning of -N!
2019-11-14Add concept of passive clientsJune McEnroe
2019-11-14Save and load full struct timevalJune McEnroe
2019-11-14Use struct timeval for sub-second precisionJune McEnroe
2019-11-14Remove server-time filter TODOJune McEnroe
I think it's fine to keep it separate since it's a core function of the bouncer.
2019-11-14Tweak filter regexesJune McEnroe
2019-11-14Filter multi-prefixJune McEnroe
2019-11-14Replace filters with regex replacesJune McEnroe
2019-11-13Refactor filterUserhostInNamesJune McEnroe
2019-11-13Factor out wordcpy for filtersJune McEnroe
2019-11-11Revert "Test getopt_config"June McEnroe
This reverts commit c8a771828e1d5fc8c476bbd650fafcfb7ba390a8. It just feels gross... idk.
2019-11-11Test getopt_configJune McEnroe
2019-11-11Add userhost-in-names to manualJune McEnroe
2019-11-11Skip initial NAMES parametersJune McEnroe
Channel names can contain '!' so splitting the whole message on it won't work. I hate this code though.
2019-11-11Filter userhost-in-namesJune McEnroe
I really want to be writing tests for these functions...
2019-11-10Compare words without copying in filtersJune McEnroe
2019-11-10Separate tags from all targetJune McEnroe
2019-11-10Filter invite-notifyJune McEnroe
2019-11-10Add capsicum note to READMEJune McEnroe
2019-11-10Filter extended-joinJune McEnroe
2019-11-10Expand client configuration documentation and list capabilitiesJune McEnroe
2019-11-10Request all supported caps from serverJune McEnroe
2019-11-10Filter ACCOUNT, AWAY, CHGHOST for incapable clientsJune McEnroe
2019-11-10Rename listen to localJune McEnroe
2019-11-09Remove extended-join and invite-notifyJune McEnroe
The remaining caps only generate new commands which can easily be filtered out when sending to clients so will be in the first pass of support. extended-join is probably safe to pass through unaltered, just causing extraneous parameters on JOIN commands, but maybe not. invite-notify reuses the INVITE command where the invited user is not self.
2019-11-09Maintain stateCaps and offer them to clientsJune McEnroe
2019-11-09Parse capabilitiesJune McEnroe
The list that I've defined are the ones that I expect to be able to enable probably without any clients breaking... And of course server-time which pounce implements itself.
2019-11-09Avoid the reserved _A names with BIT macroJune McEnroe
2019-11-09Define macro for bit flag enumsJune McEnroe
2019-11-08Check that password is hashedJune McEnroe
2019-11-08Avoid calling getopt_long again after it returns -1June McEnroe
On GNU, calling getopt_long again will reset optind back to the first non-option argument, which would cause an infinite loop of reading the same configurtion file forever.
2019-11-08Only change AWAY status for registered clientsJune McEnroe
Turns out I did eventually fix this, because I may want to implement "passive clients" for logging or notification stuff, which wouldn't affect AWAY status either.
2019-11-07Just write the example normallyJune McEnroe
2019-11-07Include path in readlinkat errorJune McEnroe
2019-11-07Call clientConsume before clientRecvJune McEnroe
This might reduce the frequency of a client getting its own message back because it was behind in the ring when it sent it.
2019-11-06Use -l:filename in Linux.mkJune McEnroe
2019-11-06Fix compat.h for #defined strlcpyJune McEnroe
2019-11-06Allow unsetting LIBRESSL_PREFIXJune McEnroe
2019-11-06Document calico service configurationJune McEnroe
2019-11-06Document SASL EXTERNAL configuration in more detailJune McEnroe
2019-11-06Document pounce service configurationJune McEnroe
2019-11-06Mention Darwin and GNU/Linux in READMEJune McEnroe
2019-11-06Assume LibreSSL from brew on DarwinJune McEnroe
2019-11-06Remove -DNO_EXPLICIT_BZERO from Darwin.mkJune McEnroe
2019-11-06Don't install rc scripts or dirs on LinuxJune McEnroe