Newer
Older
tuved / nick.c
#include <stdio.h>
#include <assert.h>

#include "tuved.h"


int 
tuveVerifyNick(char *nick) {

  assert(nick);
  assert(connections);

  if (findNick(nick) != 0x0)
    return(0x1);

  return(0x0);
} // tuveVerifyNick()


myConnections_t *findNick(char *nick) {
  myConnections_t *tmpConnection = 0x0;
  for (tmpConnection = connections;tmpConnection != 0x0;tmpConnection = tmpConnection->next) {
    if (!strcasecmp(nick,tmpConnection->userInfo.username))
      return(tmpConnection);
    }
  return(0x0);
  }

int tuveWhois(myConnections_t *userConnection,char *nick) {
  myConnections_t *user  = 0x0;
  tuveUserChans_t *chans = 0x0;
  char output[256];

  user = findNick(nick);

  if (user == 0x0) {
    sprintf(output,"CHANMSG:TUveD:WHOIS:%s Not Found\n",nick);
    sSendData(userConnection,output);
    return(0x0);
    }

  sprintf(output,"CHANMSG:TUveD:WHOIS:%s is %s\n",nick,user->host);
  sSendData(userConnection,output);
  sprintf(output,"CHANMSG:TUveD:WHOIS:%s Signed On %s",nick,ctime(&user->signedOn));
  sSendData(userConnection,output);

  if (user->userInfo.chans != 0x0) {
    memset(output,0x0,256);
    for (chans = user->userInfo.chans;chans != 0x0;chans = chans->next) {
      if (strlen(output) == 0)
        sprintf(output,"CHANMSG:TUveD:WHOIS:%s Is On %s",nick,chans->channel);
      else
        sprintf(output,"%s,%s",output,chans->channel);
      }
    sprintf(output,"%s\n",output);
    sSendData(userConnection,output);
    }

  return(0x0);
  }