Daniel Oaks
b8d47c3e4f
channel: Server opers shouldn't override nooutside, reggedonly and moderated modes. if they want to do that sort of thing, they have SAMODE and all to be explicit about it
6 anni fa
Daniel Oaks
e3a0387cf5
channel: Fix +m (moderated) and +R (registeredonly) channel modes, add note about opers overriding +m/+R
6 anni fa
Daniel Oaks
275449e6cc
caps: Move most capability-handling types into the caps package
6 anni fa
Daniel Oaks
9bfdc4fdfb
Move caps to their own package to prevent conflicts
6 anni fa
Shivaram Lingamneni
e8b1870067
refactor the rehash implementation
6 anni fa
Daniel Oaks
79de443496
channel: Don't send TOPIC on entirely new channel
6 anni fa
Daniel Oaks
3b0d9c4db9
Send nick parameter correctly on ERR_NOSUCHNICK numerics
6 anni fa
Shivaram Lingamneni
333afe1062
make default channel modes configurable
6 anni fa
Daniel Oaks
c9ed749538
Rename deps
7 anni fa
Daniel Oaks
9a94121281
JOIN: Fix a dumb bug. Really dumb bug.
7 anni fa
Daniel Oaks
22216d4d60
Fix lots of nits
7 anni fa
Daniel Oaks
0046025d60
Enable chanmode +r, fix bug with registering channels
7 anni fa
Daniel Oaks
317a804644
Fix dates at top of source files
7 anni fa
Daniel Oaks
013635a827
channel: Give founder mode if channel already exists and founder joins
7 anni fa
Daniel Oaks
6aebd4aad9
channel: Add comments, fix a small bug with moderated mode
7 anni fa
Daniel Oaks
300d02bd9c
channel: Kill a race condition that locked up the server.
Specifically, if you joined a channel while someone else was trying to part. the Join method would grab the lock, the Quit method would queue to grab the lock, the Join method would unlock and then try to regrab the lock, and it would get into a situation where nobody would have the lock and everyone would be waiting for it.
This caused weird oddities with clients.
7 anni fa
Daniel Oaks
861b65eb39
channels: Automagically save channel bans/excepts/invites
7 anni fa
Daniel Oaks
f5eeca5339
channel: Fix not being able to Part
7 anni fa
Daniel Oaks
194411716d
channel: Automagically save topic updates on registered channels
7 anni fa
Daniel Oaks
580385392a
channel: Alert of given modes (+o/+q) on join
7 anni fa
Daniel Oaks
05074e966d
modes: Continue overhauling
7 anni fa
Daniel Oaks
b33b217fab
Add very initial ChanServ and NickServ virtual clients
As well, add channel registration and re-applying founder privs on the first client joining the channel. I'm going to re-architect our modes system to better acocunt for this sort of change.
7 anni fa
Daniel Oaks
439331cfb8
logger: Move to separate package, make *much* nicer
7 anni fa
Daniel Oaks
b328a4fcd3
logging: Add userinput and output, fix up lots
7 anni fa
Daniel Oaks
522001d4f6
Cleanup message sending
7 anni fa
Daniel Oaks
e741c1476b
Implement message-ids draft
7 anni fa
Daniel Oaks
62dc3c8f66
server: Implement TAGMSG draft command
7 anni fa
Daniel Oaks
f6185fa336
Get it working, using not-great and very initial splitting code
7 anni fa
Daniel Oaks
e9324c3250
modes: Fix some more mutexes
7 anni fa
Daniel Oaks
c39bebc696
Fix various locks around joining, kicking and quitting
7 anni fa
Daniel Oaks
6f7c683247
channel: RWMutex for members access
7 anni fa
Daniel Oaks
8eb8193b18
JOIN: Only give chanop, not chan founder (will save that for regged chans)
7 anni fa
Daniel Oaks
5eafd2656e
channel: Send channel NOTICEs properly
7 anni fa
Daniel Oaks
a7949b6cb4
irc: Assorted golint cleanups
7 anni fa
Daniel Oaks
517893065b
Support STATUSMSG
7 anni fa
Daniel Oaks
d9db688963
Implement echo-message capability
7 anni fa
Daniel Oaks
a8d910e233
capability: Add invite-notify
7 anni fa
Daniel Oaks
2e3ffd2f23
caps: Add message-tags draft capability
7 anni fa
Daniel Oaks
06028e0117
modes: Remove channel.Persist mode
It's broken anyways, and we'll be replacing it with our custom channel ownership stuff later.
7 anni fa
Daniel Oaks
5e72409695
Move from ascii(ish) unicode encoding to prelim rfc7700 using functions instead
7 anni fa
Daniel Oaks
ae69ef5cd6
db: Remove SQLite db, hopefully looking up clients still works.Channel persistence is broken by this, will fix it later.
7 anni fa
Daniel Oaks
0087de6092
client: Add AWAYLEN
7 anni fa
Daniel Oaks
79d831bbb7
channel: Add KICKLEN and TOPICLEN
7 anni fa
Daniel Oaks
754b74c21c
accounts: Add account-tag capability
7 anni fa
Daniel Oaks
5269dc8776
accounts: Very roughly introduce account type
7 anni fa
Daniel Oaks
6e66c5c8a7
channel: Prevent duping error code in channel.Persist -- from jlatt/ergonomadic#39 <3
8 anni fa
Daniel Oaks
e33a810522
capability: Add extended-join and userhost-in-names
8 anni fa
Daniel Oaks
bded3202c2
channels: send RPL_CHANNELCREATED and RPL_TOPICTIME
8 anni fa
Daniel Oaks
e19c1527a4
modes: Fix modes, re-add channel modes
8 anni fa
Daniel Oaks
9e7a590f23
server: Fix
8 anni fa