|
|
1.1 root 1: /* logfile.cpp */
2:
3: /* Synchronet log file routines */
4:
5: /* $Id: logfile.cpp,v 1.1.1.1 2000/10/10 11:23:57 rswindell Exp $ */
6:
7: /****************************************************************************
8: * @format.tab-size 4 (Plain Text/Source Code File Header) *
9: * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
10: * *
11: * Copyright 2000 Rob Swindell - http://www.synchro.net/copyright.html *
12: * *
13: * This program is free software; you can redistribute it and/or *
14: * modify it under the terms of the GNU General Public License *
15: * as published by the Free Software Foundation; either version 2 *
16: * of the License, or (at your option) any later version. *
17: * See the GNU General Public License for more details: gpl.txt or *
18: * http://www.fsf.org/copyleft/gpl.html *
19: * *
20: * Anonymous FTP access to the most recent released source is available at *
21: * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
22: * *
23: * Anonymous CVS access to the development source and modification history *
24: * is available at cvs.synchro.net:/cvsroot/sbbs, example: *
25: * cvs -d :pserver:[email protected]:/cvsroot/sbbs login *
26: * (just hit return, no password is necessary) *
27: * cvs -d :pserver:[email protected]:/cvsroot/sbbs checkout src *
28: * *
29: * For Synchronet coding style and modification guidelines, see *
30: * http://www.synchro.net/source.html *
31: * *
32: * You are encouraged to submit any modifications (preferably in Unix diff *
33: * format) via e-mail to [email protected] *
34: * *
35: * Note: If this box doesn't appear square, then you need to fix your tabs. *
36: ****************************************************************************/
37:
38: #include "sbbs.h"
39:
40: void sbbs_t::logentry(char *code, char *entry)
41: {
42: char str[512];
43:
44: now=time(NULL);
45: sprintf(str,"Node %2d %s\r\n %s",cfg.node_num,timestr(&now),entry);
46: logline(code,str);
47: }
48:
49: /****************************************************************************/
50: /* Writes 'str' verbatim into node.log */
51: /****************************************************************************/
52: void sbbs_t::log(char *str)
53: {
54: if(logfile_fp==NULL || online==ON_LOCAL) return;
55: if(logcol>=78 || (78-logcol)<strlen(str)) {
56: fprintf(logfile_fp,"\r\n");
57: logcol=1; }
58: if(logcol==1) {
59: fprintf(logfile_fp," ");
60: logcol=4; }
61: fprintf(logfile_fp,str);
62: if(str[strlen(str)-1]==LF)
63: logcol=1;
64: else
65: logcol+=strlen(str);
66: }
67:
68: /****************************************************************************/
69: /* Writes 'str' on it's own line in node.log */
70: /****************************************************************************/
71: void sbbs_t::logline(char *code, char *str)
72: {
73: lprintf("Node %d %s", cfg.node_num, str);
74: if(logfile_fp==NULL || (online==ON_LOCAL && strcmp(code,"!!"))) return;
75: if(logcol!=1)
76: fprintf(logfile_fp,"\r\n");
77: fprintf(logfile_fp,"%-2.2s %s\r\n",code,str);
78: logcol=1;
79: }
80:
81: /****************************************************************************/
82: /* Writes a comma then 'ch' to log, tracking column. */
83: /****************************************************************************/
84: void sbbs_t::logch(char ch, char comma)
85: {
86:
87: if(logfile_fp==NULL || (online==ON_LOCAL)) return;
88: if((uchar)ch<SP) /* Don't log control chars */
89: return;
90: if(logcol==1) {
91: logcol=4;
92: fprintf(logfile_fp," ");
93: }
94: else if(logcol>=78) {
95: logcol=4;
96: fprintf(logfile_fp,"\r\n ");
97: }
98: if(comma && logcol!=4) {
99: fprintf(logfile_fp,",");
100: logcol++;
101: }
102: if(ch&0x80) {
103: ch&=0x7f;
104: if(ch<SP)
105: return;
106: fprintf(logfile_fp,"/");
107: }
108: fprintf(logfile_fp,"%c",ch);
109: logcol++;
110: }
111:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.