#include "ircd.h"
struct UsersList AddUser(int sid,int socket,char *nick,struct UsersList *head) {
struct UsersList node;
if ((node=(Users)calloc(1,sizeof(struct UsersList)))!=NULL) {
node->sid=sid;
node->socket=socket;
node->signon=time(NULL);
node->idlet=time(NULL);
sprintf(node->nick,"%s",nick);
sprintf(node->ident,"ident");
sprintf(node->host,"host");
(Users)node->next=head;
head = node;
numUsers++;
}
else {
printf("Val: %i not inserted - not enough mem!\n",sid);
}
return(node);
}
void DeleteUser(struct UsersList *head,int val) {
struct UsersList temp,previous,current;
if (val==head->sid) {
temp=*head;
(Users *)*head=(*head)->next;
free(temp);
return;
}
else {
previous=*head;
(Users)current=(*head)->next;
while((current!=NULL)&(current->sid!=val)) {
previous=current;
(Users)current=current->next;
}
if (current!=NULL) {
temp=current;
previous->next=current->next;
free(temp);
return;
}
}
numUsers--;
return;
}
Users FindNick(Users head,char *nick) {
Users t;
t = head;
while (t) {
if (!strcasecmp(t->nick,nick)) {
return(t);
}
(Users)t = t->next;
}
return(NULL);
}
int NickList(Users head) {
Users t;
t = head;
printf("NickList:\n");
while (t) {
printf("Nick: =[%s][%i]\n",t->nick,t->socket);
(Users)t = t->next;
}
return(0);
}