fiche.h - fiche - A pastebin adjusted for gopher use | |
git clone git://vernunftzentrum.de/fiche.git | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
fiche.h (2322B) | |
--- | |
1 /* | |
2 Fiche - Command line pastebin for sharing terminal output. | |
3 | |
4 ------------------------------------------------------------------------… | |
5 | |
6 License: MIT (http://www.opensource.org/licenses/mit-license.php) | |
7 Repository: https://github.com/solusipse/fiche/ | |
8 Live example: http://termbin.com | |
9 | |
10 ------------------------------------------------------------------------… | |
11 | |
12 usage: fiche [-DepbsdolBuw]. | |
13 [-D] [-e] [-d domain] [-p port] [-s slug size] | |
14 [-o output directory] [-B buffer size] [-u user name] | |
15 [-l log file] [-b banlist] [-w whitelist] | |
16 | |
17 Use netcat to push text - example: | |
18 $ cat fiche.c | nc localhost 9999 | |
19 | |
20 ------------------------------------------------------------------------… | |
21 */ | |
22 | |
23 #ifndef FICHE_H | |
24 #define FICHE_H | |
25 | |
26 #include <stdint.h> | |
27 #include <stdbool.h> | |
28 | |
29 | |
30 /** | |
31 * @brief Used as a container for fiche settings. Create before | |
32 * the initialization | |
33 * | |
34 */ | |
35 typedef struct Fiche_Settings { | |
36 /** | |
37 * @brief Domain used in output links | |
38 */ | |
39 char *domain; | |
40 | |
41 /** | |
42 * @brief Path to directory used for storing uploaded pastes | |
43 */ | |
44 char *output_dir_path; | |
45 | |
46 /** | |
47 * @brief Port on which fiche is waiting for connections | |
48 */ | |
49 uint16_t port; | |
50 | |
51 /** | |
52 * @brief Length of a paste's name | |
53 */ | |
54 uint8_t slug_len; | |
55 | |
56 /** | |
57 * @brief Protocol prefix to use, defaults to "http://" | |
58 */ | |
59 char *prefix; | |
60 | |
61 /** | |
62 * @brief Connection buffer length | |
63 * | |
64 * @remarks Length of this buffer limits max size of uploaded files | |
65 */ | |
66 uint32_t buffer_len; | |
67 | |
68 /** | |
69 * @brief Name of the user that runs fiche process | |
70 */ | |
71 char *user_name; | |
72 | |
73 /** | |
74 * @brief Path to the log file | |
75 */ | |
76 char *log_file_path; | |
77 | |
78 /** | |
79 * @brief Path to the file with banned IPs | |
80 */ | |
81 char *banlist_path; | |
82 | |
83 /** | |
84 * @brief Path to the file with whitelisted IPs | |
85 */ | |
86 char *whitelist_path; | |
87 | |
88 | |
89 | |
90 } Fiche_Settings; | |
91 | |
92 | |
93 /** | |
94 * @brief Initializes Fiche_Settings instance | |
95 */ | |
96 void fiche_init(Fiche_Settings *settings); | |
97 | |
98 | |
99 /** | |
100 * @brief Runs fiche server | |
101 * | |
102 * @return 0 if it was able to start, any other value otherwise | |
103 */ | |
104 int fiche_run(Fiche_Settings settings); | |
105 | |
106 | |
107 /** | |
108 * @brief array of symbols used in slug generation | |
109 * @remarks defined in fiche.c | |
110 */ | |
111 extern const char *Fiche_Symbols; | |
112 | |
113 | |
114 #endif |