James Lu
7bbe77fe4a
Irc: remove unused "bot_clients" attribute
...
Thanks to @IotaSpencer for pointing this out!
2017-01-21 11:08:37 -08:00
James Lu
e2c0877e9b
wrapModes: optionally check for max. modes per line ( #253 )
2017-01-08 21:19:26 -08:00
James Lu
7594933550
parseModes: reorder logic so that -k * workarounds work again
...
Thanks @cooper for noticing this.
2017-01-08 17:31:50 -08:00
James Lu
d4b4cfb32e
wrap* funcs: convert input args to a list, so that pop(0) always works
2017-01-06 22:13:27 -08:00
James Lu
ba330bbfac
updateTS: don't save any broken TS values lower than 750000
...
Workaround for #385 , and other related timestamp issues caused by the TS value getting cut off in mode messages (#283 )
2017-01-06 21:56:22 -08:00
James Lu
a3ff32c22e
core: implement bind host support
...
Closes #379 .
2017-01-02 12:30:24 -08:00
James Lu
d1d3c3ef15
Irc: oops, wrapModes() needs to be a classmethod
2017-01-02 12:15:44 -08:00
James Lu
5843eebba2
Irc: add wrapModes() abstraction
2017-01-02 12:08:22 -08:00
James Lu
1a1dff7609
IrcChannel: don't assume +nt on new channels
...
Revert "classes.IrcChannel: default modes to +nt on join"
This reverts commit 1062e47b72
.
2017-01-01 00:37:12 -08:00
James Lu
a6b889c469
Irc: fix whitespace
2016-12-17 16:18:11 -08:00
James Lu
cbc7f438d2
clientbot: implement preliminary message tags parsing
...
Untested so far...
2016-12-16 22:28:22 -08:00
James Lu
e7e2f2c98e
core: update "missing dependencies" errors
...
Closes #363 .
2016-12-09 17:15:53 -08:00
James Lu
f9e798cf93
Irc: fix matchHost not using realhost [rp[er;y
2016-11-20 12:29:51 -08:00
Ken Spencer
02dfe5aeab
classes: pass force_privmsg_in_private and private booleans to irc.reply() in irc.error()
2016-11-18 23:10:45 -08:00
Ken Spencer
c450d71f84
classes: add irc.error() for easier error replies
2016-11-18 23:10:45 -08:00
James Lu
377df413ed
Irc: s/isServiceBot/getServiceBot/g ( #355 )
...
This function is renamed to better reflect its return value (ServiceBot object instead of boolean True).
2016-11-09 19:09:59 -08:00
James Lu
08fa64c3cc
Irc, services_support: store service name in IrcUser objects ( #355 )
2016-11-09 19:07:01 -08:00
James Lu
0815df1bca
Irc: rewrite isInternalClient to use getServer & return a boolean ( #355 )
2016-11-09 18:55:53 -08:00
James Lu
ddd0436937
Irc: rewrite getServer() to look for IrcUser.server attribute ( #355 )
...
The relevant attribute was introduced in c57fabc9ef
.
2016-11-09 18:55:08 -08:00
James Lu
c57fabc9ef
core, protocols: add server argument to IrcUser ( #355 )
2016-11-09 18:40:16 -08:00
James Lu
6ad40c91b4
Irc: explicitly kill connect loop threads after an Irc object has been removed
...
Possible fix for #351 .
2016-11-02 22:34:02 -07:00
James Lu
72ca41df33
Irc, clientbot: disallow unsetting bans that don't exist
...
This fixes an infinite loop when:
- Clientbot modesync is enabled
- 2 or more clientbot linked networks show unsetting modes that weren't enabled (e.g. charybdis)
- A user removes a ban
The workaround in clientbot prevents this process from triggering an infinite loop when a mode change acknowledgement is received for unsetting a non-existant ban,
though multiple -b mode changes may still be seen due to race conditions in updating the various networks' states.
2016-10-07 20:54:52 -07:00
James Lu
ec4e71c8cf
Irc: demote unknown user errors in parseModes() to DEBUG
...
Some ancient services like Anope 1.8 set SVS2MODE +d on users when they connect, even if the user quits right after. Due to lag we may receive the MODE after the QUIT instead of before.
2016-10-02 22:09:33 -07:00
James Lu
4dd0709f66
protocols, core: remove unused imports
2016-10-01 12:43:12 -07:00
James Lu
0a436cdf4c
Irc: make loopback hook in msg() optional
2016-08-31 18:28:13 -07:00
James Lu
87757a60a3
Irc: rename 'chandata' in SQUIT payload to 'channeldata'
2016-08-27 17:42:07 -07:00
James Lu
c68c941c1d
Irc.msg: break on empty text strings
...
Closes #306 .
2016-08-27 09:52:01 -07:00
James Lu
5908776a86
API CHANGE: Rename NotAuthenticatedError -> NotAuthorizedError
2016-08-25 00:43:44 -07:00
James Lu
a546bae341
Irc: make throttle time configurable per server (defaults to 0.01s)
2016-08-21 17:25:09 -07:00
James Lu
7a5b64bdc9
Irc: implement basic message queueing (1 message sent per X seconds)
...
Ref #293 .
2016-08-21 17:12:51 -07:00
James Lu
a76bd8c5b2
core: make hostmask fetching a shared function
2016-08-12 19:18:56 -07:00
James Lu
6828d032b4
Irc: RFC-standard umode +s does not take an argument
2016-08-11 18:14:35 -07:00
James Lu
ffdc313376
Irc: make hostname field optional in version()
...
Reported by Rascle via IRC.
2016-08-10 13:23:24 -07:00
James Lu
3633a41e4f
Protocol: return a mapping of channels->lists of nicks in SQUIT payloads
2016-08-08 20:58:34 -07:00
James Lu
12e1a0edff
Move handle_error() to the generic protocol
2016-08-08 18:12:07 -07:00
James Lu
9448bc86fd
Protocol: abort when receiving SQUIT to our own server
2016-08-04 12:55:24 -07:00
James Lu
b36ce36451
protocols: send old IrcServer object (serverdata) in SQUIT hooks
2016-08-04 12:50:04 -07:00
James Lu
4b27ebbee4
Irc: make sorting in joinModes() an option, and explicitly enable it in WHOIS output
...
This prevents mode lists from being sorted when they really shouldn't be, such as when relaying mode changes ("+qo nick nick" became +oq nick nick").
2016-07-31 21:45:38 -07:00
James Lu
d911045dca
Merge branch 'devel' of github.com:GLolol/PyLink into devel
2016-07-31 20:11:06 -07:00
James Lu
168f9f972d
classes: more tweaks to updateTS()
...
Really fixes #295 . Closes #298 .
2016-07-30 21:25:28 -07:00
James Lu
1ef89560e2
core: rename IrcUser.identified attribute to IrcUser.account
2016-07-29 20:16:05 -07:00
James Lu
891039dba2
Merge branch 'master' into devel
2016-07-29 14:44:54 -07:00
James Lu
2326f8b818
Irc: fix TS handling comparing against the wrong TS on outgoing sjoin()
...
Closes #295 .
2016-07-29 14:44:25 -07:00
James Lu
13c0e50358
Irc: make certfile/keyfile optional
...
This was never required for S2S links to work... Why did I think that?
2016-07-28 22:49:05 -07:00
James Lu
f4922743fc
core: SID and hostname options are now optional ( #282 )
...
Hostname defaults to a fallback hardcoded in world.fallback_hostname, while SID defaults to None (protocol modules have to deal with this themselves)
2016-07-28 22:23:59 -07:00
James Lu
f45cb3a583
classes: Drop FakeIRC, FakeProto
2016-07-28 22:03:44 -07:00
James Lu
852bd74c3b
core: enumerate our server after calling proto.connect()
...
This gives protocol modules a chance to manipulate their SID before it's added to the internal server list, replacing hacks previously used by the Nefarious and Clientbot modules.
This is the first step to sid-less servers :)
2016-07-28 21:50:51 -07:00
James Lu
c410de2fad
Make server config validation protocol specific
...
Closes #282 .
2016-07-28 21:34:00 -07:00
James Lu
4e3d209831
Irc: rework TS handling again
...
(cherry picked from commit 0e535a916c
)
2016-07-28 20:20:35 -07:00
James Lu
0e535a916c
Irc: rework TS handling again
2016-07-26 23:30:55 -07:00