Replace -S flag against a generic protocol switch -P - 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 e4daa5f172e6be6e9f88a74fcd3bce30187d558d
(DIR) parent 9206dce65fc983c49c32b20df6edce7a0b896e7a
(HTM) Author: Christian Kellermann <ckeen@pestilenz.org>
Date: Fri, 2 Mar 2018 20:31:43 +0100
Replace -S flag against a generic protocol switch -P
This allows to use fiche with a different protocol type, e.g. gopher.
Diffstat:
README.md | 6 +++---
fiche.c | 15 +++++----------
fiche.h | 4 ++--
main.c | 12 ++++++------
4 files changed, 16 insertions(+), 21 deletions(-)
---
(DIR) diff --git a/README.md b/README.md
@@ -203,12 +203,12 @@ __Default value:__ 4
-------------------------------------------------------------------------------
-#### HTTPS `-S`
+#### protocol prefix `-P`
-If set, fiche returns url with https prefix instead of http
+If set, fiche returns url with protocol prefix 'prefix' instead of http
```
-fiche -S
+fiche -P https
```
__Output url with this parameter__: `https://localhost/xxxx`,
(DIR) diff --git a/fiche.c b/fiche.c
@@ -201,8 +201,8 @@ void fiche_init(Fiche_Settings *settings) {
9999,
// slug length
4,
- // https
- false,
+ // protocol prefix
+ "http",
// buffer length
32768,
// user name
@@ -362,20 +362,15 @@ static void get_date(char *buf) {
static int set_domain_name(Fiche_Settings *settings) {
- char *prefix = "";
- if (settings->https) {
- prefix = "https://";
- } else {
- prefix = "http://";
- }
- const int len = strlen(settings->domain) + strlen(prefix) + 1;
+ const int len = strlen(settings->domain) + strlen(settings->prefix) + 4;
char *b = malloc(len);
if (!b) {
return -1;
}
- strcpy(b, prefix);
+ strcpy(b, settings->prefix);
+ strcat(b, "://");
strcat(b, settings->domain);
settings->domain = b;
(DIR) diff --git a/fiche.h b/fiche.h
@@ -54,9 +54,9 @@ typedef struct Fiche_Settings {
uint8_t slug_len;
/**
- * @brief If set, returns url with https prefix instead of http
+ * @brief Protocol prefix to use, defaults to "http://"
*/
- bool https;
+ char *prefix;
/**
* @brief Connection buffer length
(DIR) diff --git a/main.c b/main.c
@@ -44,7 +44,7 @@ int main(int argc, char **argv) {
// Parse input arguments
int c;
- while ((c = getopt(argc, argv, "D6eSp:b:s:d:o:l:B:u:w:")) != -1) {
+ while ((c = getopt(argc, argv, "D6ep:b:s:d:o:P:l:B:u:w:")) != -1) {
switch (c) {
// domain
@@ -68,10 +68,10 @@ int main(int argc, char **argv) {
}
break;
- // https
- case 'S':
+ // custom protocol prefix
+ case 'P':
{
- fs.https = true;
+ fs.prefix = optarg;
}
break;
@@ -121,9 +121,9 @@ int main(int argc, char **argv) {
default:
{
printf("usage: fiche [-dpsSoBulbw].\n");
- printf(" [-d domain] [-p port] [-s slug size]\n");
+ printf(" [-d domain] [-p port] [-P protocol] [-s slug size]\n");
printf(" [-o output directory] [-B buffer size] [-u user name]\n");
- printf(" [-l log file] [-b banlist] [-w whitelist] [-S]\n");
+ printf(" [-l log file] [-b banlist] [-w whitelist]\n");
return 0;
}
break;