<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pounce, branch 1.0p1</title>
<subtitle>IRC bouncer
</subtitle>
<id>https://git.causal.agency/pounce/atom?h=1.0p1</id>
<link rel='self' href='https://git.causal.agency/pounce/atom?h=1.0p1'/>
<link rel='alternate' type='text/html' href='https://git.causal.agency/pounce/'/>
<updated>2019-11-21T21:45:40+00:00</updated>
<entry>
<title>Link calico with libcrypto on Linux</title>
<updated>2019-11-21T21:45:40+00:00</updated>
<author>
<name>C. McEnroe</name>
<email>june@causal.agency</email>
</author>
<published>2019-11-21T21:45:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/pounce/commit/?id=3051555d4e7975bcc05a9fef86b4016637a14832'/>
<id>urn:sha1:3051555d4e7975bcc05a9fef86b4016637a14832</id>
<content type='text'>
For the strlcpy implementation.
</content>
</entry>
<entry>
<title>Fix wordcmp return value when the words have differing lengths</title>
<updated>2019-11-21T21:26:43+00:00</updated>
<author>
<name>Michael Forney</name>
<email>mforney@mforney.org</email>
</author>
<published>2019-11-20T09:45:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/pounce/commit/?id=a17b38979617e8799da58be83699ea64dbed4503'/>
<id>urn:sha1:a17b38979617e8799da58be83699ea64dbed4503</id>
<content type='text'>
Otherwise, the result of strncmp gets converted size_t, since size_t
has greater rank than int.

Since wordcmp is only ever used as a boolean condition, this poses
no real issue, but presumably, it is meant to behave like the other
*cmp function and return a value less than, equal to, or greater
than 0 depending on the result of the comparison.
</content>
</entry>
<entry>
<title>Declare globals as extern in headers, and define in source file</title>
<updated>2019-11-21T21:26:37+00:00</updated>
<author>
<name>Michael Forney</name>
<email>mforney@mforney.org</email>
</author>
<published>2019-11-20T09:22:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/pounce/commit/?id=f4b0d09e3f782511b99626104ca960dd5decd4b8'/>
<id>urn:sha1:f4b0d09e3f782511b99626104ca960dd5decd4b8</id>
<content type='text'>
Otherwise, each source file that includes the header gets its own
definition, and according to the C standard (C99 6.9p5):

&gt; If an identifier declared with external linkage is used in an
&gt; expression (other than as part of the operand of a sizeof operator
&gt; whose result is an integer constant), somewhere in the entire
&gt; program there shall be exactly one external definition for the
&gt; identifier

Most compilers use the .bss section for zero data, but if it uses
.data instead, or if -Wl,--warn-common is used, this will cause a
linking error.
</content>
</entry>
<entry>
<title>Zero temporary SASL PLAIN buffer</title>
<updated>2019-11-21T21:26:08+00:00</updated>
<author>
<name>C. McEnroe</name>
<email>june@causal.agency</email>
</author>
<published>2019-11-21T21:26:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/pounce/commit/?id=407adf0ddd1be0b80de206d012b944b8113d02d2'/>
<id>urn:sha1:407adf0ddd1be0b80de206d012b944b8113d02d2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use a static buffer for plainBase64</title>
<updated>2019-11-21T21:25:09+00:00</updated>
<author>
<name>C. McEnroe</name>
<email>june@causal.agency</email>
</author>
<published>2019-11-21T21:25:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/pounce/commit/?id=cb38ad54eb54c1b3d3f0adbcf7b60eb50d6a3394'/>
<id>urn:sha1:cb38ad54eb54c1b3d3f0adbcf7b60eb50d6a3394</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use a fixed buffer size for SASL PLAIN authentication</title>
<updated>2019-11-21T21:14:10+00:00</updated>
<author>
<name>Michael Forney</name>
<email>mforney@mforney.org</email>
</author>
<published>2019-11-20T09:13:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/pounce/commit/?id=113a33bdf883602313fa33fd323fe1af80b1c620'/>
<id>urn:sha1:113a33bdf883602313fa33fd323fe1af80b1c620</id>
<content type='text'>
handleAuthenticate only sends a single AUTHENTICATE message, so
according to https://ircv3.net/specs/extensions/sasl-3.1.html, its
maximum length is 399. So, we know that the authentication string
can be at most 299 bytes.
</content>
</entry>
<entry>
<title>Avoid a couple VLAs with constant size</title>
<updated>2019-11-20T20:23:46+00:00</updated>
<author>
<name>Michael Forney</name>
<email>mforney@mforney.org</email>
</author>
<published>2019-11-20T09:10:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/pounce/commit/?id=d6055480175938d9d8d968db326469833cff5bf3'/>
<id>urn:sha1:d6055480175938d9d8d968db326469833cff5bf3</id>
<content type='text'>
These are really just regular arrays masquerading as VLAs.
</content>
</entry>
<entry>
<title>client: Include time.h for gmtime and strftime</title>
<updated>2019-11-20T19:54:32+00:00</updated>
<author>
<name>Michael Forney</name>
<email>mforney@mforney.org</email>
</author>
<published>2019-11-20T07:35:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/pounce/commit/?id=fd0424b1fc835639e61a9cb25798cc7a472bea47'/>
<id>urn:sha1:fd0424b1fc835639e61a9cb25798cc7a472bea47</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use strlcpy for sun_paths</title>
<updated>2019-11-20T18:39:25+00:00</updated>
<author>
<name>C. McEnroe</name>
<email>june@causal.agency</email>
</author>
<published>2019-11-20T18:39:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/pounce/commit/?id=db43450638ae9875619ce5c5a5e821990dd68c9f'/>
<id>urn:sha1:db43450638ae9875619ce5c5a5e821990dd68c9f</id>
<content type='text'>
My understanding is that sun_path need not be nul-terminated, but I
didn't notice that SUN_LEN actually requires it.

&gt; The length of UNIX-domain address, required by bind(2) and connect(2),
&gt; can be calculated by the macro SUN_LEN() defined in &lt;sys/un.h&gt;.  The
&gt; sun_path field must be terminated by a NUL character to be used with
&gt; SUN_LEN(), but the terminating NUL is not part of the address.

Thanks to Duncan Overbruck &lt;mail@duncano.de&gt; for the report.
</content>
</entry>
<entry>
<title>Format milliseconds as int</title>
<updated>2019-11-20T18:33:22+00:00</updated>
<author>
<name>C. McEnroe</name>
<email>june@causal.agency</email>
</author>
<published>2019-11-20T18:33:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/pounce/commit/?id=b237b9c82d1bac32be09e3ab4e3defee88d271f9'/>
<id>urn:sha1:b237b9c82d1bac32be09e3ab4e3defee88d271f9</id>
<content type='text'>
I don't know what I was thinking. I'm expecting a number less than 1000
of course that fits in int.
</content>
</entry>
</feed>
