Software /
code /
prosody
File
teal-src/net/http.d.tl @ 12795:87424cbedc55
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).
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 02 Dec 2022 20:32:36 +0000 |
parent | 12612:588b1d175838 |
line wrap: on
line source
local Promise = require "util.promise".Promise; local record sslctx -- from LuaSec end local record lib enum http_method "GET" "HEAD" "POST" "PUT" "OPTIONS" "DELETE" -- etc? end record http_client_options sslctx : sslctx end record http_options id : string onlystatus : boolean body : string method : http_method headers : { string : string } insecure : boolean suppress_errors : boolean streaming_handler : function suppress_url : boolean sslctx : sslctx end record http_request host : string port : string enum scheme "http" "https" end scheme : scheme url : string userinfo : string path : string method : http_method headers : { string : string } insecure : boolean suppress_errors : boolean streaming_handler : function http : http_client time : integer id : string callback : http_callback end record http_response end type http_callback = function (string, number, http_response, http_request) record http_client options : http_client_options request : function (http_client, string, http_options, http_callback) end request : function (string, http_options, http_callback) : Promise, string default : http_client new : function (http_client_options) : http_client events : table -- COMPAT urlencode : function (string) : string urldecode : function (string) : string formencode : function ({ string : string }) : string formdecode : function (string) : { string : string } destroy_request : function (http_request) enum available_features "sni" end features : { available_features : boolean } end return lib