[IRCServices] Services Protocol for InspIRCd 1.2

Andrew Church achurch at achurch.org
Mon Nov 12 20:30:15 PST 2007


>The way we quick-converted our source base over was more or less:
>  - Convert FindNick to find by UID if isdigit(*nick)
>  - Store UID in the user structure (you'll need to generate/store for
>pseudoclients too, though, I guess. Though that code isn't too
>complicated.)
>  - ???
>  - Profit!

This works fine as long as you've only got one protocol to worry about.
Services has to think about others, so it's not quite as simple
(particularly since I've taken the approach of centralizing as much code
as possible, which includes message handling to an extent--if you assume
a certain level of RFC compliance, it's just a waste of effort to write
a whole bunch of functions in the protocol modules that all do the same
thing.  In the end, it's really a question of how invasive the changes
required are... if I can solve it with something like an id_to_nick()
routine in each protocol module, that's probably manageable, but if it
means rearchitecting Services itself to handle non-nick client IDs,
that'd be beyond the level of maintenance support I'm contemplating.

  --Andrew Church
    achurch at achurch.org
    http://achurch.org/