/*****************************************************************
 * libircservice is (C) CopyRight PTlink IRC Software 1999-2004  *
 *                    http://software.pt-link.net                *
 * This program is distributed under GNU Public License          *
 * Please read the file COPYING for copyright information.       *
 *****************************************************************

  Description: init connect routines

 *  $Id: watchdog.c,v 1.2 2005/09/08 18:09:55 jpinto Exp $
*/

#include "ircservice.h"
#include "setup.h"

/* functions declaration */
void do_newserver(IRC_Server* s);
void do_newuser(IRC_User *u);
void do_nickchange(IRC_User *u);
void do_quit(IRC_User *u);
void do_oper(IRC_User *u);
void do_unoper(IRC_User *u);


void do_newserver(IRC_Server* s)
{
  if(s->from)
    printf("New Server %s from %s :%s)\n", 
      s->sname,  s->from->sname, s->info);
  else
    printf("New Server %s :%s\n", s->sname, s->info);
};

void do_newuser(IRC_User *u)
{
  printf("New User: %s!%s@%s[%s]@%s :%s\n",
    u->nick, u->username, u->publichost, u->realhost, 
    u->server->sname, u->info);
}

void do_nickchange(IRC_User *u)
{
  printf("Nick Change: %s to %s\n", u->lastnick, u->nick);
}

void do_quit(IRC_User *u)
{
  printf("Quit: %s\n", u->nick);
}

void do_oper(IRC_User *u)
{
  printf("Operator set on %s\n", u->nick);
}

void do_unoper(IRC_User *u)
{
  printf("Operator removed from %s\n", u->nick);
}

int main(void)
{
  int cr;
  /* irc_SetDebug(1); */
  irc_Init(IRCDTYPE,SERVERNAME,"Sample IRC Service", stderr);
  cr = irc_FullConnect(CONNECTO,6667,CONNECTPASS, 0);
  if(cr<0)
    {
      printf("Error connecting to irc server: %s\n", irc_GetLastMsg());
      return 1;
     }
  else
    printf("--- Connected ----\n");
  /* Add event handlers */
  irc_AddEvent(ET_NEW_SERVER, do_newserver);
  irc_AddEvent(ET_NEW_USER, do_newuser);      
  irc_AddEvent(ET_NICK_CHANGE, do_nickchange);        
  irc_AddEvent(ET_QUIT, do_quit);
  irc_AddUmodeChange("+o", do_oper);
  irc_AddUmodeChange("-o", do_unoper);
  irc_LoopWhileConnected();
  printf("Closed: %s\n",irc_GetLastMsg());
  return 0;
}


syntax highlighted by Code2HTML, v. 0.9.1