Commit Graph

844 Commits

Author SHA1 Message Date
a850ee45f1 degesch: optimize buffer memory usage
We have approximately 5 formatter_items per buffer_line.  Let's assume
we're on a 64-bit machine.  Then there were (5 * 2) + 3 useless pointers
(104 bytes) as well as 5 * (4 + 4) = 40 bytes of wasted space because
of needless padding.  That's 144 bytes already.  Compared to that, this
change adds 16 bytes of overhead for an array sentinel, i.e. 128B less.

With a limit of 1000 lines per buffer, we've saved ~128kB per buffer
on completely useless data, and code complexity stays roughly the same.

All in all, memory usage for buffers should be about 50% lower.
2016-01-31 21:43:23 +01:00
10a264ec3d kike: add support for IRCv3.2 server-time 2016-01-31 21:43:23 +01:00
2ec6258ff3 last-fm.lua: don't use empty album names 2016-01-18 01:28:53 +01:00
f57664ddd0 degesch: add an assertion
It should never fail with current code.
2016-01-18 00:59:43 +01:00
773d14e740 degesch: disable TLS compression 2016-01-18 00:45:20 +01:00
221ae03b5c degesch: Lua: fix memory leak on load failure 2016-01-17 22:57:16 +01:00
588a696c68 degesch: lesser heap fragmentation 2016-01-17 22:15:48 +01:00
6db40c4503 Bump liberty 2016-01-17 04:43:43 +01:00
f070523085 Bump liberty 2016-01-16 06:30:08 +01:00
dac5c9df6d kike: more cleanup 2016-01-16 06:30:08 +01:00
ced2a57cfc kike: allow messages before protocol establishment
We can just queue them.
2016-01-16 06:30:08 +01:00
f36d66b0cb kike: asynchronous address resolution
As well as some refactoring and cleanup.
2016-01-16 06:30:08 +01:00
fdeb550ee0 degesch: fix backlog limit
It was effectively infinite.
2016-01-15 22:11:05 +01:00
c4a18ec8a7 degesch: fix and simplify screen handling
Now with less madness.
2016-01-15 05:40:20 +01:00
d0db1a6cdc degesch: enforce fullscreen buffers
Probably long overdue.

Now we actually look like something resembling a regular IRC client.
2016-01-15 05:12:03 +01:00
9333081178 degesch: option for fullscreen buffers 2016-01-15 05:09:42 +01:00
b7c9e8ca23 degesch: make backlog limit configurable 2016-01-15 05:09:42 +01:00
f39e2a4bc8 degesch: Lua: add autocomplete hooks 2016-01-15 02:39:10 +01:00
91f3bd60df degesch: Lua: finish the last-fm plugin 2016-01-14 04:13:03 +01:00
56858a97dd degesch: Lua: allow simulating user input
Also added UTF-8 validation to buffer:log() while I'm at it.
2016-01-14 03:34:29 +01:00
331d1842b9 Bump liberty, shuffle some code 2016-01-14 03:26:02 +01:00
19b09a8cec degesch: add a last-fm "now playing" plugin 2016-01-09 10:27:01 +01:00
32f719dec7 degesch: Lua: pass hostname to on_connected 2016-01-09 06:19:54 +01:00
0b92e9210c degesch: Lua: set sockets to nonblocking 2016-01-09 05:47:24 +01:00
092e9b5101 Bump liberty 2016-01-09 05:27:45 +01:00
faa0c989f8 degesch: Lua: actually allow filtering out input 2016-01-09 05:05:46 +01:00
53e72dd12d degesch: Lua: provide a traceback on load error 2016-01-09 05:01:50 +01:00
83c14ba264 degesch: Lua: fix plugin configuration names 2016-01-09 05:01:50 +01:00
64143a5957 degesch: Lua: fix luaL_ref() usage 2016-01-09 05:01:50 +01:00
aca153f575 degesch: Lua: fix configuration loading
Not the cleanest solution but it has to do for now.
2016-01-09 05:01:50 +01:00
79f46752d4 degesch: make sure newlines are output correctly 2016-01-08 08:40:40 +01:00
2a180ee084 degesch: Lua: finish implementation of connection 2016-01-07 22:49:53 +01:00
6754c59890 degesch: Lua: avoid resource leak
If a connector's on_success callback fails, we need to destroy the connection.
2016-01-07 22:49:53 +01:00
376bbea249 Factor out socket_io_try_{read,write}()
To be reused in Lua connection API.
2016-01-07 22:49:53 +01:00
a5ac0d24b8 degesch: fix handling of input editor death 2016-01-07 22:49:53 +01:00
cabab5f351 Fix a memory leak in SOCKS connector 2016-01-07 22:49:49 +01:00
1d3910fd8e degesch: fix switching of buffers by command
Readline used to erase the new buffer's contents.

Defer processing.
2016-01-07 22:49:49 +01:00
a259e96405 degesch: Lua: fix a resource leak 2016-01-06 00:23:54 +01:00
a7be2bf160 degesch: refactor Lua
And fix handling of nil returns from filter callbacks.
2016-01-05 23:19:28 +01:00
e1c7b8dcaf degesch: Lua: halfplement a connector wrapper
You can't do anything reasonable with the socket now.
2016-01-05 22:12:22 +01:00
00a1bdc707 Fix build of tests 2016-01-05 21:51:07 +01:00
e9b39a1ef7 degesch: Lua: allow arbitrary userdata properties 2016-01-04 23:14:38 +01:00
a227060383 degesch: Lua: use references for hook callbacks
Don't associate the callback with the full userdata object,
we'll need this for something else.
2016-01-04 22:24:05 +01:00
4832a99461 degesch: add basic autocomplete for /topic 2016-01-04 22:06:29 +01:00
0092c34568 Cleanup 2016-01-04 01:15:42 +01:00
aeb047260f Bump liberty, enable TLS SNI
Involves some rewrites to fit the new APIs.

SNI has been implemented Mostly just because we can, I don't think it's
widely in use and kike doesn't support this feature of the protocol either.
2016-01-04 01:12:42 +01:00
28fec6d4a6 ZyklonB: fix tls_ca_{path,file} config. options 2016-01-01 02:00:02 +01:00
1a73f1f1d7 degesch: fix a memory leak under libedit 2016-01-01 02:00:02 +01:00
312d0783cf Bump version 2015-12-31 23:46:17 +01:00
8564297e2a degesch: fix segfault on /quit under libedit 2015-12-31 23:42:43 +01:00