DuckCorp Projects: Issueshttps://projects.duckcorp.org/https://projects.duckcorp.org/favicon.ico?16699090422024-02-04T14:36:07ZDuckCorp Projects
Redmine Bip - Enhancement #807 (New): Add IRCv3 capabilitieshttps://projects.duckcorp.org/issues/8072024-02-04T14:36:07ZLoïc Gomez
<p><a class="external" href="https://ircv3.net/specs/extensions/capability-negotiation.html">https://ircv3.net/specs/extensions/capability-negotiation.html</a></p> Bip - Bug #805 (New): bipmkpw fails compilation (sometimes only?)https://projects.duckcorp.org/issues/8052024-02-04T14:33:13ZLoïc Gomez
<p>While fixing bip/adding code, I've stumbled upon these but not all the time:<br /><pre>
/usr/bin/ld: libbip.a(libbip_a-bip.o):/home/loic/code/bip/src/bip.c:60: multiple definition of `conf_log_system'; bipmkpw-bipmkpw.o:/home/loic/code/bip/src/bipmkpw.c:28: first defined here
/usr/bin/ld: libbip.a(libbip_a-bip.o):/home/loic/code/bip/src/bip.c:43: multiple definition of `conf_log_level'; bipmkpw-bipmkpw.o:/home/loic/code/bip/src/bipmkpw.c:26: first defined here
/usr/bin/ld: libbip.a(libbip_a-bip.o):/home/loic/code/bip/src/bip.c:64: multiple definition of `conf_global_log_file'; bipmkpw-bipmkpw.o:/home/loic/code/bip/src/bipmkpw.c:27: first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:485: bipmkpw] Error 1
</pre></p> Bip - Bug #803 (New): /bip list connections/all_connections/all_links crashes biphttps://projects.duckcorp.org/issues/8032024-02-04T14:29:06ZLoïc Gomez
<p>In 9.4, listing connections, links crashes bip when there is a long line for on_connect_send option.<br />A fix is available.</p> Bip - Enhancement #801 (New): Update base64 codehttps://projects.duckcorp.org/issues/8012024-02-04T07:32:50ZLoïc Gomez
<p>We need to update the base64 code (and copyright)</p> Bip - Enhancement #800 (In Progress): Update copyright datahttps://projects.duckcorp.org/issues/8002024-02-04T07:30:49ZLoïc Gomez
<p>We need to update copyright details</p> Bip - Bug #793 (New): AC_PROG_LEX without either yywrap or noyywrap is obsoletehttps://projects.duckcorp.org/issues/7932024-02-02T16:48:56ZLoïc Gomez
<pre>
configure.ac:16: warning: AC_PROG_LEX without either yywrap or noyywrap is obsolete
./lib/autoconf/programs.m4:716: _AC_PROG_LEX is expanded from...
./lib/autoconf/programs.m4:709: AC_PROG_LEX is expanded from...
aclocal.m4:1072: AM_PROG_LEX is expanded from...
configure.ac:16: the top level
</pre> Bip - Bug #792 (New): Handle CAP request/reply on client connectionshttps://projects.duckcorp.org/issues/7922024-02-02T16:43:52ZLoïc Gomez
<p>Some clients will expect BIP to send a CAP reply on client connect.<br />For example, Goguma on Android will send something like this:<br /><pre>
02-02-2024 17:45:21 DEBUG: "CAP LS 302"
02-02-2024 17:45:21 DEBUG: "NICK kyoshiro"
02-02-2024 17:45:21 DEBUG: "USER kyoshiro 0 * kyoshiro"
02-02-2024 17:45:21 DEBUG: "CAP REQ sasl"
02-02-2024 17:45:21 DEBUG: "AUTHENTICATE PLAIN"
02-02-2024 17:45:21 DEBUG: "AUTHENTICATE REDACTED_B64"
02-02-2024 17:45:21 DEBUG: "CAP END"
</pre></p> Bip - Anonymous #780 (In Progress): Openssl 3.0https://projects.duckcorp.org/issues/7802022-09-16T10:33:33ZAnonymous
<p>Trying to build with OpenSSL 3, it fails with:<br /><pre><code class="c syntaxhl" data-language="c"><span class="n">gcc</span> <span class="o">-</span><span class="n">DHAVE_CONFIG_H</span> <span class="o">-</span><span class="n">I</span><span class="p">.</span> <span class="o">-</span><span class="n">Wall</span> <span class="o">-</span><span class="n">Wextra</span> <span class="o">-</span><span class="n">Werror</span> <span class="o">-</span><span class="n">O2</span> <span class="o">-</span><span class="n">D_FORTIFY_SOURCE</span><span class="o">=</span><span class="mi">2</span> <span class="o">-</span><span class="n">fstack</span><span class="o">-</span><span class="n">protector</span><span class="o">-</span><span class="n">strong</span> <span class="o">-</span><span class="n">fstack</span><span class="o">-</span><span class="n">clash</span><span class="o">-</span><span class="n">protection</span> <span class="o">-</span><span class="n">Wl</span><span class="p">,</span><span class="o">-</span><span class="n">z</span><span class="p">,</span><span class="n">relro</span> <span class="o">-</span><span class="n">Wl</span><span class="p">,</span><span class="o">-</span><span class="n">z</span><span class="p">,</span><span class="n">now</span> <span class="o">-</span><span class="n">Wl</span><span class="p">,</span><span class="o">-</span><span class="n">z</span><span class="p">,</span><span class="n">noexecstack</span> <span class="o">-</span><span class="n">Wl</span><span class="p">,</span><span class="o">-</span><span class="n">z</span><span class="p">,</span><span class="n">separate</span><span class="o">-</span><span class="n">code</span> <span class="o">-</span><span class="n">Wpedantic</span> <span class="o">-</span><span class="n">Wformat</span><span class="o">=</span><span class="mi">2</span> <span class="o">-</span><span class="n">Wformat</span><span class="o">-</span><span class="n">overflow</span><span class="o">=</span><span class="mi">2</span> <span class="o">-</span><span class="n">Wformat</span><span class="o">-</span><span class="n">truncation</span><span class="o">=</span><span class="mi">2</span> <span class="o">-</span><span class="n">Wformat</span><span class="o">-</span><span class="n">security</span> <span class="o">-</span><span class="n">Wnull</span><span class="o">-</span><span class="n">dereference</span> <span class="o">-</span><span class="n">Wstack</span><span class="o">-</span><span class="n">protector</span> <span class="o">-</span><span class="n">Wtrampolines</span> <span class="o">-</span><span class="n">Walloca</span> <span class="o">-</span><span class="n">Wvla</span> <span class="o">-</span><span class="n">Warray</span><span class="o">-</span><span class="n">bounds</span><span class="o">=</span><span class="mi">2</span> <span class="o">-</span><span class="n">Wimplicit</span><span class="o">-</span><span class="n">fallthrough</span><span class="o">=</span><span class="mi">3</span> <span class="o">-</span><span class="n">Wtraditional</span><span class="o">-</span><span class="n">conversion</span> <span class="o">-</span><span class="n">Wshift</span><span class="o">-</span><span class="n">overflow</span><span class="o">=</span><span class="mi">2</span> <span class="o">-</span><span class="n">Wcast</span><span class="o">-</span><span class="n">qual</span> <span class="o">-</span><span class="n">Wstringop</span><span class="o">-</span><span class="n">overflow</span><span class="o">=</span><span class="mi">4</span> <span class="o">-</span><span class="n">Wconversion</span> <span class="o">-</span><span class="n">Warith</span><span class="o">-</span><span class="n">conversion</span> <span class="o">-</span><span class="n">Wlogical</span><span class="o">-</span><span class="n">op</span> <span class="o">-</span><span class="n">Wduplicated</span><span class="o">-</span><span class="n">cond</span> <span class="o">-</span><span class="n">Wduplicated</span><span class="o">-</span><span class="n">branches</span> <span class="o">-</span><span class="n">Wformat</span><span class="o">-</span><span class="n">signedness</span> <span class="o">-</span><span class="n">Wshadow</span> <span class="o">-</span><span class="n">Wstrict</span><span class="o">-</span><span class="n">overflow</span><span class="o">=</span><span class="mi">4</span> <span class="o">-</span><span class="n">Wundef</span> <span class="o">-</span><span class="n">Wstrict</span><span class="o">-</span><span class="n">prototypes</span> <span class="o">-</span><span class="n">Wswitch</span><span class="o">-</span><span class="k">default</span> <span class="o">-</span><span class="n">Wswitch</span><span class="o">-</span><span class="k">enum</span> <span class="o">-</span><span class="n">Wstack</span><span class="o">-</span><span class="n">usage</span><span class="o">=</span><span class="mi">1000000</span> <span class="o">-</span><span class="n">Wcast</span><span class="o">-</span><span class="n">align</span><span class="o">=</span><span class="n">strict</span> <span class="o">-</span><span class="n">O2</span> <span class="o">-</span><span class="n">g</span> <span class="o">-</span><span class="n">pipe</span> <span class="o">-</span><span class="n">Wformat</span> <span class="o">-</span><span class="n">Werror</span><span class="o">=</span><span class="n">format</span><span class="o">-</span><span class="n">security</span> <span class="o">-</span><span class="n">Wp</span><span class="p">,</span><span class="o">-</span><span class="n">D_FORTIFY_SOURCE</span><span class="o">=</span><span class="mi">2</span> <span class="o">-</span><span class="n">fstack</span><span class="o">-</span><span class="n">protector</span> <span class="o">--</span><span class="n">param</span><span class="o">=</span><span class="n">ssp</span><span class="o">-</span><span class="n">buffer</span><span class="o">-</span><span class="n">size</span><span class="o">=</span><span class="mi">4</span> <span class="o">-</span><span class="n">fasynchronous</span><span class="o">-</span><span class="n">unwind</span><span class="o">-</span><span class="n">tables</span> <span class="o">-</span><span class="n">DPIC</span> <span class="o">-</span><span class="n">fPIC</span> <span class="o">-</span><span class="n">c</span> <span class="o">-</span><span class="n">o</span> <span class="n">libbip_a</span><span class="o">-</span><span class="n">connection</span><span class="p">.</span><span class="n">o</span> <span class="err">`</span><span class="n">test</span> <span class="o">-</span><span class="n">f</span> <span class="err">'</span><span class="n">connection</span><span class="p">.</span><span class="n">c</span><span class="err">'</span> <span class="o">||</span> <span class="n">echo</span> <span class="err">'</span><span class="p">.</span><span class="o">/</span><span class="err">'`</span><span class="n">connection</span><span class="p">.</span><span class="n">c</span>
<span class="n">connection</span><span class="p">.</span><span class="n">c</span><span class="o">:</span> <span class="n">In</span> <span class="n">function</span> <span class="err">'</span><span class="n">ctx_set_dh</span><span class="err">'</span><span class="o">:</span>
<span class="n">connection</span><span class="p">.</span><span class="n">c</span><span class="o">:</span><span class="mi">1184</span><span class="o">:</span><span class="mi">9</span><span class="o">:</span> <span class="n">error</span><span class="o">:</span> <span class="err">'</span><span class="n">PEM_read_DHparams</span><span class="err">'</span> <span class="n">is</span> <span class="n">deprecated</span><span class="o">:</span> <span class="n">Since</span> <span class="n">OpenSSL</span> <span class="mi">3</span><span class="p">.</span><span class="mi">0</span> <span class="p">[</span><span class="o">-</span><span class="n">Werror</span><span class="o">=</span><span class="n">deprecated</span><span class="o">-</span><span class="n">declarations</span><span class="p">]</span>
<span class="mi">1184</span> <span class="o">|</span> <span class="n">dh</span> <span class="o">=</span> <span class="n">PEM_read_DHparams</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">);</span>
<span class="o">|</span> <span class="o">^~</span>
<span class="n">In</span> <span class="n">file</span> <span class="n">included</span> <span class="n">from</span> <span class="n">connection</span><span class="p">.</span><span class="n">h</span><span class="o">:</span><span class="mi">37</span><span class="p">,</span>
<span class="n">from</span> <span class="n">connection</span><span class="p">.</span><span class="n">c</span><span class="o">:</span><span class="mi">18</span><span class="o">:</span>
<span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">include</span><span class="o">/</span><span class="n">openssl</span><span class="o">/</span><span class="n">pem</span><span class="p">.</span><span class="n">h</span><span class="o">:</span><span class="mi">469</span><span class="o">:</span><span class="mi">1</span><span class="o">:</span> <span class="n">note</span><span class="o">:</span> <span class="n">declared</span> <span class="n">here</span>
<span class="mi">469</span> <span class="o">|</span> <span class="n">DECLARE_PEM_rw_attr</span><span class="p">(</span><span class="n">OSSL_DEPRECATEDIN_3_0</span><span class="p">,</span> <span class="n">DHparams</span><span class="p">,</span> <span class="n">DH</span><span class="p">)</span>
<span class="o">|</span> <span class="o">^~~~~~~~~~~~~~~~~~~</span>
<span class="n">connection</span><span class="p">.</span><span class="n">c</span><span class="o">:</span><span class="mi">1199</span><span class="o">:</span><span class="mi">9</span><span class="o">:</span> <span class="n">error</span><span class="o">:</span> <span class="err">'</span><span class="n">DH_free</span><span class="err">'</span> <span class="n">is</span> <span class="n">deprecated</span><span class="o">:</span> <span class="n">Since</span> <span class="n">OpenSSL</span> <span class="mi">3</span><span class="p">.</span><span class="mi">0</span> <span class="p">[</span><span class="o">-</span><span class="n">Werror</span><span class="o">=</span><span class="n">deprecated</span><span class="o">-</span><span class="n">declarations</span><span class="p">]</span>
<span class="mi">1199</span> <span class="o">|</span> <span class="n">DH_free</span><span class="p">(</span><span class="n">dh</span><span class="p">);</span>
<span class="o">|</span> <span class="o">^~~~~~~</span>
<span class="n">In</span> <span class="n">file</span> <span class="n">included</span> <span class="n">from</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">include</span><span class="o">/</span><span class="n">openssl</span><span class="o">/</span><span class="n">dsa</span><span class="p">.</span><span class="n">h</span><span class="o">:</span><span class="mi">51</span><span class="p">,</span>
<span class="n">from</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">include</span><span class="o">/</span><span class="n">openssl</span><span class="o">/</span><span class="n">x509</span><span class="p">.</span><span class="n">h</span><span class="o">:</span><span class="mi">37</span><span class="p">,</span>
<span class="n">from</span> <span class="n">connection</span><span class="p">.</span><span class="n">h</span><span class="o">:</span><span class="mi">35</span><span class="o">:</span>
<span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">include</span><span class="o">/</span><span class="n">openssl</span><span class="o">/</span><span class="n">dh</span><span class="p">.</span><span class="n">h</span><span class="o">:</span><span class="mi">200</span><span class="o">:</span><span class="mi">28</span><span class="o">:</span> <span class="n">note</span><span class="o">:</span> <span class="n">declared</span> <span class="n">here</span>
<span class="mi">200</span> <span class="o">|</span> <span class="n">OSSL_DEPRECATEDIN_3_0</span> <span class="kt">void</span> <span class="nf">DH_free</span><span class="p">(</span><span class="n">DH</span> <span class="o">*</span><span class="n">dh</span><span class="p">);</span>
<span class="o">|</span> <span class="o">^~~~~~~</span>
</code></pre><br />With GCC12</p> Bip - Anonymous #777 (In Progress): Build fails on FreeBSD Clang https://projects.duckcorp.org/issues/7772022-08-25T13:15:31ZAnonymous
<pre>
./configure && make
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... no
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether cc accepts -g... yes
checking for cc option to enable C11 features... unsupported
checking for cc option to enable C99 features... unsupported
checking for cc option to enable C89 features... unsupported
checking whether cc understands -c and -o together... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of cc... gcc3
checking for ar... ar
checking the archiver (ar) interface... ar
checking for ranlib... ranlib
checking for flex... flex
checking for lex output file root... lex.yy
checking for lex library... none needed
checking for library containing yywrap... -lfl
checking whether yytext is a pointer... yes
checking for bison... bison -y
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for libssl >= 0.9.8 libcrypto >= 0.9.8... no
checking whether cc accepts PIE flags... yes
checking for check >= 0.9.6... yes
checking for backtrace_symbols_fd... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating src/config.h
config.status: src/config.h is unchanged
config.status: executing depfiles commands
OPENSSL: no
PIE: yes
TESTS: yes
Making all in src
make all-am
cc -DHAVE_CONFIG_H -I. -Wall -Wextra -Werror -O2 -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -Wl,-z,separate-code -Wpedantic -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-security -Wnull-dereference -Wstack-protector -Wtrampolines -Walloca -Wvla -Warray-bounds=2 -Wimplicit-fallthrough=3 -Wtraditional-conversion -Wshift-overflow=2 -Wcast-qual -Wstringop-overflow=4 -Wconversion -Warith-conversion -Wlogical-op -Wduplicated-cond -Wduplicated-branches -Wformat-signedness -Wshadow -Wstrict-overflow=4 -Wundef -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wstack-usage=1000000 -Wcast-align=strict -g -O2 -fPIE -MT bip-bip_main.o -MD -MP -MF .deps/bip-bip_main.Tpo -c -o bip-bip_main.o `test -f 'bip_main.c' || echo './'`bip_main.c
cc: error: -Wl,-z,relro: 'linker' input unused [-Werror,-Wunused-command-line-argument]
cc: error: -Wl,-z,now: 'linker' input unused [-Werror,-Wunused-command-line-argument]
cc: error: -Wl,-z,noexecstack: 'linker' input unused [-Werror,-Wunused-command-line-argument]
cc: error: -Wl,-z,separate-code: 'linker' input unused [-Werror,-Wunused-command-line-argument]
*** Error code 1
Stop.
make[2]: stopped in /usr/home/SCRUBBED_USERNAME/bip/bip-0.9.3/src
*** Error code 1
Stop.
make[1]: stopped in /usr/home/SCRUBBED_USERNAME/bip/bip-0.9.3/src
*** Error code 1
Stop.
make: stopped in /usr/home/SCRUBBED_USERNAME/bip/bip-0.9.3
</pre>
<p>Using -Wno-unused-command-line-argument results in:<br /><pre>
error: unknown warning option '-Wformat-overflow=2'; did you mean '-Wshift-overflow'? [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wformat-truncation=2' [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wtrampolines' [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Warray-bounds=2'; did you mean '-Warray-bounds'? [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wimplicit-fallthrough=3'; did you mean '-Wimplicit-fallthrough'? [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wtraditional-conversion'; did you mean '-Wliteral-conversion'? [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wshift-overflow=2'; did you mean '-Wshift-overflow'? [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wstringop-overflow=4'; did you mean '-Wshift-overflow'? [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Warith-conversion' [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wlogical-op'; did you mean '-Wlong-long'? [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wduplicated-cond' [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wduplicated-branches' [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wformat-signedness' [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wstack-usage=1000000' [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Wcast-align=strict'; did you mean '-Wcast-align'? [-Werror,-Wunknown-warning-option]
</pre></p> Bip - Enhancement #758 (In Progress): Load new certificates on /BIP RELOAD / SIGHUPhttps://projects.duckcorp.org/issues/7582022-03-15T19:51:15ZLoïc Gomez
<p>We need to find a way to re-read SSL cert/key for use with new client connections.<br />Most people probably use Let's Encrypt, which means they need to restart BIP every 3 months.</p> Bip - Enhancement #757 (In Progress): Allow to /BIP JUMP <other connection>https://projects.duckcorp.org/issues/7572022-03-15T19:44:22ZLoïc Gomez
<p>We need to allow an admin to /BIP JUMP another connection than the one it is currently connect to.</p> Bip - Bug #481 (In Progress): Fix log level for erroneous messageshttps://projects.duckcorp.org/issues/4812015-10-13T12:54:28ZPierre-Louis Bonicolipierre-louis.bonicoli@ir5.eu
<p>Bip should display IRC <a href="https://tools.ietf.org/html/rfc1459#section-6" class="external">errors</a> sent by IRC servers using <code>error</code> log level.</p>
<p>The current behaviour is:<br /><pre>
13-10-2015 14:48:14 DEBUG: ":irc.server.local 432 * Pilou :Nickname too long, max. 9 characters
</pre></p> Bip - Bug #431 (New): bip is leaking file descriptorshttps://projects.duckcorp.org/issues/4312015-01-15T02:01:19ZPierre-Louis Bonicolipierre-louis.bonicoli@ir5.eu
<p>fran wrote:</p>
<blockquote>
<p>bip is leaking file descriptors on my server, and the fix is pretty easy: on connection.c, on read_socket, whenever read returns <1 and errno is different to EAGAIN and EINTR, the socket MUST be closed <br />because read will not return 0 on the following iterations of select (cause it's not added to the read fd_set after that), plus after read failing with fatal error it keeps returning -1</p>
</blockquote> Bip - Bug #245 (New): bip splits privmsg logs into multiple files; no way to force it to use only...https://projects.duckcorp.org/issues/2452011-09-05T17:46:14ZSelene Scrivenbip-dev@xyzz.org
<p>For some reason, bip splits my privmsg logs into multiple files. It starts with nick.log, then creates nick.log.0, then creates nick.log.1, and so on. This is annoying, since I want to have only one log file per nick. And I haven't found any way to disable this behavior.</p>
<p>My guess is that bip is trying to be helpful by splitting logs into "conversations"... where each file represents one burst of activity, and a new file is started whenever there is a significant gap in activity. But I don't want it to. Could this feature be turned off, or perhaps a config option be added to disable it?</p> Bip - Enhancement #244 (In Progress): configurable timestamp format and/or log line formathttps://projects.duckcorp.org/issues/2442011-09-05T17:40:24ZSelene Scrivenbip-dev@xyzz.org
<p>I really, really want to keep all my logs in a consistent format. For every other system, I use the ISO standard YYYY-mm-dd HH:MM:SS format. It has the values in order of most to least significant, like regular numbers, it can be sorted correctly with /usr/bin/sort, and it's really the only date format which makes sense to me.</p>
<p>However, bip is hardcoded to use dd-mm-YYYY HH:MM:SS, which means I have to post-process logs to get them into a consistent, sortable format. And when I looked at how much work it'd be to change this, it appears to be hardcoded in multiple places and in ways which are non-trivial to fix.</p>
<p>Could someone replace the hardcoded timestamp format with something user-configurable?</p>
<p>Additionally, it would be kind of nice to be able to configure the format of the entire log line, to make it consistent with the IRC proxies I've used in the past. However, the current format isn't bad, and it's not a big deal. It's mostly just the timestamp format which bugs me.</p>