iFailure on slug generation is now properly handled - 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 319bd7327382ef9d21d1ff3d0a5be5ac4fed5a48 /ckeen/repos/fiche/commit/319bd7327382ef9d21d1ff3d0a5be5ac4fed5a48.gph vernunftzentrum.de 70 1parent 2c88f3c9907cb59e7a0d4af932e301117a423a0d /ckeen/repos/fiche/commit/2c88f3c9907cb59e7a0d4af932e301117a423a0d.gph vernunftzentrum.de 70 hAuthor: solusipse URL:mailto:solus1ps3@gmail.com vernunftzentrum.de 70 iDate: Sat, 2 Sep 2017 19:30:08 +0200 Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iFailure on slug generation is now properly handled Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iDiffstat: Err vernunftzentrum.de 70 i fiche.c | 24 +++++++++++++++++++++++- Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i1 file changed, 23 insertions(+), 1 deletion(-) 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@@ -590,6 +590,11 @@ static void *handle_connection(void *args) { Err vernunftzentrum.de 70 i // with generated slug on disk Err vernunftzentrum.de 70 i generate_slug(&slug, c->settings->slug_len, extra); Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i+ // Something went wrong in slug generation, break here Err vernunftzentrum.de 70 i+ if (!slug) { Err vernunftzentrum.de 70 i+ break; Err vernunftzentrum.de 70 i+ } Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i // Increment counter for additional letters needed Err vernunftzentrum.de 70 i ++extra; Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i@@ -611,6 +616,23 @@ static void *handle_connection(void *args) { Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i while(create_directory(c->settings->output_dir_path, slug) != 0); Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i+ // Slug generation failed, we have to finish here Err vernunftzentrum.de 70 i+ if (!slug) { Err vernunftzentrum.de 70 i+ print_error("Couldn't generate a slug!"); Err vernunftzentrum.de 70 i+ print_separator(); Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i+ close(c->socket); Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i+ // Cleanup Err vernunftzentrum.de 70 i+ free(c); Err vernunftzentrum.de 70 i+ free(slug); Err vernunftzentrum.de 70 i+ pthread_exit(NULL); Err vernunftzentrum.de 70 i+ return NULL; Err vernunftzentrum.de 70 i+ } Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i+ Err vernunftzentrum.de 70 i+ // Save to file failed, we have to finish here Err vernunftzentrum.de 70 i if ( save_to_file(buffer, c->settings->output_dir_path, slug) != 0 ) { Err vernunftzentrum.de 70 i print_error("Couldn't save a file!"); Err vernunftzentrum.de 70 i print_separator(); Err vernunftzentrum.de 70 i@@ -671,7 +693,7 @@ static void generate_slug(char **output, uint8_t length, uint8_t extra_length) { Err vernunftzentrum.de 70 i *output = calloc(length + 1 + extra_length, sizeof(char)); Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i if (*output == NULL) { Err vernunftzentrum.de 70 i- // TODO Err vernunftzentrum.de 70 i+ return; Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i // Take n-th symbol from symbol table and use it for slug generation Err vernunftzentrum.de 70 .