Daniel Oaks
d854bac78e
Fix broken modes tests
6 anni fa
Daniel Oaks
3634d0601e
Split modes into a subpackage (this is painful, but will force us to simplify and improve the API for interacting with modes)
6 anni fa
Daniel Oaks
9f71d9ce12
Add right copyright to handlers.go
6 anni fa
Daniel Oaks
afd6ca610c
Split language into a subpackage
6 anni fa
Daniel Oaks
1b14230758
...fix info string, how did that get messed up?
6 anni fa
Daniel Oaks
47d2ce351c
Centralise all command handlers in handlers.go
6 anni fa
Daniel Oaks
29266ce80f
nickserv: Fix help display
6 anni fa
Daniel Oaks
6784cf82bf
nickserv: Add NS REGISTER and NS IDENTIFY
6 anni fa
Daniel Oaks
ed1fa7704c
nickserv: Point users to an actual help entry (not a great one, but very slightly better)
6 anni fa
Shivaram Lingamneni
2a7f055ef3
support unix domain sockets
6 anni fa
Shivaram Lingamneni
bec39ee8cb
log new listener creation
6 anni fa
Shivaram Lingamneni
2d6ddf7eb9
kiwi's gateway uses the flag `secure` instead of `tls`
6 anni fa
Shivaram Lingamneni
b7f66fb1de
allow WEBIRC to set the TLS flag over local plaintext connections
6 anni fa
Shivaram Lingamneni
09a17b32be
disallow WEBIRC after PROXY
6 anni fa
Daniel Oaks
7b88d21e58
Possible IdleTimer lock fix
6 anni fa
Daniel Oaks
cabb3b219d
Fix some config loading issues
6 anni fa
Daniel Oaks
fc9b501a77
Show translator names in INFO
6 anni fa
Daniel Oaks
ddd7f0dc99
Add 'are supported by this server' to translatable strings
6 anni fa
Daniel Oaks
c5a6d22192
Hopefully apply new languages better, esp. during rehash
6 anni fa
Daniel Oaks
638b0c03fc
Better translate HELP entries and indexes
6 anni fa
Daniel Oaks
099fd7c08f
Update translation backend stuff a little more
6 anni fa
Daniel Oaks
1a5ff05493
Update translation framework
6 anni fa
Daniel Oaks
ddec79f8d0
Update translation framework a touch more
6 anni fa
Daniel Oaks
75dcff7183
Update translation framework, add badge to readme
6 anni fa
Shivaram Lingamneni
4b1aa2b952
remove unused member ChannelRegistry.channels
6 anni fa
Shivaram Lingamneni
7edd9032d3
remove newConns channel
6 anni fa
Shivaram Lingamneni
728863a17c
move Commands initialization to an init()
6 anni fa
Shivaram Lingamneni
62fc2c0cc3
remove Server.commands
6 anni fa
Daniel Oaks
b2afd55285
Don't load example translation file, make example actually list all translatable strings
6 anni fa
Daniel Oaks
090095b2b9
Set default client language when creating them
6 anni fa
Daniel Oaks
275227a461
Make like every client-facing string translatable
6 anni fa
Daniel Oaks
0569b5cfaa
RESUME: Fix a few bugs, play modestrings 'n' all
6 anni fa
Daniel Oaks
f8b39cfe61
Send fake channel joins on RESUME
6 anni fa
Daniel Oaks
7760634efe
Actually let the takeover work somewhat more properly
6 anni fa
Daniel Oaks
0d5327de8a
Fix some issues, add RPL_WHOISACCOUNT
6 anni fa
Daniel Oaks
ac99e82192
Fix build issues
6 anni fa
Daniel Oaks
d09f085b1a
Add very initial RESUME cap and command
6 anni fa
Daniel Oaks
e99f22488f
Make LANGUAGE support work
6 anni fa
Daniel Oaks
a7fdade41d
Extend to include example translation stuff
6 anni fa
Daniel Oaks
ba77a95c81
Very initial beginning of languages implementation
6 anni fa
Daniel Oaks
3b3c1c733a
Support bot mode +B
6 anni fa
Daniel Oaks
3ba8af714e
Use base 36 when generating message IDs, gives us full 0-9a-z to use while preserving uniqueness nicely
6 anni fa
Daniel Oaks
63bd52d471
Make message IDs much shorter (thanks @prawnsalad!)
6 anni fa
Daniel Oaks
713fc59691
CAP: Correctly suspend registration for CAP REQ as per the spec
6 anni fa
Daniel Oaks
7c624f9a38
Setup v0.10.4-unreleased devel ver
6 anni fa
Daniel Oaks
5e9f0fd411
Release v0.10.3
6 anni fa
Daniel Oaks
197ab520bf
Change casemapping name and advertisement to match new spec
6 anni fa
Shivaram Lingamneni
d8d1705035
refactor idle timeouts again
6 anni fa
Daniel Oaks
e0519a6387
caps: Rename maxline cap
6 anni fa
Shivaram Lingamneni
ad1e00629b
fix a race condition in idle timeouts
squigz on freenode reported an issue where bots were responding to PING
on time, but were occasionally being timed out regardless. This was a race
condition: timeout was detected as idleTime >= it.quitTimeout, but if
the client responded promptly to its PING message and sent no further messages,
but the main loop subsequently slept for longer than expected (i.e., significantly
longer than quitTimeout), this condition would be met through no fault of the
client's.
The fix here is to explicitly track the last time the ping was sent, then test
!lastSeen.After(lastPinged) instead (making use of time.Time's monotonicity).
It is sufficient that the measurement of lastPinged happens-before the PING is sent.
6 anni fa