Shivaram Lingamneni
dbf03d5c5e
add AcquireWithTimeout for semaphores
2019-05-20 16:48:13 -04:00
Shivaram Lingamneni
d5ebebaa5b
add uncommitted test file
2019-05-20 12:34:30 -04:00
Shivaram Lingamneni
38b228af6a
review fixes
2019-05-20 02:56:49 -04:00
Shivaram Lingamneni
f10ed05f86
fix a lock access in ResumeManager
2019-05-19 06:17:30 -04:00
Shivaram Lingamneni
8fc588375b
implement user preferences system
2019-05-19 06:17:30 -04:00
Shivaram Lingamneni
25974b6881
fix #487
2019-05-19 05:12:12 -04:00
Daniel Oaks
b8c9de5379
Make strings easier to understand
2019-05-17 13:41:32 +10:00
Shivaram Lingamneni
58d089020e
send command processing errors to the originating session only
2019-05-15 22:30:35 -04:00
Daniel Oaks
45fb9cade0
Merge pull request #491 from slingamn/munge
...
formalize token munging code
2019-05-16 12:20:14 +10:00
Daniel Oaks
9fbfee62d5
Update translations
2019-05-16 08:10:48 +10:00
Shivaram Lingamneni
7d53dd5d81
formalize token munging code
2019-05-15 16:17:13 -04:00
Shivaram Lingamneni
0346c23ae0
fix #387
2019-05-15 01:30:21 -04:00
Shivaram Lingamneni
ea70580adc
fix #488
2019-05-14 21:21:57 -04:00
Shivaram Lingamneni
8f0977f59e
human-readable times for NS SESSIONS
2019-05-13 02:24:58 -04:00
Shivaram Lingamneni
316d45917d
pass the correct quit message when a proxied client is banned
...
If you were banned and the ban was only detected when you proxied
(because you were proxying from a DLINE'd IP), you'd get an incorrect
quit message: `QUIT: Bad or unauthorized PROXY command`. This propagates
the correct ban message as the quit line.
2019-05-13 02:19:00 -04:00
Shivaram Lingamneni
89a50d772c
WHO should leave the client idle
...
Some clients seem to automatically poll for channel state
2019-05-13 00:43:29 -04:00
Shivaram Lingamneni
6ded2ea466
fix #483
2019-05-13 00:43:29 -04:00
Shivaram Lingamneni
0b55fed7c5
consolidate acceptClient into RunNewClient
2019-05-12 20:57:53 -04:00
Shivaram Lingamneni
80a594802f
remove more indirections
2019-05-12 20:57:53 -04:00
Shivaram Lingamneni
353aeb0389
normalize most times in the app to UTC
...
Fixes #480
2019-05-12 20:57:53 -04:00
Shivaram Lingamneni
13dda00989
Merge pull request #481 from slingamn/cloaks.5
...
implement ip cloaking
2019-05-12 20:23:45 -04:00
Shivaram Lingamneni
18cf816396
add a manual entry for cloaks
2019-05-12 19:19:36 -04:00
Shivaram Lingamneni
11076be0ee
review fixes
2019-05-12 16:26:23 -04:00
Shivaram Lingamneni
b8ca8ec852
fix #463
2019-05-12 04:50:43 -04:00
Shivaram Lingamneni
2451737f87
give cloaks their own package
2019-05-12 04:03:50 -04:00
Shivaram Lingamneni
79c730dd44
fix #429
2019-05-12 03:27:02 -04:00
Shivaram Lingamneni
f2eb2b05f2
fix #360
2019-05-12 03:25:02 -04:00
Shivaram Lingamneni
18aecfeed0
fix #362
2019-05-12 03:20:31 -04:00
Shivaram Lingamneni
c28e6d13f9
implement ip cloaking
2019-05-12 02:52:12 -04:00
Shivaram Lingamneni
5331afbdd4
Merge remote-tracking branch 'origin/master' into compat.4
2019-05-11 21:56:41 -04:00
Shivaram Lingamneni
15289bd7db
review fixes
2019-05-11 21:48:36 -04:00
Shivaram Lingamneni
c193def606
fix some issues found with staticcheck.io
2019-05-10 01:44:14 -04:00
Shivaram Lingamneni
ce6a3e42df
load isupport directly into the config object
...
eliminates Server.configurableStateMutex
2019-05-10 00:32:10 -04:00
Shivaram Lingamneni
61d666a25b
load motd directly into the config object
2019-05-10 00:13:48 -04:00
Shivaram Lingamneni
fbc6c84a01
add client compatibility switches
2019-05-09 15:41:08 -04:00
Shivaram Lingamneni
278e4acf57
fix handling of nil session in reattach code
2019-05-09 05:03:21 -04:00
Shivaram Lingamneni
08ebfb1676
fix redundant JOIN line
2019-05-09 03:57:02 -04:00
Shivaram Lingamneni
60c8f286e8
fix several session destruction bugs
2019-05-08 20:55:34 -04:00
Shivaram Lingamneni
da656c07c8
add NICKSERV SESSIONS command to list sessions
2019-05-08 18:18:05 -04:00
Shivaram Lingamneni
b11bf503e7
improvements to message replay code
2019-05-08 03:02:48 -04:00
Shivaram Lingamneni
2a7d734098
disallow AUTHENTICATE when already auth'ed
2019-05-07 23:32:51 -04:00
Shivaram Lingamneni
74afeaed55
tweaks to NAMES / WHO privacy
2019-04-28 21:20:18 -04:00
Shivaram Lingamneni
51465b4a3a
strip out the +a away mode
2019-04-28 15:12:48 -04:00
Shivaram Lingamneni
b9501722a9
remove all MODE +a / -a lines
...
as per discussion in #oragono, these are not sent by other servers
2019-04-28 14:52:15 -04:00
Shivaram Lingamneni
d6b22b925a
fix #468
2019-04-28 14:38:27 -04:00
Shivaram Lingamneni
d6c970f521
names should respect invisibility
2019-04-28 02:48:19 -04:00
Shivaram Lingamneni
30f6e11698
fix #400
...
Also fix some issues with STATUSMSG
2019-04-28 02:48:19 -04:00
Daniel Oaks
267c51bbbf
Review fix
2019-04-28 15:57:42 +10:00
Daniel Oaks
22ed6bb1f1
Detect cap-notify clients better (as recommended by cap spec)
2019-04-28 01:50:43 +10:00
Daniel Oaks
c84ef97b90
Make CAP version upgrading work as recommended by cap spec
2019-04-28 01:50:16 +10:00
Daniel Oaks
cb1de17ffc
Omit SASL cap when auth is disabled
2019-04-28 01:39:02 +10:00
Daniel Oaks
ab4f186673
Merge pull request #458 from slingamn/multisocket.11
...
minimum viable product for bouncer
2019-04-28 01:22:36 +10:00
Shivaram Lingamneni
97e71dfef7
extract Semaphore to utils package
2019-04-15 11:15:31 -04:00
Shivaram Lingamneni
fe6a520fa4
temporarily assign the client a nick during reattach
...
(So that the registration burst displays correctly)
2019-04-14 22:05:53 -04:00
Shivaram Lingamneni
4af783ed9e
fix #449
2019-04-14 20:48:50 -04:00
Shivaram Lingamneni
c2faeed4b5
initial implementation of bouncer functionality
2019-04-14 20:48:50 -04:00
Daniel Oaks
0b644065b7
Review and spec updates
2019-04-08 11:36:48 +10:00
Daniel Oaks
7bcba602ec
Don't check for * again, we handle that properly now
2019-04-08 10:54:52 +10:00
Daniel Oaks
8f47b3a6cf
Actually advertise the draft/acc capability lol
2019-04-08 10:42:17 +10:00
Daniel Oaks
4df71df454
Initial ACC update to match the new spec
2019-04-08 10:40:19 +10:00
Shivaram Lingamneni
a729772f0c
fix a deadlock in CS AMODE
2019-04-07 02:12:14 -04:00
Daniel Oaks
8c7027c604
Merge pull request #446 from slingamn/chanregrefactor.6
...
refactor channel registration
2019-04-04 21:59:25 +10:00
Shivaram Lingamneni
42dca34c1f
ensure each target sees distinct msgids
2019-03-19 05:51:33 -04:00
Shivaram Lingamneni
18a8b075ea
fix #425 and #395
2019-03-19 04:40:48 -04:00
Shivaram Lingamneni
63149e754a
update registeredChannels cache on rename as well
2019-03-14 03:21:45 -04:00
Shivaram Lingamneni
8a11768c6a
disallow squatting a registered channel name via RENAME
2019-03-12 05:02:31 -04:00
Shivaram Lingamneni
63029e2ff5
refactor channel registration
2019-03-12 04:16:16 -04:00
Shivaram Lingamneni
26cddf2f59
fix a regression introduced by #444
2019-03-11 18:58:28 -04:00
Daniel Oaks
baa7e5af0b
Merge pull request #442 from slingamn/message_tags.5
...
upgrade message-tags to non-draft version
2019-03-12 08:47:08 +10:00
Daniel Oaks
64bf4a10c6
Merge pull request #444 from slingamn/issue300.1
...
fix #300
2019-03-12 08:41:10 +10:00
Shivaram Lingamneni
713df3a34d
fix #300
...
Also upgrade RENAME to latest draft specification
2019-03-11 07:03:51 -04:00
Shivaram Lingamneni
2e88f82e41
remove indirections in Fakelag and NickTimer
2019-03-08 05:36:54 -05:00
Shivaram Lingamneni
85493ef031
upgrade message-tags to non-draft version
2019-03-07 04:31:08 -05:00
Shivaram Lingamneni
12e3ca9b4d
work around a Tor bug
...
https://bugs.torproject.org/29665 describes how single-onion circuits
will close unless the client sends data every 60 seconds. To cause the
client to send these messages, have Oragono send the client a PING every
30 seconds.
2019-03-05 22:10:30 -05:00
Shivaram Lingamneni
18169cbedf
disallow resume from tor to non-tor
2019-02-26 16:39:10 -05:00
Shivaram Lingamneni
5f26023d88
Merge remote-tracking branch 'origin/master' into tor.2
2019-02-26 14:46:15 -05:00
Daniel Oaks
9ec4f76c60
Merge pull request #405 from slingamn/language_loading.2
...
fix #384
2019-02-26 21:14:43 +10:00
Shivaram Lingamneni
d13f58acf0
review fixes
2019-02-25 22:56:08 -05:00
Shivaram Lingamneni
b0f89062fa
add support for tor ( #369 )
2019-02-25 22:09:09 -05:00
Shivaram Lingamneni
d43ce07b66
consume resume token during VerifyToken
...
Independently of this, ClientLookupSet.Resume ensures that at most one
resume can succeed, so this doesn't actually change the behavior.
But ResumeManager should be a standalone example of how to implement
resume without race conditions.
2019-02-24 21:07:12 -05:00
Shivaram Lingamneni
7018e3693b
optimization: check IsLoggingRawIO before attempting to log input
2019-02-24 21:07:12 -05:00
Shivaram Lingamneni
f790a910cd
change the b32 alphabet for absolutely no reason
2019-02-24 21:07:12 -05:00
Shivaram Lingamneni
0d2cf21cec
clean something up in ApplyProxiedIP
2019-02-24 21:07:12 -05:00
Daniel Oaks
1dbe01b09a
Merge pull request #416 from oragono/master+tlchanges
...
Improve translations
2019-02-24 17:57:26 +10:00
Shivaram Lingamneni
a4a143ef56
new unreleased version
2019-02-24 02:19:50 -05:00
Daniel Oaks
f396003ec9
Release v1.0.0
2019-02-24 17:02:04 +10:00
Daniel Oaks
7e6e7742f9
Band-aid NS REGISTER fix
2019-02-23 21:27:19 +10:00
Daniel Oaks
d738688b2a
Simplify NS GROUP help text
2019-02-22 12:53:01 +10:00
Daniel Oaks
6d109e92a5
Fix dodgy TL strings to make them easier to translate
2019-02-22 12:37:11 +10:00
Shivaram Lingamneni
baa2c3b581
send the response line to NICK via the response buffer
2019-02-20 22:20:23 -05:00
Shivaram Lingamneni
bbd99b655a
A labeled command that has 0 response lines should receive an empty batch
...
See discussion on #391 .
2019-02-20 21:40:25 -05:00
Shivaram Lingamneni
c6b9fe0218
fix #384
2019-02-19 03:12:47 -05:00
Shivaram Lingamneni
fcef121aac
bump oragono version to 1.0.0-rc1
2019-02-18 03:35:14 -05:00
Shivaram Lingamneni
29c6db593a
fix missing Unescape call
2019-02-17 22:59:13 -05:00
Shivaram Lingamneni
729d4b377c
revised string from discussion on ticket
2019-02-17 22:47:41 -05:00
Shivaram Lingamneni
a211ddfcdb
work around znc's broken nickserv support
2019-02-17 21:29:04 -05:00
Daniel Oaks
09909e3b3d
Merge pull request #396 from slingamn/issue394
...
fix #394
2019-02-18 10:24:35 +10:00
Daniel Oaks
7cf8aaccf6
Merge pull request #352 from slingamn/chanreglimit.1
...
track channel registrations per account
2019-02-18 07:08:57 +10:00
Daniel Oaks
c604638b7c
Merge pull request #386 from slingamn/regenabled
...
allow SAREGISTER even when normal registration is fully disabled
2019-02-18 07:08:04 +10:00
Shivaram Lingamneni
a5b9634783
fix #394
2019-02-17 14:29:04 -05:00
Shivaram Lingamneni
344a1d7e48
fix #392
2019-02-17 06:51:48 -05:00
Shivaram Lingamneni
a5f04495a1
fix #389
2019-02-15 13:34:09 -05:00
Shivaram Lingamneni
d147708158
allow SAREGISTER even when normal registration is fully disabled
2019-02-14 20:42:02 -05:00
Shivaram Lingamneni
754934b429
unregister should boot clients if sasl is required
2019-02-14 15:42:07 -05:00
Shivaram Lingamneni
9ce1d31b90
fix HS STATUS for logged-out users
2019-02-14 15:08:45 -05:00
Shivaram Lingamneni
519d19c364
fix #364
2019-02-13 16:48:26 -05:00
Daniel Oaks
a273ef624c
Merge pull request #377 from slingamn/kickfail
...
fix another three bugs that were reported today
2019-02-14 07:23:56 +10:00
Shivaram Lingamneni
c019fa3ab2
fix #375
2019-02-13 15:48:15 -05:00
Shivaram Lingamneni
e2e07c0eee
fix #374
2019-02-13 15:09:23 -05:00
Shivaram Lingamneni
b7ec121c19
fix some KICK issues
...
reported by bogdomania
1. KICK without privileges incorrectly returned ERR_CANNOTSENDTOCHAN
2. Halfops should be able to kick voice and unprivileged, but not other halfops
2019-02-13 14:38:10 -05:00
Shivaram Lingamneni
4c7a5585db
fix #371
2019-02-13 13:22:00 -05:00
Daniel Oaks
78a0b322f7
Make it act as intended
2019-02-13 23:42:03 +10:00
Daniel Oaks
53ed368701
Draft implementation of draft/setname
2019-02-13 23:22:16 +10:00
Shivaram Lingamneni
7786043275
make the land-grab check case-insensitive
2019-02-13 03:19:47 -05:00
Shivaram Lingamneni
6d690b0e36
add loglines for account registration, login, and unregistration
2019-02-13 02:54:27 -05:00
Shivaram Lingamneni
f40c363170
compatibility mode for NS IDENTIFY
...
Standard nickserv clients like znc's expect (by default) to send just:
PRIVMSG NickServ :identify $passphrase
with the account name assumed to be the currently held nick.
Let's support this in the common case where the client doesn't have a certfp
(if it does, the first argument is the account name, not the passphrase).
2019-02-13 02:54:27 -05:00
Shivaram Lingamneni
5beb0764f2
review fix
2019-02-12 12:53:58 -05:00
Shivaram Lingamneni
e4c9351254
fix: set the existing channels unregistered
2019-02-12 02:09:31 -05:00
Shivaram Lingamneni
afe94d43c3
update resume support to draft/resume-0.3
2019-02-12 01:03:19 -05:00
Daniel Oaks
3220242fae
Merge pull request #358 from slingamn/resumefix.3
...
RESUME should end cap negotiation without requiring CAP LS
2019-02-10 20:59:23 +10:00
Daniel Oaks
6ca2cb26d7
Merge pull request #351 from slingamn/changelog.2
...
changelog and manual updates, plus some last-minute fixes
2019-02-10 20:45:45 +10:00
Shivaram Lingamneni
46083f5739
fix typo in CHATHISTORY help url
...
reported by bogdomania
2019-02-10 02:09:48 -05:00
Shivaram Lingamneni
35abe7940a
RESUME should end cap negotiation without requiring CAP LS
2019-02-09 20:26:32 -05:00
Shivaram Lingamneni
370255bec1
review fixes
2019-02-06 15:47:20 -05:00
Daniel Oaks
fef58bb935
Merge pull request #354 from slingamn/issue353
...
don't send the client its own on-join MODE line
2019-02-07 06:37:10 +10:00
Shivaram Lingamneni
2910eda737
fix a nit
2019-02-06 14:28:17 -05:00
Chris Smith
34a9a37b82
Fix usernames being used in place of hostnames.
...
Closes #355
2019-02-06 19:14:32 +00:00
Shivaram Lingamneni
20b8ba8cae
don't send the client its own on-join MODE line
...
Fixes #353 .
2019-02-06 13:50:45 -05:00
Shivaram Lingamneni
eff2571096
limit the number of channels a client can join
2019-02-06 04:55:05 -05:00
Shivaram Lingamneni
ff7bbc4a9c
track channel registrations per account
...
* limit the total number of registrations per account
* when an account is unregistered, unregister all its channels
2019-02-06 04:34:45 -05:00
Shivaram Lingamneni
73f36fba08
NS REGISTER needs a login throttle check as well
2019-02-05 20:23:32 -05:00
Shivaram Lingamneni
775ead700f
prevent nick reservation land-grabs
2019-02-05 20:18:40 -05:00
Shivaram Lingamneni
7608e0c76c
fix #121
2019-02-05 20:17:55 -05:00
Daniel Oaks
457b7eaf11
Review fixes
2019-02-06 08:45:09 +10:00
Daniel Oaks
8ecf96d447
Set uninteresting username if user's using a special nick
2019-02-06 08:33:15 +10:00
Daniel Oaks
71a33890b8
Merge pull request #344 from slingamn/history.4
...
add CHATHISTORY and HISTORY implementations
2019-02-05 22:16:45 +10:00
Shivaram Lingamneni
a9f9f725b1
review fixes
2019-02-05 04:29:32 -05:00
Shivaram Lingamneni
928caba922
Merge pull request #345 from slingamn/saslonly.3
...
add sasl-only config option
2019-02-05 04:10:35 -05:00
Shivaram Lingamneni
36612f6e2d
review fixes
2019-02-05 03:05:05 -05:00
Shivaram Lingamneni
bf1d758de9
simplify username logic
2019-02-05 02:42:13 -05:00
Shivaram Lingamneni
e094c2a9c5
add tests for masking in limiter/throttler
2019-02-05 02:25:16 -05:00
Shivaram Lingamneni
eb8f0e50df
fix masking bug
...
IP.Mask() returns a new IP value, rather than modifying its target in place
2019-02-05 02:25:16 -05:00
Shivaram Lingamneni
1c23af8767
add sasl-only config option
2019-02-05 00:51:58 -05:00
Shivaram Lingamneni
463de94610
allow history queries against PRIVMSG of other clients, if the accounts match
2019-02-04 12:46:04 -05:00
Shivaram Lingamneni
51fcedc5a1
review fix
2019-02-04 12:16:28 -05:00
Shivaram Lingamneni
f6b3008f8f
add CHATHISTORY and HISTORY implementations
2019-02-04 05:33:36 -05:00
Shivaram Lingamneni
057d00b2c8
Merge pull request #341 from oragono/restrict-usernames
...
Restrict idents as other servers do
2019-02-03 15:24:08 -05:00
Daniel Oaks
2ce203a6d8
Setup v0.13.0-unreleased devel ver (I forgot to do this~)
2019-02-04 06:18:40 +10:00
Daniel Oaks
e8309aee79
Avoiding a crash when getting a short ident is a good thing
2019-02-04 05:02:13 +10:00
Daniel Oaks
151002e232
Up identlen default to 20
2019-02-04 05:01:46 +10:00