Software /
code /
prosody
Annotate
doc/roster_format.txt @ 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 | 132:9a4aa57af367 |
rev | line source |
---|---|
100
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
1 |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
2 This file documents the structure of the roster object. |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
3 |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
4 table roster { |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
5 [string bare_jid] = roster_item |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
6 } |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
7 |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
8 table roster_item { |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
9 string subscription = "none" | "to" | "from" | "both" |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
10 string name = Opaque string set by client. (optional) |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
11 set groups = a set of opaque strings set by the client |
132 | 12 boolean ask = nil | "subscribe" - a value of true indicates subscription is pending |
100
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
13 } |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
14 |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
15 The roster is available as |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
16 hosts[host].sessions[username].roster |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
17 and a copy is made to session.roster for all sessions. |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
18 |
ca7bad346cde
Documented the roster object's structure
Waqas Hussain <waqas20@gmail.com>
parents:
diff
changeset
|
19 All modifications to a roster should be done through the rostermanager. |