added details to error messages - 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 c1e37117428266b13b33ea2ce5cb7fb9a076c9b4
 (DIR) parent 173883c0a5a1fb36b1af11d800f1aaa26186c69a
 (HTM) Author: solusipse <solus1ps3@gmail.com>
       Date:   Mon, 16 Sep 2013 10:53:32 +0200
       
       added details to error messages
       
       Diffstat:
         fiche.c                             |      20 +++++++++++---------
         fiche.h                             |       3 ++-
       
       2 files changed, 13 insertions(+), 10 deletions(-)
       ---
 (DIR) diff --git a/fiche.c b/fiche.c
       @@ -117,16 +117,16 @@ void perform_connection(int listen_socket)
            timeout.tv_usec = 0;
        
            if (setsockopt (connection_socket, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(timeout)) < 0)
       -        error();
       +        error("ERROR while setting setsockopt timeout");
            if (setsockopt (connection_socket, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof(timeout)) < 0)
       -        error();
       +        error("ERROR while setting setsockopt timeout");
        
            struct thread_arguments arguments;
            arguments.connection_socket = connection_socket;
            arguments.client_address = client_address;
        
            if (pthread_create(&thread_id, NULL, &thread_connection, &arguments) != 0)
       -        error();
       +        error("ERROR on thread creation");
            else
                pthread_detach(thread_id);
        }
       @@ -154,10 +154,12 @@ struct client_data get_client_address(struct sockaddr_in client_address)
            char *hostaddrp;
        
            hostp = gethostbyaddr((const char *)&client_address.sin_addr.s_addr, sizeof(client_address.sin_addr.s_addr), AF_INET);
       -    if (hostp == NULL) error();
       +    if (hostp == NULL)
       +        nerror("ERROR: Couldn't obtain client's address");
        
            hostaddrp = inet_ntoa(client_address.sin_addr);
       -    if (hostaddrp == NULL) error();
       +    if (hostaddrp == NULL)
       +        nerror("ERROR: Couldn't obtain client's address");
        
            display_date();
            printf("Client: %s (%s)\n", hostaddrp, hostp->h_name);
       @@ -223,7 +225,7 @@ int create_socket()
        {
            int lsocket = socket(AF_INET, SOCK_STREAM, 0);
            if (lsocket < 0)
       -        error();
       +        error("ERROR: Couldn't open socket");
            else return lsocket;
        }
        
       @@ -239,9 +241,9 @@ struct sockaddr_in set_address(struct sockaddr_in server_address)
        void bind_to_port(int listen_socket, struct sockaddr_in server_address)
        {
            if (bind(listen_socket, (struct sockaddr *) &server_address, sizeof(server_address)) < 0) 
       -        error();
       +        error("ERROR while binding to port");
            if (listen(listen_socket, QUEUE_SIZE) < 0)
       -        error();
       +        error("ERROR while starting listening");
        }
        
        void generate_url(char *buffer, char *slug)
       @@ -310,7 +312,7 @@ void set_uid_gid(char *username)
        {
            struct passwd *userdata = getpwnam(username);
            if (userdata == NULL)
       -        error();
       +        error("Provided user doesn't exist");
        
            UID = userdata->pw_uid;
            GID = userdata->pw_gid;
 (DIR) diff --git a/fiche.h b/fiche.h
       @@ -63,7 +63,8 @@ int create_directory(char *slug);
        
        void bind_to_port(int listen_socket, struct sockaddr_in serveraddr);
        void display_line(){printf("====================================\n");}
       -void error(){perror("ERROR"); exit(1);}
       +void error(char *error_code){perror(error_code); exit(1);}
       +void nerror(char *error_code){perror(error_code);}
        void display_date();
        void perform_connection(int listen_socket);
        void generate_url(char *buffer, char *slug);