Shivaram Lingamneni
ebfef1e848
add Semaphore and ServerSemaphores
2018-04-26 06:03:10 -04:00
Shivaram Lingamneni
6533893863
optimized implementation of Channel.Names()
2018-04-26 03:22:52 -04:00
Shivaram Lingamneni
ef35c587fc
remove redundant friends computation
2018-04-25 00:58:54 -04:00
Shivaram Lingamneni
b97ae00fe3
refactor channel join and part
2018-04-25 00:58:54 -04:00
Shivaram Lingamneni
74fa58dda0
Merge remote-tracking branch 'origin/master' into vhosts.4
2018-04-23 21:46:12 -04:00
Daniel Oaks
22ec6139bf
Merge pull request #256 from slingamn/issue255.2
...
modes refactor, #255
2018-04-24 11:20:07 +10:00
Shivaram Lingamneni
abbbd2c899
review fix
2018-04-23 20:05:02 -04:00
Shivaram Lingamneni
cc9941cb07
review fixes, bug fixes
2018-04-23 02:38:35 -04:00
Shivaram Lingamneni
43b90f2a85
have travis enforce gofmt, #253
2018-04-22 20:41:29 -04:00
Shivaram Lingamneni
fad2475c3f
modes refactor, #255
2018-04-22 19:36:15 -04:00
Daniel Oaks
8f22d5ffd8
Merge pull request #236 from slingamn/socket_again.1
...
eliminate dedicated RunSocketWriter goroutine
2018-04-23 02:07:43 +10:00
Daniel Oaks
4a17eadbce
Merge pull request #246 from slingamn/db_autoupgrade.1
...
implement database auto-upgrades (#243 )
2018-04-22 13:39:41 +10:00
Daniel Oaks
0aab3b44e9
Merge pull request #252 from slingamn/issue249
...
fix #249
2018-04-22 13:38:26 +10:00
moocow
744ad2ce0b
Stats for LUSERS logic now seperated, fixed params in LUSERS
2018-04-20 22:48:15 +02:00
Shivaram Lingamneni
393070b7d9
fix #249
2018-04-20 14:21:07 -04:00
Shivaram Lingamneni
3db71415c9
review fixes
2018-04-20 03:59:01 -04:00
moortens
0b3abb5bde
Fixed LUSERS count not subtracting invisible users
2018-04-20 09:11:56 +02:00
Shivaram Lingamneni
5e62cc4ebc
initial vhosts implementation, #183
2018-04-19 03:00:56 -04:00
Daniel Oaks
40d6cd02da
Fix whois channel handling
2018-04-18 01:11:12 +10:00
Shivaram Lingamneni
69fd3ac324
implement database auto-upgrades ( #243 )
2018-04-16 16:35:01 -04:00
Shivaram Lingamneni
f6d2dade4e
fix fakelag double-rate issue
...
Basically, fakelag was counting the time imposed by its own sleeps as though
the user had themselves paused for that amount of time. Therefore, if a user
sent a large number of consecutive commands, every other command would pause
for the expected throttle interval, but the subsequent command would be
processed instantly (you'd get two back-to-back commands). This resulted in
throttled users being able to send at double the expected rate.
2018-04-16 04:32:57 -04:00
Daniel Oaks
c75d2c91c5
Merge pull request #224 from slingamn/channelkeys.1
...
Updates to channel persistence
2018-04-16 13:35:48 +10:00
Daniel Oaks
5811226760
Only allow valid snomasks to be set
2018-04-16 13:20:37 +10:00
Shivaram Lingamneni
f54561171e
try to reduce redundant goroutines
2018-04-15 19:05:22 -04:00
Daniel Oaks
22f9df388d
Fix trailing hack
2018-04-16 02:28:25 +10:00
Daniel Oaks
dd6aacee61
Setup v0.12.0-unreleased devel ver
2018-04-16 02:28:06 +10:00
Daniel Oaks
31e5db9c1e
Release v0.11.0
2018-04-15 19:47:20 +10:00
Shivaram Lingamneni
4778e7bcc7
fixes
...
* Placate `go vet`
* Reorder the `send` loop, clarify things a little
2018-04-15 01:21:32 -04:00
Shivaram Lingamneni
b2f798cf03
eliminate dedicated RunSocketWriter goroutine
2018-04-13 16:13:43 -04:00
Daniel Oaks
27c575e191
Um... name monitor subcommands handler properly
2018-04-12 10:11:45 +10:00
Daniel Oaks
df17b77266
Back to -unreleased
2018-04-11 10:12:11 +10:00
Daniel Oaks
26fcb2ebbc
Release v0.11.0-beta
2018-04-11 09:37:09 +10:00
Shivaram Lingamneni
363b120cc5
fix #227
2018-04-09 12:46:20 -04:00
Daniel Oaks
9e8920394f
Only display modestring on connect if it's set
2018-04-09 16:37:06 +10:00
Daniel Oaks
b1a73142b5
Expose current git commit
2018-04-09 10:08:54 +10:00
Shivaram Lingamneni
8fb5a38851
Updates to channel persistence
...
1. Implement persistent channel keys (#208 )
2. Persist changes to registered channel modes
3. Backend changes for persisting operator status (partial #198 )
2018-04-03 21:49:40 -04:00
Daniel Oaks
b6a997f68c
Unify translations
2018-04-01 23:22:21 +10:00
Daniel Oaks
a95c77bb86
Remove old command line that's no longer valid
2018-04-01 23:07:49 +10:00
Daniel Oaks
3394700def
Fix translation notes
2018-04-01 18:31:30 +10:00
Daniel Oaks
ab6cd599b2
Fix name of ISUPPORT token (REGCOMMANDS -> ACCCOMMANDS)
2018-04-01 12:04:25 +10:00
Daniel Oaks
5cbd4d1de2
Force help entries for every ChanServ command as well
2018-04-01 11:54:49 +10:00
Daniel Oaks
1c636aaec6
nickserv.go: Fix comment
2018-04-01 11:52:37 +10:00
Daniel Oaks
6fb4284e32
Refactor chanserv.go to match nickserv.go, unify the two
2018-04-01 11:51:34 +10:00
Daniel Oaks
9af74d367a
nickserv.go: Move comment to right place
2018-04-01 11:29:13 +10:00
Daniel Oaks
7b8c4e7e91
Refactor nickserv.go to better support NS HELP and translations
2018-04-01 11:22:06 +10:00
Daniel Oaks
a39c46d470
Fix registered-only modes in docs (it's +R, not +r)
2018-04-01 09:50:22 +10:00
Daniel Oaks
46c98c2cf5
Fix CHANSERV OP
2018-04-01 09:33:58 +10:00
Daniel Oaks
a67dfe37ca
Add CHANSERV OP (thanks benharri for making the request!)
2018-04-01 01:26:31 +10:00
Shivaram Lingamneni
7cfa75a59e
Merge pull request #218 from slingamn/socketwriter.1
...
refactor irc.Socket
2018-03-28 13:26:03 -04:00
Shivaram Lingamneni
65f2e95d2b
Merge pull request #222 from slingamn/fakelag.3
...
implement fakelag (#189 )
2018-03-28 13:25:49 -04:00
Shivaram Lingamneni
36018174b0
default fakelag to off, add explicit cooldown config
2018-03-28 13:18:08 -04:00
Shivaram Lingamneni
1bf5e2a7c8
implement fakelag ( #189 )
2018-03-22 11:04:21 -04:00
Shivaram Lingamneni
a8b952da77
store maxSendQBytes in a uint32 to avoid alignment problems
...
The sync.atomic documentation says:
"On both ARM and x86-32, it is the caller's responsibility to arrange
for 64-bit alignment of 64-bit words accessed atomically."
2018-03-19 00:24:20 -04:00
Shivaram Lingamneni
2885b37768
partial fix for #217
...
See discussion on issue; this might not be a complete fix but it's
definitely better than the current behavior.
2018-03-18 00:12:50 -04:00
Shivaram Lingamneni
d1f5c59eef
fix #190
2018-03-17 23:26:07 -04:00
Shivaram Lingamneni
8fd1446627
tweak: clean up Socket.Close()
2018-03-16 18:16:04 -04:00
Shivaram Lingamneni
0a432c9d99
do an actual nonblocking send instead of the len() trick
2018-03-16 12:39:11 -04:00
Shivaram Lingamneni
fa5d4be718
refactor irc.Socket
2018-03-15 19:11:29 -04:00
Shivaram Lingamneni
f5f6b95662
fix #214
2018-03-14 12:51:53 -04:00
Shivaram Lingamneni
b0f262bc0c
Merge pull request #206 from slingamn/ghost.2
...
nickserv: implement GHOST, GROUP, DROP, and INFO
2018-03-14 09:42:20 -04:00
Shivaram Lingamneni
b8f37e4e6c
fix bad interaction between nickTimer.Stop() and accounts.Logout()
...
Sequence of events:
1. client.nickTimer.Stop()
2. client.server.accounts.Logout(client)
3. accounts sees that client is no longer logged in, does client.nickTimer.Touch()
4. 30 seconds later, RandomlyRename resurrects the zombie client
2018-03-14 08:43:50 -04:00
Shivaram Lingamneni
fd34c78d6b
add sadrop command
2018-03-14 06:50:26 -04:00
Shivaram Lingamneni
211ed6af99
add an option to expose a pprof http endpoint
2018-03-13 16:55:30 -04:00
Shivaram Lingamneni
679f25491c
can't reserve a nick that's the name of an unverified account
2018-03-11 14:40:36 -04:00
Shivaram Lingamneni
47b9fe50be
can't register an account with the same name as a registered nick
2018-03-11 13:59:02 -04:00
Shivaram Lingamneni
a022befffe
nickserv: implement GHOST, GROUP, DROP, and INFO
2018-03-02 17:05:47 -05:00
Shivaram Lingamneni
ef99bc48d1
fix #204
...
Empty channels were only cleaned up on PART, not QUIT.
2018-03-01 11:10:46 -05:00
Shivaram Lingamneni
945dec9964
ensure the nick timeout mechanism is cleaned up on client quit
2018-02-28 17:29:18 -05:00
Shivaram Lingamneni
a5897baa2b
clean up redundant error handling
2018-02-28 17:29:18 -05:00
Daniel Oaks
1023f7e20e
Merge pull request #200 from slingamn/issue199.2
...
implement #199
2018-02-27 19:50:09 -08:00
Shivaram Lingamneni
784a3bbf52
Don't send error messages for bad channels in NAMES
...
"There is no error reply for bad channel names."
<https://tools.ietf.org/html/rfc2812#section-3.2.5 >
2018-02-27 15:37:58 -05:00
Shivaram Lingamneni
54123ef9a2
clear failed nick assignments to avoid confusion
2018-02-27 05:22:01 -05:00
Shivaram Lingamneni
62581962a6
fix confusing ips-per-subnet name
2018-02-26 23:52:15 -05:00
Shivaram Lingamneni
be86684e96
implement #199
2018-02-26 22:48:52 -05:00
Daniel Oaks
0ea210c28c
Merge pull request #196 from slingamn/smtp.1
...
implement mailto callbacks
2018-02-23 07:53:36 -08:00
Daniel Oaks
04d7792ed2
Merge pull request #195 from slingamn/stopevent
...
clean up stopEvent (requires go v1.10)
2018-02-23 07:49:22 -08:00
Shivaram Lingamneni
878f9ca94c
fix: store the uncasefolded account name correctly
2018-02-20 04:50:46 -05:00
Shivaram Lingamneni
df41f9b3b0
don't send ACC numerics in response to NickServ commands
2018-02-20 04:44:44 -05:00
Shivaram Lingamneni
89ae261739
implement mailto callbacks
2018-02-20 04:20:30 -05:00
Daniel Oaks
25f8b15232
Merge pull request #194 from slingamn/issue192.1
...
fix #192
2018-02-19 14:54:03 +10:00
Shivaram Lingamneni
02161184cf
clean up stopEvent (requires go v1.10)
2018-02-18 23:18:32 -05:00
Shivaram Lingamneni
5b636371a9
fix SASL enable-disable logic
2018-02-18 22:15:43 -05:00
Shivaram Lingamneni
ced3a17cd3
fix #192
2018-02-18 21:52:39 -05:00
Shivaram Lingamneni
988cb22692
changes to nick reservation
...
* Clients are now renamed, not disconnected, on reservation timeout
* Nick reservation config is now its own subsection
2018-02-18 04:46:14 -05:00
Shivaram Lingamneni
73391f11a6
replace ACC UNREGISTER with nickserv unregister
2018-02-12 01:09:30 -05:00
Shivaram Lingamneni
af256fccd3
remove redundant oper check from DEBUG
2018-02-11 23:58:54 -05:00
Shivaram Lingamneni
b139386391
fix account tags
2018-02-11 06:31:23 -05:00
Shivaram Lingamneni
ad73d68807
refactor account registration, add nick enforcement
2018-02-11 05:30:40 -05:00
Daniel Oaks
a70cc6713c
(hopefully) fix labeled-response behaviour
2018-02-11 08:57:15 +10:00
Daniel Oaks
e0fa97d344
Get labeled-reply working just fine
2018-02-06 00:21:08 +10:00
Daniel Oaks
470109461b
responsebuffer: Handle sending early properly
2018-02-04 21:34:44 +10:00
Daniel Oaks
3680a3fe9a
Merge
2018-02-04 21:32:48 +10:00
Daniel Oaks
3561046bec
Make ERR_CANNOT_RESUME use RPL_NONE numeric
2018-02-04 21:25:08 +10:00
Daniel Oaks
ca6a162696
handlers: Make sure all functions have appropriate comments
2018-02-04 05:48:44 +10:00
Daniel Oaks
52e3dde77a
Move mkcerts package under lib/
2018-02-04 05:34:26 +10:00
Daniel Oaks
2419f69879
Move all errors into errors.go
2018-02-03 22:03:36 +10:00
Daniel Oaks
3ef4c5f799
Split NS/CS commands into separate functions
2018-02-03 21:38:28 +10:00
Daniel Oaks
2ecec25d28
Misc refactoring
2018-02-03 21:15:07 +10:00
Daniel Oaks
d854bac78e
Fix broken modes tests
2018-02-03 20:28:02 +10:00
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)
2018-02-03 20:21:32 +10:00
Daniel Oaks
9f71d9ce12
Add right copyright to handlers.go
2018-02-03 19:48:30 +10:00
Daniel Oaks
afd6ca610c
Split language into a subpackage
2018-02-03 19:46:14 +10:00
Daniel Oaks
1b14230758
...fix info string, how did that get messed up?
2018-02-03 19:30:23 +10:00
Daniel Oaks
47d2ce351c
Centralise all command handlers in handlers.go
2018-02-03 19:28:02 +10:00
Daniel Oaks
29266ce80f
nickserv: Fix help display
2018-02-03 19:00:27 +10:00
Daniel Oaks
6784cf82bf
nickserv: Add NS REGISTER and NS IDENTIFY
2018-02-02 23:44:52 +10:00
Daniel Oaks
872f88eb94
Merge pull request #187 from slingamn/unixdomain.1
...
support unix domain sockets (#184 )
2018-02-02 21:36:13 +10:00
Daniel Oaks
ed1fa7704c
nickserv: Point users to an actual help entry (not a great one, but very slightly better)
2018-02-02 16:37:06 +10:00
Shivaram Lingamneni
2a7f055ef3
support unix domain sockets
2018-02-01 16:19:07 -05:00
Shivaram Lingamneni
bec39ee8cb
log new listener creation
2018-02-01 15:53:44 -05:00
Shivaram Lingamneni
2d6ddf7eb9
kiwi's gateway uses the flag secure
instead of tls
2018-01-31 22:01:13 -05:00
Shivaram Lingamneni
b7f66fb1de
allow WEBIRC to set the TLS flag over local plaintext connections
2018-01-31 21:08:49 -05:00
Shivaram Lingamneni
09a17b32be
disallow WEBIRC after PROXY
2018-01-31 20:04:05 -05:00
Daniel Oaks
7b88d21e58
Possible IdleTimer lock fix
2018-01-30 14:26:29 +10:00
Daniel Oaks
8bc2c0ee67
temp *badbadbad*
2018-01-30 14:20:12 +10:00
Daniel Oaks
cabb3b219d
Fix some config loading issues
2018-01-28 10:52:07 +10:00
Daniel Oaks
16a55cbba8
Add labeled-responses for MODE
2018-01-28 10:51:46 +10:00
Daniel Oaks
00099eb4ba
Make batch IDs smaller
2018-01-28 00:45:16 +10:00
Daniel Oaks
07fc902b21
Labeled-Response
2018-01-28 00:40:34 +10:00
Daniel Oaks
fc9b501a77
Show translator names in INFO
2018-01-25 19:51:02 +10:00
Daniel Oaks
ddd7f0dc99
Add 'are supported by this server' to translatable strings
2018-01-23 23:31:29 +10:00
Daniel Oaks
c5a6d22192
Hopefully apply new languages better, esp. during rehash
2018-01-23 21:27:15 +10:00
Daniel Oaks
638b0c03fc
Better translate HELP entries and indexes
2018-01-23 21:17:14 +10:00
Daniel Oaks
099fd7c08f
Update translation backend stuff a little more
2018-01-23 17:22:39 +10:00
Daniel Oaks
1a5ff05493
Update translation framework
2018-01-23 16:50:19 +10:00
Daniel Oaks
ddec79f8d0
Update translation framework a touch more
2018-01-23 15:09:47 +10:00
Daniel Oaks
75dcff7183
Update translation framework, add badge to readme
2018-01-23 15:06:55 +10:00
Shivaram Lingamneni
4b1aa2b952
remove unused member ChannelRegistry.channels
2018-01-22 13:51:25 -05:00
Shivaram Lingamneni
7edd9032d3
remove newConns channel
2018-01-22 13:51:25 -05:00
Shivaram Lingamneni
728863a17c
move Commands initialization to an init()
2018-01-22 13:51:25 -05:00
Shivaram Lingamneni
62fc2c0cc3
remove Server.commands
2018-01-22 13:47:57 -05:00
Daniel Oaks
b2afd55285
Don't load example translation file, make example actually list all translatable strings
2018-01-22 22:16:07 +10:00
Daniel Oaks
090095b2b9
Set default client language when creating them
2018-01-22 21:30:28 +10:00
Daniel Oaks
275227a461
Make like every client-facing string translatable
2018-01-22 21:26:01 +10:00
Daniel Oaks
0569b5cfaa
RESUME: Fix a few bugs, play modestrings 'n' all
2018-01-22 20:55:20 +10:00
Daniel Oaks
f8b39cfe61
Send fake channel joins on RESUME
2018-01-22 17:58:10 +10:00
Daniel Oaks
7760634efe
Actually let the takeover work somewhat more properly
2018-01-22 17:57:38 +10:00
Daniel Oaks
0d5327de8a
Fix some issues, add RPL_WHOISACCOUNT
2018-01-22 17:57:38 +10:00
Daniel Oaks
ac99e82192
Fix build issues
2018-01-22 17:57:38 +10:00
Daniel Oaks
d09f085b1a
Add very initial RESUME cap and command
2018-01-22 17:57:38 +10:00
Daniel Oaks
e99f22488f
Make LANGUAGE support work
2018-01-22 17:30:31 +10:00
Daniel Oaks
a7fdade41d
Extend to include example translation stuff
2018-01-21 16:49:17 +10:00
Daniel Oaks
ba77a95c81
Very initial beginning of languages implementation
2018-01-21 16:11:16 +10:00
Daniel Oaks
3b3c1c733a
Support bot mode +B
2018-01-07 12:56:51 +10:00
Daniel Oaks
3ba8af714e
Use base 36 when generating message IDs, gives us full 0-9a-z to use while preserving uniqueness nicely
2018-01-04 00:21:35 +10:00
Daniel Oaks
63bd52d471
Make message IDs much shorter (thanks @prawnsalad!)
2018-01-04 00:13:32 +10:00
Daniel Oaks
713fc59691
CAP: Correctly suspend registration for CAP REQ as per the spec
2017-12-28 13:50:42 +10:00
Daniel Oaks
7c624f9a38
Setup v0.10.4-unreleased devel ver
2017-12-28 13:41:36 +10:00
Daniel Oaks
5e9f0fd411
Release v0.10.3
2017-12-26 12:43:37 +10:00
Daniel Oaks
197ab520bf
Change casemapping name and advertisement to match new spec
2017-12-26 12:30:04 +10:00