# 2.11BSD#431 - /usr/src/usr.sbin/sendmail.MX/src/stats.c

##### Functions

    markstats         X
    poststats         X

##### Variables

    Stat              X

##### Macros

    KBYTES            X
    ONE_K             X

       1: /*
       2:  * Copyright (c) 1988 Regents of the University of California.
       3:  * All rights reserved.
       4:  *
       5:  * Redistribution and use in source and binary forms are permitted
       6:  * provided that this notice is preserved and that due credit is given
       7:  * to the University of California at Berkeley. The name of the University
       8:  * may not be used to endorse or promote products derived from this
       9:  * software without specific prior written permission. This software
      10:  * is provided ``as is'' without express or implied warranty.
      11:  *
      12:  *  Sendmail
      13:  *  Copyright (c) 1983  Eric P. Allman
      14:  *  Berkeley, California
      15:  */
      16:
      17: #if !defined(lint) && !defined(NOSCCS)
      18: static char sccsid[] = "@(#)stats.c	5.9 (Berkeley) 3/13/88";
      19: #endif /* not lint */
      20:
      21: # include "sendmail.h"
      22: # include "mailstats.h"
      23:
      24: struct statistics   Stat;
      25:
      26: #define ONE_K       1000        /* one thousand (twenty-four?) */
      27: #define KBYTES(x)   (((x) + (ONE_K - 1)) / ONE_K)
      28: /*
      29: **  MARKSTATS -- mark statistics
      30: */
      31:
      32: markstats(e, to)
      33:     register ENVELOPE *e;
      34:     register ADDRESS *to;
      35: {
      36:     if (to == NULL)
      37:     {
      38:         if (e->e_from.q_mailer != NULL)
      39:         {
      40:             Stat.stat_nf[e->e_from.q_mailer->m_mno]++;
      41:             Stat.stat_bf[e->e_from.q_mailer->m_mno] +=
      42:                 KBYTES(CurEnv->e_msgsize);
      43:         }
      44:     }
      45:     else
      46:     {
      47:         Stat.stat_nt[to->q_mailer->m_mno]++;
      48:         Stat.stat_bt[to->q_mailer->m_mno] += KBYTES(CurEnv->e_msgsize);
      49:     }
      50: }
      51: /*
      52: **  POSTSTATS -- post statistics in the statistics file
      53: **
      54: **	Parameters:
      55: **		sfile -- the name of the statistics file.
      56: **
      57: **	Returns:
      58: **		none.
      59: **
      60: **	Side Effects:
      61: **		merges the Stat structure with the sfile file.
      62: */
      63:
      64: poststats(sfile)
      65:     char *sfile;
      66: {
      67:     register int fd;
      68:     struct statistics stat;
      69:     extern off_t lseek();
      70:
      71:     if (sfile == NULL)
      72:         return;
      73:
      74:     (void) time(&Stat.stat_itime);
      75:     Stat.stat_size = sizeof Stat;
      76:
      77:     fd = open(sfile, 2);
      78:     if (fd < 0)
      79:     {
      80:         errno = 0;
      81:         return;
      82:     }
      83:     if (read(fd, (char *) &stat, sizeof stat) == sizeof stat &&
      84:         stat.stat_size == sizeof stat)
      85:     {
      86:         /* merge current statistics into statfile */
      87:         register int i;
      88:
      89:         for (i = 0; i < MAXMAILERS; i++)
      90:         {
      91:             stat.stat_nf[i] += Stat.stat_nf[i];
      92:             stat.stat_bf[i] += Stat.stat_bf[i];
      93:             stat.stat_nt[i] += Stat.stat_nt[i];
      94:             stat.stat_bt[i] += Stat.stat_bt[i];
      95:         }
      96:     }
      97:     else
      98:         bcopy((char *) &Stat, (char *) &stat, sizeof stat);
      99:
     100:     /* write out results */
     101:     (void) lseek(fd, (off_t) 0, 0);
     102:     (void) write(fd, (char *) &stat, sizeof stat);
     103:     (void) close(fd);
     104: }

#### Defined functions

markstats defined in line 32; used 3 times

- in /usr/src/usr.sbin/sendmail.MX/src/deliver.c line 295
- in /usr/src/usr.sbin/sendmail.MX/src/main.c line 698
- in /usr/src/usr.sbin/sendmail.MX/src/srvrsmtp.c line 352

poststats defined in line 64; used 1 times

- in /usr/src/usr.sbin/sendmail.MX/src/main.c line 745

#### Defined variables

Stat defined in line 24; used 12 times

- in line 40-41(2), 47-48(2), 74-75(3), 91-98(5)

sccsid defined in line 18; never used

#### Defined macros

KBYTES defined in line 27; used 2 times

- in line 42, 48

ONE_K defined in line 26; used 2 times

- in line 27(2)

Last modified: 1988-09-14 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 854 |