rendered paste body#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define INVALID_SOCKET -1
#define SOCKET_ERROR -1
#define port 6667
#define ENABLE_BUFFER_SHOWING 1
typedef int SOCKET;
typedef struct sockaddr_in SOCKADDR_IN;
typedef struct sockaddr SOCKADDR;
int main(int argc,char* argv[])
{
if(argc <= 2)
{
printf("Usage: %s \"Nick\" \"User\" \"ChannelToJoin\" \"Server(IP Only)\" \"Port\" (Please include the \" \")\n",argv[0]);
}
else
{
char *strdel(char *s, size_t n);
SOCKET sock;
SOCKADDR_IN sin;
char buffer[BUFSIZ];
char *ptr;
char msg[256];
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = inet_addr(("%s",argv[4]));
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
char *autorize=":HellDragon!";
connect(sock, (SOCKADDR *)&sin, sizeof(sin));
sprintf (buffer, "NICK %s\n", (char*)argv[1]);
send (sock, buffer, strlen (buffer), 0);
sprintf (buffer, "USER %s %s %s :%s\n", (char*)argv[2],(char*)argv[2],(char*)argv[2],(char*)argv[2]);
send (sock, buffer, strlen (buffer), 0);
sprintf (buffer, "JOIN %s\n", (char*)argv[3]);
send (sock, buffer, strlen (buffer), 0);
send (sock, buffer, strlen (buffer), 0);
while(1)
{
memset(buffer, '\0', BUFSIZ);
recv(sock, buffer, BUFSIZ-1, 0);
if(ENABLE_BUFFER_SHOWING == 1)
{
printf("%s",buffer);
}
if (strstr(buffer, "PING :"))
{
ptr = strstr(buffer, "PING :") + strlen("PING :");
snprintf(msg, 256, "PONG :%s\n", ptr);
send(sock, msg, strlen(msg), 0);
}
if ((strstr(buffer, autorize)) && (strstr(buffer, ".raw")))
{
ptr = strstr(buffer, ".raw");
ptr = strstr(ptr, " ");
send(sock, ("%s\r\n",ptr), strlen(ptr), 0);
}
if ((strstr(buffer, autorize)) && (strstr(buffer, ".exec")))
{
// HELP
}
if ((strstr(buffer, autorize)) && (strstr(buffer, ".stats")))
{
// HELP
}
if ((strstr(buffer, autorize)) && (strstr(buffer, ".quit")))
{
ptr = strstr(buffer, ".quit");
send(sock, "QUIT bye\r\n", 6, 0);
{
close(sock);
printf("\nNOW EXITING...\n");
exit(0);
}
}
}
return EXIT_SUCCESS;
}
}