iadded logging - fiche - A pastebin adjusted for gopher use Err vernunftzentrum.de 70 hgit clone git://vernunftzentrum.de/fiche.git URL:git://vernunftzentrum.de/fiche.git vernunftzentrum.de 70 1Log /ckeen/repos/fiche/log.gph vernunftzentrum.de 70 1Files /ckeen/repos/fiche/files.gph vernunftzentrum.de 70 1Refs /ckeen/repos/fiche/refs.gph vernunftzentrum.de 70 1LICENSE /ckeen/repos/fiche/file/LICENSE.gph vernunftzentrum.de 70 i--- Err vernunftzentrum.de 70 1commit d25e9baf02dc4a59d00e5878e2463f506e992413 /ckeen/repos/fiche/commit/d25e9baf02dc4a59d00e5878e2463f506e992413.gph vernunftzentrum.de 70 1parent 716453901872eff2a0889d2a2eb73c0b16730968 /ckeen/repos/fiche/commit/716453901872eff2a0889d2a2eb73c0b16730968.gph vernunftzentrum.de 70 hAuthor: solusipse URL:mailto:solus1ps3@gmail.com vernunftzentrum.de 70 iDate: Mon, 9 Sep 2013 21:02:33 +0200 Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iadded logging Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iDiffstat: Err vernunftzentrum.de 70 i fiche.c | 48 ++++++++++++++++++++++++------- Err vernunftzentrum.de 70 i fiche.h | 7 +++++-- Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i2 files changed, 42 insertions(+), 13 deletions(-) Err vernunftzentrum.de 70 i--- Err vernunftzentrum.de 70 1diff --git a/fiche.c b/fiche.c /ckeen/repos/fiche/file/fiche.c.gph vernunftzentrum.de 70 i@@ -10,8 +10,9 @@ Live example: http://code.solusipse.net/ Err vernunftzentrum.de 70 i ------------------------------------------------------------------------------- Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i usage: fiche [-bdpqs]. Err vernunftzentrum.de 70 i- [-d host_domain.com] [-p port] [-s slug_size] Err vernunftzentrum.de 70 i- [-o output_directory] [-b buffer_size] [-q queue_size] Err vernunftzentrum.de 70 i+ [-d domain] [-p port] [-s slug_size] Err vernunftzentrum.de 70 i+ [-o output directory] [-b buffer_size] Err vernunftzentrum.de 70 i+ [-l log file] [-q queue_size] Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i Compile with Makefile or manually with -O2 and -pthread flags. Err vernunftzentrum.de 70 i To install use `make install` command. Err vernunftzentrum.de 70 i@@ -59,10 +60,11 @@ void *thread_connection(void *args) Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i if (status != -1) Err vernunftzentrum.de 70 i { Err vernunftzentrum.de 70 i- get_client_address(client_address); Err vernunftzentrum.de 70 i char slug[SLUG_SIZE]; Err vernunftzentrum.de 70 i generate_url(buffer, slug); Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i+ get_client_address(client_address, slug); Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i char response[strlen(slug) + strlen(DOMAIN) + 2]; Err vernunftzentrum.de 70 i strcpy(response, DOMAIN); Err vernunftzentrum.de 70 i strcat(response, slug); Err vernunftzentrum.de 70 i@@ -71,7 +73,7 @@ void *thread_connection(void *args) Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i else Err vernunftzentrum.de 70 i { Err vernunftzentrum.de 70 i- get_client_address(client_address); Err vernunftzentrum.de 70 i+ get_client_address(client_address, NULL); Err vernunftzentrum.de 70 i printf("Invalid connection.\n"); Err vernunftzentrum.de 70 i write(connection_socket, "Use netcat.\n", 13); Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i@@ -119,10 +121,8 @@ void display_date() Err vernunftzentrum.de 70 i printf("%s", asctime(timeinfo)); Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i-void get_client_address(struct sockaddr_in client_address) Err vernunftzentrum.de 70 i+void get_client_address(struct sockaddr_in client_address, char *slug) Err vernunftzentrum.de 70 i { Err vernunftzentrum.de 70 i- display_line(); Err vernunftzentrum.de 70 i- Err vernunftzentrum.de 70 i struct hostent *hostp; Err vernunftzentrum.de 70 i char *hostaddrp; Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i@@ -134,6 +134,25 @@ void get_client_address(struct sockaddr_in client_address) Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i display_date(); Err vernunftzentrum.de 70 i printf("Client: %s (%s)\n", hostaddrp, hostp->h_name); Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i+ if (LOG != NULL) Err vernunftzentrum.de 70 i+ save_log(slug, hostaddrp, hostp->h_name); Err vernunftzentrum.de 70 i+} Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i+void save_log(char *slug, char *hostaddrp, char *h_name) Err vernunftzentrum.de 70 i+{ Err vernunftzentrum.de 70 i+ char contents[256]; Err vernunftzentrum.de 70 i+ snprintf(contents, sizeof contents, "%s:%s:%s\n", slug, hostaddrp, h_name); Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i+ if (slug != NULL) Err vernunftzentrum.de 70 i+ snprintf(contents, sizeof contents, "%s:%s:%s\n", slug, hostaddrp, h_name); Err vernunftzentrum.de 70 i+ else Err vernunftzentrum.de 70 i+ snprintf(contents, sizeof contents, "%s:%s:%s\n", "error", hostaddrp, h_name); Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i+ FILE *fp; Err vernunftzentrum.de 70 i+ fp = fopen(LOG, "a"); Err vernunftzentrum.de 70 i+ fprintf(fp, "%s", contents); Err vernunftzentrum.de 70 i+ fclose(fp); Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i int create_socket() Err vernunftzentrum.de 70 i@@ -208,6 +227,8 @@ void save_to_file(char *slug, char *buffer) Err vernunftzentrum.de 70 i fprintf(fp, "%s", buffer); Err vernunftzentrum.de 70 i fclose(fp); Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i+ display_line(); Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i printf("Saved to: %s\n", directory); Err vernunftzentrum.de 70 i free(directory); Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i@@ -220,16 +241,16 @@ void set_basedir() Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i void startup_message() Err vernunftzentrum.de 70 i { Err vernunftzentrum.de 70 i- printf("Fiche started listening on port %d.\n", PORT); Err vernunftzentrum.de 70 i printf("Domain name: %s\n", DOMAIN); Err vernunftzentrum.de 70 i printf("Saving files to: %s\n", BASEDIR); Err vernunftzentrum.de 70 i+ printf("Fiche started listening on port %d.\n", PORT); Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i void parse_parameters(int argc, char **argv) Err vernunftzentrum.de 70 i { Err vernunftzentrum.de 70 i int c; Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i- while ((c = getopt (argc, argv, "p:b:q:s:d:o:")) != -1) Err vernunftzentrum.de 70 i+ while ((c = getopt (argc, argv, "p:b:q:s:d:o:l:")) != -1) Err vernunftzentrum.de 70 i switch (c) Err vernunftzentrum.de 70 i { Err vernunftzentrum.de 70 i case 'd': Err vernunftzentrum.de 70 i@@ -255,10 +276,15 @@ void parse_parameters(int argc, char **argv) Err vernunftzentrum.de 70 i if((BASEDIR[strlen(BASEDIR) - 1]) != '/') Err vernunftzentrum.de 70 i strcat(BASEDIR, "/"); Err vernunftzentrum.de 70 i break; Err vernunftzentrum.de 70 i+ case 'l': Err vernunftzentrum.de 70 i+ LOG = optarg; Err vernunftzentrum.de 70 i+ printf("Log file: %s\n", LOG); Err vernunftzentrum.de 70 i+ break; Err vernunftzentrum.de 70 i default: Err vernunftzentrum.de 70 i printf("usage: fiche [-bdpqs].\n"); Err vernunftzentrum.de 70 i- printf(" [-d host_domain.com] [-p port] [-s slug_size]\n"); Err vernunftzentrum.de 70 i- printf(" [-o output_directory] [-b buffer_size] [-q queue_size]\n"); Err vernunftzentrum.de 70 i+ printf(" [-d domain] [-p port] [-s slug_size]\n"); Err vernunftzentrum.de 70 i+ printf(" [-o output directory] [-b buffer_size]\n"); Err vernunftzentrum.de 70 i+ printf(" [-l log file] [-q queue_size]\n"); Err vernunftzentrum.de 70 i exit(1); Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i \ No newline at end of file Err vernunftzentrum.de 70 1diff --git a/fiche.h b/fiche.h /ckeen/repos/fiche/file/fiche.h.gph vernunftzentrum.de 70 i@@ -39,13 +39,15 @@ $ cat fiche.c | nc localhost 9999 Err vernunftzentrum.de 70 i #include Err vernunftzentrum.de 70 i #include Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i-int time_seed; Err vernunftzentrum.de 70 i+char *LOG; Err vernunftzentrum.de 70 i char *BASEDIR; Err vernunftzentrum.de 70 i int PORT = 9999; Err vernunftzentrum.de 70 i int SLUG_SIZE = 4; Err vernunftzentrum.de 70 i int BUFSIZE = 8192; Err vernunftzentrum.de 70 i int QUEUE_SIZE = 100; Err vernunftzentrum.de 70 i char DOMAIN[128] = "http://localhost/"; Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i+int time_seed; Err vernunftzentrum.de 70 i const char *symbols = "abcdefghijklmnopqrstuvwxyz0123456789"; Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i int create_socket(); Err vernunftzentrum.de 70 i@@ -55,13 +57,14 @@ void bind_to_port(int listen_socket, struct sockaddr_in serveraddr); Err vernunftzentrum.de 70 i void display_line(){printf("====================================\n");} Err vernunftzentrum.de 70 i void error(){perror("ERROR"); exit(1);} Err vernunftzentrum.de 70 i void display_date(); Err vernunftzentrum.de 70 i-void get_client_address(struct sockaddr_in client_address); Err vernunftzentrum.de 70 i+void get_client_address(struct sockaddr_in client_address, char *slug); Err vernunftzentrum.de 70 i void perform_connection(int listen_socket); Err vernunftzentrum.de 70 i void generate_url(char *buffer, char *slug); Err vernunftzentrum.de 70 i void save_to_file(char *buffer, char *slug); Err vernunftzentrum.de 70 i void startup_message(); Err vernunftzentrum.de 70 i void set_basedir(); Err vernunftzentrum.de 70 i void parse_parameters(int argc, char **argv); Err vernunftzentrum.de 70 i+void save_log(char *slug, char *hostaddrp, char *h_name); Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i struct sockaddr_in set_address(struct sockaddr_in serveraddr); Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 .