Skip to content
This repository has been archived by the owner on Jan 4, 2023. It is now read-only.

ngIRCd protocol support #479

Merged
merged 55 commits into from Jul 7, 2017
Merged

ngIRCd protocol support #479

merged 55 commits into from Jul 7, 2017

Conversation

jlu5
Copy link
Collaborator

@jlu5 jlu5 commented Jul 3, 2017

Do not merge yet! This will eventually close #340.

Tentative checklist

  • Get initial connection bits working

  • Implement handlers

    • Inbound CHANINFO
    • Inbound AWAY
    • Inbound INVITE
    • Inbound JOIN
    • Inbound KICK
    • Inbound KILL
    • Inbound PING - needs testing!
    • Inbound PRIVMSG
    • Inbound MODE
    • Inbound NICK (client introduction)
    • Inbound NICK (nick changes)
    • Inbound NOTICE
    • Inbound PART - inherited
    • Inbound QUIT - inherited
    • Inbound NJOIN
    • Inbound SQUIT
    • Inbound SERVER (ie leaf introductions)
    • Inbound TOPIC
    • Inbound METADATA
      • Host changes
      • Services account changes
  • Implement commands

    • _ping_uplink(self) / PONG handler
    • spawn_client(self, nick, ident='null', host='null', realhost=None, modes=set(), server=None, ip='0.0.0.0', realname=None, ts=None, opertype=None, manipulatable=False)
    • away(self, source, text)
    • invite(self, source, target, channel)
    • join(self, source, channel)
    • kick(self, source, channel, target, reason=None)
    • kill(self, source, target, reason)
    • knock(self, source, target, text)
    • message(self, source, target, text) - inherited
    • mode(self, source, target, modes, ts=None)
    • nick(self, source, newnick)
    • notice(self, source, target, text) - inherited
    • numeric(self, source, numeric, target, text)
    • part(self, client, channel, reason=None) - inherited
    • quit(self, source, reason) - inherited
    • sjoin(self, server, channel, users, ts=None, modes=set())
    • spawn_server(self, name, sid=None, uplink=None, desc=None)
    • squit(self, source, target, text='No reason given')
    • topic(self, source, target, text) - inherited
    • topic_burst(self, source, target, text)
    • update_client(self, source, field, text)
  • Fill in mode definitions

  • Fix up outbound mode/njoin wrapping

  • Figure out how host cloaking works

  • Complete this checklist

@jlu5 jlu5 added type: feature feature requests & PRs of new features type: new protocol issues, PRs related to new protocol modules labels Jul 3, 2017
@jlu5 jlu5 added this to the v2.0 milestone Jul 3, 2017
@jlu5 jlu5 mentioned this pull request Jul 3, 2017
jlu5 added 27 commits July 5, 2017 00:36
This allows this handler to work natively on ngIRCd.
ngIRCd sends QUIT after a successful KILL, so trying to remove the target twice is erroneous and will cause a crash.

TODO: what happens if an external KILL is never responded to for whatever reason?
Conflicts:
	protocols/ircs2s_common.py
	protocols/ts6.py
Also drop the override in protocols/inspircd, as it is no longer needed.
TODO: clean up protocols/unreal to use more of this code as well
@jlu5 jlu5 merged commit 57c86c6 into devel Jul 7, 2017
@jlu5 jlu5 deleted the wip/ngircd branch July 7, 2017 15:53
@jlu5 jlu5 changed the title [WIP] ngIRCd protocol support ngIRCd protocol support Jul 20, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
type: feature feature requests & PRs of new features type: new protocol issues, PRs related to new protocol modules
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant