Commit Graph

1251 Commits

Author SHA1 Message Date
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
Daniel Oaks 7eef390756 Handle translations a little better 2019-02-04 03:54:10 +10:00
Daniel Oaks 46f8ef9ed3 Be less strict with our language file loading, and handle multiple credits better 2019-02-03 20:21:07 +10:00
Daniel Oaks cfbb4361dc Restrict ident length similar to other servers 2019-02-03 19:24:59 +10:00
Daniel Oaks 8cd5db1194 Restrict idents as other servers do 2019-02-03 18:49:42 +10:00
Shivaram Lingamneni c34d9e0b72 more lenient casefolding for skeletons 2019-02-03 02:45:02 -05:00
Daniel Oaks e7399ba2b5
Merge pull request #339 from slingamn/startuplog
rename the "startup", "rehash", and "shutdown" log types to "server"
2019-02-03 12:37:24 +10:00
Daniel Oaks 1f33ad290c
Merge pull request #334 from slingamn/confusables.4
implement confusables prevention (#178)
2019-02-03 12:33:44 +10:00
Shivaram Lingamneni cbe0f79f73 unify "startup", "rehash", and "shutdown" log categories as "server" 2019-02-02 21:13:01 -05:00
Shivaram Lingamneni f48af3ee44 correctly support disabling caps with CAP REQ, fixes #337 2019-02-02 20:22:07 -05:00
Shivaram Lingamneni 35948d2e5b refactor some conditions for clarity 2019-01-31 17:34:06 -05:00
Shivaram Lingamneni 18c0c9da45 use our fork of mtibben/confusables for now 2019-01-30 22:02:14 -05:00
Shivaram Lingamneni b9b2553a2f use the TR39 skeleton algorithm to prevent confusables (#178) 2019-01-30 21:48:53 -05:00
Shivaram Lingamneni 8438afcc5c fix: usernames from ident don't get a ~ 2019-01-28 23:35:00 -05:00
Shivaram Lingamneni 4bbba5b478 fix the issue for AllNickmasks as well 2019-01-28 23:12:25 -05:00
Shivaram Lingamneni a2a9788f39 fix spurious bidi violations when casefolding the nickmask of an RTL nick 2019-01-28 18:15:35 -05:00
Shivaram Lingamneni 96737ea6d7 fix a memory leak
Even after the timer fired, we were retaining a pointer to it;
clean those up too along with the other cleanup tasks.
2019-01-23 02:06:00 -05:00
Shivaram Lingamneni 854d85a474 add schema change for [dk]line refactor 2019-01-22 17:18:38 -05:00
Shivaram Lingamneni 6bdc6af186 refactor [dk]lines, implement #144 2019-01-22 17:18:38 -05:00
Shivaram Lingamneni f154ea9583 add an error message for schema changes 2019-01-22 01:25:32 -05:00
Daniel Oaks 85276c5e6d Merge branch 'master' of github.com:oragono/oragono 2019-01-12 22:18:08 +10:00
Daniel Oaks 63fde2d62a Re-enable MaxLine 2019-01-12 22:17:51 +10:00
Shivaram Lingamneni 0475fe882c fix ns register validation bug 2019-01-09 15:03:44 -05:00
Shivaram Lingamneni d6494957a4 forbid logging in twice via nickserv 2019-01-05 20:59:42 -05:00
Shivaram Lingamneni 598d9a025b review fix: add maxParams for service commands 2019-01-04 11:45:59 -05:00
Shivaram Lingamneni 4caa362f18 fix histserv nick reservation 2019-01-04 10:32:08 -05:00
Shivaram Lingamneni a52d167278 additional defensive check in EnforcementStatus 2019-01-03 23:44:01 -05:00
Shivaram Lingamneni efc0ce3b81 fix an edge case in configurable nickname reservation 2019-01-03 23:05:47 -05:00
Shivaram Lingamneni b80df0885f refactor services code 2019-01-03 22:34:11 -05:00
Daniel Oaks ea970f94a0
Merge pull request #323 from slingamn/initdb.1
fix #322
2019-01-03 09:18:19 +10:00
Shivaram Lingamneni 501bb1e5c5 replay JOIN/PART/QUIT/KICK as PRIVMSG from HistServ
see https://github.com/ircv3/ircv3-specifications/issues/293
2019-01-02 17:58:04 -05:00
Shivaram Lingamneni f20abf414f don't log an error logline for an incorrect SASL password 2019-01-02 10:29:42 -05:00
Shivaram Lingamneni 2ee89b15b3 per-user settings for nickname enforcement 2019-01-02 10:15:59 -05:00
Shivaram Lingamneni d0ded906d4 fix a fairly bad bug where nicks could get out of sync
during nick change, removeInternal(client) was being called even before checking
whether the new nick was in use or reserved. Reproduction steps:

1. Log in a client 'alice'
2. Log in a client 'bob'
3. bob issues /nick alice, which fails (correctly) with:
:oragono.test 433 bob alice :Nickname is already in use
4. alice issues /msg bob hi, which fails (incorrectly) with:
:oragono.test 401 alice bob :No such nick
2019-01-02 10:15:59 -05:00
Shivaram Lingamneni 9a2117f75d preregNick doesn't need synchronization
(since it's only accessed from the client's own goroutine)
2019-01-02 10:15:59 -05:00
Shivaram Lingamneni f94f737b31 add support for login throttling 2019-01-02 10:15:59 -05:00
Shivaram Lingamneni 3cd3601a30 refactor join/part 2019-01-02 09:55:45 -05:00
Shivaram Lingamneni 960d51159c add ClientDetails struct for getting a snapshot of client state 2019-01-02 09:55:45 -05:00
Shivaram Lingamneni c2b2559ab4 avoid some uses of Sprintf for loglines 2019-01-02 09:55:45 -05:00
Shivaram Lingamneni ec4f1c189a pointless optimizations to the logger 2019-01-01 16:43:35 -05:00
Shivaram Lingamneni 6402a69fb9 use the rehash log category consistently 2018-12-31 01:44:31 -05:00
Shivaram Lingamneni d6d3a10817 implement #322
Automatically create the datastore on `oragono run` if it doesn't exist.
See also #302.
2018-12-31 01:44:31 -05:00
Shivaram Lingamneni 7c36ec3f9d allow auto-ops (halfop and higher) to bypass channel join restrictions 2018-12-30 18:28:56 -05:00
Shivaram Lingamneni a4b3fb0e83 changes to client idle time counting
1. Remove leaveClientIdle (unused)
2. s/leaveClientActive/leaveClientIdle/
3. make ISON a leaveClientIdle command (some clients send it periodically
   if a /msg window is left open)
2018-12-30 18:17:24 -05:00
Shivaram Lingamneni ba2aacaf5b fix #297
add validation for isupport tokens
2018-12-30 18:17:24 -05:00
Shivaram Lingamneni b34bab16a7 ensure that identical PRIVMSG share a time tag 2018-12-30 18:17:24 -05:00
Shivaram Lingamneni d5eade5494 force trailing zeroes in timestamp wire format
According to jwheare, ISO 8601 doesn't specify the behavior one way
or the other, and the server-time spec is also ambiguous, but this
is safest.
2018-12-30 18:17:24 -05:00
Shivaram Lingamneni ac480d782f add millisecond resolution to loglines 2018-12-30 18:17:24 -05:00
Shivaram Lingamneni f35a1c7212 use GenerateSecretToken for msgids 2018-12-30 18:17:24 -05:00
Shivaram Lingamneni c95ed46949 add whois support for services 2018-12-30 18:17:24 -05:00
Daniel Oaks cd339281e4
Merge pull request #320 from slingamn/replay.1
history replay enhancements
2018-12-29 10:15:02 +10:00
Shivaram Lingamneni 2c7c8fbaf9 history replay enhancements 2018-12-28 13:45:55 -05:00
Shivaram Lingamneni 525b2c52b1 fix hostserv help string 2018-12-28 11:07:08 -05:00
Shivaram Lingamneni f58c873f84 fix RPL_INVITING response to match modern ircdocs 2018-12-23 13:49:03 -05:00
Shivaram Lingamneni b6b4d365bc fix #313 2018-12-23 13:30:25 -05:00
Daniel Oaks f912f64f21
Merge pull request #304 from slingamn/history.1
draft/resume-0.2 implementation, message history support
2018-12-15 04:37:16 +10:00
Daniel Oaks e1aa3e0f4a
Merge pull request #305 from slingamn/passwd.1
implement NS PASSWD for password changes
2018-12-07 10:43:10 +10:00
Shivaram Lingamneni 92eca4d795 add more test cases 2018-12-06 06:46:11 -05:00
Shivaram Lingamneni 40e63dbbe8 fix #306
Fix spurious bidi rule violations in casefolding channel names
by stripping the # before starting the casefolding.
2018-12-05 22:39:01 -05:00
Shivaram Lingamneni 48f9b5e4fa implement NS PASSWD for password changes 2018-11-28 18:25:15 -05:00
Shivaram Lingamneni c8cf0befc6 fixes to irc/socket.go
* fix a race condition: a call to `Write` does not spawn a writer goroutine
  if the trylock is held, so `BlockingWrite` must check for fresh data after
  releasing the trylock
* streamline some close/finalize logic
2018-11-28 00:24:44 -05:00
Shivaram Lingamneni a0bf548fc5 draft/resume-0.2 implementation, message history support 2018-11-26 05:23:27 -05:00
Sean Enck c20afab7c2
prevents default create/open of buntdb, requires user to call initdb 2018-11-19 14:10:12 -05:00
Daniel Oaks 55503961cb Release v0.12.0 2018-10-15 12:18:23 +10:00
Shivaram Lingamneni 10d4f77638 fix PROXY protocol support for IPv6
1. Handle PROXY lines with IPv6 addresses starting with ::
(similar to WEBIRC in issue #211)

2. Strip v6 mapping from v4 addresses when handling proxied IPs.
2018-09-03 00:38:32 -04:00
Shivaram Lingamneni 0e5842b33a fix #211 2018-08-28 19:28:49 -04:00
Shivaram Lingamneni c3d197f4ff make unix domain socket permissions configurable 2018-08-28 19:28:49 -04:00
Shivaram Lingamneni 831969f1f0
Merge pull request #292 from slingamn/nilreceivers
re-add nil receiver for ModeSet.HasMode
2018-08-27 23:56:28 -04:00
Shivaram Lingamneni c72a84e49f
Merge pull request #284 from slingamn/passhashing.1
new password hashing technique
2018-08-27 23:55:54 -04:00
Shivaram Lingamneni 86836905b3 re-add nil receiver for ModeSet.HasMode 2018-08-23 10:30:28 -04:00
Daniel Oaks 1fd63672f3
Merge pull request #290 from slingamn/rpl330.1
Fix a bug in 330 RPL_WHOISACCOUNT
2018-08-20 16:48:38 +10:00
Shivaram Lingamneni ac08ce0f20 move ChannelOperator check into hasPrivs helper 2018-08-17 16:22:32 -04:00
Shivaram Lingamneni a18283e2de fix a crash when SAMODE'ing in a channel you're not joined to 2018-08-17 12:44:49 -04:00
Shivaram Lingamneni 1fb9bd7208 Fix a bug in 330 RPL_WHOISACCOUNT
According to https://defs.ircdocs.horse/defs/numerics.html, 330 RPL_WHOISACCOUNT
takes 4 parameters: `<client> <nick> <authname> :<info>`. We were omitting
the second parameter (the target nick).

Also refactor locking.
2018-08-17 11:45:32 -04:00
Shivaram Lingamneni cbc2b07d35 Merge remote-tracking branch 'origin/master' into passhashing.2 2018-08-15 13:02:05 -04:00
Shivaram Lingamneni a2c2419084 remove stackimpact 2018-08-14 23:26:43 -04:00
Shivaram Lingamneni 6eda236eab remove allow-multiple-per-connection 2018-08-14 22:50:20 -04:00
Shivaram Lingamneni b45b863fc4 unregister capab was renamed to accreg, but i missed this occurrence 2018-08-14 22:48:06 -04:00
Shivaram Lingamneni a4546c418b fix miscounting in LUSERS 2018-08-08 17:56:12 -04:00
Shivaram Lingamneni 7cd5b8473c fix a bug in CS UNREGISTER 2018-08-06 10:08:58 -04:00
Shivaram Lingamneni 578ca2fdf6 add support for service command aliases 2018-08-06 10:08:58 -04:00
Shivaram Lingamneni 3c12fb6254 fix #283 (remove unnecessary log.Fatal)
The server should never crash during rehash, even if the config is invalid.
2018-08-06 10:08:58 -04:00
Shivaram Lingamneni eb5f2c1db9 fix webirc password handling 2018-08-06 04:55:39 -04:00
Shivaram Lingamneni dfb0a57040 refactor the password hashing / password autoupgrade system 2018-08-06 02:26:21 -04:00
Daniel Oaks 6260869068 Upgrade password hashing.
Previously, we generated and prepended a long salt before generating
password hashes. This resulted in the hash verification cutting off long
before it should do. This form of salting is also not necessary with
bcrypt as it's provided by the password hashing and verification
functions themselves, so totally rip it out.

This commit also adds the functionality for the server to automagically
upgrade users to use the new hashing system, which means better
security and more assurance that people can't bruteforce passwords.

No need to apply a database upgrade to do this, whoo! \o/
2018-08-05 22:51:15 -04:00
Shivaram Lingamneni 7154f14781 move handling of RecoverFromErrors into LoadConfig 2018-07-16 04:08:24 -04:00
Shivaram Lingamneni 1383190249 refactor rehash to rely more on server.config 2018-07-16 03:46:40 -04:00
Shivaram Lingamneni 318da22448 simplify CAS logic a bit 2018-07-02 16:33:39 -04:00
Daniel Oaks 6ba741814d
Merge pull request #275 from slingamn/confirmations.1
some tweaks to account/channel unregistration
2018-07-02 16:00:49 +10:00
Shivaram Lingamneni 1e513a717c expand bitset tests 2018-06-27 17:42:39 -04:00
Shivaram Lingamneni a1bbe0c7f2 review fix 2018-06-25 22:55:50 -04:00