rendered paste body#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h> /*used for gethostbyname()*/
#include <string.h>
#include <fcntl.h>
void manda_irc(char *buffer,int sock)
{
send(sock, buffer, strlen(buffer),0);
}
/* void print_motd (int out)
{
FILE *f;
char buffer[256];
if ((f=fopen(cbot.motd,"r")))
{
while (fgets(buffer, sizeof(buffer), f))
printf("%s", buffer);
fclose(f);
}
}
*/
int main(int argc,char *argv[])
{
int sd, i=0;
int fd;
char c,b;
struct hostent* hp;
struct sockaddr_in server_addr;
/* la blablabla */
printf("\nzZBot - version 0.0001\n");
if(argc!=3)
{
printf("Uso: %s <irc_server> <puerto> <nick> <canal>\n",argv[0]);
exit(EXIT_FAILURE);
}
printf("...tratando %s:%s\n",argv[1],argv[2]);
if((hp=gethostbyname(argv[1]))==NULL)
{
printf("ERROR: No pode conectar %s, abortando. \n",argv[1]);
exit(EXIT_FAILURE);
}
server_addr.sin_family=AF_INET;
server_addr.sin_port=htons((u_short)atoi(argv[2]));
server_addr.sin_addr.s_addr=((struct in_addr *)hp->h_addr_list[0])->s_addr;
//server_addr.sin_addr.s_addr=hp->h_addr_list[0]->s_addr;
sd=socket(PF_INET,SOCK_STREAM,0);
if(connect(sd,(struct sockaddr*)&server_addr,sizeof(server_addr))<0)
{
printf("Coneccion negada por servidor.\n");
perror("connect()");
exit(EXIT_FAILURE);
}
printf("Conectado.\n");
manda_irc("NICK TresPatines\r\n",sd);
manda_irc("USER zZBot 8 * :zZBot Ver 0.0001\r\n",sd); /* 0 normal 8 invisible */
manda_irc("JOIN #debian-es\r\n",sd);
while (1) {
recv(sd,&c,1,0);
b=c;
if (b) {
printf("%c",b);
}
/* else {
send(sd,"PART\r\n",strlen("PART\r\n"),0);
} */
};
close(fd);
send(sd,"QUIT :bye!\r\n",strlen("QUIT :bye!\r\n"),0);
return 0;
}