diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | articles.c | 2 | ||||
-rw-r--r-- | buildinfo.h | 2 | ||||
-rw-r--r-- | logs.c | 29 | ||||
-rw-r--r-- | logs.h | 12 | ||||
-rw-r--r-- | microbbs.c | 7 |
7 files changed, 55 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3789978 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.o +microbbs @@ -5,7 +5,8 @@ make: gcc -c buildinfo.c gcc -c sysinfo.c gcc -c articles.c - gcc buildinfo.o motd.o microbbs.o sysinfo.o articles.o libterm/libterm.o -o microbbs + gcc -c logs.c + gcc buildinfo.o motd.o microbbs.o sysinfo.o articles.o logs.o libterm/libterm.o -o microbbs clean: rm -rf *.o microbbs @@ -56,9 +56,11 @@ int bbs_article( term_screen *ts, const char *fname ) switch( ch ) { case 'q': + case 'Q': quit_loop = 1; break; case 'n': + case 'N': i = 0; break; default: diff --git a/buildinfo.h b/buildinfo.h index d831b5e..1b1041d 100644 --- a/buildinfo.h +++ b/buildinfo.h @@ -4,7 +4,7 @@ #include <stdio.h> #include <stdlib.h> -#define BUILD_VERSION "0.1.4" +#define BUILD_VERSION "0.1.7" #define BUILD_DATE (__DATE__) void print_build_info(); @@ -0,0 +1,29 @@ +#include "logs.h" + +int bbs_log( const char *syslname ) +{ + int ret; + char *term=NULL; + + setlogmask (LOG_UPTO (LOG_NOTICE)); + + if ( syslname == NULL ) + { + openlog ( BBS_DEFAULT_SYSLOG, LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1); + } else + { + openlog ( syslname, LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1 ); + } + + term = getenv( "TERM" ); + if ( term != NULL ) + syslog (LOG_NOTICE, "BBS visitor with TERM=%s", term); + else + syslog( LOG_NOTICE, "BBS visitor" ); + + closelog (); + + return ret; +} + + @@ -0,0 +1,12 @@ +#ifndef __MICROBBS_LOGS_H +#define __MICROBBS_LOGS_H + +#include <stdlib.h> +#include <stdio.h> +#include <syslog.h> + +#define BBS_DEFAULT_SYSLOG "microbbs" + +int bbs_log( const char* ); + +#endif @@ -1,6 +1,7 @@ #include <stdio.h> #include <stdlib.h> +#include "logs.h" #include "motd.h" #include "libterm/term.h" @@ -15,6 +16,8 @@ int main( int argc, char **argv ) term_init_data( &ts ); //printf("%d %d\n", ts.term_col, ts.term_row); + //write to log that some user have accesed bbs + bbs_log( NULL ); //write to default place bbs_motd( &ts, "art/motd.txt" ); print_build_info(); while ( strncmp( str, "q", 1 ) ) @@ -26,21 +29,25 @@ int main( int argc, char **argv ) switch ( str[0] ) { case 'm': + case 'M': { bbs_motd( &ts, "art/motd.txt" ); } break; case 's': + case 'S': { bbs_sysinfo( &ts ); } break; case 'a': + case 'A': { bbs_article( &ts, "article/post1.txt" ); } break; case 'q': + case 'Q': break; default: printf("Unknow command\n"); |