Change request #581

Implement custom basic IRC library

Added by David Demelier over 1 year ago. Updated 8 months ago.

Status:ClosedStart date:11/24/2016
Priority:NormalDue date:
Assignee:David Demelier% Done:

100%

Category:IrccdEstimated time:24.00 h
Target version:3.0.0Spent time:16.00 h
MFD after: Bookmark:libirc
MFD revision: Submitted by:
Branch:default

Description

Use Boost.Asio to implement a custom IRC library and replace libircclient.

Associated revisions

Revision 549:6b4e07e6dc18
Added by David Demelier 8 months ago

Irccd: finish custom IRC library, closes #581

Finally remove the lovely libircclient that has been used since the
beginning of irccd back in 2013.

Several issues made the choice of developing a custom IRC library:

- libircclient requires select(2) system call and works in procedural
paradigm which is incompatible with our Boost.Asio main loop,
- there was no way in the libircclient to detect custom message like
PING to handle dead servers, this required to bundle the library
within the application,
- the library use static output buffer which requires to keep an
internal queue of commands that we flush at each iteration.

History

#1 Updated by David Demelier 8 months ago

  • Bookmark changed from @ to libirc

#2 Updated by David Demelier 8 months ago

  • % Done changed from 0 to 100
  • Status changed from New to Resolved

#3 Updated by David Demelier 8 months ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF