1433d6423SLionel Sambuc /* misc.c - Miscellaneous stuff for cron Author: Kees J. Bot
2433d6423SLionel Sambuc * 12 Jan 1997
3433d6423SLionel Sambuc */
4433d6423SLionel Sambuc #define nil ((void*)0)
5433d6423SLionel Sambuc #include <sys/types.h>
6433d6423SLionel Sambuc #include <stdio.h>
7433d6423SLionel Sambuc #include <stdarg.h>
8433d6423SLionel Sambuc #include <stdlib.h>
9433d6423SLionel Sambuc #include <time.h>
10433d6423SLionel Sambuc #include "misc.h"
11433d6423SLionel Sambuc
12433d6423SLionel Sambuc char *prog_name; /* Name of this program. */
13433d6423SLionel Sambuc time_t now; /* Cron's idea of the current time. */
14433d6423SLionel Sambuc time_t next; /* Time to run the next job. */
15433d6423SLionel Sambuc
16433d6423SLionel Sambuc size_t alloc_count; /* # Of chunks of memory allocated. */
17433d6423SLionel Sambuc
allocate(size_t len)18433d6423SLionel Sambuc void *allocate(size_t len)
19433d6423SLionel Sambuc /* Checked malloc(). Better not feed it length 0. */
20433d6423SLionel Sambuc {
21433d6423SLionel Sambuc void *mem;
22433d6423SLionel Sambuc
23433d6423SLionel Sambuc if ((mem= malloc(len)) == nil) {
24*d0055759SDavid van Moolenbroek cronlog(LOG_ALERT, "Out of memory, exiting\n");
25433d6423SLionel Sambuc exit(1);
26433d6423SLionel Sambuc }
27433d6423SLionel Sambuc alloc_count++;
28433d6423SLionel Sambuc return mem;
29433d6423SLionel Sambuc }
30433d6423SLionel Sambuc
deallocate(void * mem)31433d6423SLionel Sambuc void deallocate(void *mem)
32433d6423SLionel Sambuc {
33433d6423SLionel Sambuc if (mem != nil) {
34433d6423SLionel Sambuc free(mem);
35433d6423SLionel Sambuc alloc_count--;
36433d6423SLionel Sambuc }
37433d6423SLionel Sambuc }
38433d6423SLionel Sambuc
39433d6423SLionel Sambuc static enum logto logto= SYSLOG;
40433d6423SLionel Sambuc
selectlog(enum logto where)41433d6423SLionel Sambuc void selectlog(enum logto where)
42433d6423SLionel Sambuc /* Select where logging output should go, syslog or stdout. */
43433d6423SLionel Sambuc {
44433d6423SLionel Sambuc logto= where;
45433d6423SLionel Sambuc }
46433d6423SLionel Sambuc
cronlog(int level,const char * fmt,...)47*d0055759SDavid van Moolenbroek void cronlog(int level, const char *fmt, ...)
48433d6423SLionel Sambuc /* Like syslog(), but may go to stderr. */
49433d6423SLionel Sambuc {
50433d6423SLionel Sambuc va_list ap;
51433d6423SLionel Sambuc
52433d6423SLionel Sambuc va_start(ap, fmt);
53433d6423SLionel Sambuc
54433d6423SLionel Sambuc #if __minix_vmd || !__minix
55433d6423SLionel Sambuc if (logto == SYSLOG) {
56433d6423SLionel Sambuc vsyslog(level, fmt, ap);
57433d6423SLionel Sambuc } else
58433d6423SLionel Sambuc #endif
59433d6423SLionel Sambuc {
60433d6423SLionel Sambuc fprintf(stderr, "%s: ", prog_name);
61433d6423SLionel Sambuc vfprintf(stderr, fmt, ap);
62433d6423SLionel Sambuc }
63433d6423SLionel Sambuc va_end(ap);
64433d6423SLionel Sambuc }
65433d6423SLionel Sambuc
66433d6423SLionel Sambuc /*
67433d6423SLionel Sambuc * $PchId: misc.c,v 1.3 2000/07/17 19:01:57 philip Exp $
68433d6423SLionel Sambuc */
69