From 97e4bce33f2199dd3ea3831f96e2b6d34269d5a5 Mon Sep 17 00:00:00 2001 From: Jakub Sławiński Date: Mon, 15 Dec 2003 21:55:27 +0100 Subject: v0.5.2 - Added: types of realm - Added: logging to a file - Fixed: major bug in communication between server and client - Fixed: deformed packets in udp protocol forwarding 04.12.2003 (v0.5.1): - Fixed: Some data transfer problems - Added: udp protocol tunneling/forwarding - Fixed: bug in parsing the config file - Improved: making connection between server and client - Lightly modified: verbose mode (added double v mode) 23.11.2003 (v0.5): - This is the first release - There are no known major bugs --- stats.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 stats.c (limited to 'stats.c') diff --git a/stats.c b/stats.c new file mode 100644 index 0000000..3eca5b9 --- /dev/null +++ b/stats.c @@ -0,0 +1,79 @@ +/* + * active port forwarder - software for secure forwarding + * Copyright (C) 2003 jeremian + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#include "stats.h" +#include +#include +#include +#include + +static char verlev; +static char loglev; +static FILE* logfd; + +char* +datum(void) +{ + time_t sec; + struct tm* tm; + static char timedat[20]; + time(&sec); + tm = localtime(&sec); + memset(timedat, 0, 20); + strftime(timedat, 20, "%d.%m.%Y %H:%M:%S", tm); + return timedat; +} + +int +loginit(char verl, char logl, const char* logfname) { + verlev = loglev = 0; + if (logfd) + fclose(logfd); + logfd = NULL; + verlev = verl; + loglev = logl; + if (loglev) { + logfd = fopen(logfname, "a"); + if (logfd == NULL) + return 1; /* logging to a non-opened file? */ + } + return 0; +} + +void +aflog(char type, const char* format, ...) +{ + va_list ap; + va_start(ap, format); + if (verlev) + if (type <= verlev) { + printf("[%s] ", datum()); + vfprintf(stdout, format, ap); + printf("\n"); + } + if (loglev) + if (type <= loglev) { + fprintf(logfd, "[%s] ", datum()); + vfprintf(logfd, format, ap); + fprintf(logfd, "\n"); + fflush(logfd); + } + va_end(ap); +} -- cgit v1.1