home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 1 / 1730 / uniqmsgid.c < prev   
C/C++ Source or Header  |  1990-12-28  |  1KB  |  61 lines

  1. #ifndef lint
  2. static char rcsid[] =
  3.     "@(#) $Header: uniqmsgid.c,v 1.2 90/08/21 19:01:56 leres Exp $ (LBL)";
  4. #endif
  5.  
  6. #include <stdio.h>
  7. #include <syslog.h>
  8. #include "config.h"
  9.  
  10. char *progname;
  11. static void bail();
  12. extern char *strsave();
  13.  
  14. main(argc, argv)
  15.     int argc;
  16.     char **argv;
  17. {
  18.     register FILE *fp;
  19.     register int seqn;
  20.     register char *seqfile;
  21.     register char *fmt = "%ld\n";
  22.     char buf[512];
  23.  
  24.     openlog("uniqmsgid", 0, LOG_NEWS);
  25.     progname = argv[0];
  26.     seqfile = strsave(ctlfile("seq"));
  27.     newslock();
  28.     if ((fp = fopen(seqfile, "r+w")) == NULL)
  29.         bail("fopen", seqfile);
  30.     if (fgets(buf, sizeof(buf), fp) == NULL)
  31.         bail("fgets", seqfile);
  32.     seqn = atol(buf) + 1;
  33.     if (fseek(fp, 0L, 0) < 0)
  34.         bail("fseek", seqfile);
  35.     if (fprintf(fp, fmt, seqn) == EOF)
  36.         bail("fprintf", seqfile);
  37.     if (ferror(fp))
  38.         bail("ferror", seqfile);
  39.     if (fclose(fp) == EOF)
  40.         bail("fclose", seqfile);
  41.     newsunlock();
  42.     printf(fmt, seqn);
  43.     exit(0);
  44. }
  45.  
  46. static void
  47. bail(msg, seqfile)
  48.     char *msg, *seqfile;
  49. {
  50.     newsunlock();
  51.     syslog(LOG_ERR, "%s: %s: %m", msg, seqfile);
  52.     exit(1);
  53. }
  54.  
  55. void
  56. unprivileged(reason)
  57. char *reason;
  58. {
  59.     syslog(LOG_WARNING, "unprivileged: %s", reason);
  60. }
  61.