Author: Sergei Trofimovich <slyich@gmail.com>
Date: Thu Feb 08 10:49:35 2024 +0000
Message: gmni: src/tofu.c: fix build on `-D_FORTIFY_SOURCE=3`
Before the change the build with `-D_FORTIFY_SOURCE=3` failed as:
In file included from ...-glibc-2.38-27-dev/include/stdio.h:964,
from src/tofu.c:9:
In function 'snprintf',
inlined from 'xt_end_chain' at src/tofu.c:82:3,
inlined from 'xt_end_chain' at src/tofu.c:70:1:
...-glibc-2.38-27-dev/include/bits/stdio2.h:54:10: error: '__builtin___snprintf_chk' specified bound 4 exceeds destination size 3 [-Werror=stringop-overflow]
54 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55 | __glibc_objsize (__s), __fmt,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
56 | __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
I think it's a legitimate report as last write segment every intends to
write 3 bytes (2 hex values and a null terminator), but `snprintf()`
always gets passed 4 bytes as an available buffers size.
While normally buffer overrun could not happen `-D_FORTIFY_SOURCE=3`
instructs `snprintf()` to always checks if there are enough bytes
available in the destination buffer and `abort()`s if the check fails.
To avoid passing excessively large buffer I made buffer size
conditional.
Author: Ondřej Fiala <fiala.ondrej@volny.cz>
Date: Tue Nov 21 02:03:49 2023 +0100
Message: gmnlm: update window size on every request to display more
Author: Ondřej Fiala <fiala.ondrej@volny.cz>
Date: Fri Nov 10 22:01:48 2023 +0100
Message: gmnlm: calculate number of rows available for text correctly
Author: René Wagner <rwa@clttr.info>
Date: Mon Nov 13 08:05:25 2023 +0100
Message: cosmetics
Author: René Wagner <rwa@clttr.info>
Date: Sun Aug 27 13:08:16 2023 +0200
Message: only show untrusted cert message when -j is not set to trust
Author: René Wagner <rwa@clttr.info>
Date: Wed Apr 12 11:09:52 2023 +0200
Message: use uppercase K for bookmark deletion
Author: René Wagner <rwa@clttr.info>
Date: Wed Feb 01 14:50:45 2023 +0100
Message: restore input display after sensitive input
Author: Ondřej Fiala <temp.xanomes@volny.cz>
Date: Thu Dec 15 21:55:16 2022 +0100
Message: gmnlm: treat invalid cert and cert mismatch similarly
gmnlm already allows overriding invalid cert error, so it makes little
sense not to allow the same for cert mismatch one. I have also reversed
the offered options for both to reflect the suggested course of action
and added a warning for invalid cert as the possibility of MitM is quite
similar to cert mismatch.
Author: René Wagner <rwa@clttr.info>
Date: Thu Aug 18 20:10:25 2022 +0200
Message: fix usage of vars in do_prompts
Author: René Wagner <rwa@clttr.info>
Date: Thu Aug 18 19:53:01 2022 +0200
Message: gmnlm: make ./ prefix mandatory for relative URLs
Interpreting everything that isn't a command as relative URL wasn't
very intuitive and lead to accidental commands or requests being made.
This commit aims to clearly separate relative URLs from commands, which
also allows us to add basic error reporting for commands.
The only exception that had to be made was in regards to /whatever URLs
as those are impossible to support without changing the search command.
patch by Ondřej Fiala
Author: René Wagner <rwa@clttr.info>
Date: Mon Aug 15 19:36:28 2022 +0200
Message: formatting more like upstream
Author: Ondřej Fiala <temp.xanomes@volny.cz>
Date: Sat Jul 02 04:45:59 2022 +0200
Message: gmnlm: tidy up help message
Author: Ondřej Fiala <temp.xanomes@volny.cz>
Date: Sat Jul 02 12:36:51 2022 +0200
Message: gmnlm: update synopsis
Author: Ondřej Fiala <temp.xanomes@volny.cz>
Date: Sat Jul 02 06:59:16 2022 +0200
Message: gmnlm: prompt for redirects, make max redirects configurable
Redirects are currently the most reliable way of tracking users in
geminispace. To mitigate this, similar approach as used with server
certificates is adopted -- users are prompted by default, but this
can be easily overriden with a command line flag if convenience is
preferred to tracking-resistance.
Author: Ondřej Fiala <temp.xanomes@volny.cz>
Date: Fri Jul 01 05:51:00 2022 +0200
Message: gmnlm: don't assume everything starting with b/f is b/f command
It was impossible to enter a file:// URL because it got interpreted
as a 'f' command without any warning about invalid argument. The same
thing happened with relative addresses beginning with 'b' or 'f'.
Author: René Wagner <rwa@clttr.info>
Date: Fri Jul 01 11:12:00 2022 +0200
Message: formatting
Author: Ondřej Fiala <temp.xanomes@volny.cz>
Date: Wed Jun 22 05:39:18 2022 +0200
Message: gmnlm: save non-sensitive input requests in history
Currently, followup requests to both INPUT and SENSITIVE INPUT responses are
omitted from history. However, the intended use of INPUT is for searching, and
there is SENSITIVE INPUT for sensitive information, so omitting regular INPUT
from history doesn't make much sense and only makes searching annoying as one
needs to re-enter the query when going back.
Author: René Wagner <rwa@clttr.info>
Date: Sat May 28 16:17:07 2022 +0200
Message: fix may uninitiliazed tempfile buffer
Author: René Wagner <rwa@clttr.info>
Date: Sat May 28 16:11:46 2022 +0200
Message: fix size of temporary buffer
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date: Thu May 19 00:00:29 2022 +0200
Message: Add d[N] to download Nth link
I wanted to add an optional [N] to 'd' and '|' to download/pipe the
Nth link instead of the current page. After getting the first one done,
I found out that '|' already has this option, so I fixed the relative
help line without changing that command.
All in all I don't know how useful this patch is, considering that
'[N]|' was already there. Feel free to discard it and just keep the
documentation change.
Cheers!
Author: Sebastian LaVine <mail@smlavine.com>
Date: Wed Apr 20 16:05:18 2022 -0400
Message: gmni: fix -d truncation
Previously, the last character of the provided input would not be read.
For example, `gmni -d termfmt gemini://godocs.io/-/search` would search
for "termfm".
Author: René Wagner <rwa@clttr.info>
Date: Fri Apr 01 18:32:33 2022 +0200
Message: switch program name and url in terminal title
Author: René Wagner <rwa@clttr.info>
Date: Sat Mar 19 09:30:43 2022 +0100
Message: set the URL of the current page as terminal title
additional some small adjustments to help
Author: René Wagner <rwa@clttr.info>
Date: Mon Feb 07 20:49:01 2022 +0100
Message: restore current url after usage of t[N] command
fixes #24
Author: Ondřej Fiala <temp.xanomes@volny.cz>
Date: Sat Feb 05 12:44:52 2022 +0100
Message: gmnlm: strip control sequences from plaintext rendering
Author: Ondřej Fiala <temp.xanomes@volny.cz>
Date: Sat Feb 05 22:43:43 2022 +0100
Message: gmnlm: fix memory leak in do_requests
Author: Ondřej Fiala <temp.xanomes@volny.cz>
Date: Tue Jan 25 17:16:57 2022 +0100
Message: gmnlm: d <path> -> d [path]
The argument is optional, the 'd' command works without it.
Author: Ondřej Fiala <temp.xanomes@volny.cz>
Date: Fri Jan 14 15:57:55 2022 +0100
Message: fix null dereference
Author: Ondřej Fiala <temp.xanomes@volny.cz>
Date: Wed Jan 12 19:04:35 2022 +0100
Message: gmnlm: add optional custom bookmark titles
It is often useful to title a bookmark differently from how the page's
author titled it.
Author: René Wagner <rwa@clttr.info>
Date: Tue Jan 11 16:30:12 2022 +0100
Message: Update 'README.md'
Author: René Wagner <rwa@clttr.info>
Date: Tue Jan 11 16:28:56 2022 +0100
Message: Update 'README.md'
Author: Ondřej Fiala <temp.xanomes@volny.cz>
Date: Sun Jan 09 20:20:46 2022 +0100
Message: gmnlm: output newline when quiting via Control-D
It is common practice to quit programs reading from stdin by sending
EOF to their input. This commit ensures such an exit is functionally
equivalent to a regular exit via the 'q' command.
Author: René Wagner <rwa@clttr.info>
Date: Thu Jan 06 17:05:25 2022 +0100
Message: Update 'doc/cgmnlm.scd'
Author: Ondřej Fiala <temp.xanomes@volny.cz>
Date: Mon Jan 03 13:13:49 2022 +0100
Message: gmnlm: update usage to match man page
Author: René Wagner <rwa@clttr.info>
Date: Tue Dec 07 21:04:43 2021 +0100
Message: add backlink search via `l` command
closes #22
Author: René Wagner <rwa@clttr.info>
Date: Thu Nov 11 18:22:02 2021 +0100
Message: spelling in help output
Author: René Wagner <rwa@clttr.info>
Date: Wed Nov 10 21:57:54 2021 +0100
Message: update README to match 1.1
Author: René Wagner <rwa@clttr.info>
Date: Wed Nov 10 19:40:16 2021 +0100
Message: introduce a connection timeout of ~15 seconds
closes #18
Author: René Wagner <rwa@clttr.info>
Date: Wed Nov 10 18:14:16 2021 +0100
Message: clear client certificate when none is required
Otherwise we end up using the client certificate
of a previous request and the current request will
fail with a SSL error 26.
Author: René Wagner <rwa@clttr.info>
Date: Wed Nov 03 16:54:07 2021 +0100
Message: use return value of tmpnam()
Author: René Wagner <rwa@clttr.info>
Date: Wed Nov 03 16:34:38 2021 +0100
Message: make download_resp() match upstream
Author: René Wagner <rwa@clttr.info>
Date: Mon Nov 01 19:34:40 2021 +0100
Message: use tmpnam() instead of mkstemp() for temp file names
closes #20
Author: René Wagner <rwa@clttr.info>
Date: Mon Nov 01 17:18:41 2021 +0100
Message: introduce -T param to automatically open files
Files downloaded to a tmpfile using the t[N] command
will automatically be sent to the default viewer when
this commandline param is set.
This requires xdg-open.
closes #21
Author: René Wagner <rwa@clttr.info>
Date: Mon Nov 01 11:50:23 2021 +0100
Message: allow ~ as home alias in file path for downloads
This works for gmni and gmnlm respectively.
Author: René Wagner <rwa@clttr.info>
Date: Mon Nov 01 09:24:40 2021 +0100
Message: fix warnings
Author: René Wagner <rwa@clttr.info>
Date: Mon Nov 01 09:11:29 2021 +0100
Message: fix maybe uninitialized warning
Author: René Wagner <rwa@clttr.info>
Date: Sun Oct 31 22:17:06 2021 +0100
Message: allow ~ as home alias in file path for download
closes #1
Author: René Wagner <rwa@clttr.info>
Date: Sun Oct 31 19:41:51 2021 +0100
Message: unify behavior of p, e and t commands in cgmnlm
Author: René Wagner <rwa@clttr.info>
Date: Sat Oct 30 11:15:07 2021 +0200
Message: use light magenta for alien-protocol links
Author: René Wagner <rwa@noreply@clttr.info>
Date: Fri Oct 29 21:53:35 2021 +0200
Message: add release aur package to readme
Author: René Wagner <rwagner@rw-net.de>
Date: Fri Oct 29 12:47:37 2021 +0200
Message: fix missing last line in gmnlm in some cases
closes ~sircmpwn/gmni#64
Author: René Wagner <rwagner@rw-net.de>
Date: Thu Oct 28 22:09:46 2021 +0200
Message: fix downloading of files
due to the wrong handling in download_resp() files may get
broken (last chunk missing) and file descriptors have not
been closed correctly.
Additionally we now allow downloading of local ressources
as well - for what its worth.
Author: Drew DeVault <sir@cmpwn.com>
Date: Tue Sep 21 16:13:54 2021 +0200
Message: Makefile: update dependencies in pkgconfig
Author: René Wagner <rwa@clttr.info>
Date: Fri Jul 02 15:09:40 2021 +0200
Message: fix typo in error message when removing a bookmark
Author: René Wagner <rwa@clttr.info>
Date: Thu Jul 01 20:22:01 2021 +0200
Message: add hints to history for easier navigation
This commit adds simple hints in front of the URIs on the history
page to directly show what needs to be typed to jump to this page.
Author: René Wagner <rwa@clttr.info>
Date: Mon Jun 28 22:34:26 2021 +0200
Message: add 'u' command to navigate one path element up
Author: k1nkreet <polyakovskiy.ilya@gmail.com>
Date: Tue Jun 15 19:37:56 2021 +0300
Message: gmni: headers are not displayed for REDIRECT and INPUT responses in SHOW_HEADERS and ONLY_HEADERS modes
I've noticed headers are not displayed in some cases with -i/-I
specified. For example:
echo "printf" | gmni -i gemini://drewdevault.com/cgi-bin/man.sh
Output: empty
echo "printf" | gmni -IL gemini://drewdevault.com/cgi-bin/man.sh -
Output: 10 Search for a POSIX man page
INPUT header is here, but no REDIRECT header appeared.
The reason is headers processing is done after responses dispatch. So
some responses (redirect and input) are processed and dropped before.
Patch makes this logic a bit clearer imho: print response header before
any processing if mode is not OMIT_HEADERS and then process response body if mode
is not ONLY_HEADERS. It also deduplicates header printing as a bonus.
Author: Andrew <git@andrewzigerelli.com>
Date: Thu Jun 10 07:36:37 2021 -0400
Message: gmnlm: host freed too early, causing UAF
The host variable is freed too early. If a client certificate is not
found, the later error message in the
GEMINI_STATUS_CLASS_CLIENT_CERTIFICATE_REQUIRED case uses the freed host
variable to produce an incorrect openssl command. This fix just delays
the free to after the switch statement.
Test case:
gmnlm gemini://feeds.drewdevault.com
Prior:
The following OpenSSL command will generate a certificate for this host:
openssl req -x509 -newkey rsa:4096 \
-keyout /home/andrew/.local/share/gmni/certs/Ú-=öU.key \
-out /home/andrew/.local/share/gmni/certs/Ú-=öU.crt \
-days 36500 -nodes
Now:
The following OpenSSL command will generate a certificate for this host:
openssl req -x509 -newkey rsa:4096 \
-keyout /home/andrew/.local/share/gmni/certs/feeds.drewdevault.com.key \
-out /home/andrew/.local/share/gmni/certs/feeds.drewdevault.com.crt \
-days 36500 -nodes
Author: René Wagner <rwa@clttr.info>
Date: Fri May 21 21:54:15 2021 +0200
Message: README cosmetics
Author: René Wagner <rwagner@rw-net.de>
Date: Sat Apr 10 21:27:58 2021 +0200
Message: introduce -A param for default to alt text
Author: René Wagner <rwagner@rw-net.de>
Date: Fri Apr 09 21:38:45 2021 +0200
Message: minor improvements in rendering alt text
Author: Zach DeCook <zachdecook@librem.one>
Date: Fri Apr 02 09:31:00 2021 -0400
Message: gmnlm: Improve paging behavior on narrow terminals
Author: Zach DeCook <zachdecook@librem.one>
Date: Fri Apr 02 09:31:01 2021 -0400
Message: gmnlm: Include blank line to frame browser window when reading more
Author: René Wagner <rwagner@rw-net.de>
Date: Thu Mar 25 20:19:46 2021 +0100
Message: allow toggling between preformatted and alt text
alt text is prefixed with A
preformatted text is prefixed with P
closes #13 #10
Author: Eyal Sawady <ecs@d2evs.net>
Date: Tue Mar 16 00:07:27 2021 -0400
Message: all: use posix_dirname rather than dirname
Author: René Wagner <rwagner@rw-net.de>
Date: Mon Mar 15 19:50:52 2021 +0100
Message: Merge branch 'bearssl'
Author: René Wagner <rwagner@rw-net.de>
Date: Tue Mar 09 17:22:19 2021 +0100
Message: add s command for searching in geminispace
Author: René Wagner <rwagner@rw-net.de>
Date: Mon Mar 01 20:27:05 2021 +0100
Message: add search engine to default bookmark
Author: René Wagner <rwagner@rw-net.de>
Date: Mon Mar 01 20:24:24 2021 +0100
Message: keep 4 char border an right side
Author: René Wagner <rwagner@rw-net.de>
Date: Tue Feb 23 07:56:32 2021 +0100
Message: fix display of message on TOFU_FINGERPRINT_MISMATCH
Previously the message was never displayed to users
leaving them with a simple "Error: certificate is untrusted".
This also fixes the display of line numbers in the message.
Author: René Wagner <rwagner@rw-net.de>
Date: Sun Feb 07 11:17:45 2021 +0100
Message: 'e' command without [N] sends current URL to external
closes #6
Author: René Wagner <rwagner@rw-net.de>
Date: Mon Feb 01 17:11:12 2021 +0100
Message: fix wrong uri scheme
Author: René Wagner <rwagner@rw-net.de>
Date: Mon Feb 01 17:11:12 2021 +0100
Message: fix wrong uri scheme
Author: René Wagner <rwagner@rw-net.de>
Date: Sun Jan 31 17:41:11 2021 +0100
Message: jump more than one entry back or forth in history
by giving an optional number to b & f commands.
The default behaviour of b & f commands has not
been changed.
Author: René Wagner <rwagner@rw-net.de>
Date: Sun Jan 24 21:00:18 2021 +0100
Message: revert kay binding modification
we'd stay close to upstream if possible
Author: René Wagner <rwagner@rw-net.de>
Date: Tue Jan 19 15:21:31 2021 +0100
Message: fix indentation on help output
Author: Giuseppe Lumia <g.lumia@outlook.com>
Date: Mon Jan 18 21:26:48 2021 +0100
Message: Fix incorrectly missing -g flag
On systems using dsymutil the check for the "-g" flag was failing not
because the compiler didn't provide it but because of `/dev/null`
being used as output file.
Author: René Wagner <rwagner@rw-net.de>
Date: Sun Jan 10 16:54:10 2021 +0100
Message: implement s command to remove bookmark for current page
It will remove all lines from the bookmark file that
match the URL of the current page viewed in the browser.
Author: René Wagner <rwagner@rw-net.de>
Date: Fri Jan 08 21:46:27 2021 +0100
Message: minor rendering adjustments
Author: Giuseppe Lumia <g.lumia@outlook.com>
Date: Thu Jan 07 09:15:33 2021 +0100
Message: Fix OpenBSD compilation errors
Those changes fix the following compilation errors on OpenBSD:
src/tofu.c:128:28: error: format specifies type 'long' but the argument has type
'time_t' (aka 'long long') [-Werror,-Wformat]
"SHA-512", fingerprint, expires);
src/gmnlm.c:341:31: error: missing sentinel in function call
[-Werror,-Wsentinel]
execlp("sh", "sh", "-c", cmd);
^
, NULL
Author: René Wagner <rwagner@rw-net.de>
Date: Thu Jan 07 19:28:43 2021 +0100
Message: keep source names for easier downstreaming patches
Author: René Wagner <rwagner@rw-net.de>
Date: Wed Jan 06 20:50:43 2021 +0100
Message: different colors for local and remote gemini links
Author: René Wagner <rwa@src.clttr.info>
Date: Wed Jan 06 19:50:24 2021 +0100
Message: Update 'README.md'
Author: René Wagner <rwagner@rw-net.de>
Date: Wed Jan 06 19:36:39 2021 +0100
Message: t[N] command
t[N] downloads the content behind Nth link to
a tempfile in /tmp/
closes #2
Author: René Wagner <rwagner@rw-net.de>
Date: Tue Jan 05 20:17:06 2021 +0100
Message: implement e[N] command
this command sends the URI of Nth link to `xdg-open` to open
the assoziated default program and pass the URI.
Author: René Wagner <rwagner@rw-net.de>
Date: Tue Jan 05 19:16:06 2021 +0100
Message: use light-gray for quotes
Author: René Wagner <rwagner@rw-net.de>
Date: Tue Jan 05 17:45:56 2021 +0100
Message: preserve all bytes except spaces when wrapping
When wrapping the new line should not start with a space.
All other bytes must be preserved to avoid breaking unicode chars.
fix for ~sircmpwn/gmni#21
Author: René Wagner <rwagner@rw-net.de>
Date: Mon Jan 04 20:33:37 2021 +0100
Message: update .gitignore
Author: René Wagner <rwagner@rw-net.de>
Date: Mon Jan 04 19:07:12 2021 +0100
Message: use different colors for gemini and other links
Author: René Wagner <rwagner@rw-net.de>
Date: Mon Jan 04 19:05:25 2021 +0100
Message: rename to cgmnlm
Author: René Wagner <rwagner@rw-net.de>
Date: Mon Jan 04 13:08:11 2021 +0100
Message: fix premature line wraps
caused by multibyte unicode characters.
During column count unicode continuation bytes
are not counted as columns.
Author: René Wagner <rwagner@rw-net.de>
Date: Fri Jan 01 12:41:02 2021 +0100
Message: add [N]| command to help
Author: René Wagner <rwagner@rw-net.de>
Date: Wed Dec 23 18:06:50 2020 +0100
Message: add coloring of headings and links
modify indenting of gemtext lines to always
indent 4 chars
Author: René Wagner <rwagner@rw-net.de>
Date: Wed Dec 23 17:04:46 2020 +0100
Message: add 2 empty lines on top for better readability
Author: René Wagner <rwagner@rw-net.de>
Date: Wed Dec 23 16:27:06 2020 +0100
Message: modify keybindings
Author: Eyal Sawady <ecs@d2evs.net>
Date: Mon Nov 30 19:44:59 2020 -0500
Message: Implement <n>| command
Author: Alexey Yerin <yerinalexey98fd@gmail.com>
Date: Sun Nov 22 20:52:48 2020 +0300
Message: Refactor gmni to use Curl_URL
This also fixes relative redirects.
Signed-off-by: Alexey Yerin <yerinalexey98fd@gmail.com>
Author: William Casarin <jb55@jb55.com>
Date: Fri Nov 20 08:15:25 2020 -0800
Message: Fix more strncpy bugs in gmnlm and tofu
From gcc 9.3.0:
error: '__builtin_strncpy' specified bound 4097 equals destination size
[-Werror=stringop-truncation]
Signed-off-by: William Casarin <jb55@jb55.com>
Author: Tommy Nguyen <remyabel@gmail.com>
Date: Wed Nov 18 04:44:06 2020 -0500
Message: Fix typo in error message.
Author: Giuseppe Lumia <g.lumia@outlook.com>
Date: Wed Nov 11 23:52:03 2020 +0100
Message: Fix bug on mkdirs calls
On some systems dirname uses a static string for its return value, so
we were calling mkdirs recursively on a string that was continuosly changing.
A check was also added after the `snprintf` to make sure there's no
information loss since there is no limit to the length of the string
returned by `get_data_pathfmt`.
Closes #48.
Author: William Casarin <jb55@jb55.com>
Date: Sat Nov 07 14:58:32 2020 -0800
Message: gmnlm: fix a few strncpy compile errors on gcc 9.3
In file included from .../include/string.h:495,
from src/gmnlm.c:11:
In function ‘strncpy’,
inlined from ‘do_prompts’ at src/gmnlm.c:627:3:
...glibc-2.31-dev/include/bits/string_fortified.h:106:10:
error: ‘__builtin_strncpy’ specified bound 1024 equals
destination size [-Werror=stringop-truncation]
return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In function ‘strncpy’,
inlined from ‘do_prompts’ at src/gmnlm.c:612:3:
...glibc-2.31-dev/include/bits/string_fortified.h:106:10:
error: ‘__builtin_strncpy’ specified bound 1024 equals destination size
[-Werror=stringop-truncation]
return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: William Casarin <jb55@jb55.com>
Author: Giuseppe Lumia <g.lumia@outlook.com>
Date: Sat Nov 07 01:23:06 2020 +0100
Message: Simplify posix_dirname logic
dirname has two main problems:
1. It could change in place the string that is passed to it.
2. It uses a static string for its return value, so one should copy it
somewhere else as soon as possible to avoid subsequent calls to
dirname to corrupt his data (see #48).
We avoid 1. passing a copy of `path` to dirname and 2. copying it's
return value into `dname`.
Author: Giuseppe Lumia <g.lumia@outlook.com>
Date: Wed Nov 04 09:08:45 2020 +0100
Message: Remove -D option from install commands
The '-D' option of `install` is not implemented on some systems that
don't use GNU install. Its uses were replaced with `mkdir -p` commands
to eventually provide the missing folders.
Author: Giuseppe Lumia <g.lumia@outlook.com>
Date: Wed Nov 04 09:08:43 2020 +0100
Message: Fix install in case of missing docs compilation
Install on systems without `scdoc` was broken because `make install` was
attempting to install missing files.
Author: René Wagner <rwagner@rw-net.de>
Date: Tue Nov 03 10:06:13 2020 +0100
Message: fix typo in PERMANENT FAILURE response
Author: Jon Higgs <jon.higgs@redbubble.com>
Date: Tue Nov 03 08:37:21 2020 +1100
Message: Improve the -j usage
Author: Alexandre Oliveira <eu@aoalmeida.com>
Date: Mon Nov 02 19:37:26 2020 +0100
Message: Check if pkg-config is valid before checking for libs
Author: Connor Kuehl <cipkuehl@gmail.com>
Date: Sat Oct 31 17:51:39 2020 -0500
Message: Initialize result if res != GEMINI_OK
My compiler barks about this unitialized variable:
CC src/gmnlm.o
src/gmnlm.c:629:7: error: variable 'result' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
if (res != GEMINI_OK) {
^~~~~~~~~~~~~~~~
src/gmnlm.c:673:9: note: uninitialized use occurs here
return result;
^~~~~~
src/gmnlm.c:629:3: note: remove the 'if' if its condition is always false
if (res != GEMINI_OK) {
^~~~~~~~~~~~~~~~~~~~~~~
src/gmnlm.c:482:2: note: variable 'result' is declared here
enum prompt_result result;
^
1 error generated.
make: *** [src/gmnlm.o] Error 1
Author: Joe Jenne <joe@jhjn.xyz>
Date: Thu Oct 29 22:54:27 2020 +0000
Message: Fix const comparison Werror
Author: Cédric Hannotier <cedric.hannotier@ulb.be>
Date: Thu Oct 29 22:59:55 2020 +0100
Message: {var//pattern/replacement} is not POSIX compliant
Author: Cédric Hannotier <cedric.hannotier@ulb.be>
Date: Thu Oct 29 22:57:54 2020 +0100
Message: Separate path and read buffers & use snprintf
Author: Luna Nieves <aicaya@posteo.net>
Date: Thu Oct 29 00:03:01 2020 -0400
Message: Add uninstall target
Author: Martijn Braam <martijn@brixit.nl>
Date: Sat Oct 24 23:37:45 2020 +0200
Message: Added missing filename in install
Author: Eyal Sawady <ecs@d2evs.net>
Date: Sat Oct 24 14:04:50 2020 -0400
Message: Remove -fPIC
Breaks compilation under cproc and isn't necessary for static libraries.
Author: Eyal Sawady <ecs@d2evs.net>
Date: Sat Oct 24 13:55:33 2020 -0400
Message: Re-add public headers
Author: Martijn Braam <martijn@brixit.nl>
Date: Sat Oct 24 19:40:39 2020 +0200
Message: Add static library for gmni
Author: Drew DeVault <sir@cmpwn.com>
Date: Sat Oct 24 11:05:17 2020 -0400
Message: Fix possibly uninitialized variable
Author: Eyal Sawady <ecs@d2evs.net>
Date: Wed Oct 21 10:15:07 2020 -0400
Message: Fix plaintext display
Author: Eyal Sawady <ecs@d2evs.net>
Date: Tue Oct 20 12:55:40 2020 -0400
Message: Add '|' to pipe page into an external program
Author: Eyal Sawady <ecs@d2evs.net>
Date: Tue Oct 20 12:55:39 2020 -0400
Message: Add 'd' to download page
Author: Eyal Sawady <ecs@d2evs.net>
Date: Tue Oct 20 12:55:38 2020 -0400
Message: gmnlm: separate do_requests and display_response
Author: Chris Vittal <chris@vittal.dev>
Date: Wed Oct 07 00:35:50 2020 -0400
Message: Remove gemlm with make clean
Author: Callum Brown <callum@calcuode.com>
Date: Tue Oct 06 17:53:56 2020 +0100
Message: gmnlm: Fix segfault when local file does not exist
Author: Eyal Sawady <ecs@d2evs.net>
Date: Mon Oct 05 14:42:46 2020 -0400
Message: Display last line when it doesn't end in a newline
Author: Eyal Sawady <ecs@d2evs.net>
Date: Tue Sep 29 01:45:40 2020 -0400
Message: gmnlm: open_bookmarks: call mkdirs
Author: Callum Brown <callum@calcuode.com>
Date: Wed Sep 30 14:36:13 2020 +0100
Message: Fix untrusted certificate message
Author: Kevin Sangeelee <kevin@susa.net>
Date: Tue Sep 29 22:49:11 2020 +0100
Message: Init known_hosts prior to fopen to avoid segfault.
Author: Drew DeVault <sir@cmpwn.com>
Date: Tue Sep 29 13:19:18 2020 -0400
Message: gmnlm: add -W option
Author: Eyal Sawady <ecs@d2evs.net>
Date: Mon Sep 28 23:42:57 2020 -0400
Message: gmnlm: show URL on untrusted cert
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 27 18:06:51 2020 -0400
Message: Fix truncated hashes in known_hosts
Author: Eyal Sawady <ecs@d2evs.net>
Date: Fri Sep 25 12:28:21 2020 -0400
Message: Add 'i' to show media type parameters
Also don't show media type parameters in prompt
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 27 13:32:55 2020 -0400
Message: Further improvement to quote display
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 27 13:25:40 2020 -0400
Message: Improve display of preformatted & quotes
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 27 11:54:32 2020 -0400
Message: tofu.c: clarify reuse warning
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 27 11:40:49 2020 -0400
Message: TOFU: verify hostnames
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 27 10:36:09 2020 -0400
Message: Revert "gmnlm: p: require whitespace before link number"
This reverts commit 963700d8d6e31aecfc14e12184637f4c3360f6ed.
Let's make the p command consistent with the others and tell users who
want to navigate to a relative URL unambiguosly to use ./page
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 27 08:51:09 2020 -0400
Message: gmni: improve unknown trust message
Author: Drew DeVault <sir@cmpwn.com>
Date: Sat Sep 26 16:59:06 2020 -0400
Message: Fix segfault on connection refused
Author: Drew DeVault <sir@cmpwn.com>
Date: Sat Sep 26 13:13:41 2020 -0400
Message: TOFU: use ~/.local/share/gemini/known_hosts
The rest of gmni's stuff will remain in ~/.local/share/gmni, but in
order to establish a common location and format for the TOFU file
between Gemini implementations, a more general path is required.
Author: Eyal Sawady <ecs@d2evs.net>
Date: Thu Sep 24 15:32:16 2020 -0400
Message: gmnlm: handle CRLF line endings
Bare CRs are still printed as '.'.
Fixes https://todo.sr.ht/~sircmpwn/gmni/25
Author: Eyal Sawady <ecs@d2evs.net>
Date: Thu Sep 24 14:56:46 2020 -0400
Message: gmnlm: p: require whitespace before link number
In order to allow users to navigate to relative URLs starting with 'p'.
Author: Eyal Sawady <ecs@d2evs.net>
Date: Thu Sep 24 14:49:16 2020 -0400
Message: gmnlm: open bookmarks if started without URL
Author: Eyal Sawady <ecs@d2evs.net>
Date: Thu Sep 24 14:28:24 2020 -0400
Message: gmnlm: return to previous page on empty input
Author: Charles E. Lehner <cel@celehner.com>
Date: Thu Sep 24 11:44:57 2020 -0400
Message: Close fd after freeing SSL
BIO_free_all may trigger write to close the SSL connection
Author: Eyal Sawady <ecs@d2evs.net>
Date: Thu Sep 24 11:35:15 2020 -0400
Message: Fix bookmark save/open
Fix a segfault on bookmark save and a memory leak on bookmark open.
Author: Eyal Sawady <ecs@d2evs.net>
Date: Thu Sep 24 02:09:39 2020 -0400
Message: Add 'r' to reload
Author: Eyal Sawady <ecs@d2evs.net>
Date: Thu Sep 24 01:52:23 2020 -0400
Message: gmni: use stdio to write body
Fixes https://todo.sr.ht/~sircmpwn/gmni/22
Author: Eyal Sawady <ecs@d2evs.net>
Date: Wed Sep 23 20:12:41 2020 -0400
Message: config.sh: add args for install directories
Author: Eyal Sawady <ecs@d2evs.net>
Date: Wed Sep 23 18:57:46 2020 -0400
Message: Fix a bug causing some text to be duplicated
For example:
$ gmnlm gemini://gemini.circumlunar.space
[...]
11) A lissper.strangled.net/mirrorlist/ A lisssources
t of mirrored services
[...]
Author: Eyal Sawady <ecs@d2evs.net>
Date: Wed Sep 23 12:50:25 2020 -0400
Message: Fix memory leaks
Author: Drew DeVault <sir@cmpwn.com>
Date: Wed Sep 23 12:55:12 2020 -0400
Message: Fix search command
Author: Drew DeVault <sir@cmpwn.com>
Date: Wed Sep 23 10:20:32 2020 -0400
Message: config.sh: remove project-specific code
Or reduce, really. Just makes this script easier to re-use elsewhere.
Author: Arav K <nothien@uber.space>
Date: Tue Sep 22 14:10:56 2020 +0100
Message: Add 'p' to view link URL without visiting
Answers https://todo.sr.ht/~sircmpwn/gmni/13 by adding a 'p' command
that, when given a (valid) link number, provides the URL that that link
leads to.
Author: Eyal Sawady <ecs@d2evs.net>
Date: Tue Sep 22 19:24:26 2020 -0400
Message: Makefile: clean: remove objects
Author: Leon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de>
Date: Tue Sep 22 13:39:03 2020 +0200
Message: Correctly abort when launched with invalid URL
The return value of set_url() was not checked, meaning that when it
failed, gmnlm continued anyway, causing an assertion to fail and
subsequentially resulting in a segfault.
Author: Arav K <nothien@uber.space>
Date: Tue Sep 22 10:20:39 2020 +0100
Message: Add 'H' to view all page history
This adds a command, 'H', to view all the URLs in the page history. It
first prints backward URLs, then the current URL (marked with an
asterisk), followed by forward URLs.
Author: Drew DeVault <sir@cmpwn.com>
Date: Mon Sep 21 22:22:18 2020 -0400
Message: Fix issues with tofu.c
Author: Eyal Sawady <ecs@d2evs.net>
Date: Mon Sep 21 22:21:45 2020 -0400
Message: gemini_response_finish: handle null ssl connection
Author: Eyal Sawady <ecs@d2evs.net>
Date: Mon Sep 21 19:17:01 2020 -0400
Message: Makefile: silence gmni CCLD command
Author: Drew DeVault <sir@cmpwn.com>
Date: Mon Sep 21 15:37:24 2020 -0400
Message: Implement TOFU
Author: Charles E. Lehner <cel@celehner.com>
Date: Mon Sep 21 09:17:47 2020 -0400
Message: Link with libraries before objects
Author: Eyal Sawady <ecs@d2evs.net>
Date: Mon Sep 21 00:09:47 2020 -0400
Message: save_bookmark: fix bookmark file creation
Author: Drew DeVault <sir@cmpwn.com>
Date: Mon Sep 21 07:56:20 2020 -0400
Message: gmnlm.c: add limits.h
Supposedly fixes OpenBSD
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 23:52:18 2020 -0400
Message: Update README.md
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 23:50:50 2020 -0400
Message: Implement bookmarks
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 23:33:32 2020 -0400
Message: Implement file:// URLs
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 23:13:30 2020 -0400
Message: Swap quote character to >
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 22:38:31 2020 -0400
Message: README.md: use newer asciinema link
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 22:37:44 2020 -0400
Message: gmnlm: add install target & man page
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 22:34:27 2020 -0400
Message: Fix segfault moving to next result outside search
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 22:28:45 2020 -0400
Message: Implement preformatted text
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 22:20:38 2020 -0400
Message: Fix segfault on name resolution errors
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 22:11:13 2020 -0400
Message: Correct oversight which broke link following
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 22:09:26 2020 -0400
Message: Implement regex-based page search
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 21:53:08 2020 -0400
Message: Remove unnecessary TODO
There is no line length limit and authors are strongly discouraged from
hard-wrapping by the specification.
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 21:42:27 2020 -0400
Message: Add help message
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 21:35:05 2020 -0400
Message: Allow user to navigate by typing in URL
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 21:29:40 2020 -0400
Message: Show [b]ack and [f]orward prompts contextually
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 21:22:40 2020 -0400
Message: Expand wrapping to all token types
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 21:02:17 2020 -0400
Message: Whitelist control sequences in wrap()
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 20:57:26 2020 -0400
Message: Remove obsolete TODO
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 20:52:18 2020 -0400
Message: Implement basic word wrapping
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 20:42:46 2020 -0400
Message: Indent # and ## to line up with text
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 20:13:22 2020 -0400
Message: Improve links
Removing the leading [ makes links 0-9 line up with the text body, which
is nice.
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 20:11:48 2020 -0400
Message: Add reduced-unicode mode
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 20:07:48 2020 -0400
Message: Scale down image
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 20:05:44 2020 -0400
Message: README.md: add link to asciinema
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 20:01:31 2020 -0400
Message: Merge normal mode & pagination prompts
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 19:58:34 2020 -0400
Message: README.md: add gmnlm
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 19:40:42 2020 -0400
Message: gmnlm: Implement input responses
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 19:40:27 2020 -0400
Message: Don't + encode spaces in URLs
Author: Eyal Sawady <ecs@d2evs.net>
Date: Sun Sep 20 19:24:43 2020 -0400
Message: .gitignore: update
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 19:33:43 2020 -0400
Message: gmnlm: refactor
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 19:14:47 2020 -0400
Message: gmnlm: implement redirects
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 19:09:55 2020 -0400
Message: gmnlm: display plaintext files
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 19:01:14 2020 -0400
Message: Implement history
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 18:41:30 2020 -0400
Message: gmnlm: implement link following
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 18:31:33 2020 -0400
Message: Initial work for line-mode browser
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 17:47:14 2020 -0400
Message: Initial pass on text/gemini parser
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 16:47:19 2020 -0400
Message: Detect attempts to use non-gemini URLs
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 16:44:43 2020 -0400
Message: Prohibit >5 redirects
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 16:41:05 2020 -0400
Message: Implement SENSITIVE INPUT response
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 16:32:01 2020 -0400
Message: Add response status enum
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 15:14:54 2020 -0400
Message: assert(url) after setting input URL
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 15:14:04 2020 -0400
Message: Set SOCK_STREAM regardless of hints
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 15:10:45 2020 -0400
Message: client.h: clarify some constraints
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 14:55:33 2020 -0400
Message: Add make install target
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 14:51:25 2020 -0400
Message: Rename binary from gmnic -> gmni
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 14:49:57 2020 -0400
Message: Add README.md
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 14:44:30 2020 -0400
Message: Add man page
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 14:41:03 2020 -0400
Message: Change -C to -E for client certificates
More consistent with curl
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 14:37:43 2020 -0400
Message: Suppress trailing newline if stdout is not a TTY
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 14:25:42 2020 -0400
Message: config.sh: drop unused LIBSSL variable
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 14:21:03 2020 -0400
Message: Implement -4 and -6
To force IPv4 and IPv6 respectively.
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 14:18:40 2020 -0400
Message: Implement -L flag (follow redirects)
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 14:18:26 2020 -0400
Message: Correct trailing line feed detection
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 14:13:18 2020 -0400
Message: Print line feed on text/* response if not included
Adds -l flag to suppress this behavior
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 14:09:45 2020 -0400
Message: Implement input
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 13:30:28 2020 -0400
Message: Implement reading response body & meta
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 13:06:34 2020 -0400
Message: Initial request riggings
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Sep 20 10:17:39 2020 -0400
Message: Initial commit
Author: Eyal Sawady <ecs@d2evs.net>
Date: Tue Mar 09 05:21:59 2021 -0500
Message: gmnlm: create cert dir on 6x response
So that the OpenSSL command doesn't fail when the cert dir hasn't
already been created.
Author: Drew DeVault <sir@cmpwn.com>
Date: Sun Mar 07 12:21:15 2021 -0500
Message: Always take the last cert, CA or not
Author: Drew DeVault <sir@cmpwn.com>
Date: Fri Mar 05 08:50:50 2021 -0500
Message: Implement basic client certs for gmnlm
Author: Drew DeVault <sir@cmpwn.com>
Date: Thu Mar 04 17:24:57 2021 -0500
Message: Initial support for client side certificates
This is only supported with gmni for now - gmnlm support will come
later. A limitation with BearSSL prevents us from doing automated
certificate generation for now, unfortunately.
Author: Drew DeVault <sir@cmpwn.com>
Date: Thu Mar 04 16:22:14 2021 -0500
Message: TOFU: more improvements to new cert handling logic
Author: Drew DeVault <sir@cmpwn.com>
Date: Thu Mar 04 13:00:07 2021 -0500
Message: Remove useless variable cast
Author: Drew DeVault <sir@cmpwn.com>
Date: Thu Mar 04 12:58:50 2021 -0500
Message: Discard CA certs unless there's no other
Author: Drew DeVault <sir@cmpwn.com>
Date: Thu Mar 04 12:19:54 2021 -0500
Message: tofu: don't discard CA certs
Author: Drew DeVault <sir@cmpwn.com>
Date: Thu Mar 04 10:59:19 2021 -0500
Message: all: rewrite with BearSSL rather than OpenSSL