James Lu
f555a484f9
Irc: unconditionally call disconnect() on errors or ping timeouts
...
This prevents duplicated ping timer threads from spawning, I think...
2016-06-15 10:55:47 -07:00
James Lu
b1a5f864d8
Irc: resolve hostnames when connecting
...
Cloeses #158 .
2016-06-11 11:29:11 -07:00
James Lu
eeca570cc4
classes: make pingfreq consistent, bump timeouts
2016-06-06 07:34:48 -07:00
James Lu
553415f6f7
classes: higher default pingfreq (90)
2016-05-25 16:19:35 -07:00
James Lu
2e1163fdb8
Irc: introduce isServiceBot checker
2016-05-14 16:17:12 -07:00
Daniel Oaks
c3e4cfa2de
games: Create BotClient class, use bot_clients instead of games_user
2016-05-14 14:53:19 -07:00
James Lu
32bc5f120b
core: migrate the main client to ServiceBot ( #216 )
...
- irc.spawnMain is dropped. Clients are now spawned in the endburst loop, after protocol negotiation completes. This allows PyLink to spawn clients with hideoper, etc., closing #194 .
- utils.add_cmd and irc.callCommand are now just wrappers around world.services['pylink'].add_cmd and call_cmd respectively.
- coreplugin registers the main client while it is loaded up, before any commands are added.
2016-05-14 13:29:23 -07:00
James Lu
9236f7e095
Irc: fix NameError caused by 0c7faed
2016-05-14 12:19:38 -07:00
James Lu
123e72d162
Merge branch 'devel' into wip/services
2016-05-14 11:58:49 -07:00
James Lu
33034b23f1
Irc.applyModes: assume modes are being added if no +/- is given
2016-05-14 11:58:22 -07:00
James Lu
0c7faed213
Move NotAuthenticatedError class back into utils
...
This is needed because ServiceBot exists in utils, and utils cannot import classes without a bad import loop happening.
2016-05-14 10:05:18 -07:00
James Lu
beae4eea9e
core: rename utils.fullVersion -> irc.version ( #199 )
2016-04-30 17:00:28 -07:00
James Lu
3bb1208e74
core: move toLower to Irc ( #199 )
2016-04-30 16:57:38 -07:00
James Lu
2fe2e9c8c4
core: move isOper, checkAuthenticated to Irc ( #199 )
2016-04-30 16:54:11 -07:00
James Lu
78f8a2fc8d
core: move isManipulatableClient, getHostmask to Irc
2016-04-30 16:44:37 -07:00
James Lu
064cb9b6aa
core: move reverseModes, joinModes into Irc
2016-04-30 16:33:46 -07:00
James Lu
bd0874a484
Merge branch 'wip/split-utils' into devel
2016-04-29 23:32:52 -07:00
James Lu
3b04d1abdc
Irc: raise connection failure log levels to error
2016-04-25 19:14:34 -07:00
James Lu
84822fb1d6
Move applyModes, parseModes into Irc, suppressing deprecation warnings for now ( #199 )
2016-04-24 21:44:27 -07:00
James Lu
7f46e1c35c
Separate KeyedDefaultdict into new structures module ( #199 )
2016-04-24 21:11:36 -07:00
James Lu
534242ef29
Irc: fix disconnect logic in ping timeouts
...
Call disconnect() in the event of a ping timeout. Curse these extra indents!
2016-04-18 18:14:42 -07:00
James Lu
0f0ae8fc2f
Protocol: remove desync warning in getUid
2016-04-15 11:37:53 -07:00
James Lu
3a00e46b48
Move getSid/getUid into classes.Protocol
2016-04-10 19:00:44 -07:00
James Lu
99d861861d
Let's use a default pingfreq value that makes sense...
...
Change this from 30 seconds to 180. Even for semi-important servers, 30 seconds between PING requests is a bit overkill.
2016-04-07 18:45:42 -07:00
James Lu
16779aa5ce
classes: remove lower() call when storing netname
...
An hour of debugging protocol/unreal and it turns out the issue was not there, but this.
2016-04-02 12:11:35 -07:00
James Lu
3e7255e4b2
classes: remove ts6-specific hack in Protocol.removeClient
2016-04-01 22:55:03 -07:00
James Lu
44083ccd5e
core: Store opertype info in all IrcUser objects
...
This allows plugins to define custom opertypes for their clients, and still have them show in WHOIS queries.
2016-03-26 12:55:23 -07:00
James Lu
fbd8659a7d
classes: spawn PyLink clients with a custom opertype
2016-03-26 12:49:10 -07:00
James Lu
45c2abdae7
Irc: run initVars() on connect too
...
2b16f25b61
is wrong; it caused reconnects to fail with disconnect loops.
2016-03-25 17:14:16 -07:00
James Lu
b2b04c8e75
classes: really ignore errors when shutting down sockets
2016-03-25 17:03:25 -07:00
James Lu
03b53aee59
Merge branch 'staging' into devel
2016-03-25 15:03:05 -07:00
James Lu
2b16f25b61
classes.Irc: clear state on disconnect, not on connect
...
Possible fix for #183 - when networks disconnect, their server index wasn't cleared properly, causing errors from servers already existing to be thrown when the same server name is spawned again.
2016-03-25 15:00:15 -07:00
James Lu
1930739aad
Revert "Irc: don't call initVars() on IRC object initialization"
...
This reverts commit 5a68dc1bc5
.
2016-03-25 14:54:29 -07:00
James Lu
f5f0df52ce
classes: raise KeyError, not return KeyError...
2016-03-19 18:00:44 -07:00
James Lu
e948db5c7b
classes: support looking at older versions of prefix modes mappings
2016-03-19 17:54:18 -07:00
James Lu
e8b0018585
classes: Implement IrcChannel.is(Voice|Halfop|Op)Plus ( #168 )
2016-03-19 17:37:38 -07:00
James Lu
ed333a6d1b
classes: implement IrcChannel.isOp, isVoice, getPrefixmodes, etc
...
Ref #168 .
2016-03-19 17:32:32 -07:00
James Lu
8135f3a735
core: Depluralize prefixmodes mappings ( #168 )
...
This is an API breaking change. I really don't know why I made these keys plural to start, since it only made things more complicated. Prefix modes are not pluralized in the list of supported modes of each IRCd.
2016-03-19 17:25:04 -07:00
James Lu
1d4350c4fd
classes: provide IrcChannel objects with their own name using KeyedDefaultdict
...
Closes #171 .
2016-03-19 17:01:39 -07:00
James Lu
b6889fb097
irc: fix spacing in certificate fingerprint logging
2016-03-07 20:30:24 -08:00
James Lu
cf15bed58d
classes: add services_account field in IrcUser ( #25 ), default 'identified' attribute to empty string instead of None
2016-02-07 18:11:09 -08:00
James Lu
0d4655c381
core: support multiple channel loggers with DIFFERENT log levels & fix example conf ( #83 )
2016-01-30 23:35:51 -08:00
James Lu
669e889e6f
Support configurable SSL fingerprint hash types ( Closes #157 )
2016-01-30 23:04:13 -08:00
James Lu
14efb27fe8
Initial experimental support for logging to channels ( #83 )
...
Doesn't support rehashing and all that yet.
2016-01-23 13:52:37 -08:00
James Lu
5a68dc1bc5
Irc: don't call initVars() on IRC object initialization
...
This is already done in connect(), so it isn't really necessary to populate these variables when first connect hasn't happened yet.
2016-01-23 13:52:37 -08:00
James Lu
812a866a4e
protocols: rename pingServer -> ping
2016-01-16 17:11:23 -08:00
James Lu
3a53005d8c
protocols: messageClient -> message, noticeClient -> notice
2016-01-16 16:44:23 -08:00
James Lu
acdd7dbb78
protocols: rename joinClient(...) -> join(...)
2016-01-16 16:36:45 -08:00
James Lu
925e11d6c4
classes.Irc: when disconnecting, suppress socket read errors in run() ( #152 )
2016-01-09 20:25:53 -08:00
James Lu
cf2fcf9263
classes.Irc: only allow one shutdown sequence at a time ( #152 )
2016-01-09 20:25:53 -08:00