iMerge pull request #19 from bket/cleanup - 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 a284706e78fc19568e8954376b0cb8e04a24221c /ckeen/repos/fiche/commit/a284706e78fc19568e8954376b0cb8e04a24221c.gph vernunftzentrum.de 70 1parent 888b578907be5e3aca8fa0c286b10eea813c52f9 /ckeen/repos/fiche/commit/888b578907be5e3aca8fa0c286b10eea813c52f9.gph vernunftzentrum.de 70 hAuthor: solusipse URL:mailto:solus1ps3@gmail.com vernunftzentrum.de 70 iDate: Sat, 19 Sep 2015 18:49:06 +0200 Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iMerge pull request #19 from bket/cleanup Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iCleanup Err vernunftzentrum.de 70 iDiffstat: Err vernunftzentrum.de 70 i fiche.c | 93 ++++++++++++++----------------- Err vernunftzentrum.de 70 i fiche.h | 2 -- Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i2 files changed, 43 insertions(+), 52 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@@ -38,7 +38,7 @@ int main(int argc, char **argv) Err vernunftzentrum.de 70 i parse_parameters(argc, argv); Err vernunftzentrum.de 70 i if (BASEDIR == NULL) Err vernunftzentrum.de 70 i set_basedir(); Err vernunftzentrum.de 70 i- Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i startup_message(); Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i int listen_socket, optval = 1; Err vernunftzentrum.de 70 i@@ -62,6 +62,8 @@ int main(int argc, char **argv) Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i else Err vernunftzentrum.de 70 i while (1) perform_connection(listen_socket); Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i+ return 0; Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i void *thread_connection(void *args) Err vernunftzentrum.de 70 i@@ -75,25 +77,23 @@ void *thread_connection(void *args) Err vernunftzentrum.de 70 i bzero(buffer, BUFSIZE); Err vernunftzentrum.de 70 i int status = recv(connection_socket, buffer, BUFSIZE, MSG_DONTWAIT); Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i- if (WHITELIST != NULL) Err vernunftzentrum.de 70 i- if (check_whitelist(data.ip_address) == NULL) Err vernunftzentrum.de 70 i- { Err vernunftzentrum.de 70 i- display_info(data, NULL, "Rejected connection from unknown user."); Err vernunftzentrum.de 70 i- save_log(NULL, data.ip_address, data.hostname); Err vernunftzentrum.de 70 i- write(connection_socket, "You are not whitelisted!\n", 26); Err vernunftzentrum.de 70 i- close(connection_socket); Err vernunftzentrum.de 70 i- pthread_exit(NULL); Err vernunftzentrum.de 70 i- } Err vernunftzentrum.de 70 i+ if (WHITELIST != NULL && check_whitelist(data.ip_address) == NULL) Err vernunftzentrum.de 70 i+ { Err vernunftzentrum.de 70 i+ display_info(data, NULL, "Rejected connection from unknown user."); Err vernunftzentrum.de 70 i+ save_log(NULL, data.ip_address, data.hostname); Err vernunftzentrum.de 70 i+ write(connection_socket, "You are not whitelisted!\n", 26); Err vernunftzentrum.de 70 i+ close(connection_socket); Err vernunftzentrum.de 70 i+ pthread_exit(NULL); Err vernunftzentrum.de 70 i+ } Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i- if (BANLIST != NULL) Err vernunftzentrum.de 70 i- if (check_banlist(data.ip_address) != NULL) Err vernunftzentrum.de 70 i- { Err vernunftzentrum.de 70 i- display_info(data, NULL, "Rejected connection from banned user."); Err vernunftzentrum.de 70 i- save_log(NULL, data.ip_address, data.hostname); Err vernunftzentrum.de 70 i- write(connection_socket, "You are banned!\n", 17); Err vernunftzentrum.de 70 i- close(connection_socket); Err vernunftzentrum.de 70 i- pthread_exit(NULL); Err vernunftzentrum.de 70 i- } Err vernunftzentrum.de 70 i+ if (BANLIST != NULL && check_banlist(data.ip_address) != NULL) Err vernunftzentrum.de 70 i+ { Err vernunftzentrum.de 70 i+ display_info(data, NULL, "Rejected connection from banned user."); Err vernunftzentrum.de 70 i+ save_log(NULL, data.ip_address, data.hostname); Err vernunftzentrum.de 70 i+ write(connection_socket, "You are banned!\n", 17); Err vernunftzentrum.de 70 i+ close(connection_socket); Err vernunftzentrum.de 70 i+ pthread_exit(NULL); Err vernunftzentrum.de 70 i+ } Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i if (check_protocol(buffer) == 1) Err vernunftzentrum.de 70 i status = -1; Err vernunftzentrum.de 70 i@@ -122,7 +122,7 @@ void perform_connection(int listen_socket) Err vernunftzentrum.de 70 i { Err vernunftzentrum.de 70 i pthread_t thread_id; Err vernunftzentrum.de 70 i struct sockaddr_in client_address; Err vernunftzentrum.de 70 i- Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i int address_length = sizeof(client_address); Err vernunftzentrum.de 70 i int connection_socket = accept(listen_socket, (struct sockaddr *) &client_address, (void *) &address_length); Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i@@ -145,11 +145,6 @@ void perform_connection(int listen_socket) Err vernunftzentrum.de 70 i pthread_detach(thread_id); Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i-void display_date() Err vernunftzentrum.de 70 i-{ Err vernunftzentrum.de 70 i- info("%s\n", get_date()); Err vernunftzentrum.de 70 i-} Err vernunftzentrum.de 70 i- Err vernunftzentrum.de 70 i char *get_date() Err vernunftzentrum.de 70 i { Err vernunftzentrum.de 70 i time_t rawtime; Err vernunftzentrum.de 70 i@@ -173,7 +168,7 @@ struct client_data get_client_address(struct sockaddr_in client_address) Err vernunftzentrum.de 70 i hostp = gethostbyaddr((const char *)&client_address.sin_addr.s_addr, sizeof(client_address.sin_addr.s_addr), AF_INET); Err vernunftzentrum.de 70 i if (hostp == NULL) Err vernunftzentrum.de 70 i { Err vernunftzentrum.de 70 i- info("ERROR: Couldn't obtain client's hostname\n"); Err vernunftzentrum.de 70 i+ printf("WARNING: Couldn't obtain client's hostname\n"); Err vernunftzentrum.de 70 i data.hostname = "n/a"; Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i else Err vernunftzentrum.de 70 i@@ -182,7 +177,7 @@ struct client_data get_client_address(struct sockaddr_in client_address) Err vernunftzentrum.de 70 i hostaddrp = inet_ntoa(client_address.sin_addr); Err vernunftzentrum.de 70 i if (hostaddrp == NULL) Err vernunftzentrum.de 70 i { Err vernunftzentrum.de 70 i- info("ERROR: Couldn't obtain client's address\n"); Err vernunftzentrum.de 70 i+ printf("WARNING: Couldn't obtain client's address\n"); Err vernunftzentrum.de 70 i data.ip_address = "n/a"; Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i else Err vernunftzentrum.de 70 i@@ -211,12 +206,17 @@ void save_log(char *slug, char *hostaddrp, char *h_name) Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i void display_info(struct client_data data, char *slug, char *message) Err vernunftzentrum.de 70 i { Err vernunftzentrum.de 70 i+ if (DAEMON) Err vernunftzentrum.de 70 i+ return; Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i if (slug == NULL) Err vernunftzentrum.de 70 i- info("%s\n", message); Err vernunftzentrum.de 70 i- else info("Saved to: %s\n", slug); Err vernunftzentrum.de 70 i- display_date(); Err vernunftzentrum.de 70 i- info("Client: %s (%s)\n", data.ip_address, data.hostname); Err vernunftzentrum.de 70 i- info("====================================\n"); Err vernunftzentrum.de 70 i+ printf("%s\n", message); Err vernunftzentrum.de 70 i+ else Err vernunftzentrum.de 70 i+ printf("Saved to: %s\n", slug); Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i+ printf("%s\n", get_date()); Err vernunftzentrum.de 70 i+ printf("Client: %s (%s)\n", data.ip_address, data.hostname); Err vernunftzentrum.de 70 i+ printf("====================================\n"); Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i char *check_banlist(char *ip_address) Err vernunftzentrum.de 70 i@@ -343,8 +343,8 @@ void save_to_file(char *slug, char *buffer, struct client_data data) Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i void change_owner(char *directory) Err vernunftzentrum.de 70 i { Err vernunftzentrum.de 70 i- if ((UID != -1)&&(GID != -1)) Err vernunftzentrum.de 70 i- chown(directory, UID, GID); Err vernunftzentrum.de 70 i+ if (UID != -1 && GID != -1) Err vernunftzentrum.de 70 i+ chown(directory, UID, GID); Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i void set_uid_gid(char *username) Err vernunftzentrum.de 70 i@@ -375,32 +375,28 @@ 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- info("====================================\n"); Err vernunftzentrum.de 70 i- info("Domain name: %s\n", DOMAIN); Err vernunftzentrum.de 70 i- info("Saving files to: %s\n", BASEDIR); Err vernunftzentrum.de 70 i- info("Fiche started listening on port %d.\n", PORT); Err vernunftzentrum.de 70 i- info("====================================\n"); Err vernunftzentrum.de 70 i-} Err vernunftzentrum.de 70 i- Err vernunftzentrum.de 70 i-void info(char *buffer, ...) Err vernunftzentrum.de 70 i-{ Err vernunftzentrum.de 70 i if (DAEMON) Err vernunftzentrum.de 70 i return; Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i- printf(buffer); Err vernunftzentrum.de 70 i+ printf("====================================\n"); 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+ printf("Buffer size set to: %d.\n", BUFSIZE); Err vernunftzentrum.de 70 i+ printf("Slug size set to: %d.\n", SLUG_SIZE); Err vernunftzentrum.de 70 i+ printf("Log file: %s\n", LOG); Err vernunftzentrum.de 70 i+ printf("====================================\n"); 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- if (strcmp(*argv, "-D")) Err vernunftzentrum.de 70 i- DAEMON = 1; Err vernunftzentrum.de 70 i- Err vernunftzentrum.de 70 i while ((c = getopt (argc, argv, "Dep:b:s:d:o:l:B:u:w:")) != -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+ DAEMON = 1; Err vernunftzentrum.de 70 i break; Err vernunftzentrum.de 70 i case 'e': Err vernunftzentrum.de 70 i snprintf(symbols, sizeof symbols, "%s", "abcdefghijklmnopqrstuvwxyz0123456789-+_=.ABCDEFGHIJKLMNOPQRSTUVWXYZ"); Err vernunftzentrum.de 70 i@@ -413,7 +409,6 @@ void parse_parameters(int argc, char **argv) Err vernunftzentrum.de 70 i break; Err vernunftzentrum.de 70 i case 'B': Err vernunftzentrum.de 70 i BUFSIZE = atoi(optarg); Err vernunftzentrum.de 70 i- info("Buffer size set to: %d.\n", BUFSIZE); Err vernunftzentrum.de 70 i break; Err vernunftzentrum.de 70 i case 'b': Err vernunftzentrum.de 70 i BANFILE = optarg; Err vernunftzentrum.de 70 i@@ -421,14 +416,12 @@ void parse_parameters(int argc, char **argv) Err vernunftzentrum.de 70 i break; Err vernunftzentrum.de 70 i case 's': Err vernunftzentrum.de 70 i SLUG_SIZE = atoi(optarg); Err vernunftzentrum.de 70 i- info("Slug size set to: %d.\n", SLUG_SIZE); Err vernunftzentrum.de 70 i break; Err vernunftzentrum.de 70 i case 'o': Err vernunftzentrum.de 70 i BASEDIR = optarg; 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- info("Log file: %s\n", LOG); Err vernunftzentrum.de 70 i break; Err vernunftzentrum.de 70 i case 'u': Err vernunftzentrum.de 70 i set_uid_gid(optarg); Err vernunftzentrum.de 70 1diff --git a/fiche.h b/fiche.h /ckeen/repos/fiche/file/fiche.h.gph vernunftzentrum.de 70 i@@ -81,7 +81,6 @@ int check_protocol(char *buffer); Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i void bind_to_port(int listen_socket, struct sockaddr_in serveraddr); Err vernunftzentrum.de 70 i void error(char *error_code){perror(error_code); exit(1);} Err vernunftzentrum.de 70 i-void display_date(); Err vernunftzentrum.de 70 i void perform_connection(int listen_socket); Err vernunftzentrum.de 70 i void generate_url(char *buffer, char *slug, size_t slug_length, struct client_data data); Err vernunftzentrum.de 70 i void save_to_file(char *buffer, char *slug, struct client_data data); Err vernunftzentrum.de 70 i@@ -93,7 +92,6 @@ 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 void change_owner(char *directory); Err vernunftzentrum.de 70 i void set_uid_gid(); Err vernunftzentrum.de 70 i-void info(char *buffer, ...); Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i char *check_banlist(char *ip_address); Err vernunftzentrum.de 70 i char *check_whitelist(char *ip_address); Err vernunftzentrum.de 70 .