Opened 9 years ago

Last modified 9 years ago

#11618 new enhancement

Add DCC CHAT support for IRC connections

Reported by: gboudreau Owned by: elb
Milestone: Patches welcome Component: IRC
Version: 2.6.6 Keywords: dcc
Cc: kip

Description

It would be nice if we could use / initiate DCC CHAT sessions with other IRC users / bots.

http://en.wikipedia.org/wiki/Direct_Client-to-Client#DCC_CHAT

Change History (3)

comment:1 Changed 9 years ago by rekkanoryo

  • Milestone set to Patches welcome

We historically have not been inclined to implement this, but we're willing to accept well-written patches to implement it.

That said, a standalone plugin should be able to implement this by using the irc-receiving-text signal and whatever other plumbing is necessary (such as the prpl_info->send_raw() function).

comment:2 Changed 9 years ago by gboudreau

Is one approach preferable over the other? i.e. any reason why this should be a plugin, instead of being implemented with other IRC functionality ?

Could you give me a couple file names / paths where I should start looking? I'm not familiar with pidgin codebase at this time.

Thanks for the pointers.

comment:3 Changed 9 years ago by elb

Ultimately, a modification to the IRC protocol plugin is the right choice.

You'll want to look in libpurple/protocols/irc. The hook for CTCP commands is irc_parse_ctcp() in libpurple/protocols/irc/parse.c.

There is a DCC SEND implementation in there, but it has some problems. Feel free to use anything good out of it w.r.t. connection setup, etc., but tread carefully.

The IRC prpl is pretty straightforward in most respects. You might want to look at msgs.c:irc_msg_privmsg() for reference on how to handle incoming messages.

If you have specific questions, please feel free to ask here or in #pidgin on irc.freenode.net. DCC CHAT is a request we do hear from time to time, and it would be great to receive a good patch to implement it.

Note: See TracTickets for help on using tickets.
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!