util.hashring: Support associating arbitrary data with nodes
In this API, a 'node' is always a simple text string. Sometimes the caller may
have a more complex structure representing a node, but the hash ring is really
only concerned with the node's name.
This API change allows :add_nodes() to take a table of `node_name = value`
pairs, as well as the simple array of node names previously accepted.
The 'value' of the selected node is returned as a new second result from
:get_node().
If no value is passed when a node is added, it defaults to `true` (as before,
but this was never previously exposed).
[v3_extensions]
basicConstraints = CA:TRUE
subjectAltName = @subject_alternative_name
[subject_alternative_name]
DNS.0 = localhost
otherName.0 = 1.3.6.1.5.5.7.8.7;IA5STRING:_xmpp-client.localhost
otherName.1 = 1.3.6.1.5.5.7.8.7;IA5STRING:_xmpp-server.localhost
otherName.2 = 1.3.6.1.5.5.7.8.5;FORMAT:UTF8,UTF8:localhost
[distinguished_name]
countryName = GB
organizationName = Prosody IM
organizationalUnitName = https://prosody.im/doc/certificates
commonName = Example certificate
[req]
prompt = no
x509_extensions = v3_extensions
req_extensions = v3_extensions
distinguished_name = distinguished_name