* Sebastian Hammer, Adam Dickmeiss
*
* $Log: statserv.c,v $
- * Revision 1.14 1995-03-31 09:18:58 quinn
+ * Revision 1.15 1995-03-31 10:16:51 quinn
+ * Fixed logging.
+ *
+ * Revision 1.14 1995/03/31 09:18:58 quinn
* Added logging.
*
* Revision 1.13 1995/03/30 16:08:39 quinn
#include <dmalloc.h>
#include <log.h>
-static char *me = "";
+static char *me = "statserver";
static int dynamic = 1; /* fork on incoming connection */
+static int loglevel = LOG_DEFAULT_LEVEL;
#define DEFAULT_LISTENER "tcp:localhost:9999"
}
else if (res == 0) /* child */
{
+ char nbuf[100];
+
close(hand[0]);
child = 1;
+ sprintf(nbuf, "%s(%d)", me, getpid());
+ log_init(loglevel, nbuf, 0);
}
else /* parent */
{
}
else if (res == 1)
return;
+ logf(LOG_DEBUG, "listen ok");
iochan_setevent(h, EVENT_OUTPUT);
iochan_setflags(h, EVENT_OUTPUT | EVENT_EXCEPT); /* set up for acpt */
}
iochan_setflags(h, EVENT_INPUT | EVENT_EXCEPT); /* reset listener */
return;
}
+ logf(LOG_DEBUG, "accept ok");
if (dynamic)
{
IOCHAN pp;
exit(1);
}
iochan_setdata(new_chan, newas);
+ logf(LOG_LOG, "accepted connection");
}
else
{
void *ap;
IOCHAN lst;
- logf(LOG_LOG, "Adding %s %s listener on %s",
- dynamic ? "dynamic" : "static",
- what == PROTO_SR ? "SR" : "Z3950", where);
if (!where || sscanf(where, "%[^:]:%s", mode, addr) != 2)
{
fprintf(stderr, "%s: Address format: ('tcp'|'osi')':'<address>.\n",
fprintf(stderr, "You must specify either 'osi:' or 'tcp:'.\n");
exit(1);
}
+ logf(LOG_LOG, "Adding %s %s listener on %s",
+ dynamic ? "dynamic" : "static",
+ what == PROTO_SR ? "SR" : "Z3950", where);
if (!(l = cs_create(type, 0, what)))
{
- fprintf(stderr, "Failed to create listener\n");
+ logf(LOG_FATAL|LOG_ERRNO, "Failed to create listener");
exit(1);
}
if (cs_bind(l, ap, CS_SERVER) < 0)
{
- fprintf(stderr, "Failed to bind.\n");
- logf(LOG_FATAL|LOG_ERRNO, where);
+ logf(LOG_FATAL|LOG_ERRNO, "Failed to bind to %s", where);
exit(1);
}
if (!(lst = iochan_create(cs_fileno(l), listener, EVENT_INPUT |
EVENT_EXCEPT)))
{
- logf(LOG_FATAL, "Failed to create IOCHAN-type\n");
+ logf(LOG_FATAL|LOG_ERRNO, "Failed to create IOCHAN-type");
exit(1);
}
iochan_setdata(lst, l);
char *arg;
int protocol = CS_Z3950;
char *logfile = 0;
- int loglevel = LOG_DEFAULT_LEVEL;
me = argv[0];
while ((ret = options("szSl:v:", argv, argc, &arg)) != -2)
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: log.c,v $
- * Revision 1.1 1995-03-30 10:26:53 quinn
+ * Revision 1.2 1995-03-31 10:16:55 quinn
+ * Fixed logging.
+ *
+ * Revision 1.1 1995/03/30 10:26:53 quinn
* Logging system
*
* Revision 1.9 1994/12/12 12:09:02 quinn
{ LOG_DEBUG, "debug"},
{ LOG_WARN, "warn" },
{ LOG_LOG, "log" },
- { LOG_ERRNO, "errno"},
+ { LOG_ERRNO, ""},
{ LOG_ALL, "all" },
{ 0, "none" },
{ 0, NULL }
{
va_list ap;
char buf[4096], flags[1024];
- int i;
+ int i, p_error = 0;
if (!(level & l_level))
return;
+ if (level & LOG_ERRNO)
+ p_error = 1;
*flags = '\0';
for (i = 0; level && mask_names[i].name; i++)
if (mask_names[i].mask & level)
{
- sprintf(flags + strlen(flags), "[%s]", mask_names[i].name);
+ if (*mask_names[i].name)
+ sprintf(flags + strlen(flags), "[%s]", mask_names[i].name);
level -= mask_names[i].mask;
}
va_start(ap, fmt);
vsprintf(buf, fmt, ap);
- if (level & LOG_ERRNO)
+ if (p_error)
sprintf(buf + strlen(buf), " [%s]", strerror(errno));
fprintf(l_file, "%s: %s %s\n", l_prefix, flags, buf);
fflush(l_file);