[BACK]Return to sendbug.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / sendbug

Diff for /src/usr.bin/sendbug/sendbug.c between version 1.34 and 1.35

version 1.34, 2007/03/28 04:05:52 version 1.35, 2007/04/06 01:32:39
Line 27 
Line 27 
   
 #include "atomicio.h"  #include "atomicio.h"
   
   #define _PATH_DMESG "/var/run/dmesg.boot"
   
 int     editit(char *);  int     editit(char *);
 void    init(void);  void    init(void);
 int     prompt(void);  int     prompt(void);
Line 46 
Line 48 
 __dead void  __dead void
 usage(void)  usage(void)
 {  {
         fprintf(stderr, "usage: sendbug [-LPV]\n");          fprintf(stderr, "usage: sendbug [-DLPV]\n");
         exit(1);          exit(1);
 }  }
   
Line 61 
Line 63 
 int  int
 main(int argc, char *argv[])  main(int argc, char *argv[])
 {  {
         int ch, c, fd, ret = 1;          int ch, c, Dflag = 0, fd, ret = 1;
         const char *tmpdir;          const char *tmpdir;
         struct stat sb;          struct stat sb;
         char *pr_form;          char *pr_form;
         time_t mtime;          time_t mtime;
         FILE *fp;          FILE *fp;
   
         while ((ch = getopt(argc, argv, "LPV")) != -1)          while ((ch = getopt(argc, argv, "DLPV")) != -1)
                 switch (ch) {                  switch (ch) {
                   case 'D':
                           Dflag = 1;
                           break;
                 case 'L':                  case 'L':
                         printf("Known categories:\n");                          printf("Known categories:\n");
                         printf("%s\n\n", categories);                          printf("%s\n\n", categories);
Line 84 
Line 89 
                 default:                  default:
                         usage();                          usage();
                 }                  }
           argc -= optind;
           argv += optind;
   
         if (argc > 1) {          if (argc > 1)
                 usage();                  usage();
         }  
   
         if ((tmpdir = getenv("TMPDIR")) == NULL || tmpdir[0] == '\0')          if ((tmpdir = getenv("TMPDIR")) == NULL || tmpdir[0] == '\0')
                 tmpdir = _PATH_TMP;                  tmpdir = _PATH_TMP;
Line 125 
Line 131 
                         }                          }
                         fclose(frfp);                          fclose(frfp);
                 }                  }
         } else          } else {
                 template(fp);                  template(fp);
                   if (!Dflag) {
                           char buf[BUFSIZ];
                           size_t len;
                           FILE *dfp;
   
                           dfp = fopen(_PATH_DMESG, "r");
                           if (dfp == NULL) {
                                   warn("can't read dmesg");
                           } else {
                                   fputs("\n"
                                       "<dmesg is attached.>\n"
                                       "<Feel free to delete or use the -D"
                                       " flag if it contains sensitive "
                                       "information.>\n", fp);
                                   while (!feof(dfp)) {
                                           len = fread(buf, 1, sizeof buf, dfp);
                                           if (len == 0)
                                                   break;
                                           if (fwrite(buf, 1, len, fp) != len)
                                                   break;
                                   }
                                   fclose(dfp);
                           }
                   }
           }
   
         if (fflush(fp) == EOF || fstat(fd, &sb) == -1 || fclose(fp) == EOF)          if (fflush(fp) == EOF || fstat(fd, &sb) == -1 || fclose(fp) == EOF)
                 err(1, "error creating template");                  err(1, "error creating template");

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.35