Annotate

tools/linedebug.lua @ 11516:83822be7704d

util.xmppstream: Send <?xml?> declaration in same call as stream open If network_settings.opportunistic_writes is enabled then this would previously have resulted in two socket writes, and possibly two packets being sent. This caused some issues in older versions of Gajim, which apparently expected the stream opening in the first packet, and thus it could not connect. With this change and opportunistic_writes enabled, the first packet should contain both the xml declaration and the stream open tag. Without opportunistic_writes, there should be no observable change. Tested with Gajim 1.1.2 (on same machine). Unsure if loopback behaves differently than the network here.
author Kim Alvefur <zash@zash.se>
date Wed, 14 Apr 2021 15:21:13 +0200
parent 11193:5850d24a4ad3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11193
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 local data = {}
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 local getinfo = debug.getinfo;
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 local function linehook(ev, li)
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 local S = getinfo(2, "S");
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 if S and S.source and S.source:match"^@" then
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 local file = S.source:sub(2);
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 local lines = data[file];
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 if not lines then
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 lines = {};
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 data[file] = lines;
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 for line in io.lines(file) do
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 lines[#lines+1] = line;
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 end
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 end
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 io.stderr:write(ev, " ", file, " ", li, " ", lines[li], "\n");
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 end
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 end
5850d24a4ad3 tools/linedebug: Print each line of source executed
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 debug.sethook(linehook, "l");