mailstats.c (111367) | mailstats.c (132946) |
---|---|
1/* 2 * Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers. 3 * All rights reserved. 4 * Copyright (c) 1983 Eric P. Allman. All rights reserved. 5 * Copyright (c) 1988, 1993 6 * The Regents of the University of California. All rights reserved. 7 * 8 * By using this file, you agree to the terms and conditions set 9 * forth in the LICENSE file which can be found at the top level of 10 * the sendmail distribution. 11 * 12 * 13 */ 14 15#include <sm/gen.h> 16 17SM_IDSTR(copyright, | 1/* 2 * Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers. 3 * All rights reserved. 4 * Copyright (c) 1983 Eric P. Allman. All rights reserved. 5 * Copyright (c) 1988, 1993 6 * The Regents of the University of California. All rights reserved. 7 * 8 * By using this file, you agree to the terms and conditions set 9 * forth in the LICENSE file which can be found at the top level of 10 * the sendmail distribution. 11 * 12 * 13 */ 14 15#include <sm/gen.h> 16 17SM_IDSTR(copyright, |
18"@(#) Copyright (c) 1998-2001 Sendmail, Inc. and its suppliers.\n\ | 18"@(#) Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers.\n\ |
19 All rights reserved.\n\ 20 Copyright (c) 1988, 1993\n\ 21 The Regents of the University of California. All rights reserved.\n") 22 | 19 All rights reserved.\n\ 20 Copyright (c) 1988, 1993\n\ 21 The Regents of the University of California. All rights reserved.\n") 22 |
23SM_IDSTR(id, "@(#)$Id: mailstats.c,v 8.98 2002/05/24 23:10:15 gshapiro Exp $") | 23SM_IDSTR(id, "@(#)$Id: mailstats.c,v 8.100 2002/06/27 23:24:06 gshapiro Exp $") |
24 25#include <unistd.h> 26#include <stddef.h> 27#include <stdlib.h> 28#include <ctype.h> 29#include <string.h> 30#include <time.h> 31#ifdef EX_OK --- 22 unchanged lines hidden (view full) --- 54 char *sfile; 55 char *cfile; 56 SM_FILE_T *cfp; 57 bool mnames; 58 bool progmode; 59 bool trunc; 60 long frmsgs = 0, frbytes = 0, tomsgs = 0, tobytes = 0, rejmsgs = 0; 61 long dismsgs = 0; | 24 25#include <unistd.h> 26#include <stddef.h> 27#include <stdlib.h> 28#include <ctype.h> 29#include <string.h> 30#include <time.h> 31#ifdef EX_OK --- 22 unchanged lines hidden (view full) --- 54 char *sfile; 55 char *cfile; 56 SM_FILE_T *cfp; 57 bool mnames; 58 bool progmode; 59 bool trunc; 60 long frmsgs = 0, frbytes = 0, tomsgs = 0, tobytes = 0, rejmsgs = 0; 61 long dismsgs = 0; |
62#if _FFR_QUARANTINE | |
63 long quarmsgs = 0; | 62 long quarmsgs = 0; |
64#endif /* _FFR_QUARANTINE */ | |
65 time_t now; 66 char mtable[MAXMAILERS][MNAMELEN + 1]; 67 char sfilebuf[MAXPATHLEN]; 68 char buf[MAXLINE]; 69 struct statistics stats; 70 extern char *ctime(); 71 extern char *optarg; 72 extern int optind; --- 207 unchanged lines hidden (view full) --- 280 } 281 else 282 { 283 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 284 "Statistics from %s", 285 ctime(&stats.stat_itime)); 286 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 287 " M msgsfr bytes_from msgsto bytes_to msgsrej msgsdis"); | 63 time_t now; 64 char mtable[MAXMAILERS][MNAMELEN + 1]; 65 char sfilebuf[MAXPATHLEN]; 66 char buf[MAXLINE]; 67 struct statistics stats; 68 extern char *ctime(); 69 extern char *optarg; 70 extern int optind; --- 207 unchanged lines hidden (view full) --- 278 } 279 else 280 { 281 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 282 "Statistics from %s", 283 ctime(&stats.stat_itime)); 284 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 285 " M msgsfr bytes_from msgsto bytes_to msgsrej msgsdis"); |
288#if _FFR_QUARANTINE | |
289 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, " msgsqur"); | 286 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, " msgsqur"); |
290#endif /* _FFR_QUARANTINE */ | |
291 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, "%s\n", 292 mnames ? " Mailer" : ""); 293 } 294 for (i = 0; i < MAXMAILERS; i++) 295 { 296 if (stats.stat_nf[i] || stats.stat_nt[i] || | 287 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, "%s\n", 288 mnames ? " Mailer" : ""); 289 } 290 for (i = 0; i < MAXMAILERS; i++) 291 { 292 if (stats.stat_nf[i] || stats.stat_nt[i] || |
297#if _FFR_QUARANTINE | |
298 stats.stat_nq[i] || | 293 stats.stat_nq[i] || |
299#endif /* _FFR_QUARANTINE */ | |
300 stats.stat_nr[i] || stats.stat_nd[i]) 301 { 302 char *format; 303 304 if (progmode) 305 format = "%2d %8ld %10ld %8ld %10ld %6ld %6ld"; 306 else 307 format = "%2d %8ld %10ldK %8ld %10ldK %6ld %6ld"; 308 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 309 format, i, 310 stats.stat_nf[i], 311 stats.stat_bf[i], 312 stats.stat_nt[i], 313 stats.stat_bt[i], 314 stats.stat_nr[i], 315 stats.stat_nd[i]); | 294 stats.stat_nr[i] || stats.stat_nd[i]) 295 { 296 char *format; 297 298 if (progmode) 299 format = "%2d %8ld %10ld %8ld %10ld %6ld %6ld"; 300 else 301 format = "%2d %8ld %10ldK %8ld %10ldK %6ld %6ld"; 302 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 303 format, i, 304 stats.stat_nf[i], 305 stats.stat_bf[i], 306 stats.stat_nt[i], 307 stats.stat_bt[i], 308 stats.stat_nr[i], 309 stats.stat_nd[i]); |
316#if _FFR_QUARANTINE | |
317 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 318 " %6ld", stats.stat_nq[i]); | 310 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 311 " %6ld", stats.stat_nq[i]); |
319#endif /* _FFR_QUARANTINE */ | |
320 if (mnames) 321 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 322 " %s", 323 mtable[i]); 324 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, "\n"); 325 frmsgs += stats.stat_nf[i]; 326 frbytes += stats.stat_bf[i]; 327 tomsgs += stats.stat_nt[i]; 328 tobytes += stats.stat_bt[i]; 329 rejmsgs += stats.stat_nr[i]; 330 dismsgs += stats.stat_nd[i]; | 312 if (mnames) 313 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 314 " %s", 315 mtable[i]); 316 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, "\n"); 317 frmsgs += stats.stat_nf[i]; 318 frbytes += stats.stat_bf[i]; 319 tomsgs += stats.stat_nt[i]; 320 tobytes += stats.stat_bt[i]; 321 rejmsgs += stats.stat_nr[i]; 322 dismsgs += stats.stat_nd[i]; |
331#if _FFR_QUARANTINE | |
332 quarmsgs += stats.stat_nq[i]; | 323 quarmsgs += stats.stat_nq[i]; |
333#endif /* _FFR_QUARANTINE */ | |
334 } 335 } 336 if (progmode) 337 { 338 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 339 " T %8ld %10ld %8ld %10ld %6ld %6ld", 340 frmsgs, frbytes, tomsgs, tobytes, rejmsgs, 341 dismsgs); | 324 } 325 } 326 if (progmode) 327 { 328 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 329 " T %8ld %10ld %8ld %10ld %6ld %6ld", 330 frmsgs, frbytes, tomsgs, tobytes, rejmsgs, 331 dismsgs); |
342#if _FFR_QUARANTINE | |
343 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 344 " %6ld", quarmsgs); | 332 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 333 " %6ld", quarmsgs); |
345#endif /* _FFR_QUARANTINE */ | |
346 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, "\n"); 347 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 348 " C %8ld %8ld %6ld\n", 349 stats.stat_cf, stats.stat_ct, 350 stats.stat_cr); 351 (void) close(fd); 352 if (trunc) 353 { 354 fd = open(sfile, O_RDWR | O_TRUNC, 0600); 355 if (fd >= 0) 356 (void) close(fd); 357 } 358 } 359 else 360 { 361 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 362 "============================================================="); | 334 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, "\n"); 335 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 336 " C %8ld %8ld %6ld\n", 337 stats.stat_cf, stats.stat_ct, 338 stats.stat_cr); 339 (void) close(fd); 340 if (trunc) 341 { 342 fd = open(sfile, O_RDWR | O_TRUNC, 0600); 343 if (fd >= 0) 344 (void) close(fd); 345 } 346 } 347 else 348 { 349 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 350 "============================================================="); |
363#if _FFR_QUARANTINE | |
364 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, "========"); | 351 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, "========"); |
365#endif /* _FFR_QUARANTINE */ | |
366 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, "\n"); 367 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 368 " T %8ld %10ldK %8ld %10ldK %6ld %6ld", 369 frmsgs, frbytes, tomsgs, tobytes, rejmsgs, 370 dismsgs); | 352 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, "\n"); 353 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 354 " T %8ld %10ldK %8ld %10ldK %6ld %6ld", 355 frmsgs, frbytes, tomsgs, tobytes, rejmsgs, 356 dismsgs); |
371#if _FFR_QUARANTINE | |
372 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 373 " %6ld", quarmsgs); | 357 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 358 " %6ld", quarmsgs); |
374#endif /* _FFR_QUARANTINE */ | |
375 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, "\n"); 376 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 377 " C %8ld %10s %8ld %10s %6ld\n", 378 stats.stat_cf, "", stats.stat_ct, "", 379 stats.stat_cr); 380 } 381 exit(EX_OK); 382 /* NOTREACHED */ 383 return EX_OK; 384} | 359 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, "\n"); 360 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 361 " C %8ld %10s %8ld %10s %6ld\n", 362 stats.stat_cf, "", stats.stat_ct, "", 363 stats.stat_cr); 364 } 365 exit(EX_OK); 366 /* NOTREACHED */ 367 return EX_OK; 368} |