Annotate

spec/scansion/version.scs @ 11661:735b8f4a6d7e

net.http: Send entire HTTP request header as one write When opportunistic writes are enabled this reduces the number of syscalls and TCP packets sent on the wire. Experiments with TCP Fast Open made this even more obvious. That table trick probably wasn't as efficient. Lua generates bytecode for a table with zero array slots and space for two entries in the hash part, plus code to set [2] and [4]. I didn't verify but I suspect it would have had to resize the table when setting [1] and [3], although probably only once. Concatenating the strings directly in Lua is easier to read and involves no extra table or function call.
author Kim Alvefur <zash@zash.se>
date Thu, 08 Jul 2021 18:21:59 +0200
parent 10729:dbce2b94a7eb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10729
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 # XEP-0092: Software Version / mod_version
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 [Client] Romeo
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 password: password
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 jid: romeo@localhost/dfaZpuxV
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 -----
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 Romeo connects
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 Romeo sends:
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 <iq id='lx2' to='localhost' type='get'>
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 <query xmlns='jabber:iq:version'/>
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 </iq>
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 # Version string would vary so we can't do an exact match atm
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 # Inclusion of <os/> is disabled in the config, it should be absent
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 Romeo receives:
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 <iq id='lx2' from='localhost' type='result'>
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 <query xmlns='jabber:iq:version' scansion:strict='true'>
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 <name>Prosody</name>
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 <version scansion:strict='false'/>
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 </query>
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 </iq>
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26
dbce2b94a7eb mod_version: Add scansion test
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 Romeo disconnects