enhancement #33 - fiche - A pastebin adjusted for gopher use
 (HTM) git clone git://vernunftzentrum.de/fiche.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) LICENSE
       ---
 (DIR) commit a5c137c06d20e96fb97e946378437ec198299287
 (DIR) parent abf8ae51177e4dc6080e1e23265e4d515b42c1a8
 (HTM) Author: solusipse <solus1ps3@gmail.com>
       Date:   Sat, 23 Jan 2016 12:36:53 +0100
       
       enhancement #33
       
       Diffstat:
         fiche.c                             |      20 +++++++++++++++++---
         fiche.h                             |       4 +++-
       
       2 files changed, 20 insertions(+), 4 deletions(-)
       ---
 (DIR) diff --git a/fiche.c b/fiche.c
       @@ -36,6 +36,7 @@ int main(int argc, char **argv)
            time_seed = time(0);
        
            parse_parameters(argc, argv);
       +    set_domain_name();
        
            if (getuid() == 0)
            {
       @@ -404,11 +405,21 @@ void error(char *buffer)
            exit(1);
        }
        
       +void set_domain_name() {
       +    char b[128];
       +    memcpy(b, DOMAIN, sizeof DOMAIN);
       +
       +    if (HTTPS)
       +        snprintf(DOMAIN, sizeof DOMAIN, "%s%s", "https://", b);
       +    else
       +        snprintf(DOMAIN, sizeof DOMAIN, "%s%s", "http://", b);
       +}
       +
        void parse_parameters(int argc, char **argv)
        {
            int c;
        
       -    while ((c = getopt (argc, argv, "Dep:b:s:d:o:l:B:u:w:")) != -1)
       +    while ((c = getopt (argc, argv, "DeSp:b:s:d:o:l:B:u:w:")) != -1)
                switch (c)
                {
                    case 'D':
       @@ -417,8 +428,11 @@ void parse_parameters(int argc, char **argv)
                    case 'e':
                        snprintf(symbols, sizeof symbols, "%s", "abcdefghijklmnopqrstuvwxyz0123456789-+_=.ABCDEFGHIJKLMNOPQRSTUVWXYZ");
                        break;
       +            case 'S':
       +                HTTPS = 1;
       +                break;
                    case 'd':
       -                snprintf(DOMAIN, sizeof DOMAIN, "%s%s%s", "http://", optarg, "/");
       +                snprintf(DOMAIN, sizeof DOMAIN, "%s%s", optarg, "/");
                        break;
                    case 'p':
                        PORT = atoi(optarg);
       @@ -447,7 +461,7 @@ void parse_parameters(int argc, char **argv)
                        load_list(WHITEFILE, 1);
                        break;
                    default:
       -                printf("usage: fiche [-pbsdolBuw].\n");
       +                printf("usage: fiche [-pbsdSolBuw].\n");
                        printf("                     [-d domain] [-p port] [-s slug_size]\n");
                        printf("                     [-o output directory] [-B buffer_size] [-u user name]\n");
                        printf("                     [-l log file] [-b banlist] [-w whitelist]\n");
 (DIR) diff --git a/fiche.h b/fiche.h
       @@ -54,11 +54,12 @@ char *BANFILE;
        char *WHITEFILE;
        char *WHITELIST;
        int DAEMON = 0;
       +int HTTPS = 0;
        int PORT = 9999;
        int SLUG_SIZE = 4;
        int BUFSIZE = 32768;
        int QUEUE_SIZE = 500;
       -char DOMAIN[128] = "http://localhost/";
       +char DOMAIN[128] = "localhost/";
        char symbols[67] = "abcdefghijklmnopqrstuvwxyz0123456789";
        
        unsigned int time_seed;
       @@ -87,6 +88,7 @@ void save_to_file(char *buffer, char *slug, struct client_data data);
        void display_info(struct client_data data, char *slug, char *message);
        void startup_message();
        void set_basedir();
       +void set_domain_name();
        void load_list(char *file_path, int type);
        void parse_parameters(int argc, char **argv);
        void save_log(char *slug, char *hostaddrp, char *h_name);