summaryrefslogtreecommitdiff
path: root/irc/session.go (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Ensure BATCH's first arg is not emptyHubert Hirtz2021-11-021-1/+4
|
* Support for soju.im/bouncer-networksHubert Hirtz2021-10-241-6/+42
| | | | | | | | | | | | | | | This patch also disable the highlight on reconnect. This might be an issue (the user would want to know when senpai is online again?), but with multiple connections, it's bothersome to have to unread all of them on start (it wasn't a problem with only one connection since it was read instantly). Now, lastbuffer.txt also contains the network ID, otherwise the user might end up on another buffer with the same name. This patch does not extend /r to support multiple networks (it will send the message to the latest query, whatever the current displayed network is).
* Make use of away-notifyHubert Hirtz2021-10-231-5/+31
|
* Add an /invite commandHubert Hirtz2021-10-231-0/+4
|
* Add support for the INVITE messageHubert Hirtz2021-10-231-0/+26
|
* Don't expect the server to send correct IRC messagesHubert Hirtz2021-10-231-98/+283
| | | | Instead of panicking, print an error in the home buffer
* Cleanup unused capsHubert Hirtz2021-10-231-16/+12
| | | | | | | | | | | | | | | | They don't add anything in the UI, and generate useless traffic. Account tracking is not used: - account-notify - account-tag - extended-join We don't really care about users, hosts, nor real names: - extended-join - userhost-in-names away-notify and invite-notify are also not used, but will be in the near future.
* Revert "Eager registration"Hubert Hirtz2021-09-291-25/+62
| | | | This reverts commit 60f9e6570e40c0a0cbb10976b0ec6a7076fdb453.
* Eager registrationHubert Hirtz2021-09-281-62/+25
| | | | | | | | | | | | | | | | | | | | | | Decreases the number of roundtrips necessary for registration. A typical registration might look like this: - C: CAP LS; NICK; USER - S: CAP LS - C: CAP REQ - S: CAP ACK - C: AUTHENTICATE <mesh> - S: AUTHENTICATE + - C: AUTHENTICATE <user/pass payload> - S: RPL_SASLSUCCESS - C: CAP END - S: welcome batch By sending client messages eagerly, despite the number of message not decreasing (it's increasing when the client supports more caps than the server), the number of roundtrips is decreased to 1 (not counting TCP and TLS negotiation).
* Sort typing indicatorsHubert Hirtz2021-09-131-0/+1
|
* Show mode changesHubert Hirtz2021-09-131-0/+8
|
* Fix typing indicators not being removedHubert Hirtz2021-09-131-0/+4
|
* Fix typosHubert Hirtz2021-09-111-2/+2
|
* Fetch missed messages on reconnectHubert Hirtz2021-09-011-0/+6
| | | | just one step closer to proper CHATHISTORY support!! :=D ^v^
* Print the channel topic on joindelthas2021-07-141-0/+1
| | | | Fixes: #45
* Switch to the buffer of a new user-requested channel joindelthas2021-07-131-21/+30
|
* Ratelimit +typing and send +typing=done once onlydelthas2021-07-131-5/+32
| | | | | Fixes: #8 Fixes: #41
* Sort channel members by namedelthas2021-07-121-0/+3
| | | | | | | This is used for nick autocomplete and for /NAMES. It will also be used for the vertical user list in the UI in a upcoming patch.
* Explicitly support keys in JOIN messagesHubert Hirtz2021-05-201-3/+6
|
* Fix races conditionsHubert Hirtz2021-05-201-0/+878
Refactor: - Split out reads/writes from irc.Session to irc.ChanInOut, - Message handling is now manual, messages must be passed to irc.Session.HandleMessage for its state to change, - Remove data-race-prone App.addLineNow (called from both the main eventLoop and irc loops) and add App.addStatusLine (to be called from the main event loop) and App.queueStatusLine (to be called from other goroutines). These two functions now write to both the current buffer and the home buffer, - add a irc.Typings.List function that locks the list of typings before accessing it. Changes as I went through the whole code... - CAP handling is fixed (especially CAP DEL and CAP ACK), - irc.Session now handles PREFIX, - unhandled messages are now shown, except for some rare cases where it's completely useless to show them.