#ifndef vger_h_INCLUDED #define vger_h_INCLUDED /* length of "gemini://" */ #define GEMINI_PART 9 /* * number of bytes to read with fgets() : 2014 + 1. * fgets() reads at most size-1 (1024 here). * See https://gemini.circumlunar.space/docs/specification.html. */ #define GEMINI_REQUEST_MAX 1025 /* global vars */ static int _retcode = 0; static ssize_t _datasiz = 0; static char _request[GEMINI_REQUEST_MAX] = {'\0'}; /* functions */ ssize_t autoindex(const char *); void cgi(const char *); char * check_request(char *); void check_path(char *, size_t, const char *, int); ssize_t display_file(const char *); int do_cgi(const char *, const char *, const char *, const char *, const char *); void drop_privileges(const char *, const char *, const char *); void get_dir_file(char *, char *, size_t, char *, size_t); char * get_hostname(const char *, char *, size_t); char * get_path(const char *, char *, size_t, int, const char *); char * get_query(char *, char *, size_t); void status(const int, const char *, ...); void strip_trailing_slash(char *); int uridecode (char *); void stop(const int, const char *, ...); #endif // vger_h_INCLUDED