Commit Graph

42 Commits

Author SHA1 Message Date
Shivaram Lingamneni 26fd3e69a8 fix #749 2020-03-16 13:48:14 -04:00
Shivaram Lingamneni 4391b1ba5a restrict ASCII mode to printable characters only 2019-12-22 09:57:49 -05:00
Shivaram Lingamneni 781bb6b051 more systematic bad-character check in permissive mode 2019-12-22 09:31:51 -05:00
Shivaram Lingamneni 2d4dbeba1c disallow some bad characters in foldPermissive 2019-12-22 09:19:28 -05:00
Shivaram Lingamneni f9b5224ae0 have realSkeleton use cases.Fold as well 2019-12-18 12:26:09 -05:00
Shivaram Lingamneni 91d6888b7e fix #693 2019-12-18 12:26:09 -05:00
Shivaram Lingamneni baa71ba2be remove unnecessary special-casing for ASCII 2019-10-23 02:18:45 -04:00
Shivaram Lingamneni 332f0d8d91 fix #644 2019-10-16 12:51:40 -04:00
Shivaram Lingamneni 938ce7e435 fix #331 2019-07-14 16:17:37 -04:00
Shivaram Lingamneni 24c46235a3 remove m -> rn skeleton mapping again 2019-06-24 06:23:10 -04:00
Shivaram Lingamneni b075ea6eb9 use regular Skeleton instead of SkeletonTweaked
dan: "I probably wouldn't expect those mappings to cause much
trouble at all for legitimate users at the end of the day"

shivaram: [concurs]
2019-06-24 00:16:42 -04:00
Shivaram Lingamneni 6e9a31a574 use confusables.SkeletonTweaked to fix the test 2019-06-19 05:24:09 -04:00
Shivaram Lingamneni be4d098945 fix an edge case in skeletonization
'm' skeletonizes to 'rn' (but is exempted by the isBoring check),
but the fullwidth 'm' does not skeletonize to anything. The root cause
of this is the (still unexplained) patchiness of the skeleton mapping
for fullwidth -> standard-width Latin characters; the fix is to perform
width mapping first, before either skeletonization or isBoring.
2019-06-18 02:34:16 -04: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
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 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
Daniel Oaks 2419f69879 Move all errors into errors.go 2018-02-03 22:03:36 +10:00
Daniel Oaks 197ab520bf Change casemapping name and advertisement to match new spec 2017-12-26 12:30:04 +10:00
Daniel Oaks ac91a3e484 strings: Follow latest advice on PRECIS regarding string stabilizing 2017-09-06 14:38:55 +10:00
Euan Kemp 449ef4cea1 strings: disallow ':' in nicks
This matches the behavior of inspircd at the very least.

Previously, the comment above that section claimed ':' should be
disallowed, but the code didn't do so.

I also simplified the code a little bit and added tests.
2017-07-25 23:28:29 -07:00
Daniel Oaks 317a804644 Fix dates at top of source files 2017-03-27 22:15:02 +10:00
Daniel Oaks ea0121aeff strings: Prevent crash 2017-01-22 12:44:05 +10:00
Daniel Oaks 2b240faa90 strings: Fix nick bugs, use UsernameCaseMapped 2017-01-14 02:32:15 +10:00
Daniel Oaks c7fdb4656e strings: Use inbuilt precis.Nickname encoding now 2016-10-27 00:44:36 +10:00
Daniel Oaks 9ccd6037a6 strings: Make Nickname profile not actually case-sensitive 2016-10-14 00:25:37 +10:00
Daniel Oaks 5e72409695 Move from ascii(ish) unicode encoding to prelim rfc7700 using functions instead 2016-10-11 23:51:46 +10:00
Daniel Oaks bc42960552 strings: Remove CTCP stuff, unused 2016-09-12 12:33:37 +10:00
Daniel Oaks 5a8e7709b2 strings: Disallow more broken nicknames 2016-08-13 20:53:23 +10:00
Daniel Oaks 1b67af7e85 strings: Also explicitly disallow . in nicknames 2016-08-12 23:38:19 +10:00
Daniel Oaks 9d853d5be7 strings: Don't allow nicks to start with dashes or 0-9 2016-08-12 23:33:44 +10:00
Daniel Oaks a5911ad14c server: Add configurable NICKLEN and CHANNELLEN 2016-08-12 22:20:32 +10:00
Daniel Oaks 2f08401a0f Attempt to add mostly-correct license info at the top of each file... track this stuff a bit better 2016-06-15 21:50:56 +10:00
Daniel Oaks fd6ed36995 strings: Restrict *? explicitly as they are used for mask matching 2016-06-15 17:41:53 +10:00
Daniel Oaks 77bf7173ff Require that server names must be hostnames, and nicks cannot be hostnames 2016-04-21 10:48:15 +10:00
Daniel Oaks 4a8d526c4d strings: Nicks and usernames can't contain ! or @ 2016-04-21 10:21:36 +10:00
Daniel Oaks 7ce62444de strings: Disallow nicknames that mess with the protocol in bad ways 2016-04-12 22:42:17 +10:00
Robin Burchell 6ad97f7e5d irc: Switch to golang.org versions, not google code versions of dependencies.
This has a few advantages:
* the google code versions are no longer maintained
* the google code versions are using mercurial (which I don't have installed)
2015-07-04 12:19:33 +02:00
Edmund Huber 2272aae213 spelling and gofmt 2014-03-23 06:50:07 +01:00
Edmund Huber 34b01b115e add a type for CTCP-encoded strings, and NOTICEs for error cases 2014-03-23 06:47:21 +01:00
Jeremy Latt 96a108f8da mark unicode normalization with type 2014-03-12 16:45:22 -07:00