# irc-socket-buffering-parsing

description : Gestion des sockets Windows && UNIX, parseur IRC et buffering
categories : Coding; Networking;
tags : C; Linux; Windows;

irc-socket-buffering-parsing

Un bot IRC tout simple.

Le code se compose de la gestion des sockets Windows && UNIX avec l'utilisation de la fonction select() pour ne pas rester bloqué sur les fonctions recv() : socket.c

D'un parseur de lignes IRC : parser.c

Et d'une certaine technique de buffering (buffer circulaire) : set_irc_buffer()

Ici : https://gitlab.com/sysc4ll/irc-socket-buffering-parsing/-/blob/main/main.c#L103 se trouve la partie où nous écoutons les commandes, dans l'exemple en commentaire : On regarde si la commande "!join" est exécutée en privé :

if (!strncmp(pline.trailing, "!join ", 6))

Comme expliqué dans le commentaire, je laisse le choix pour la gestion des commandes :

  • directement dans le même code : une recompilation est donc nécessaire à chaque ajout de commande
  • dans un programme externe avec popen()
  • dans une lib chargée dynamiquement avec dlsym()