diff --git a/CMakeLists.txt b/CMakeLists.txt index 356b4092..a768da28 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1100,6 +1100,7 @@ if (NOT LWS_WITHOUT_TESTAPPS) "${PROJECT_SOURCE_DIR}/test-server/favicon.ico" "${PROJECT_SOURCE_DIR}/test-server/leaf.jpg" "${PROJECT_SOURCE_DIR}/test-server/libwebsockets.org-logo.png" + "${PROJECT_SOURCE_DIR}/test-server/lws-common.js" "${PROJECT_SOURCE_DIR}/test-server/test.html") # Generate self-signed SSL certs for the test-server. @@ -1268,6 +1269,9 @@ if (NOT LWS_WITHOUT_TESTAPPS) "plugins/protocol_lws_status.c" "" "") create_plugin(protocol_post_demo "plugins/protocol_post_demo.c" "" "") + create_plugin(protocol_lws_table_dirlisting + "plugins/generic-table/protocol_table_dirlisting.c" "" "") + if (LWS_WITH_SERVER_STATUS) create_plugin(protocol_lws_server_status "plugins/protocol_lws_server_status.c" "" "") @@ -1510,6 +1514,12 @@ if (LWS_WITH_GENERIC_SESSIONS) COMPONENT examples) endif() + install(FILES + plugins/generic-table/assets/lwsgt.js + plugins/generic-table/assets/index.html + DESTINATION share/libwebsockets-test-server/generic-table + COMPONENT examples) + endif() # Install the LibwebsocketsConfig.cmake and LibwebsocketsConfigVersion.cmake diff --git a/README.generic-table.md b/README.generic-table.md new file mode 100644 index 00000000..7a858096 --- /dev/null +++ b/README.generic-table.md @@ -0,0 +1,219 @@ +Notes about generic-table +========================= + +@section gtint What is generic-table? + +Generic-table is a JSON schema and client-side JS file that makes it easy to +display live, table structured HTML over a ws link. + +An example plugin and index.html using it are provided, but lwsgt itself doesn't +have its own plugin, it's just a JSON schema and client-side JS that other +plugins can use to simplify displaying live, table-based data without having +to reinvent the wheel each time. + +The ws protocol sends JSON describing the table, and then JSON updating the table +contents when it chooses, the brower table is updated automatically, live. + +\image html lwsgt-overview.png + + - Example protocol plugin (displays directory contents): https://github.com/warmcat/libwebsockets/tree/master/plugins/generic-table/protocol_table_dirlisting.c + + - Example HTML: https://github.com/warmcat/libwebsockets/tree/master/plugins/generic-table/assets/index.html + + - lwsgt.js (client-side table rendering / ws link management): https://github.com/warmcat/libwebsockets/tree/master/plugins/generic-table/assets/lwsgt.js + + +@section gteb Enabling for build + +Enable the demo plugin at CMake with -DLWS_WITH_PLUGINS=1 + + +@section gtinth Integrating with your html + + - In your HEAD section, include lwsgt.js + +``` + +``` + + - Also in your HEAD section, style the lwsgt CSS, eg + +``` + +``` + +You can skip this but the result will be less beautiful until some CSS is +provided. + + - In your body section, declare a div with an id (can be whatever you want) + +``` +
+``` + +lwsgt JS will put its content there. + + - Finally in a +``` + +In the callback, you can recover the ws object by `window[gt].lwsgt_ws`. + + +@section gtc Lwsgt constructor + +To instantiate the ws link and lwsgt instance, your HTML must call a lwsgt +constructor for each region on the page managed by lwsgt. + +`var myvar = new lwsgt_initial(title, ws_protocol, div_id, click_cb, myvar);` + +All of the arguments are strings. + +| Parameter | Description | +|-----------------|---------------------------------------------------------| +| title | Title string to go above the table | +| ws_protocol | Protocol name string to use when making ws connection | +| div_id | HTML id of div to fill with content | +| click_cb | Callback function name string to handle clickable links | +| myvar | Name of var used to hold this instantiation globally | + +Note "myvar" is needed so it can be passed to the click handling callback. + + +@section gtclick Lwsgt click handling function + +When a clickable link produced by lwsgt is clicked, the function named in the +click_cb parameter to lwsgt_initial is called. + +That function is expected to take four parameters, eg + +`function lwsgt_dir_click(gt, u, col, row)` + +| Parameter | Description | +|------- ---|-----------------------------------------------------------| +| gt | Name of global var holding this lwsgt context (ie, myvar) | +| u | Link "url" string | +| col | Table column number link is from | +| row | Table row number link is from | + + + +@section gtgj Generic-table JSON + +### Column layout + +When the ws connection is established, the protocol should send a JSON message +describing the table columns. For example + +``` + "cols": [ + { "name": "Date" }, + { "name": "Size", "align": "right" }, + { "name": "Icon" }, + { "name": "Name", "href": "uri"}, + { "name": "uri", "hide": "1" } + ] + } +``` + + - This describes 5 columns + + - Only four columns (not "uri") should be visible + + - "Name" should be presented as a clickable link using "uri" as the + destination, when a "uri" field is presented. + + - "Size" field should be presented aligned to the right + + ### Breadcrumbs + + When a view is hierarchical, it's useful to provide a "path" with links back + in the "path", known as "breadcrumbs". + + Elements before the last one should provide a "url" member as well as the + displayable name, which is used to create the link destination. + + The last element, being the current displayed page should not have a url + member and be displayed without link style. + + + ``` + "breadcrumbs":[{"name":"top", "url": "/" }, {"name":"mydir"}] + ``` + + ### Table data + + The actual file data consists of an array of rows, containing the columns + mentioned in the original "cols" section. + + ``` + "data":[ + { + "Icon":" ", + "Date":"2015-Feb-06 03:08:35 +0000", + "Size":"1406", + "uri":"./serve//favicon.ico", + "Name":"favicon.ico" + } + ] + + ``` + + @section gtdirl Setting up protocol-lws-table-dirlisting + + The example protocol needs two mounts, one to provide the index.html, js and + the protocol itself + + ``` + { + "mountpoint": "/dirtest", + "origin": "file:///usr/share/libwebsockets-test-server/generic-table", + "origin": "callback://protocol-lws-table-dirlisting", + "default": "index.html", + "pmo": [{ + "dir": "/usr/share/libwebsockets-test-server" + }] + }, +``` + +The protocol wants a per-mount option (PMO) to tell it the base directory it +is serving from, named "dir". + +The other mount is there to simply serve items that get clicked on from the +table in a secure way + +``` + { + "mountpoint": "/dirtest/serve", + "origin": "file:///usr/share/libwebsockets-test-server", + "default": "index.html" + }, +``` + +This last bit is not related to using lwsgt itself. diff --git a/README.problems.md b/README.problems.md new file mode 100644 index 00000000..dfd572a2 --- /dev/null +++ b/README.problems.md @@ -0,0 +1,43 @@ +Debugging problems +================== + +Library is a component +---------------------- + +As a library, lws is always just a component in a bigger application. + +When users have a problem involving lws, what is happening in the bigger +application is usually critical to understand what is going on (and where the +solution lies). + +Many users are able to share their sources, but others decide not to, for +presumed "commercial advantage" or whatever. (In any event, it can be painful +looking through large chunks of someone else's sources for problems when that +is not the library author's responsibility.) + +This makes answering questions like "what is wrong with my code I am not +going to show you?" or even "what is wrong with my code?" very difficult. + +Even if it's clear there is a problem somewhere, it cannot be understood or +reproduced by anyone else if it needs user code that isn't provided. + +The biggest question is, "is this an lws problem actually"? + + +Use the test apps as sanity checks +---------------------------------- + +The test server and client are extremely useful for sanity checks and debugging +guidance. + + - test apps work on your platform, then either + - your user code is broken, align it to how the test apps work, or, + - something from your code is required to show an lws problem, provide a + minimal patch on a test app so it can be reproduced + + - test apps break on your platform, but work on, eg, x86_64, either + - toolchain or platform-specific (eg, OS) issue, or + - lws platform support issue + + - test apps break everywhere + - sounds like lws problem, info to reproduce and / or a patch is appreciated diff --git a/doc-assets/lwsgt-overview.png b/doc-assets/lwsgt-overview.png new file mode 100644 index 00000000..4d031959 Binary files /dev/null and b/doc-assets/lwsgt-overview.png differ diff --git a/doc/html/dir_e8731c315d086bdbd43ee7d72e0ed36b.html b/doc/html/dir_e8731c315d086bdbd43ee7d72e0ed36b.html new file mode 100644 index 00000000..f042dc54 --- /dev/null +++ b/doc/html/dir_e8731c315d086bdbd43ee7d72e0ed36b.html @@ -0,0 +1,90 @@ + + + + + + +libwebsockets: doc-assets Directory Reference + + + + + + + + + + + +
+
+ + + + + + + +
+
libwebsockets +
+
Lightweight C library for HTML5 websockets
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
doc-assets Directory Reference
+
+
+ + +

+Files

+
+
+ + + + diff --git a/doc/html/globals_eval.html b/doc/html/globals_eval.html index 7425730e..93dbdf5f 100644 --- a/doc/html/globals_eval.html +++ b/doc/html/globals_eval.html @@ -194,6 +194,9 @@ $(document).ready(function(){initNavTree('globals_eval.html','');});
  • LWS_CALLBACK_HTTP_FILE_COMPLETION : libwebsockets.h
  • +
  • LWS_CALLBACK_HTTP_PMO +: libwebsockets.h +
  • LWS_CALLBACK_HTTP_WRITEABLE : libwebsockets.h
  • diff --git a/doc/html/globals_l.html b/doc/html/globals_l.html index 08f21c6d..1d282d4d 100644 --- a/doc/html/globals_l.html +++ b/doc/html/globals_l.html @@ -214,6 +214,9 @@ $(document).ready(function(){initNavTree('globals_l.html','');});
  • LWS_CALLBACK_HTTP_FILE_COMPLETION : libwebsockets.h
  • +
  • LWS_CALLBACK_HTTP_PMO +: libwebsockets.h +
  • LWS_CALLBACK_HTTP_WRITEABLE : libwebsockets.h
  • diff --git a/doc/html/group__client.html b/doc/html/group__client.html index 65594e08..a8a241a8 100644 --- a/doc/html/group__client.html +++ b/doc/html/group__client.html @@ -112,7 +112,7 @@ LWS_VISIBLE LWS_EXTERN int #include <lib/libwebsockets.h>

    enum lws_client_connect_ssl_connection_flags - flags that may be used with struct lws_client_connect_info ssl_connection member to control if and how SSL checks apply to the client connection being created

    -
    1854  {
    1855  LCCSCF_USE_SSL = (1 << 0),
    1856  LCCSCF_ALLOW_SELFSIGNED = (1 << 1),
    1857  LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK = (1 << 2)
    1858 };
    +
    1859  {
    1860  LCCSCF_USE_SSL = (1 << 0),
    1861  LCCSCF_ALLOW_SELFSIGNED = (1 << 1),
    1862  LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK = (1 << 2)
    1863 };

    Function Documentation

    diff --git a/doc/html/group__context-and-vhost.html b/doc/html/group__context-and-vhost.html index f4000612..51ea9325 100644 --- a/doc/html/group__context-and-vhost.html +++ b/doc/html/group__context-and-vhost.html @@ -206,23 +206,23 @@ Functions

    (VH) if set, only ipv6 allowed on the vhost

    -
    1393  {
    1395  (1 << 12),
    1402  (1 << 12),
    1406  LWS_SERVER_OPTION_LIBEV = (1 << 4),
    1408  LWS_SERVER_OPTION_DISABLE_IPV6 = (1 << 5),
    1417  LWS_SERVER_OPTION_SSL_ECDH = (1 << 9) |
    1418  (1 << 12),
    1420  LWS_SERVER_OPTION_LIBUV = (1 << 10),
    1423  (1 << 12),
    1431  LWS_SERVER_OPTION_UNIX_SOCK = (1 << 14),
    1433  LWS_SERVER_OPTION_STS = (1 << 15),
    1441  /****** add new things just above ---^ ******/
    1442 };
    -
    Definition: libwebsockets.h:1410
    -
    Definition: libwebsockets.h:1422
    -
    Definition: libwebsockets.h:1428
    -
    Definition: libwebsockets.h:1399
    -
    Definition: libwebsockets.h:1417
    -
    Definition: libwebsockets.h:1401
    -
    Definition: libwebsockets.h:1406
    -
    Definition: libwebsockets.h:1426
    -
    Definition: libwebsockets.h:1438
    -
    Definition: libwebsockets.h:1408
    -
    Definition: libwebsockets.h:1420
    -
    Definition: libwebsockets.h:1431
    -
    Definition: libwebsockets.h:1415
    -
    Definition: libwebsockets.h:1413
    -
    Definition: libwebsockets.h:1433
    -
    Definition: libwebsockets.h:1436
    +
    1398  {
    1400  (1 << 12),
    1407  (1 << 12),
    1411  LWS_SERVER_OPTION_LIBEV = (1 << 4),
    1413  LWS_SERVER_OPTION_DISABLE_IPV6 = (1 << 5),
    1422  LWS_SERVER_OPTION_SSL_ECDH = (1 << 9) |
    1423  (1 << 12),
    1425  LWS_SERVER_OPTION_LIBUV = (1 << 10),
    1428  (1 << 12),
    1436  LWS_SERVER_OPTION_UNIX_SOCK = (1 << 14),
    1438  LWS_SERVER_OPTION_STS = (1 << 15),
    1446  /****** add new things just above ---^ ******/
    1447 };
    +
    Definition: libwebsockets.h:1415
    +
    Definition: libwebsockets.h:1427
    +
    Definition: libwebsockets.h:1433
    +
    Definition: libwebsockets.h:1404
    +
    Definition: libwebsockets.h:1422
    +
    Definition: libwebsockets.h:1406
    +
    Definition: libwebsockets.h:1411
    +
    Definition: libwebsockets.h:1431
    +
    Definition: libwebsockets.h:1443
    +
    Definition: libwebsockets.h:1413
    +
    Definition: libwebsockets.h:1425
    +
    Definition: libwebsockets.h:1436
    +
    Definition: libwebsockets.h:1420
    +
    Definition: libwebsockets.h:1418
    +
    Definition: libwebsockets.h:1438
    +
    Definition: libwebsockets.h:1441
    diff --git a/doc/html/group__extensions.html b/doc/html/group__extensions.html index 4a94bbf8..ba85a2c0 100644 --- a/doc/html/group__extensions.html +++ b/doc/html/group__extensions.html @@ -242,9 +242,9 @@ Functions

    may have an optional decimal argument

    -
    995  {
    996  EXTARG_NONE,
    997  EXTARG_DEC,
    1000  /* Add new things just above here ---^
    1001  * This is part of the ABI, don't needlessly break compatibility */
    1002 };
    Definition: libwebsockets.h:998
    -
    Definition: libwebsockets.h:996
    -
    Definition: libwebsockets.h:997
    +
    1000  {
    1001  EXTARG_NONE,
    1002  EXTARG_DEC,
    1005  /* Add new things just above here ---^
    1006  * This is part of the ABI, don't needlessly break compatibility */
    1007 };
    Definition: libwebsockets.h:1003
    +
    Definition: libwebsockets.h:1001
    +
    Definition: libwebsockets.h:1002
    diff --git a/doc/html/group__form-parsing.html b/doc/html/group__form-parsing.html index 2a748b77..98048db0 100644 --- a/doc/html/group__form-parsing.html +++ b/doc/html/group__form-parsing.html @@ -156,9 +156,9 @@ Functions

    a new file is starting to arrive

    -
    2634  {
    2639  LWS_UFS_OPEN
    2641 };
    Definition: libwebsockets.h:2637
    -
    Definition: libwebsockets.h:2639
    -
    Definition: libwebsockets.h:2635
    +
    2639  {
    2644  LWS_UFS_OPEN
    2646 };
    Definition: libwebsockets.h:2642
    +
    Definition: libwebsockets.h:2644
    +
    Definition: libwebsockets.h:2640
    diff --git a/doc/html/group__generic-sessions.html b/doc/html/group__generic-sessions.html index 80c4eb58..a69ebcf7 100644 --- a/doc/html/group__generic-sessions.html +++ b/doc/html/group__generic-sessions.html @@ -117,8 +117,8 @@ Enumerations

    an existing user was deleted

    -
    1357  {
    1358  LWSGSE_CREATED,
    1360 };
    Definition: libwebsockets.h:1359
    -
    Definition: libwebsockets.h:1358
    +
    1362  {
    1363  LWSGSE_CREATED,
    1365 };
    Definition: libwebsockets.h:1364
    +
    Definition: libwebsockets.h:1363
    @@ -148,10 +148,10 @@ Enumerations

    he just completed "forgot password" flow

    -
    1339  {
    1340  LWSGS_AUTH_LOGGED_IN = 1,
    1341  LWSGS_AUTH_ADMIN = 2,
    1342  LWSGS_AUTH_VERIFIED = 4,
    1344 };
    Definition: libwebsockets.h:1342
    -
    Definition: libwebsockets.h:1343
    -
    Definition: libwebsockets.h:1341
    -
    Definition: libwebsockets.h:1340
    +
    1344  {
    1345  LWSGS_AUTH_LOGGED_IN = 1,
    1346  LWSGS_AUTH_ADMIN = 2,
    1347  LWSGS_AUTH_VERIFIED = 4,
    1349 };
    Definition: libwebsockets.h:1347
    +
    Definition: libwebsockets.h:1348
    +
    Definition: libwebsockets.h:1346
    +
    Definition: libwebsockets.h:1345
    diff --git a/doc/html/group__sending-data.html b/doc/html/group__sending-data.html index 762f7e66..40863bae 100644 --- a/doc/html/group__sending-data.html +++ b/doc/html/group__sending-data.html @@ -130,13 +130,13 @@ Functions

    client packet payload goes out on wire unmunged only useful for security tests since normal servers cannot decode the content if used

    -
    2975  {
    2976  LWS_WRITE_TEXT = 0,
    2980  LWS_WRITE_BINARY = 1,
    2986  LWS_WRITE_HTTP = 3,
    2989  /* LWS_WRITE_CLOSE is handled by lws_close_reason() */
    2990  LWS_WRITE_PING = 5,
    2991  LWS_WRITE_PONG = 6,
    2992 
    2993  /* Same as write_http but we know this write ends the transaction */
    2994  LWS_WRITE_HTTP_FINAL = 7,
    2995 
    2996  /* HTTP2 */
    2997 
    3005  /****** add new things just above ---^ ******/
    3006 
    3007  /* flags */
    3008 
    3009  LWS_WRITE_NO_FIN = 0x40,
    3016 };
    Definition: libwebsockets.h:2986
    -
    Definition: libwebsockets.h:3009
    -
    Definition: libwebsockets.h:2976
    -
    Definition: libwebsockets.h:2980
    -
    Definition: libwebsockets.h:3012
    -
    Definition: libwebsockets.h:2983
    -
    Definition: libwebsockets.h:2998
    +
    2980  {
    2981  LWS_WRITE_TEXT = 0,
    2985  LWS_WRITE_BINARY = 1,
    2991  LWS_WRITE_HTTP = 3,
    2994  /* LWS_WRITE_CLOSE is handled by lws_close_reason() */
    2995  LWS_WRITE_PING = 5,
    2996  LWS_WRITE_PONG = 6,
    2997 
    2998  /* Same as write_http but we know this write ends the transaction */
    2999  LWS_WRITE_HTTP_FINAL = 7,
    3000 
    3001  /* HTTP2 */
    3002 
    3010  /****** add new things just above ---^ ******/
    3011 
    3012  /* flags */
    3013 
    3014  LWS_WRITE_NO_FIN = 0x40,
    3021 };
    Definition: libwebsockets.h:2991
    +
    Definition: libwebsockets.h:3014
    +
    Definition: libwebsockets.h:2981
    +
    Definition: libwebsockets.h:2985
    +
    Definition: libwebsockets.h:3017
    +
    Definition: libwebsockets.h:2988
    +
    Definition: libwebsockets.h:3003
    diff --git a/doc/html/group__smtp.html b/doc/html/group__smtp.html index 7514f2b7..15f0e3e3 100644 --- a/doc/html/group__smtp.html +++ b/doc/html/group__smtp.html @@ -157,15 +157,15 @@ Functions

    sent the session quit

    -
    3897  {
    3898  LGSSMTP_IDLE,
    3903  LGSSMTP_SENT_TO,
    3907 };
    Definition: libwebsockets.h:3900
    -
    Definition: libwebsockets.h:3905
    -
    Definition: libwebsockets.h:3898
    -
    Definition: libwebsockets.h:3899
    -
    Definition: libwebsockets.h:3903
    -
    Definition: libwebsockets.h:3902
    -
    Definition: libwebsockets.h:3906
    -
    Definition: libwebsockets.h:3901
    -
    Definition: libwebsockets.h:3904
    +
    3902  {
    3903  LGSSMTP_IDLE,
    3908  LGSSMTP_SENT_TO,
    3912 };
    Definition: libwebsockets.h:3905
    +
    Definition: libwebsockets.h:3910
    +
    Definition: libwebsockets.h:3903
    +
    Definition: libwebsockets.h:3904
    +
    Definition: libwebsockets.h:3908
    +
    Definition: libwebsockets.h:3907
    +
    Definition: libwebsockets.h:3911
    +
    Definition: libwebsockets.h:3906
    +
    Definition: libwebsockets.h:3909
    diff --git a/doc/html/group__usercb.html b/doc/html/group__usercb.html index 3bd68b93..80052e80 100644 --- a/doc/html/group__usercb.html +++ b/doc/html/group__usercb.html @@ -147,7 +147,8 @@ Enumerations LWS_CALLBACK_SESSION_INFO = 54, LWS_CALLBACK_GS_EVENT = 55,
    -  LWS_CALLBACK_USER = 1000 +  LWS_CALLBACK_HTTP_PMO = 56, +LWS_CALLBACK_USER = 1000
    }   @@ -366,11 +367,14 @@ Enumerations LWS_CALLBACK_WS_PEER_INITIATED_CLOSE 

    The peer has sent an unsolicited Close WS packet. in and len are the optional close code (first 2 bytes, network order) and the optional additional information which is not defined in the standard, and may be a string or non-human- readable data. If you return 0 lws will echo the close and then close the connection. If you return nonzero lws will just close the connection.

    +LWS_CALLBACK_HTTP_PMO  +

    per-mount options for this connection, called before the normal LWS_CALLBACK_HTTP when the mount has per-mount options

    + LWS_CALLBACK_USER 

    user code can use any including / above without fear of clashes

    -
    577  {
    661  LWS_CALLBACK_HTTP = 12,
    819  /* external poll() management support */
    882  LWS_CALLBACK_WS_EXT_DEFAULTS = 39,
    885  LWS_CALLBACK_CGI = 40,
    887  LWS_CALLBACK_CGI_TERMINATED = 41,
    889  LWS_CALLBACK_CGI_STDIN_DATA = 42,
    891  LWS_CALLBACK_CGI_STDIN_COMPLETED = 43,
    893  LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44,
    895  LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45,
    897  LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46,
    899  LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47,
    901  LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48,
    903  LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49,
    905  LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50,
    907  LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51,
    909  LWS_CALLBACK_PROCESS_HTML = 52,
    911  LWS_CALLBACK_ADD_HEADERS = 53,
    913  LWS_CALLBACK_SESSION_INFO = 54,
    916  LWS_CALLBACK_GS_EVENT = 55,
    919  /****** add new things just above ---^ ******/
    920 
    921  LWS_CALLBACK_USER = 1000,
    923 };
    Definition: libwebsockets.h:684
    +
    577  {
    661  LWS_CALLBACK_HTTP = 12,
    819  /* external poll() management support */
    882  LWS_CALLBACK_WS_EXT_DEFAULTS = 39,
    885  LWS_CALLBACK_CGI = 40,
    887  LWS_CALLBACK_CGI_TERMINATED = 41,
    889  LWS_CALLBACK_CGI_STDIN_DATA = 42,
    891  LWS_CALLBACK_CGI_STDIN_COMPLETED = 43,
    893  LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44,
    895  LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45,
    897  LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46,
    899  LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47,
    901  LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48,
    903  LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49,
    905  LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50,
    907  LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51,
    909  LWS_CALLBACK_PROCESS_HTML = 52,
    911  LWS_CALLBACK_ADD_HEADERS = 53,
    913  LWS_CALLBACK_SESSION_INFO = 54,
    916  LWS_CALLBACK_GS_EVENT = 55,
    924  /****** add new things just above ---^ ******/
    925 
    926  LWS_CALLBACK_USER = 1000,
    928 };
    Definition: libwebsockets.h:684
    Definition: libwebsockets.h:812
    Definition: libwebsockets.h:810
    @@ -399,13 +403,14 @@ Enumerations
    Definition: libwebsockets.h:646
    Definition: libwebsockets.h:680
    +
    Definition: libwebsockets.h:918
    Definition: libwebsockets.h:758
    Definition: libwebsockets.h:644
    Definition: libwebsockets.h:649
    Definition: libwebsockets.h:582
    Definition: libwebsockets.h:659
    -
    Definition: libwebsockets.h:921
    +
    Definition: libwebsockets.h:926
    Definition: libwebsockets.h:638
    Definition: libwebsockets.h:640
    Definition: libwebsockets.h:651
    diff --git a/doc/html/group__usercb.js b/doc/html/group__usercb.js index ec85d224..779e5adc 100644 --- a/doc/html/group__usercb.js +++ b/doc/html/group__usercb.js @@ -41,6 +41,7 @@ var group__usercb = [ "LWS_CALLBACK_UNLOCK_POLL", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79", null ], [ "LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b", null ], [ "LWS_CALLBACK_WS_PEER_INITIATED_CLOSE", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51", null ], + [ "LWS_CALLBACK_HTTP_PMO", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a", null ], [ "LWS_CALLBACK_USER", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a", null ] ] ] ]; \ No newline at end of file diff --git a/doc/html/group__vhost-mounts.html b/doc/html/group__vhost-mounts.html index cbb184dc..caf59c3b 100644 --- a/doc/html/group__vhost-mounts.html +++ b/doc/html/group__vhost-mounts.html @@ -129,13 +129,13 @@ Enumerations

    hand by named protocol's callback

    -
    1790  {
    1791  LWSMPRO_HTTP = 0,
    1792  LWSMPRO_HTTPS = 1,
    1793  LWSMPRO_FILE = 2,
    1794  LWSMPRO_CGI = 3,
    1795  LWSMPRO_REDIR_HTTP = 4,
    1796  LWSMPRO_REDIR_HTTPS = 5,
    1797  LWSMPRO_CALLBACK = 6,
    1798 };
    Definition: libwebsockets.h:1794
    -
    Definition: libwebsockets.h:1792
    -
    Definition: libwebsockets.h:1793
    -
    Definition: libwebsockets.h:1795
    -
    Definition: libwebsockets.h:1796
    -
    Definition: libwebsockets.h:1791
    -
    Definition: libwebsockets.h:1797
    +
    1795  {
    1796  LWSMPRO_HTTP = 0,
    1797  LWSMPRO_HTTPS = 1,
    1798  LWSMPRO_FILE = 2,
    1799  LWSMPRO_CGI = 3,
    1800  LWSMPRO_REDIR_HTTP = 4,
    1801  LWSMPRO_REDIR_HTTPS = 5,
    1802  LWSMPRO_CALLBACK = 6,
    1803 };
    Definition: libwebsockets.h:1799
    +
    Definition: libwebsockets.h:1797
    +
    Definition: libwebsockets.h:1798
    +
    Definition: libwebsockets.h:1800
    +
    Definition: libwebsockets.h:1801
    +
    Definition: libwebsockets.h:1796
    +
    Definition: libwebsockets.h:1802
    diff --git a/doc/html/libwebsockets_8h.html b/doc/html/libwebsockets_8h.html index c1855c0a..293b8f94 100644 --- a/doc/html/libwebsockets_8h.html +++ b/doc/html/libwebsockets_8h.html @@ -281,7 +281,8 @@ Enumerations LWS_CALLBACK_SESSION_INFO = 54, LWS_CALLBACK_GS_EVENT = 55,
    -  LWS_CALLBACK_USER = 1000 +  LWS_CALLBACK_HTTP_PMO = 56, +LWS_CALLBACK_USER = 1000
    }   diff --git a/doc/html/libwebsockets_8h.js b/doc/html/libwebsockets_8h.js index d8dbff21..b102347b 100644 --- a/doc/html/libwebsockets_8h.js +++ b/doc/html/libwebsockets_8h.js @@ -106,6 +106,7 @@ var libwebsockets_8h = [ "LWS_CALLBACK_ADD_HEADERS", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab884f3d5f8a6126a0d34c0172f5e3725", null ], [ "LWS_CALLBACK_SESSION_INFO", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac11c336f7052abf3618962902a71ebc8", null ], [ "LWS_CALLBACK_GS_EVENT", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7af6cf80e57aae8ba0a57a5c456b1fe026", null ], + [ "LWS_CALLBACK_HTTP_PMO", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a", null ], [ "LWS_CALLBACK_USER", "group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a", null ] ] ], [ "lws_cgi_hdr_state", "libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedb", [ diff --git a/doc/html/libwebsockets_8h_source.html b/doc/html/libwebsockets_8h_source.html index 3708aa65..3eb9d675 100644 --- a/doc/html/libwebsockets_8h_source.html +++ b/doc/html/libwebsockets_8h_source.html @@ -71,228 +71,228 @@ $(document).ready(function(){initNavTree('libwebsockets_8h_source.html','');});
    libwebsockets.h
    -Go to the documentation of this file.
    1 /*
    2  * libwebsockets - small server side websockets and web server implementation
    3  *
    4  * Copyright (C) 2010-2016 Andy Green <andy@warmcat.com>
    5  *
    6  * This library is free software; you can redistribute it and/or
    7  * modify it under the terms of the GNU Lesser General Public
    8  * License as published by the Free Software Foundation:
    9  * version 2.1 of the License.
    10  *
    11  * This library is distributed in the hope that it will be useful,
    12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    14  * Lesser General Public License for more details.
    15  *
    16  * You should have received a copy of the GNU Lesser General Public
    17  * License along with this library; if not, write to the Free Software
    18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
    19  * MA 02110-1301 USA
    20  */
    21 
    24 #ifndef LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C
    25 #define LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C
    26 
    27 #ifdef __cplusplus
    28 #include <cstddef>
    29 #include <cstdarg>
    30 #ifdef MBED_OPERATORS
    31 #include "mbed-drivers/mbed.h"
    32 #include "sal-iface-eth/EthernetInterface.h"
    33 #include "sockets/TCPListener.h"
    34 #include "sal-stack-lwip/lwipv4_init.h"
    35 
    36 namespace {
    37 }
    38 using namespace mbed::Sockets::v0;
    39 
    40 
    41 struct sockaddr_in;
    42 struct lws;
    43 
    44 class lws_conn {
    45  public:
    46  lws_conn():
    47  ts(NULL),
    48  wsi(NULL),
    49  writeable(1),
    50  awaiting_on_writeable(0)
    51  {
    52  }
    53 
    54 public:
    55  void set_wsi(struct lws *_wsi) { wsi = _wsi; }
    56  int actual_onRX(Socket *s);
    57  void onRX(Socket *s);
    58  void onError(Socket *s, socket_error_t err);
    59  void onDisconnect(TCPStream *s);
    60  void onSent(Socket *s, uint16_t len);
    61  void serialized_writeable(struct lws *wsi);
    62 
    63 public:
    64  TCPStream *ts;
    65 
    66 public:
    67  struct lws *wsi;
    68  char writeable;
    69  char awaiting_on_writeable;
    70 };
    71 
    73 public:
    75  srv(SOCKET_STACK_LWIP_IPV4)
    76  {
    77  srv.setOnError(TCPStream::ErrorHandler_t(this,
    79  }
    80 
    81  void start(const uint16_t port);
    83 protected:
    84  void onRX(Socket *s);
    85  void onError(Socket *s, socket_error_t err);
    86  void onIncoming(TCPListener *s, void *impl);
    87  void onDisconnect(TCPStream *s);
    89 public:
    90  TCPListener srv;
    91 };
    92 
    93 #endif
    94 
    95 extern "C" {
    96 #else
    97 #include <stdarg.h>
    98 #endif
    99 
    100 #ifdef MBED_OPERATORS
    101 struct sockaddr_in;
    102 #define LWS_POSIX 0
    103 #else
    104 #define LWS_POSIX 1
    105 #endif
    106 
    107 #include "lws_config.h"
    108 
    109 #if defined(WIN32) || defined(_WIN32)
    110 #ifndef WIN32_LEAN_AND_MEAN
    111 #define WIN32_LEAN_AND_MEAN
    112 #endif
    113 
    114 #include <winsock2.h>
    115 #include <ws2tcpip.h>
    116 #include <stddef.h>
    117 #include <basetsd.h>
    118 #ifndef _WIN32_WCE
    119 #include <stdint.h>
    120 #include <fcntl.h>
    121 #else
    122 #define _O_RDONLY 0x0000
    123 #define O_RDONLY _O_RDONLY
    124 #endif
    125 
    126 // Visual studio older than 2015 and WIN_CE has only _stricmp
    127 #if (defined(_MSC_VER) && _MSC_VER < 1900) || defined(_WIN32_WCE)
    128 #define strcasecmp _stricmp
    129 #else
    130 #define strcasecmp stricmp
    131 #endif
    132 #define getdtablesize() 30000
    133 
    134 #define LWS_INLINE __inline
    135 #define LWS_VISIBLE
    136 #define LWS_WARN_UNUSED_RESULT
    137 #define LWS_WARN_DEPRECATED
    138 
    139 #ifdef LWS_DLL
    140 #ifdef LWS_INTERNAL
    141 #define LWS_EXTERN extern __declspec(dllexport)
    142 #else
    143 #define LWS_EXTERN extern __declspec(dllimport)
    144 #endif
    145 #else
    146 #define LWS_EXTERN
    147 #endif
    148 
    149 #define LWS_INVALID_FILE INVALID_HANDLE_VALUE
    150 #define LWS_O_RDONLY _O_RDONLY
    151 
    152 #if !defined(_MSC_VER) || _MSC_VER < 1900 /* Visual Studio 2015 already defines this in <stdio.h> */
    153 #define snprintf _snprintf
    154 #endif
    155 
    156 #ifndef __func__
    157 #define __func__ __FUNCTION__
    158 #endif
    159 
    160 #else /* NOT WIN32 */
    161 #include <unistd.h>
    162 
    163 #if defined(__NetBSD__) || defined(__FreeBSD__)
    164 #include <netinet/in.h>
    165 #endif
    166 
    167 #define LWS_INLINE inline
    168 #define LWS_O_RDONLY O_RDONLY
    169 
    170 #ifndef MBED_OPERATORS
    171 #include <poll.h>
    172 #include <netdb.h>
    173 #define LWS_INVALID_FILE -1
    174 #else
    175 #define getdtablesize() (20)
    176 #define LWS_INVALID_FILE NULL
    177 #endif
    178 
    179 #if defined(__GNUC__)
    180 
    181 /* warn_unused_result attribute only supported by GCC 3.4 or later */
    182 #if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
    183 #define LWS_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
    184 #else
    185 #define LWS_WARN_UNUSED_RESULT
    186 #endif
    187 
    188 #define LWS_VISIBLE __attribute__((visibility("default")))
    189 #define LWS_WARN_DEPRECATED __attribute__ ((deprecated))
    190 #else
    191 #define LWS_VISIBLE
    192 #define LWS_WARN_UNUSED_RESULT
    193 #define LWS_WARN_DEPRECATED
    194 #endif
    195 
    196 #if defined(__ANDROID__)
    197 #include <unistd.h>
    198 #define getdtablesize() sysconf(_SC_OPEN_MAX)
    199 #endif
    200 
    201 #endif
    202 
    203 #ifdef LWS_USE_LIBEV
    204 #include <ev.h>
    205 #endif /* LWS_USE_LIBEV */
    206 #ifdef LWS_USE_LIBUV
    207 #include <uv.h>
    208 #endif /* LWS_USE_LIBUV */
    209 
    210 #ifndef LWS_EXTERN
    211 #define LWS_EXTERN extern
    212 #endif
    213 
    214 #ifdef _WIN32
    215 #define random rand
    216 #else
    217 #include <sys/time.h>
    218 #include <unistd.h>
    219 #endif
    220 
    221 #ifdef LWS_OPENSSL_SUPPORT
    222 
    223 #ifdef USE_WOLFSSL
    224 #ifdef USE_OLD_CYASSL
    225 #include <cyassl/openssl/ssl.h>
    226 #include <cyassl/error-ssl.h>
    227 #else
    228 #include <wolfssl/openssl/ssl.h>
    229 #include <wolfssl/error-ssl.h>
    230 #endif /* not USE_OLD_CYASSL */
    231 #else
    232 #if defined(LWS_USE_POLARSSL)
    233 #include <polarssl/ssl.h>
    235  x509_crt ca;
    236  x509_crt certificate;
    237  rsa_context key;
    238 };
    239 typedef struct lws_polarssl_context SSL_CTX;
    240 typedef ssl_context SSL;
    241 #else
    242 #if defined(LWS_USE_MBEDTLS)
    243 #include <mbedtls/ssl.h>
    244 #else
    245 #include <openssl/ssl.h>
    246 #include <openssl/err.h>
    247 #endif /* not USE_MBEDTLS */
    248 #endif /* not USE_POLARSSL */
    249 #endif /* not USE_WOLFSSL */
    250 #endif
    251 
    252 
    253 #define CONTEXT_PORT_NO_LISTEN -1
    254 
    265 
    267 enum lws_log_levels {
    268  LLL_ERR = 1 << 0,
    269  LLL_WARN = 1 << 1,
    270  LLL_NOTICE = 1 << 2,
    271  LLL_INFO = 1 << 3,
    272  LLL_DEBUG = 1 << 4,
    273  LLL_PARSER = 1 << 5,
    274  LLL_HEADER = 1 << 6,
    275  LLL_EXT = 1 << 7,
    276  LLL_CLIENT = 1 << 8,
    277  LLL_LATENCY = 1 << 9,
    278 
    279  LLL_COUNT = 10 /* set to count of valid flags */
    280 };
    281 
    282 LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...);
    283 LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl);
    293 LWS_VISIBLE LWS_EXTERN int
    294 lwsl_timestamp(int level, char *p, int len);
    295 
    296 /* notice, warn and log are always compiled in */
    297 #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__)
    298 #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__)
    299 #define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__)
    300 /*
    301  * weaker logging can be deselected at configure time using --disable-debug
    302  * that gets rid of the overhead of checking while keeping _warn and _err
    303  * active
    304  */
    305 #ifdef _DEBUG
    306 
    307 #define lwsl_info(...) _lws_log(LLL_INFO, __VA_ARGS__)
    308 #define lwsl_debug(...) _lws_log(LLL_DEBUG, __VA_ARGS__)
    309 #define lwsl_parser(...) _lws_log(LLL_PARSER, __VA_ARGS__)
    310 #define lwsl_header(...) _lws_log(LLL_HEADER, __VA_ARGS__)
    311 #define lwsl_ext(...) _lws_log(LLL_EXT, __VA_ARGS__)
    312 #define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__)
    313 #define lwsl_latency(...) _lws_log(LLL_LATENCY, __VA_ARGS__)
    314 
    320 LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len);
    321 
    322 #else /* no debug */
    323 
    324 #define lwsl_info(...) {}
    325 #define lwsl_debug(...) {}
    326 #define lwsl_parser(...) {}
    327 #define lwsl_header(...) {}
    328 #define lwsl_ext(...) {}
    329 #define lwsl_client(...) {}
    330 #define lwsl_latency(...) {}
    331 #define lwsl_hexdump(a, b)
    332 
    333 #endif
    334 
    345 LWS_VISIBLE LWS_EXTERN void
    346 lws_set_log_level(int level,
    347  void (*log_emit_function)(int level, const char *line));
    348 
    358 LWS_VISIBLE LWS_EXTERN void
    359 lwsl_emit_syslog(int level, const char *line);
    360 
    362 
    363 
    364 #include <stddef.h>
    365 
    366 #ifndef lws_container_of
    367 #define lws_container_of(P,T,M) ((T *)((char *)(P) - offsetof(T, M)))
    368 #endif
    369 
    370 
    371 struct lws;
    372 #ifndef ARRAY_SIZE
    373 #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
    374 #endif
    375 
    376 /* api change list for user code to test against */
    377 
    378 #define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_ARG
    379 
    380 /* the struct lws_protocols has the id field present */
    381 #define LWS_FEATURE_PROTOCOLS_HAS_ID_FIELD
    382 
    383 /* you can call lws_get_peer_write_allowance */
    384 #define LWS_FEATURE_PROTOCOLS_HAS_PEER_WRITE_ALLOWANCE
    385 
    386 /* extra parameter introduced in 917f43ab821 */
    387 #define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_LEN
    388 
    389 /* File operations stuff exists */
    390 #define LWS_FEATURE_FOPS
    391 
    392 
    393 #if defined(_WIN32)
    394 typedef SOCKET lws_sockfd_type;
    395 typedef HANDLE lws_filefd_type;
    396 #define lws_sockfd_valid(sfd) (!!sfd)
    397 struct lws_pollfd {
    398  lws_sockfd_type fd;
    399  SHORT events;
    400  SHORT revents;
    401 };
    402 #define LWS_POLLHUP (FD_CLOSE)
    403 #define LWS_POLLIN (FD_READ | FD_ACCEPT)
    404 #define LWS_POLLOUT (FD_WRITE)
    405 #else
    406 
    407 #if defined(MBED_OPERATORS)
    408 /* it's a class lws_conn * */
    409 typedef void * lws_sockfd_type;
    410 typedef void * lws_filefd_type;
    411 #define lws_sockfd_valid(sfd) (!!sfd)
    412 struct pollfd {
    413  lws_sockfd_type fd;
    414  short events;
    415  short revents;
    416 };
    417 #define POLLIN 0x0001
    418 #define POLLPRI 0x0002
    419 #define POLLOUT 0x0004
    420 #define POLLERR 0x0008
    421 #define POLLHUP 0x0010
    422 #define POLLNVAL 0x0020
    423 
    424 struct lws;
    425 
    426 void * mbed3_create_tcp_stream_socket(void);
    427 void mbed3_delete_tcp_stream_socket(void *sockfd);
    428 void mbed3_tcp_stream_bind(void *sock, int port, struct lws *);
    429 void mbed3_tcp_stream_accept(void *sock, struct lws *);
    430 #else
    431 typedef int lws_sockfd_type;
    432 typedef int lws_filefd_type;
    433 #define lws_sockfd_valid(sfd) (sfd >= 0)
    434 #endif
    435 
    436 #define lws_pollfd pollfd
    437 #define LWS_POLLHUP (POLLHUP|POLLERR)
    438 #define LWS_POLLIN (POLLIN)
    439 #define LWS_POLLOUT (POLLOUT)
    440 #endif
    441 
    444 struct lws_pollargs {
    445  lws_sockfd_type fd;
    446  int events;
    448 };
    449 
    450 struct lws_tokens;
    451 struct lws_token_limits;
    452 
    460 
    462 /*
    463  * NOTE: These public enums are part of the abi. If you want to add one,
    464  * add it at where specified so existing users are unaffected.
    465  */
    468  LWS_CLOSE_STATUS_NOSTATUS = 0,
    530  /****** add new things just above ---^ ******/
    531 
    532  LWS_CLOSE_STATUS_NOSTATUS_CONTEXT_DESTROY = 9999,
    533 };
    534 
    547 LWS_VISIBLE LWS_EXTERN void
    548 lws_close_reason(struct lws *wsi, enum lws_close_status status,
    549  unsigned char *buf, size_t len);
    550 
    552 
    553 struct lws;
    554 struct lws_context;
    555 /* needed even with extensions disabled for create context */
    556 struct lws_extension;
    557 
    569 
    571 
    572 /*
    573  * NOTE: These public enums are part of the abi. If you want to add one,
    574  * add it at where specified so existing users are unaffected.
    575  */
    819  /* external poll() management support */
    882  LWS_CALLBACK_WS_EXT_DEFAULTS = 39,
    885  LWS_CALLBACK_CGI = 40,
    887  LWS_CALLBACK_CGI_TERMINATED = 41,
    889  LWS_CALLBACK_CGI_STDIN_DATA = 42,
    891  LWS_CALLBACK_CGI_STDIN_COMPLETED = 43,
    893  LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44,
    895  LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45,
    897  LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46,
    899  LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47,
    901  LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48,
    903  LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49,
    905  LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50,
    907  LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51,
    909  LWS_CALLBACK_PROCESS_HTML = 52,
    911  LWS_CALLBACK_ADD_HEADERS = 53,
    913  LWS_CALLBACK_SESSION_INFO = 54,
    916  LWS_CALLBACK_GS_EVENT = 55,
    919  /****** add new things just above ---^ ******/
    920 
    923 };
    924 
    925 
    926 
    942 typedef int
    943 lws_callback_function(struct lws *wsi, enum lws_callback_reasons reason,
    944  void *user, void *in, size_t len);
    946 
    956 
    958 /*
    959  * NOTE: These public enums are part of the abi. If you want to add one,
    960  * add it at where specified so existing users are unaffected.
    961  */
    962 enum lws_extension_callback_reasons {
    963  LWS_EXT_CB_SERVER_CONTEXT_CONSTRUCT = 0,
    964  LWS_EXT_CB_CLIENT_CONTEXT_CONSTRUCT = 1,
    965  LWS_EXT_CB_SERVER_CONTEXT_DESTRUCT = 2,
    966  LWS_EXT_CB_CLIENT_CONTEXT_DESTRUCT = 3,
    967  LWS_EXT_CB_CONSTRUCT = 4,
    968  LWS_EXT_CB_CLIENT_CONSTRUCT = 5,
    969  LWS_EXT_CB_CHECK_OK_TO_REALLY_CLOSE = 6,
    970  LWS_EXT_CB_CHECK_OK_TO_PROPOSE_EXTENSION = 7,
    971  LWS_EXT_CB_DESTROY = 8,
    972  LWS_EXT_CB_DESTROY_ANY_WSI_CLOSING = 9,
    973  LWS_EXT_CB_ANY_WSI_ESTABLISHED = 10,
    974  LWS_EXT_CB_PACKET_RX_PREPARSE = 11,
    975  LWS_EXT_CB_PACKET_TX_PRESEND = 12,
    976  LWS_EXT_CB_PACKET_TX_DO_SEND = 13,
    977  LWS_EXT_CB_HANDSHAKE_REPLY_TX = 14,
    978  LWS_EXT_CB_FLUSH_PENDING_TX = 15,
    979  LWS_EXT_CB_EXTENDED_PAYLOAD_RX = 16,
    980  LWS_EXT_CB_CAN_PROXY_CLIENT_CONNECTION = 17,
    981  LWS_EXT_CB_1HZ = 18,
    982  LWS_EXT_CB_REQUEST_ON_WRITEABLE = 19,
    983  LWS_EXT_CB_IS_WRITEABLE = 20,
    984  LWS_EXT_CB_PAYLOAD_TX = 21,
    985  LWS_EXT_CB_PAYLOAD_RX = 22,
    986  LWS_EXT_CB_OPTION_DEFAULT = 23,
    987  LWS_EXT_CB_OPTION_SET = 24,
    988  LWS_EXT_CB_OPTION_CONFIRM = 25,
    989  LWS_EXT_CB_NAMED_OPTION_SET = 26,
    990 
    991  /****** add new things just above ---^ ******/
    992 };
    993 
    1000  /* Add new things just above here ---^
    1001  * This is part of the ABI, don't needlessly break compatibility */
    1002 };
    1003 
    1009  const char *name;
    1012  /* Add new things just above here ---^
    1013  * This is part of the ABI, don't needlessly break compatibility */
    1014 };
    1015 
    1018  const char *option_name;
    1020  const char *start;
    1021  int len;
    1022 };
    1023 
    1084 typedef int
    1085 lws_extension_callback_function(struct lws_context *context,
    1086  const struct lws_extension *ext, struct lws *wsi,
    1087  enum lws_extension_callback_reasons reason,
    1088  void *user, void *in, size_t len);
    1089 
    1092  const char *name;
    1094  const char *client_offer;
    1096  /* Add new things just above here ---^
    1097  * This is part of the ABI, don't needlessly break compatibility */
    1098 };
    1099 
    1108 LWS_VISIBLE LWS_EXTERN int
    1109 lws_set_extension_option(struct lws *wsi, const char *ext_name,
    1110  const char *opt_name, const char *opt_val);
    1111 
    1112 #ifndef LWS_NO_EXTENSIONS
    1113 /* lws_get_internal_extensions() - DEPRECATED
    1114  *
    1115  * \Deprecated There is no longer a set internal extensions table. The table is provided
    1116  * by user code along with application-specific settings. See the test
    1117  * client and server for how to do.
    1118  */
    1119 static LWS_INLINE LWS_WARN_DEPRECATED const struct lws_extension *
    1120 lws_get_internal_extensions() { return NULL; }
    1121 
    1132 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    1133 lws_ext_parse_options(const struct lws_extension *ext, struct lws *wsi,
    1134  void *ext_user, const struct lws_ext_options *opts,
    1135  const char *o, int len);
    1136 #endif
    1137 
    1150 LWS_EXTERN
    1152  struct lws_context *context, const struct lws_extension *ext,
    1153  struct lws *wsi, enum lws_extension_callback_reasons reason,
    1154  void *user, void *in, size_t len);
    1155 
    1156 /*
    1157  * The internal exts are part of the public abi
    1158  * If we add more extensions, publish the callback here ------v
    1159  */
    1161 
    1177 
    1182  const char *name;
    1203  unsigned int id;
    1210  void *user;
    1213  /* Add new things just above here ---^
    1214  * This is part of the ABI, don't needlessly break compatibility */
    1215 };
    1216 
    1217 struct lws_vhost;
    1218 
    1227 LWS_VISIBLE LWS_EXTERN const struct lws_protocols *
    1228 lws_vhost_name_to_protocol(struct lws_vhost *vh, const char *name);
    1229 
    1239 LWS_VISIBLE LWS_EXTERN const struct lws_protocols *
    1240 lws_get_protocol(struct lws *wsi);
    1241 
    1243 LWS_VISIBLE LWS_EXTERN const struct lws_protocols *
    1244 lws_protocol_get(struct lws *wsi) LWS_WARN_DEPRECATED;
    1245 
    1256 LWS_VISIBLE LWS_EXTERN void *
    1257 lws_protocol_vh_priv_zalloc(struct lws_vhost *vhost, const struct lws_protocols *prot,
    1258  int size);
    1259 
    1269 LWS_VISIBLE LWS_EXTERN void *
    1270 lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *prot);
    1271 
    1280 LWS_VISIBLE LWS_EXTERN int
    1281 lws_finalize_startup(struct lws_context *context);
    1282 
    1283 #ifdef LWS_WITH_PLUGINS
    1284 
    1285 /* PLUGINS implies LIBUV */
    1286 
    1287 #define LWS_PLUGIN_API_MAGIC 180
    1288 
    1291  unsigned int api_magic;
    1292  const struct lws_protocols *protocols;
    1294  const struct lws_extension *extensions;
    1296 };
    1297 
    1298 typedef int (*lws_plugin_init_func)(struct lws_context *,
    1299  struct lws_plugin_capability *);
    1300 typedef int (*lws_plugin_destroy_func)(struct lws_context *);
    1301 
    1303 struct lws_plugin {
    1304  struct lws_plugin *list;
    1305 #if (UV_VERSION_MAJOR > 0)
    1306  uv_lib_t lib;
    1307 #else
    1308  void *l;
    1309 #endif
    1310  char name[64];
    1312 };
    1313 
    1314 #endif
    1315 
    1317 
    1318 
    1327 
    1329 #define LWSGS_EMAIL_CONTENT_SIZE 16384
    1330 
    1332 /* SHA-1 binary and hexified versions */
    1334 typedef struct { unsigned char bin[20]; } lwsgw_hash_bin;
    1336 typedef struct { char id[41]; } lwsgw_hash;
    1337 
    1344 };
    1345 
    1348  char username[32];
    1349  char email[100];
    1350  char ip[72];
    1351  unsigned int mask;
    1353  char session[42];
    1354 };
    1355 
    1360 };
    1361 
    1364  enum lws_gs_event event;
    1365  const char *username;
    1366  const char *email;
    1367 };
    1368 
    1370 
    1371 
    1385 
    1387 /*
    1388  * NOTE: These public enums are part of the abi. If you want to add one,
    1389  * add it at where specified so existing users are unaffected.
    1390  */
    1391 
    1395  (1 << 12),
    1402  (1 << 12),
    1418  (1 << 12),
    1423  (1 << 12),
    1441  /****** add new things just above ---^ ******/
    1442 };
    1443 
    1444 #define lws_check_opt(c, f) (((c) & (f)) == (f))
    1445 
    1456  int port;
    1461  const char *iface;
    1468  const struct lws_protocols *protocols;
    1472  const struct lws_extension *extensions;
    1480  const char *ssl_cert_filepath;
    1490  const char *ssl_ca_filepath;
    1492  const char *ssl_cipher_list;
    1496  const char *http_proxy_address;
    1499  unsigned int http_proxy_port;
    1501  int gid;
    1503  int uid;
    1505  unsigned int options;
    1507  void *user;
    1510  int ka_time;
    1520 #ifdef LWS_OPENSSL_SUPPORT
    1526 #else /* maintain structure layout either way */
    1528 #endif
    1529 
    1540  unsigned int count_threads;
    1542  unsigned int fd_limit_per_thread;
    1546  unsigned int timeout_secs;
    1551  const char *ecdh_curve;
    1553  const char *vhost_name;
    1557  const char * const *plugin_dirs;
    1566  const char *log_filepath;
    1569  const struct lws_http_mount *mounts;
    1571  const char *server_string;
    1574  unsigned int pt_serv_buf_size;
    1590  /* Add new things just above here ---^
    1591  * This is part of the ABI, don't needlessly break compatibility
    1592  *
    1593  * The below is to ensure later library versions with new
    1594  * members added above will see 0 (default) even if the app
    1595  * was not built against the newer headers.
    1596  */
    1597 
    1598  void *_unused[8];
    1599 };
    1600 
    1635 LWS_VISIBLE LWS_EXTERN struct lws_context *
    1637 
    1646 LWS_VISIBLE LWS_EXTERN void
    1647 lws_context_destroy(struct lws_context *context);
    1648 
    1666 LWS_VISIBLE LWS_EXTERN int
    1667 lws_set_proxy(struct lws_vhost *vhost, const char *proxy);
    1668 
    1669 
    1670 struct lws_vhost;
    1671 
    1681 LWS_EXTERN LWS_VISIBLE struct lws_vhost *
    1682 lws_create_vhost(struct lws_context *context,
    1683  struct lws_context_creation_info *info);
    1684 
    1699 LWS_VISIBLE LWS_EXTERN int
    1700 lwsws_get_config_globals(struct lws_context_creation_info *info, const char *d,
    1701  char **config_strings, int *len);
    1702 
    1718 LWS_VISIBLE LWS_EXTERN int
    1719 lwsws_get_config_vhosts(struct lws_context *context,
    1720  struct lws_context_creation_info *info, const char *d,
    1721  char **config_strings, int *len);
    1722 
    1724 LWS_VISIBLE LWS_EXTERN struct lws_vhost *
    1725 lws_vhost_get(struct lws *wsi) LWS_WARN_DEPRECATED;
    1726 
    1732 LWS_VISIBLE LWS_EXTERN struct lws_vhost *
    1733 lws_get_vhost(struct lws *wsi);
    1734 
    1742 LWS_VISIBLE LWS_EXTERN int
    1743 lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len);
    1744 
    1752 LWS_VISIBLE LWS_EXTERN int
    1753 lws_json_dump_context(const struct lws_context *context, char *buf, int len);
    1754 
    1764 LWS_VISIBLE LWS_EXTERN void *
    1765 lws_context_user(struct lws_context *context);
    1766 
    1772 
    1782  const char *name;
    1783  const char *value;
    1784 };
    1785 
    1798 };
    1799 
    1807  const char *mountpoint;
    1809  const char *origin;
    1811  const char *def;
    1813  const char *protocol;
    1829  unsigned int auth_mask;
    1832  unsigned int cache_reusable:1;
    1833  unsigned int cache_revalidate:1;
    1834  unsigned int cache_intermediaries:1;
    1836  unsigned char origin_protocol;
    1837  unsigned char mountpoint_len;
    1838 };
    1841 
    1847 
    1855  LCCSCF_USE_SSL = (1 << 0),
    1856  LCCSCF_ALLOW_SELFSIGNED = (1 << 1),
    1857  LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK = (1 << 2)
    1858 };
    1859 
    1864  struct lws_context *context;
    1866  const char *address;
    1868  int port;
    1872  const char *path;
    1874  const char *host;
    1876  const char *origin;
    1878  const char *protocol;
    1882  void *userdata;
    1886  const char *method;
    1889  struct lws *parent_wsi;
    1893  const char *uri_replace_from;
    1896  const char *uri_replace_to;
    1898  struct lws_vhost *vhost;
    1900  struct lws **pwsi;
    1912  /* Add new things just above here ---^
    1913  * This is part of the ABI, don't needlessly break compatibility
    1914  *
    1915  * The below is to ensure later library versions with new
    1916  * members added above will see 0 (default) even if the app
    1917  * was not built against the newer headers.
    1918  */
    1919 
    1920  void *_unused[4];
    1921 };
    1922 
    1930 LWS_VISIBLE LWS_EXTERN struct lws *
    1932 
    1953 /* deprecated, use lws_client_connect_via_info() */
    1954 LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT
    1955 lws_client_connect(struct lws_context *clients, const char *address,
    1956  int port, int ssl_connection, const char *path,
    1957  const char *host, const char *origin, const char *protocol,
    1958  int ietf_version_or_minus_one) LWS_WARN_DEPRECATED;
    1959 /* deprecated, use lws_client_connect_via_info() */
    1980 LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT
    1981 lws_client_connect_extended(struct lws_context *clients, const char *address,
    1982  int port, int ssl_connection, const char *path,
    1983  const char *host, const char *origin,
    1984  const char *protocol, int ietf_version_or_minus_one,
    1985  void *userdata) LWS_WARN_DEPRECATED;
    1986 
    2012 LWS_VISIBLE LWS_EXTERN int
    2014  struct lws_vhost *vhost);
    2015 
    2016 LWS_VISIBLE LWS_EXTERN int
    2017 lws_http_client_read(struct lws *wsi, char **buf, int *len);
    2019 
    2027 
    2060 LWS_VISIBLE LWS_EXTERN int
    2061 lws_service(struct lws_context *context, int timeout_ms);
    2062 
    2074 LWS_VISIBLE LWS_EXTERN int
    2075 lws_service_tsi(struct lws_context *context, int timeout_ms, int tsi);
    2076 
    2092 LWS_VISIBLE LWS_EXTERN void
    2093 lws_cancel_service_pt(struct lws *wsi);
    2094 
    2106 LWS_VISIBLE LWS_EXTERN void
    2107 lws_cancel_service(struct lws_context *context);
    2108 
    2131 LWS_VISIBLE LWS_EXTERN int
    2132 lws_service_fd(struct lws_context *context, struct lws_pollfd *pollfd);
    2133 
    2143 LWS_VISIBLE LWS_EXTERN int
    2144 lws_service_fd_tsi(struct lws_context *context, struct lws_pollfd *pollfd,
    2145  int tsi);
    2146 
    2148 
    2154 
    2161 
    2173 LWS_VISIBLE LWS_EXTERN const char *
    2174 lws_get_mimetype(const char *file, const struct lws_http_mount *m);
    2175 
    2194 LWS_VISIBLE LWS_EXTERN int
    2195 lws_serve_http_file(struct lws *wsi, const char *file, const char *content_type,
    2196  const char *other_headers, int other_headers_len);
    2197 LWS_VISIBLE LWS_EXTERN int
    2198 lws_serve_http_file_fragment(struct lws *wsi);
    2200 
    2211 
    2212 enum http_status {
    2213  HTTP_STATUS_OK = 200,
    2214  HTTP_STATUS_NO_CONTENT = 204,
    2215 
    2216  HTTP_STATUS_MOVED_PERMANENTLY = 301,
    2217  HTTP_STATUS_FOUND = 302,
    2218  HTTP_STATUS_SEE_OTHER = 303,
    2219 
    2220  HTTP_STATUS_BAD_REQUEST = 400,
    2221  HTTP_STATUS_UNAUTHORIZED,
    2222  HTTP_STATUS_PAYMENT_REQUIRED,
    2223  HTTP_STATUS_FORBIDDEN,
    2224  HTTP_STATUS_NOT_FOUND,
    2225  HTTP_STATUS_METHOD_NOT_ALLOWED,
    2226  HTTP_STATUS_NOT_ACCEPTABLE,
    2227  HTTP_STATUS_PROXY_AUTH_REQUIRED,
    2228  HTTP_STATUS_REQUEST_TIMEOUT,
    2229  HTTP_STATUS_CONFLICT,
    2230  HTTP_STATUS_GONE,
    2231  HTTP_STATUS_LENGTH_REQUIRED,
    2232  HTTP_STATUS_PRECONDITION_FAILED,
    2233  HTTP_STATUS_REQ_ENTITY_TOO_LARGE,
    2234  HTTP_STATUS_REQ_URI_TOO_LONG,
    2235  HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE,
    2236  HTTP_STATUS_REQ_RANGE_NOT_SATISFIABLE,
    2237  HTTP_STATUS_EXPECTATION_FAILED,
    2238 
    2239  HTTP_STATUS_INTERNAL_SERVER_ERROR = 500,
    2240  HTTP_STATUS_NOT_IMPLEMENTED,
    2241  HTTP_STATUS_BAD_GATEWAY,
    2242  HTTP_STATUS_SERVICE_UNAVAILABLE,
    2243  HTTP_STATUS_GATEWAY_TIMEOUT,
    2244  HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED,
    2245 };
    2246 
    2248  char *p;
    2249  int len;
    2250  int max_len;
    2251  int final;
    2252 };
    2253 
    2254 typedef const char *(*lws_process_html_state_cb)(void *data, int index);
    2255 
    2257  char *start;
    2258  char swallow[16];
    2259  int pos;
    2260  void *data;
    2261  const char * const *vars;
    2264  lws_process_html_state_cb replace;
    2265 };
    2266 
    2271 LWS_VISIBLE LWS_EXTERN int
    2273  struct lws_process_html_state *s);
    2275 
    2308 
    2316 struct lws_tokens {
    2317  char *token;
    2319 };
    2320 
    2321 /* enum lws_token_indexes
    2322  * these have to be kept in sync with lextable.h / minilex.c
    2323  *
    2324  * NOTE: These public enums are part of the abi. If you want to add one,
    2325  * add it at where specified so existing users are unaffected.
    2326  */
    2327 enum lws_token_indexes {
    2328  WSI_TOKEN_GET_URI = 0,
    2329  WSI_TOKEN_POST_URI = 1,
    2330  WSI_TOKEN_OPTIONS_URI = 2,
    2331  WSI_TOKEN_HOST = 3,
    2332  WSI_TOKEN_CONNECTION = 4,
    2333  WSI_TOKEN_UPGRADE = 5,
    2334  WSI_TOKEN_ORIGIN = 6,
    2335  WSI_TOKEN_DRAFT = 7,
    2336  WSI_TOKEN_CHALLENGE = 8,
    2337  WSI_TOKEN_EXTENSIONS = 9,
    2338  WSI_TOKEN_KEY1 = 10,
    2339  WSI_TOKEN_KEY2 = 11,
    2340  WSI_TOKEN_PROTOCOL = 12,
    2341  WSI_TOKEN_ACCEPT = 13,
    2342  WSI_TOKEN_NONCE = 14,
    2343  WSI_TOKEN_HTTP = 15,
    2344  WSI_TOKEN_HTTP2_SETTINGS = 16,
    2345  WSI_TOKEN_HTTP_ACCEPT = 17,
    2346  WSI_TOKEN_HTTP_AC_REQUEST_HEADERS = 18,
    2347  WSI_TOKEN_HTTP_IF_MODIFIED_SINCE = 19,
    2348  WSI_TOKEN_HTTP_IF_NONE_MATCH = 20,
    2349  WSI_TOKEN_HTTP_ACCEPT_ENCODING = 21,
    2350  WSI_TOKEN_HTTP_ACCEPT_LANGUAGE = 22,
    2351  WSI_TOKEN_HTTP_PRAGMA = 23,
    2352  WSI_TOKEN_HTTP_CACHE_CONTROL = 24,
    2353  WSI_TOKEN_HTTP_AUTHORIZATION = 25,
    2354  WSI_TOKEN_HTTP_COOKIE = 26,
    2355  WSI_TOKEN_HTTP_CONTENT_LENGTH = 27,
    2356  WSI_TOKEN_HTTP_CONTENT_TYPE = 28,
    2357  WSI_TOKEN_HTTP_DATE = 29,
    2358  WSI_TOKEN_HTTP_RANGE = 30,
    2359  WSI_TOKEN_HTTP_REFERER = 31,
    2360  WSI_TOKEN_KEY = 32,
    2361  WSI_TOKEN_VERSION = 33,
    2362  WSI_TOKEN_SWORIGIN = 34,
    2363 
    2364  WSI_TOKEN_HTTP_COLON_AUTHORITY = 35,
    2365  WSI_TOKEN_HTTP_COLON_METHOD = 36,
    2366  WSI_TOKEN_HTTP_COLON_PATH = 37,
    2367  WSI_TOKEN_HTTP_COLON_SCHEME = 38,
    2368  WSI_TOKEN_HTTP_COLON_STATUS = 39,
    2369 
    2370  WSI_TOKEN_HTTP_ACCEPT_CHARSET = 40,
    2371  WSI_TOKEN_HTTP_ACCEPT_RANGES = 41,
    2372  WSI_TOKEN_HTTP_ACCESS_CONTROL_ALLOW_ORIGIN = 42,
    2373  WSI_TOKEN_HTTP_AGE = 43,
    2374  WSI_TOKEN_HTTP_ALLOW = 44,
    2375  WSI_TOKEN_HTTP_CONTENT_DISPOSITION = 45,
    2376  WSI_TOKEN_HTTP_CONTENT_ENCODING = 46,
    2377  WSI_TOKEN_HTTP_CONTENT_LANGUAGE = 47,
    2378  WSI_TOKEN_HTTP_CONTENT_LOCATION = 48,
    2379  WSI_TOKEN_HTTP_CONTENT_RANGE = 49,
    2380  WSI_TOKEN_HTTP_ETAG = 50,
    2381  WSI_TOKEN_HTTP_EXPECT = 51,
    2382  WSI_TOKEN_HTTP_EXPIRES = 52,
    2383  WSI_TOKEN_HTTP_FROM = 53,
    2384  WSI_TOKEN_HTTP_IF_MATCH = 54,
    2385  WSI_TOKEN_HTTP_IF_RANGE = 55,
    2386  WSI_TOKEN_HTTP_IF_UNMODIFIED_SINCE = 56,
    2387  WSI_TOKEN_HTTP_LAST_MODIFIED = 57,
    2388  WSI_TOKEN_HTTP_LINK = 58,
    2389  WSI_TOKEN_HTTP_LOCATION = 59,
    2390  WSI_TOKEN_HTTP_MAX_FORWARDS = 60,
    2391  WSI_TOKEN_HTTP_PROXY_AUTHENTICATE = 61,
    2392  WSI_TOKEN_HTTP_PROXY_AUTHORIZATION = 62,
    2393  WSI_TOKEN_HTTP_REFRESH = 63,
    2394  WSI_TOKEN_HTTP_RETRY_AFTER = 64,
    2395  WSI_TOKEN_HTTP_SERVER = 65,
    2396  WSI_TOKEN_HTTP_SET_COOKIE = 66,
    2397  WSI_TOKEN_HTTP_STRICT_TRANSPORT_SECURITY = 67,
    2398  WSI_TOKEN_HTTP_TRANSFER_ENCODING = 68,
    2399  WSI_TOKEN_HTTP_USER_AGENT = 69,
    2400  WSI_TOKEN_HTTP_VARY = 70,
    2401  WSI_TOKEN_HTTP_VIA = 71,
    2402  WSI_TOKEN_HTTP_WWW_AUTHENTICATE = 72,
    2403 
    2404  WSI_TOKEN_PATCH_URI = 73,
    2405  WSI_TOKEN_PUT_URI = 74,
    2406  WSI_TOKEN_DELETE_URI = 75,
    2407 
    2408  WSI_TOKEN_HTTP_URI_ARGS = 76,
    2409  WSI_TOKEN_PROXY = 77,
    2410  WSI_TOKEN_HTTP_X_REAL_IP = 78,
    2411  WSI_TOKEN_HTTP1_0 = 79,
    2412 
    2413  /****** add new things just above ---^ ******/
    2414 
    2415  /* use token storage to stash these internally, not for
    2416  * user use */
    2417 
    2418  _WSI_TOKEN_CLIENT_SENT_PROTOCOLS,
    2419  _WSI_TOKEN_CLIENT_PEER_ADDRESS,
    2420  _WSI_TOKEN_CLIENT_URI,
    2421  _WSI_TOKEN_CLIENT_HOST,
    2422  _WSI_TOKEN_CLIENT_ORIGIN,
    2423  _WSI_TOKEN_CLIENT_METHOD,
    2424 
    2425  /* always last real token index*/
    2426  WSI_TOKEN_COUNT,
    2427 
    2428  /* parser state additions, no storage associated */
    2429  WSI_TOKEN_NAME_PART,
    2430  WSI_TOKEN_SKIPPING,
    2431  WSI_TOKEN_SKIPPING_SAW_CR,
    2432  WSI_PARSING_COMPLETE,
    2433  WSI_INIT_TOKEN_MUXURL,
    2434 };
    2435 
    2437  unsigned short token_limit[WSI_TOKEN_COUNT];
    2438 };
    2439 
    2445 LWS_VISIBLE LWS_EXTERN const unsigned char *
    2446 lws_token_to_string(enum lws_token_indexes token);
    2447 
    2448 
    2457 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2458 lws_hdr_total_length(struct lws *wsi, enum lws_token_indexes h);
    2459 
    2469 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2470 lws_hdr_fragment_length(struct lws *wsi, enum lws_token_indexes h, int frag_idx);
    2471 
    2485 LWS_VISIBLE LWS_EXTERN int
    2486 lws_hdr_copy(struct lws *wsi, char *dest, int len, enum lws_token_indexes h);
    2487 
    2505 LWS_VISIBLE LWS_EXTERN int
    2506 lws_hdr_copy_fragment(struct lws *wsi, char *dest, int len,
    2507  enum lws_token_indexes h, int frag_idx);
    2508 
    2519 LWS_VISIBLE LWS_EXTERN const char *
    2520 lws_get_urlarg_by_name(struct lws *wsi, const char *name, char *buf, int len);
    2522 
    2537 
    2548 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2549 lws_add_http_header_status(struct lws *wsi,
    2550  unsigned int code, unsigned char **p,
    2551  unsigned char *end);
    2564 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2565 lws_add_http_header_by_name(struct lws *wsi, const unsigned char *name,
    2566  const unsigned char *value, int length,
    2567  unsigned char **p, unsigned char *end);
    2581 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2582 lws_add_http_header_by_token(struct lws *wsi, enum lws_token_indexes token,
    2583  const unsigned char *value, int length,
    2584  unsigned char **p, unsigned char *end);
    2595 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2596 lws_add_http_header_content_length(struct lws *wsi,
    2597  unsigned long content_length,
    2598  unsigned char **p, unsigned char *end);
    2608 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2609 lws_finalize_http_header(struct lws *wsi, unsigned char **p,
    2610  unsigned char *end);
    2612 
    2631 
    2641 };
    2642 
    2656 typedef int (*lws_spa_fileupload_cb)(void *data, const char *name,
    2657  const char *filename, char *buf, int len,
    2658  enum lws_spa_fileupload_states state);
    2659 
    2662 struct lws_spa;
    2663 
    2682 LWS_VISIBLE LWS_EXTERN struct lws_spa *
    2683 lws_spa_create(struct lws *wsi, const char * const *param_names,
    2684  int count_params, int max_storage, lws_spa_fileupload_cb opt_cb,
    2685  void *opt_data);
    2686 
    2694 LWS_VISIBLE LWS_EXTERN int
    2695 lws_spa_process(struct lws_spa *spa, const char *in, int len);
    2696 
    2702 LWS_VISIBLE LWS_EXTERN int
    2703 lws_spa_finalize(struct lws_spa *spa);
    2704 
    2711 LWS_VISIBLE LWS_EXTERN int
    2712 lws_spa_get_length(struct lws_spa *spa, int n);
    2713 
    2719 LWS_VISIBLE LWS_EXTERN const char *
    2720 lws_spa_get_string(struct lws_spa *spa, int n);
    2721 
    2727 LWS_VISIBLE LWS_EXTERN int
    2728 lws_spa_destroy(struct lws_spa *spa);
    2730 
    2741 
    2752 LWS_VISIBLE LWS_EXTERN const char *
    2753 lws_urlencode(char *escaped, const char *string, int len);
    2754 
    2755 /*
    2756  * URLDECODE 1 / 2
    2757  *
    2758  * This simple urldecode only operates until the first '\0' and requires the
    2759  * data to exist all at once
    2760  */
    2773 LWS_VISIBLE LWS_EXTERN int
    2774 lws_urldecode(char *string, const char *escaped, int len);
    2776 
    2785 LWS_VISIBLE LWS_EXTERN int
    2786 lws_return_http_status(struct lws *wsi, unsigned int code,
    2787  const char *html_body);
    2788 
    2799 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2800 lws_http_redirect(struct lws *wsi, int code, const unsigned char *loc, int len,
    2801  unsigned char **p, unsigned char *end);
    2802 
    2811 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2812 lws_http_transaction_completed(struct lws *wsi);
    2814 
    2822 
    2833 LWS_VISIBLE LWS_EXTERN const char *
    2834 lws_sql_purify(char *escaped, const char *string, int len);
    2835 
    2846 LWS_VISIBLE LWS_EXTERN const char *
    2847 lws_json_purify(char *escaped, const char *string, int len);
    2849 
    2856 
    2858 #ifdef LWS_USE_LIBEV
    2859 typedef void (lws_ev_signal_cb_t)(EV_P_ struct ev_signal *w, int revents);
    2860 
    2861 LWS_VISIBLE LWS_EXTERN int
    2862 lws_ev_sigint_cfg(struct lws_context *context, int use_ev_sigint,
    2863  lws_ev_signal_cb_t *cb);
    2864 
    2865 LWS_VISIBLE LWS_EXTERN int
    2866 lws_ev_initloop(struct lws_context *context, struct ev_loop *loop, int tsi);
    2867 
    2868 LWS_VISIBLE LWS_EXTERN void
    2869 lws_ev_sigint_cb(struct ev_loop *loop, struct ev_signal *watcher, int revents);
    2870 #endif /* LWS_USE_LIBEV */
    2871 
    2873 
    2880 #ifdef LWS_USE_LIBUV
    2882 LWS_VISIBLE LWS_EXTERN int
    2883 lws_uv_sigint_cfg(struct lws_context *context, int use_uv_sigint,
    2884  uv_signal_cb cb);
    2885 
    2886 LWS_VISIBLE LWS_EXTERN void
    2887 lws_libuv_run(const struct lws_context *context, int tsi);
    2888 
    2889 LWS_VISIBLE LWS_EXTERN void
    2890 lws_libuv_stop(struct lws_context *context);
    2891 
    2892 LWS_VISIBLE LWS_EXTERN int
    2893 lws_uv_initloop(struct lws_context *context, uv_loop_t *loop, int tsi);
    2894 
    2895 LWS_VISIBLE LWS_EXTERN uv_loop_t *
    2896 lws_uv_getloop(struct lws_context *context, int tsi);
    2897 
    2898 LWS_VISIBLE LWS_EXTERN void
    2899 lws_uv_sigint_cb(uv_signal_t *watcher, int signum);
    2900 #endif /* LWS_USE_LIBUV */
    2901 
    2908 
    2909 /*
    2910  * NOTE: These public enums are part of the abi. If you want to add one,
    2911  * add it at where specified so existing users are unaffected.
    2912  */
    2913 enum pending_timeout {
    2914  NO_PENDING_TIMEOUT = 0,
    2915  PENDING_TIMEOUT_AWAITING_PROXY_RESPONSE = 1,
    2916  PENDING_TIMEOUT_AWAITING_CONNECT_RESPONSE = 2,
    2917  PENDING_TIMEOUT_ESTABLISH_WITH_SERVER = 3,
    2918  PENDING_TIMEOUT_AWAITING_SERVER_RESPONSE = 4,
    2919  PENDING_TIMEOUT_AWAITING_PING = 5,
    2920  PENDING_TIMEOUT_CLOSE_ACK = 6,
    2921  PENDING_TIMEOUT_AWAITING_EXTENSION_CONNECT_RESPONSE = 7,
    2922  PENDING_TIMEOUT_SENT_CLIENT_HANDSHAKE = 8,
    2923  PENDING_TIMEOUT_SSL_ACCEPT = 9,
    2924  PENDING_TIMEOUT_HTTP_CONTENT = 10,
    2925  PENDING_TIMEOUT_AWAITING_CLIENT_HS_SEND = 11,
    2926  PENDING_FLUSH_STORED_SEND_BEFORE_CLOSE = 12,
    2927  PENDING_TIMEOUT_SHUTDOWN_FLUSH = 13,
    2928  PENDING_TIMEOUT_CGI = 14,
    2929  PENDING_TIMEOUT_HTTP_KEEPALIVE_IDLE = 15,
    2930 
    2931  /****** add new things just above ---^ ******/
    2932 };
    2933 
    2943 LWS_VISIBLE LWS_EXTERN void
    2944 lws_set_timeout(struct lws *wsi, enum pending_timeout reason, int secs);
    2946 
    2952 #if !defined(LWS_SIZEOFPTR)
    2953 #define LWS_SIZEOFPTR (sizeof (void *))
    2954 #endif
    2955 #if !defined(u_int64_t)
    2956 #define u_int64_t unsigned long long
    2957 #endif
    2958 
    2959 #if defined(__x86_64__)
    2960 #define _LWS_PAD_SIZE 16 /* Intel recommended for best performance */
    2961 #else
    2962 #define _LWS_PAD_SIZE LWS_SIZEOFPTR /* Size of a pointer on the target arch */
    2963 #endif
    2964 #define _LWS_PAD(n) (((n) % _LWS_PAD_SIZE) ? \
    2965  ((n) + (_LWS_PAD_SIZE - ((n) % _LWS_PAD_SIZE))) : (n))
    2966 #define LWS_PRE _LWS_PAD(4 + 10)
    2967 /* used prior to 1.7 and retained for backward compatibility */
    2968 #define LWS_SEND_BUFFER_PRE_PADDING LWS_PRE
    2969 #define LWS_SEND_BUFFER_POST_PADDING 0
    2970 
    2971 /*
    2972  * NOTE: These public enums are part of the abi. If you want to add one,
    2973  * add it at where specified so existing users are unaffected.
    2974  */
    2989  /* LWS_WRITE_CLOSE is handled by lws_close_reason() */
    2990  LWS_WRITE_PING = 5,
    2991  LWS_WRITE_PONG = 6,
    2992 
    2993  /* Same as write_http but we know this write ends the transaction */
    2994  LWS_WRITE_HTTP_FINAL = 7,
    2995 
    2996  /* HTTP2 */
    2997 
    3005  /****** add new things just above ---^ ******/
    3006 
    3007  /* flags */
    3008 
    3016 };
    3017 
    3018 
    3090 LWS_VISIBLE LWS_EXTERN int
    3091 lws_write(struct lws *wsi, unsigned char *buf, size_t len,
    3092  enum lws_write_protocol protocol);
    3093 
    3094 /* helper for case where buffer may be const */
    3095 #define lws_write_http(wsi, buf, len) \
    3096  lws_write(wsi, (unsigned char *)(buf), len, LWS_WRITE_HTTP)
    3097 
    3099 
    3118 
    3131 LWS_VISIBLE LWS_EXTERN int
    3132 lws_callback_on_writable(struct lws *wsi);
    3133 
    3147 LWS_VISIBLE LWS_EXTERN int
    3148 lws_callback_on_writable_all_protocol(const struct lws_context *context,
    3149  const struct lws_protocols *protocol);
    3150 
    3164 LWS_VISIBLE LWS_EXTERN int
    3165 lws_callback_on_writable_all_protocol_vhost(const struct lws_vhost *vhost,
    3166  const struct lws_protocols *protocol);
    3167 
    3180 LWS_VISIBLE LWS_EXTERN int
    3181 lws_callback_all_protocol(struct lws_context *context,
    3182  const struct lws_protocols *protocol, int reason);
    3183 
    3196 LWS_VISIBLE LWS_EXTERN int
    3197 lws_callback_all_protocol_vhost(struct lws_vhost *vh,
    3198  const struct lws_protocols *protocol, int reason);
    3199 
    3213 LWS_VISIBLE LWS_EXTERN int
    3214 lws_callback_vhost_protocols(struct lws *wsi, int reason, void *in, int len);
    3215 
    3223 LWS_VISIBLE LWS_EXTERN int
    3224 lws_get_socket_fd(struct lws *wsi);
    3225 
    3247 LWS_VISIBLE LWS_EXTERN size_t
    3248 lws_get_peer_write_allowance(struct lws *wsi);
    3250 
    3261 LWS_VISIBLE LWS_EXTERN int
    3262 lws_rx_flow_control(struct lws *wsi, int enable);
    3263 
    3273 LWS_VISIBLE LWS_EXTERN void
    3274 lws_rx_flow_allow_all_protocol(const struct lws_context *context,
    3275  const struct lws_protocols *protocol);
    3276 
    3293 LWS_VISIBLE LWS_EXTERN size_t
    3294 lws_remaining_packet_payload(struct lws *wsi);
    3295 
    3296 
    3305 
    3318 LWS_VISIBLE LWS_EXTERN struct lws *
    3319 lws_adopt_socket(struct lws_context *context, lws_sockfd_type accept_fd);
    3342 LWS_VISIBLE LWS_EXTERN struct lws *
    3343 lws_adopt_socket_readbuf(struct lws_context *context, lws_sockfd_type accept_fd,
    3344  const char *readbuf, size_t len);
    3346 
    3352 
    3363 LWS_VISIBLE LWS_EXTERN const char * LWS_WARN_UNUSED_RESULT
    3364 lws_canonical_hostname(struct lws_context *context);
    3365 
    3380 LWS_VISIBLE LWS_EXTERN void
    3381 lws_get_peer_addresses(struct lws *wsi, lws_sockfd_type fd, char *name,
    3382  int name_len, char *rip, int rip_len);
    3383 
    3394 LWS_VISIBLE LWS_EXTERN const char *
    3395 lws_get_peer_simple(struct lws *wsi, char *name, int namelen);
    3396 
    3408 LWS_VISIBLE LWS_EXTERN int
    3409 lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr,
    3410  size_t addrlen);
    3412 
    3418 
    3431 LWS_VISIBLE LWS_EXTERN int
    3432 lws_get_random(struct lws_context *context, void *buf, int len);
    3440 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    3441 lws_daemonize(const char *_lock_path);
    3447 LWS_VISIBLE LWS_EXTERN const char * LWS_WARN_UNUSED_RESULT
    3449 
    3456 LWS_VISIBLE LWS_EXTERN void *
    3457 lws_wsi_user(struct lws *wsi);
    3458 
    3470 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    3471 lws_parse_uri(char *p, const char **prot, const char **ads, int *port,
    3472  const char **path);
    3473 
    3477 LWS_VISIBLE LWS_EXTERN unsigned long
    3478 lws_now_secs(void);
    3479 
    3489 LWS_VISIBLE LWS_EXTERN struct lws_context * LWS_WARN_UNUSED_RESULT
    3490 lws_get_context(const struct lws *wsi);
    3491 
    3501 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    3502 lws_get_count_threads(struct lws_context *context);
    3503 
    3511 LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT
    3512 lws_get_parent(const struct lws *wsi);
    3513 
    3520 LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT
    3521 lws_get_child(const struct lws *wsi);
    3522 
    3523 
    3524 /*
    3525  * \deprecated DEPRECATED Note: this is not normally needed as a user api.
    3526  * It's provided in case it is
    3527  * useful when integrating with other app poll loop service code.
    3528  */
    3529 LWS_VISIBLE LWS_EXTERN int
    3530 lws_read(struct lws *wsi, unsigned char *buf, size_t len);
    3531 
    3539 LWS_VISIBLE LWS_EXTERN void
    3540 lws_set_allocator(void *(*realloc)(void *ptr, size_t size));
    3542 
    3548 
    3555 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    3556 lws_send_pipe_choked(struct lws *wsi);
    3557 
    3562 LWS_VISIBLE LWS_EXTERN int
    3563 lws_is_final_fragment(struct lws *wsi);
    3564 
    3569 LWS_VISIBLE LWS_EXTERN unsigned char
    3570 lws_get_reserved_bits(struct lws *wsi);
    3571 
    3588 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    3589 lws_partial_buffered(struct lws *wsi);
    3590 
    3600 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    3601 lws_frame_is_binary(struct lws *wsi);
    3602 
    3611 LWS_VISIBLE LWS_EXTERN int
    3612 lws_is_ssl(struct lws *wsi);
    3617 LWS_VISIBLE LWS_EXTERN int
    3618 lws_is_cgi(struct lws *wsi);
    3620 
    3621 
    3627 #ifdef LWS_SHA1_USE_OPENSSL_NAME
    3629 #define lws_SHA1 SHA1
    3630 #else
    3631 
    3640 LWS_VISIBLE LWS_EXTERN unsigned char *
    3641 lws_SHA1(const unsigned char *d, size_t n, unsigned char *md);
    3642 #endif
    3643 
    3653 LWS_VISIBLE LWS_EXTERN int
    3654 lws_b64_encode_string(const char *in, int in_len, char *out, int out_size);
    3664 LWS_VISIBLE LWS_EXTERN int
    3665 lws_b64_decode_string(const char *in, char *out, int out_size);
    3667 
    3668 
    3678 #ifdef LWS_WITH_CGI
    3679 enum lws_enum_stdinouterr {
    3680  LWS_STDIN = 0,
    3681  LWS_STDOUT = 1,
    3682  LWS_STDERR = 2,
    3683 };
    3684 
    3685 enum lws_cgi_hdr_state {
    3686  LCHS_HEADER,
    3687  LCHS_CR1,
    3688  LCHS_LF1,
    3689  LCHS_CR2,
    3690  LCHS_LF2,
    3691  LHCS_PAYLOAD,
    3692  LCHS_SINGLE_0A,
    3693 };
    3694 
    3696  struct lws **stdwsi;
    3697  enum lws_enum_stdinouterr ch;
    3698  unsigned char *data;
    3699  enum lws_cgi_hdr_state hdr_state;
    3700  int len;
    3701 };
    3702 
    3703 
    3713 LWS_VISIBLE LWS_EXTERN int
    3714 lws_cgi(struct lws *wsi, const char * const *exec_array,
    3715  int script_uri_path_len, int timeout_secs,
    3716  const struct lws_protocol_vhost_options *mp_cgienv);
    3717 
    3723 LWS_VISIBLE LWS_EXTERN int
    3724 lws_cgi_write_split_stdout_headers(struct lws *wsi);
    3725 
    3731 LWS_VISIBLE LWS_EXTERN int
    3732 lws_cgi_kill(struct lws *wsi);
    3733 #endif
    3734 
    3736 
    3753 
    3760  lws_filefd_type (*open)(struct lws *wsi, const char *filename,
    3761  unsigned long *filelen, int flags);
    3765  int (*close)(struct lws *wsi, lws_filefd_type fd);
    3767  unsigned long (*seek_cur)(struct lws *wsi, lws_filefd_type fd,
    3768  long offset_from_cur_pos);
    3770  int (*read)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount,
    3771  unsigned char *buf, unsigned long len);
    3773  int (*write)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount,
    3774  unsigned char *buf, unsigned long len);
    3777  /* Add new things just above here ---^
    3778  * This is part of the ABI, don't needlessly break compatibility */
    3779 };
    3780 
    3786 LWS_VISIBLE LWS_EXTERN struct lws_plat_file_ops * LWS_WARN_UNUSED_RESULT
    3787 lws_get_fops(struct lws_context *context);
    3788 
    3797 static LWS_INLINE lws_filefd_type LWS_WARN_UNUSED_RESULT
    3798 lws_plat_file_open(struct lws *wsi, const char *filename,
    3799  unsigned long *filelen, int flags)
    3800 {
    3801  return lws_get_fops(lws_get_context(wsi))->open(wsi, filename,
    3802  filelen, flags);
    3803 }
    3804 
    3811 static LWS_INLINE int
    3812 lws_plat_file_close(struct lws *wsi, lws_filefd_type fd)
    3813 {
    3814  return lws_get_fops(lws_get_context(wsi))->close(wsi, fd);
    3815 }
    3816 
    3824 static LWS_INLINE unsigned long
    3825 lws_plat_file_seek_cur(struct lws *wsi, lws_filefd_type fd, long offset)
    3826 {
    3827  return lws_get_fops(lws_get_context(wsi))->seek_cur(wsi, fd, offset);
    3828 }
    3838 static LWS_INLINE int LWS_WARN_UNUSED_RESULT
    3839 lws_plat_file_read(struct lws *wsi, lws_filefd_type fd, unsigned long *amount,
    3840  unsigned char *buf, unsigned long len)
    3841 {
    3842  return lws_get_fops(lws_get_context(wsi))->read(wsi, fd, amount, buf,
    3843  len);
    3844 }
    3854 static LWS_INLINE int LWS_WARN_UNUSED_RESULT
    3855 lws_plat_file_write(struct lws *wsi, lws_filefd_type fd, unsigned long *amount,
    3856  unsigned char *buf, unsigned long len)
    3857 {
    3858  return lws_get_fops(lws_get_context(wsi))->write(wsi, fd, amount, buf,
    3859  len);
    3860 }
    3862 
    3894 #ifdef LWS_WITH_SMTP
    3895 
    3907 };
    3908 
    3910 struct lws_email {
    3911  void *data;
    3913  uv_loop_t *loop;
    3916  char email_smtp_ip[32];
    3917  char email_helo[32];
    3918  char email_from[100];
    3919  char email_to[100];
    3921  unsigned int max_content_size;
    3924  /* Fill all the callbacks before init */
    3925 
    3926  int (*on_next)(struct lws_email *email);
    3931  int (*on_sent)(struct lws_email *email);
    3936  int (*on_get_body)(struct lws_email *email, char *buf, int len);
    3942  /* private things */
    3943  uv_timer_t timeout_email;
    3945  uv_connect_t email_connect_req;
    3946  uv_tcp_t email_client;
    3948  char email_buf[256];
    3949  char *content;
    3950 };
    3951 
    3961 LWS_VISIBLE LWS_EXTERN int
    3962 lws_email_init(struct lws_email *email, uv_loop_t *loop, int max_content);
    3963 
    3972 LWS_VISIBLE LWS_EXTERN void
    3973 lws_email_check(struct lws_email *email);
    3981 LWS_VISIBLE LWS_EXTERN void
    3982 lws_email_destroy(struct lws_email *email);
    3983 
    3984 #endif
    3985 
    3986 
    3987 #ifdef __cplusplus
    3988 }
    3989 #endif
    3990 
    3991 #endif
    LWS_VISIBLE LWS_EXTERN int lws_spa_destroy(struct lws_spa *spa)
    +Go to the documentation of this file.
    1 /*
    2  * libwebsockets - small server side websockets and web server implementation
    3  *
    4  * Copyright (C) 2010-2016 Andy Green <andy@warmcat.com>
    5  *
    6  * This library is free software; you can redistribute it and/or
    7  * modify it under the terms of the GNU Lesser General Public
    8  * License as published by the Free Software Foundation:
    9  * version 2.1 of the License.
    10  *
    11  * This library is distributed in the hope that it will be useful,
    12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    14  * Lesser General Public License for more details.
    15  *
    16  * You should have received a copy of the GNU Lesser General Public
    17  * License along with this library; if not, write to the Free Software
    18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
    19  * MA 02110-1301 USA
    20  */
    21 
    24 #ifndef LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C
    25 #define LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C
    26 
    27 #ifdef __cplusplus
    28 #include <cstddef>
    29 #include <cstdarg>
    30 #ifdef MBED_OPERATORS
    31 #include "mbed-drivers/mbed.h"
    32 #include "sal-iface-eth/EthernetInterface.h"
    33 #include "sockets/TCPListener.h"
    34 #include "sal-stack-lwip/lwipv4_init.h"
    35 
    36 namespace {
    37 }
    38 using namespace mbed::Sockets::v0;
    39 
    40 
    41 struct sockaddr_in;
    42 struct lws;
    43 
    44 class lws_conn {
    45  public:
    46  lws_conn():
    47  ts(NULL),
    48  wsi(NULL),
    49  writeable(1),
    50  awaiting_on_writeable(0)
    51  {
    52  }
    53 
    54 public:
    55  void set_wsi(struct lws *_wsi) { wsi = _wsi; }
    56  int actual_onRX(Socket *s);
    57  void onRX(Socket *s);
    58  void onError(Socket *s, socket_error_t err);
    59  void onDisconnect(TCPStream *s);
    60  void onSent(Socket *s, uint16_t len);
    61  void serialized_writeable(struct lws *wsi);
    62 
    63 public:
    64  TCPStream *ts;
    65 
    66 public:
    67  struct lws *wsi;
    68  char writeable;
    69  char awaiting_on_writeable;
    70 };
    71 
    73 public:
    75  srv(SOCKET_STACK_LWIP_IPV4)
    76  {
    77  srv.setOnError(TCPStream::ErrorHandler_t(this,
    79  }
    80 
    81  void start(const uint16_t port);
    83 protected:
    84  void onRX(Socket *s);
    85  void onError(Socket *s, socket_error_t err);
    86  void onIncoming(TCPListener *s, void *impl);
    87  void onDisconnect(TCPStream *s);
    89 public:
    90  TCPListener srv;
    91 };
    92 
    93 #endif
    94 
    95 extern "C" {
    96 #else
    97 #include <stdarg.h>
    98 #endif
    99 
    100 #ifdef MBED_OPERATORS
    101 struct sockaddr_in;
    102 #define LWS_POSIX 0
    103 #else
    104 #define LWS_POSIX 1
    105 #endif
    106 
    107 #include "lws_config.h"
    108 
    109 #if defined(WIN32) || defined(_WIN32)
    110 #ifndef WIN32_LEAN_AND_MEAN
    111 #define WIN32_LEAN_AND_MEAN
    112 #endif
    113 
    114 #include <winsock2.h>
    115 #include <ws2tcpip.h>
    116 #include <stddef.h>
    117 #include <basetsd.h>
    118 #ifndef _WIN32_WCE
    119 #include <stdint.h>
    120 #include <fcntl.h>
    121 #else
    122 #define _O_RDONLY 0x0000
    123 #define O_RDONLY _O_RDONLY
    124 #endif
    125 
    126 // Visual studio older than 2015 and WIN_CE has only _stricmp
    127 #if (defined(_MSC_VER) && _MSC_VER < 1900) || defined(_WIN32_WCE)
    128 #define strcasecmp _stricmp
    129 #else
    130 #define strcasecmp stricmp
    131 #endif
    132 #define getdtablesize() 30000
    133 
    134 #define LWS_INLINE __inline
    135 #define LWS_VISIBLE
    136 #define LWS_WARN_UNUSED_RESULT
    137 #define LWS_WARN_DEPRECATED
    138 
    139 #ifdef LWS_DLL
    140 #ifdef LWS_INTERNAL
    141 #define LWS_EXTERN extern __declspec(dllexport)
    142 #else
    143 #define LWS_EXTERN extern __declspec(dllimport)
    144 #endif
    145 #else
    146 #define LWS_EXTERN
    147 #endif
    148 
    149 #define LWS_INVALID_FILE INVALID_HANDLE_VALUE
    150 #define LWS_O_RDONLY _O_RDONLY
    151 
    152 #if !defined(_MSC_VER) || _MSC_VER < 1900 /* Visual Studio 2015 already defines this in <stdio.h> */
    153 #define snprintf _snprintf
    154 #endif
    155 
    156 #ifndef __func__
    157 #define __func__ __FUNCTION__
    158 #endif
    159 
    160 #else /* NOT WIN32 */
    161 #include <unistd.h>
    162 
    163 #if defined(__NetBSD__) || defined(__FreeBSD__)
    164 #include <netinet/in.h>
    165 #endif
    166 
    167 #define LWS_INLINE inline
    168 #define LWS_O_RDONLY O_RDONLY
    169 
    170 #ifndef MBED_OPERATORS
    171 #include <poll.h>
    172 #include <netdb.h>
    173 #define LWS_INVALID_FILE -1
    174 #else
    175 #define getdtablesize() (20)
    176 #define LWS_INVALID_FILE NULL
    177 #endif
    178 
    179 #if defined(__GNUC__)
    180 
    181 /* warn_unused_result attribute only supported by GCC 3.4 or later */
    182 #if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
    183 #define LWS_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
    184 #else
    185 #define LWS_WARN_UNUSED_RESULT
    186 #endif
    187 
    188 #define LWS_VISIBLE __attribute__((visibility("default")))
    189 #define LWS_WARN_DEPRECATED __attribute__ ((deprecated))
    190 #else
    191 #define LWS_VISIBLE
    192 #define LWS_WARN_UNUSED_RESULT
    193 #define LWS_WARN_DEPRECATED
    194 #endif
    195 
    196 #if defined(__ANDROID__)
    197 #include <unistd.h>
    198 #define getdtablesize() sysconf(_SC_OPEN_MAX)
    199 #endif
    200 
    201 #endif
    202 
    203 #ifdef LWS_USE_LIBEV
    204 #include <ev.h>
    205 #endif /* LWS_USE_LIBEV */
    206 #ifdef LWS_USE_LIBUV
    207 #include <uv.h>
    208 #endif /* LWS_USE_LIBUV */
    209 
    210 #ifndef LWS_EXTERN
    211 #define LWS_EXTERN extern
    212 #endif
    213 
    214 #ifdef _WIN32
    215 #define random rand
    216 #else
    217 #include <sys/time.h>
    218 #include <unistd.h>
    219 #endif
    220 
    221 #ifdef LWS_OPENSSL_SUPPORT
    222 
    223 #ifdef USE_WOLFSSL
    224 #ifdef USE_OLD_CYASSL
    225 #include <cyassl/openssl/ssl.h>
    226 #include <cyassl/error-ssl.h>
    227 #else
    228 #include <wolfssl/openssl/ssl.h>
    229 #include <wolfssl/error-ssl.h>
    230 #endif /* not USE_OLD_CYASSL */
    231 #else
    232 #if defined(LWS_USE_POLARSSL)
    233 #include <polarssl/ssl.h>
    235  x509_crt ca;
    236  x509_crt certificate;
    237  rsa_context key;
    238 };
    239 typedef struct lws_polarssl_context SSL_CTX;
    240 typedef ssl_context SSL;
    241 #else
    242 #if defined(LWS_USE_MBEDTLS)
    243 #include <mbedtls/ssl.h>
    244 #else
    245 #include <openssl/ssl.h>
    246 #include <openssl/err.h>
    247 #endif /* not USE_MBEDTLS */
    248 #endif /* not USE_POLARSSL */
    249 #endif /* not USE_WOLFSSL */
    250 #endif
    251 
    252 
    253 #define CONTEXT_PORT_NO_LISTEN -1
    254 
    265 
    267 enum lws_log_levels {
    268  LLL_ERR = 1 << 0,
    269  LLL_WARN = 1 << 1,
    270  LLL_NOTICE = 1 << 2,
    271  LLL_INFO = 1 << 3,
    272  LLL_DEBUG = 1 << 4,
    273  LLL_PARSER = 1 << 5,
    274  LLL_HEADER = 1 << 6,
    275  LLL_EXT = 1 << 7,
    276  LLL_CLIENT = 1 << 8,
    277  LLL_LATENCY = 1 << 9,
    278 
    279  LLL_COUNT = 10 /* set to count of valid flags */
    280 };
    281 
    282 LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...);
    283 LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl);
    293 LWS_VISIBLE LWS_EXTERN int
    294 lwsl_timestamp(int level, char *p, int len);
    295 
    296 /* notice, warn and log are always compiled in */
    297 #define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__)
    298 #define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__)
    299 #define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__)
    300 /*
    301  * weaker logging can be deselected at configure time using --disable-debug
    302  * that gets rid of the overhead of checking while keeping _warn and _err
    303  * active
    304  */
    305 #ifdef _DEBUG
    306 
    307 #define lwsl_info(...) _lws_log(LLL_INFO, __VA_ARGS__)
    308 #define lwsl_debug(...) _lws_log(LLL_DEBUG, __VA_ARGS__)
    309 #define lwsl_parser(...) _lws_log(LLL_PARSER, __VA_ARGS__)
    310 #define lwsl_header(...) _lws_log(LLL_HEADER, __VA_ARGS__)
    311 #define lwsl_ext(...) _lws_log(LLL_EXT, __VA_ARGS__)
    312 #define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__)
    313 #define lwsl_latency(...) _lws_log(LLL_LATENCY, __VA_ARGS__)
    314 
    320 LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len);
    321 
    322 #else /* no debug */
    323 
    324 #define lwsl_info(...) {}
    325 #define lwsl_debug(...) {}
    326 #define lwsl_parser(...) {}
    327 #define lwsl_header(...) {}
    328 #define lwsl_ext(...) {}
    329 #define lwsl_client(...) {}
    330 #define lwsl_latency(...) {}
    331 #define lwsl_hexdump(a, b)
    332 
    333 #endif
    334 
    345 LWS_VISIBLE LWS_EXTERN void
    346 lws_set_log_level(int level,
    347  void (*log_emit_function)(int level, const char *line));
    348 
    358 LWS_VISIBLE LWS_EXTERN void
    359 lwsl_emit_syslog(int level, const char *line);
    360 
    362 
    363 
    364 #include <stddef.h>
    365 
    366 #ifndef lws_container_of
    367 #define lws_container_of(P,T,M) ((T *)((char *)(P) - offsetof(T, M)))
    368 #endif
    369 
    370 
    371 struct lws;
    372 #ifndef ARRAY_SIZE
    373 #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
    374 #endif
    375 
    376 /* api change list for user code to test against */
    377 
    378 #define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_ARG
    379 
    380 /* the struct lws_protocols has the id field present */
    381 #define LWS_FEATURE_PROTOCOLS_HAS_ID_FIELD
    382 
    383 /* you can call lws_get_peer_write_allowance */
    384 #define LWS_FEATURE_PROTOCOLS_HAS_PEER_WRITE_ALLOWANCE
    385 
    386 /* extra parameter introduced in 917f43ab821 */
    387 #define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_LEN
    388 
    389 /* File operations stuff exists */
    390 #define LWS_FEATURE_FOPS
    391 
    392 
    393 #if defined(_WIN32)
    394 typedef SOCKET lws_sockfd_type;
    395 typedef HANDLE lws_filefd_type;
    396 #define lws_sockfd_valid(sfd) (!!sfd)
    397 struct lws_pollfd {
    398  lws_sockfd_type fd;
    399  SHORT events;
    400  SHORT revents;
    401 };
    402 #define LWS_POLLHUP (FD_CLOSE)
    403 #define LWS_POLLIN (FD_READ | FD_ACCEPT)
    404 #define LWS_POLLOUT (FD_WRITE)
    405 #else
    406 
    407 #if defined(MBED_OPERATORS)
    408 /* it's a class lws_conn * */
    409 typedef void * lws_sockfd_type;
    410 typedef void * lws_filefd_type;
    411 #define lws_sockfd_valid(sfd) (!!sfd)
    412 struct pollfd {
    413  lws_sockfd_type fd;
    414  short events;
    415  short revents;
    416 };
    417 #define POLLIN 0x0001
    418 #define POLLPRI 0x0002
    419 #define POLLOUT 0x0004
    420 #define POLLERR 0x0008
    421 #define POLLHUP 0x0010
    422 #define POLLNVAL 0x0020
    423 
    424 struct lws;
    425 
    426 void * mbed3_create_tcp_stream_socket(void);
    427 void mbed3_delete_tcp_stream_socket(void *sockfd);
    428 void mbed3_tcp_stream_bind(void *sock, int port, struct lws *);
    429 void mbed3_tcp_stream_accept(void *sock, struct lws *);
    430 #else
    431 typedef int lws_sockfd_type;
    432 typedef int lws_filefd_type;
    433 #define lws_sockfd_valid(sfd) (sfd >= 0)
    434 #endif
    435 
    436 #define lws_pollfd pollfd
    437 #define LWS_POLLHUP (POLLHUP|POLLERR)
    438 #define LWS_POLLIN (POLLIN)
    439 #define LWS_POLLOUT (POLLOUT)
    440 #endif
    441 
    444 struct lws_pollargs {
    445  lws_sockfd_type fd;
    446  int events;
    448 };
    449 
    450 struct lws_tokens;
    451 struct lws_token_limits;
    452 
    460 
    462 /*
    463  * NOTE: These public enums are part of the abi. If you want to add one,
    464  * add it at where specified so existing users are unaffected.
    465  */
    468  LWS_CLOSE_STATUS_NOSTATUS = 0,
    530  /****** add new things just above ---^ ******/
    531 
    532  LWS_CLOSE_STATUS_NOSTATUS_CONTEXT_DESTROY = 9999,
    533 };
    534 
    547 LWS_VISIBLE LWS_EXTERN void
    548 lws_close_reason(struct lws *wsi, enum lws_close_status status,
    549  unsigned char *buf, size_t len);
    550 
    552 
    553 struct lws;
    554 struct lws_context;
    555 /* needed even with extensions disabled for create context */
    556 struct lws_extension;
    557 
    569 
    571 
    572 /*
    573  * NOTE: These public enums are part of the abi. If you want to add one,
    574  * add it at where specified so existing users are unaffected.
    575  */
    819  /* external poll() management support */
    882  LWS_CALLBACK_WS_EXT_DEFAULTS = 39,
    885  LWS_CALLBACK_CGI = 40,
    887  LWS_CALLBACK_CGI_TERMINATED = 41,
    889  LWS_CALLBACK_CGI_STDIN_DATA = 42,
    891  LWS_CALLBACK_CGI_STDIN_COMPLETED = 43,
    893  LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44,
    895  LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45,
    897  LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46,
    899  LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47,
    901  LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48,
    903  LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49,
    905  LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50,
    907  LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51,
    909  LWS_CALLBACK_PROCESS_HTML = 52,
    911  LWS_CALLBACK_ADD_HEADERS = 53,
    913  LWS_CALLBACK_SESSION_INFO = 54,
    916  LWS_CALLBACK_GS_EVENT = 55,
    924  /****** add new things just above ---^ ******/
    925 
    928 };
    929 
    930 
    931 
    947 typedef int
    948 lws_callback_function(struct lws *wsi, enum lws_callback_reasons reason,
    949  void *user, void *in, size_t len);
    951 
    961 
    963 /*
    964  * NOTE: These public enums are part of the abi. If you want to add one,
    965  * add it at where specified so existing users are unaffected.
    966  */
    967 enum lws_extension_callback_reasons {
    968  LWS_EXT_CB_SERVER_CONTEXT_CONSTRUCT = 0,
    969  LWS_EXT_CB_CLIENT_CONTEXT_CONSTRUCT = 1,
    970  LWS_EXT_CB_SERVER_CONTEXT_DESTRUCT = 2,
    971  LWS_EXT_CB_CLIENT_CONTEXT_DESTRUCT = 3,
    972  LWS_EXT_CB_CONSTRUCT = 4,
    973  LWS_EXT_CB_CLIENT_CONSTRUCT = 5,
    974  LWS_EXT_CB_CHECK_OK_TO_REALLY_CLOSE = 6,
    975  LWS_EXT_CB_CHECK_OK_TO_PROPOSE_EXTENSION = 7,
    976  LWS_EXT_CB_DESTROY = 8,
    977  LWS_EXT_CB_DESTROY_ANY_WSI_CLOSING = 9,
    978  LWS_EXT_CB_ANY_WSI_ESTABLISHED = 10,
    979  LWS_EXT_CB_PACKET_RX_PREPARSE = 11,
    980  LWS_EXT_CB_PACKET_TX_PRESEND = 12,
    981  LWS_EXT_CB_PACKET_TX_DO_SEND = 13,
    982  LWS_EXT_CB_HANDSHAKE_REPLY_TX = 14,
    983  LWS_EXT_CB_FLUSH_PENDING_TX = 15,
    984  LWS_EXT_CB_EXTENDED_PAYLOAD_RX = 16,
    985  LWS_EXT_CB_CAN_PROXY_CLIENT_CONNECTION = 17,
    986  LWS_EXT_CB_1HZ = 18,
    987  LWS_EXT_CB_REQUEST_ON_WRITEABLE = 19,
    988  LWS_EXT_CB_IS_WRITEABLE = 20,
    989  LWS_EXT_CB_PAYLOAD_TX = 21,
    990  LWS_EXT_CB_PAYLOAD_RX = 22,
    991  LWS_EXT_CB_OPTION_DEFAULT = 23,
    992  LWS_EXT_CB_OPTION_SET = 24,
    993  LWS_EXT_CB_OPTION_CONFIRM = 25,
    994  LWS_EXT_CB_NAMED_OPTION_SET = 26,
    995 
    996  /****** add new things just above ---^ ******/
    997 };
    998 
    1005  /* Add new things just above here ---^
    1006  * This is part of the ABI, don't needlessly break compatibility */
    1007 };
    1008 
    1014  const char *name;
    1017  /* Add new things just above here ---^
    1018  * This is part of the ABI, don't needlessly break compatibility */
    1019 };
    1020 
    1023  const char *option_name;
    1025  const char *start;
    1026  int len;
    1027 };
    1028 
    1089 typedef int
    1090 lws_extension_callback_function(struct lws_context *context,
    1091  const struct lws_extension *ext, struct lws *wsi,
    1092  enum lws_extension_callback_reasons reason,
    1093  void *user, void *in, size_t len);
    1094 
    1097  const char *name;
    1099  const char *client_offer;
    1101  /* Add new things just above here ---^
    1102  * This is part of the ABI, don't needlessly break compatibility */
    1103 };
    1104 
    1113 LWS_VISIBLE LWS_EXTERN int
    1114 lws_set_extension_option(struct lws *wsi, const char *ext_name,
    1115  const char *opt_name, const char *opt_val);
    1116 
    1117 #ifndef LWS_NO_EXTENSIONS
    1118 /* lws_get_internal_extensions() - DEPRECATED
    1119  *
    1120  * \Deprecated There is no longer a set internal extensions table. The table is provided
    1121  * by user code along with application-specific settings. See the test
    1122  * client and server for how to do.
    1123  */
    1124 static LWS_INLINE LWS_WARN_DEPRECATED const struct lws_extension *
    1125 lws_get_internal_extensions() { return NULL; }
    1126 
    1137 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    1138 lws_ext_parse_options(const struct lws_extension *ext, struct lws *wsi,
    1139  void *ext_user, const struct lws_ext_options *opts,
    1140  const char *o, int len);
    1141 #endif
    1142 
    1155 LWS_EXTERN
    1157  struct lws_context *context, const struct lws_extension *ext,
    1158  struct lws *wsi, enum lws_extension_callback_reasons reason,
    1159  void *user, void *in, size_t len);
    1160 
    1161 /*
    1162  * The internal exts are part of the public abi
    1163  * If we add more extensions, publish the callback here ------v
    1164  */
    1166 
    1182 
    1187  const char *name;
    1208  unsigned int id;
    1215  void *user;
    1218  /* Add new things just above here ---^
    1219  * This is part of the ABI, don't needlessly break compatibility */
    1220 };
    1221 
    1222 struct lws_vhost;
    1223 
    1232 LWS_VISIBLE LWS_EXTERN const struct lws_protocols *
    1233 lws_vhost_name_to_protocol(struct lws_vhost *vh, const char *name);
    1234 
    1244 LWS_VISIBLE LWS_EXTERN const struct lws_protocols *
    1245 lws_get_protocol(struct lws *wsi);
    1246 
    1248 LWS_VISIBLE LWS_EXTERN const struct lws_protocols *
    1249 lws_protocol_get(struct lws *wsi) LWS_WARN_DEPRECATED;
    1250 
    1261 LWS_VISIBLE LWS_EXTERN void *
    1262 lws_protocol_vh_priv_zalloc(struct lws_vhost *vhost, const struct lws_protocols *prot,
    1263  int size);
    1264 
    1274 LWS_VISIBLE LWS_EXTERN void *
    1275 lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *prot);
    1276 
    1285 LWS_VISIBLE LWS_EXTERN int
    1286 lws_finalize_startup(struct lws_context *context);
    1287 
    1288 #ifdef LWS_WITH_PLUGINS
    1289 
    1290 /* PLUGINS implies LIBUV */
    1291 
    1292 #define LWS_PLUGIN_API_MAGIC 180
    1293 
    1296  unsigned int api_magic;
    1297  const struct lws_protocols *protocols;
    1299  const struct lws_extension *extensions;
    1301 };
    1302 
    1303 typedef int (*lws_plugin_init_func)(struct lws_context *,
    1304  struct lws_plugin_capability *);
    1305 typedef int (*lws_plugin_destroy_func)(struct lws_context *);
    1306 
    1308 struct lws_plugin {
    1309  struct lws_plugin *list;
    1310 #if (UV_VERSION_MAJOR > 0)
    1311  uv_lib_t lib;
    1312 #else
    1313  void *l;
    1314 #endif
    1315  char name[64];
    1317 };
    1318 
    1319 #endif
    1320 
    1322 
    1323 
    1332 
    1334 #define LWSGS_EMAIL_CONTENT_SIZE 16384
    1335 
    1337 /* SHA-1 binary and hexified versions */
    1339 typedef struct { unsigned char bin[20]; } lwsgw_hash_bin;
    1341 typedef struct { char id[41]; } lwsgw_hash;
    1342 
    1349 };
    1350 
    1353  char username[32];
    1354  char email[100];
    1355  char ip[72];
    1356  unsigned int mask;
    1358  char session[42];
    1359 };
    1360 
    1365 };
    1366 
    1369  enum lws_gs_event event;
    1370  const char *username;
    1371  const char *email;
    1372 };
    1373 
    1375 
    1376 
    1390 
    1392 /*
    1393  * NOTE: These public enums are part of the abi. If you want to add one,
    1394  * add it at where specified so existing users are unaffected.
    1395  */
    1396 
    1400  (1 << 12),
    1407  (1 << 12),
    1423  (1 << 12),
    1428  (1 << 12),
    1446  /****** add new things just above ---^ ******/
    1447 };
    1448 
    1449 #define lws_check_opt(c, f) (((c) & (f)) == (f))
    1450 
    1461  int port;
    1466  const char *iface;
    1473  const struct lws_protocols *protocols;
    1477  const struct lws_extension *extensions;
    1485  const char *ssl_cert_filepath;
    1495  const char *ssl_ca_filepath;
    1497  const char *ssl_cipher_list;
    1501  const char *http_proxy_address;
    1504  unsigned int http_proxy_port;
    1506  int gid;
    1508  int uid;
    1510  unsigned int options;
    1512  void *user;
    1515  int ka_time;
    1525 #ifdef LWS_OPENSSL_SUPPORT
    1531 #else /* maintain structure layout either way */
    1533 #endif
    1534 
    1545  unsigned int count_threads;
    1547  unsigned int fd_limit_per_thread;
    1551  unsigned int timeout_secs;
    1556  const char *ecdh_curve;
    1558  const char *vhost_name;
    1562  const char * const *plugin_dirs;
    1571  const char *log_filepath;
    1574  const struct lws_http_mount *mounts;
    1576  const char *server_string;
    1579  unsigned int pt_serv_buf_size;
    1595  /* Add new things just above here ---^
    1596  * This is part of the ABI, don't needlessly break compatibility
    1597  *
    1598  * The below is to ensure later library versions with new
    1599  * members added above will see 0 (default) even if the app
    1600  * was not built against the newer headers.
    1601  */
    1602 
    1603  void *_unused[8];
    1604 };
    1605 
    1640 LWS_VISIBLE LWS_EXTERN struct lws_context *
    1642 
    1651 LWS_VISIBLE LWS_EXTERN void
    1652 lws_context_destroy(struct lws_context *context);
    1653 
    1671 LWS_VISIBLE LWS_EXTERN int
    1672 lws_set_proxy(struct lws_vhost *vhost, const char *proxy);
    1673 
    1674 
    1675 struct lws_vhost;
    1676 
    1686 LWS_EXTERN LWS_VISIBLE struct lws_vhost *
    1687 lws_create_vhost(struct lws_context *context,
    1688  struct lws_context_creation_info *info);
    1689 
    1704 LWS_VISIBLE LWS_EXTERN int
    1705 lwsws_get_config_globals(struct lws_context_creation_info *info, const char *d,
    1706  char **config_strings, int *len);
    1707 
    1723 LWS_VISIBLE LWS_EXTERN int
    1724 lwsws_get_config_vhosts(struct lws_context *context,
    1725  struct lws_context_creation_info *info, const char *d,
    1726  char **config_strings, int *len);
    1727 
    1729 LWS_VISIBLE LWS_EXTERN struct lws_vhost *
    1730 lws_vhost_get(struct lws *wsi) LWS_WARN_DEPRECATED;
    1731 
    1737 LWS_VISIBLE LWS_EXTERN struct lws_vhost *
    1738 lws_get_vhost(struct lws *wsi);
    1739 
    1747 LWS_VISIBLE LWS_EXTERN int
    1748 lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len);
    1749 
    1757 LWS_VISIBLE LWS_EXTERN int
    1758 lws_json_dump_context(const struct lws_context *context, char *buf, int len);
    1759 
    1769 LWS_VISIBLE LWS_EXTERN void *
    1770 lws_context_user(struct lws_context *context);
    1771 
    1777 
    1787  const char *name;
    1788  const char *value;
    1789 };
    1790 
    1803 };
    1804 
    1812  const char *mountpoint;
    1814  const char *origin;
    1816  const char *def;
    1818  const char *protocol;
    1834  unsigned int auth_mask;
    1837  unsigned int cache_reusable:1;
    1838  unsigned int cache_revalidate:1;
    1839  unsigned int cache_intermediaries:1;
    1841  unsigned char origin_protocol;
    1842  unsigned char mountpoint_len;
    1843 };
    1846 
    1852 
    1860  LCCSCF_USE_SSL = (1 << 0),
    1861  LCCSCF_ALLOW_SELFSIGNED = (1 << 1),
    1862  LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK = (1 << 2)
    1863 };
    1864 
    1869  struct lws_context *context;
    1871  const char *address;
    1873  int port;
    1877  const char *path;
    1879  const char *host;
    1881  const char *origin;
    1883  const char *protocol;
    1887  void *userdata;
    1891  const char *method;
    1894  struct lws *parent_wsi;
    1898  const char *uri_replace_from;
    1901  const char *uri_replace_to;
    1903  struct lws_vhost *vhost;
    1905  struct lws **pwsi;
    1917  /* Add new things just above here ---^
    1918  * This is part of the ABI, don't needlessly break compatibility
    1919  *
    1920  * The below is to ensure later library versions with new
    1921  * members added above will see 0 (default) even if the app
    1922  * was not built against the newer headers.
    1923  */
    1924 
    1925  void *_unused[4];
    1926 };
    1927 
    1935 LWS_VISIBLE LWS_EXTERN struct lws *
    1937 
    1958 /* deprecated, use lws_client_connect_via_info() */
    1959 LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT
    1960 lws_client_connect(struct lws_context *clients, const char *address,
    1961  int port, int ssl_connection, const char *path,
    1962  const char *host, const char *origin, const char *protocol,
    1963  int ietf_version_or_minus_one) LWS_WARN_DEPRECATED;
    1964 /* deprecated, use lws_client_connect_via_info() */
    1985 LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT
    1986 lws_client_connect_extended(struct lws_context *clients, const char *address,
    1987  int port, int ssl_connection, const char *path,
    1988  const char *host, const char *origin,
    1989  const char *protocol, int ietf_version_or_minus_one,
    1990  void *userdata) LWS_WARN_DEPRECATED;
    1991 
    2017 LWS_VISIBLE LWS_EXTERN int
    2019  struct lws_vhost *vhost);
    2020 
    2021 LWS_VISIBLE LWS_EXTERN int
    2022 lws_http_client_read(struct lws *wsi, char **buf, int *len);
    2024 
    2032 
    2065 LWS_VISIBLE LWS_EXTERN int
    2066 lws_service(struct lws_context *context, int timeout_ms);
    2067 
    2079 LWS_VISIBLE LWS_EXTERN int
    2080 lws_service_tsi(struct lws_context *context, int timeout_ms, int tsi);
    2081 
    2097 LWS_VISIBLE LWS_EXTERN void
    2098 lws_cancel_service_pt(struct lws *wsi);
    2099 
    2111 LWS_VISIBLE LWS_EXTERN void
    2112 lws_cancel_service(struct lws_context *context);
    2113 
    2136 LWS_VISIBLE LWS_EXTERN int
    2137 lws_service_fd(struct lws_context *context, struct lws_pollfd *pollfd);
    2138 
    2148 LWS_VISIBLE LWS_EXTERN int
    2149 lws_service_fd_tsi(struct lws_context *context, struct lws_pollfd *pollfd,
    2150  int tsi);
    2151 
    2153 
    2159 
    2166 
    2178 LWS_VISIBLE LWS_EXTERN const char *
    2179 lws_get_mimetype(const char *file, const struct lws_http_mount *m);
    2180 
    2199 LWS_VISIBLE LWS_EXTERN int
    2200 lws_serve_http_file(struct lws *wsi, const char *file, const char *content_type,
    2201  const char *other_headers, int other_headers_len);
    2202 LWS_VISIBLE LWS_EXTERN int
    2203 lws_serve_http_file_fragment(struct lws *wsi);
    2205 
    2216 
    2217 enum http_status {
    2218  HTTP_STATUS_OK = 200,
    2219  HTTP_STATUS_NO_CONTENT = 204,
    2220 
    2221  HTTP_STATUS_MOVED_PERMANENTLY = 301,
    2222  HTTP_STATUS_FOUND = 302,
    2223  HTTP_STATUS_SEE_OTHER = 303,
    2224 
    2225  HTTP_STATUS_BAD_REQUEST = 400,
    2226  HTTP_STATUS_UNAUTHORIZED,
    2227  HTTP_STATUS_PAYMENT_REQUIRED,
    2228  HTTP_STATUS_FORBIDDEN,
    2229  HTTP_STATUS_NOT_FOUND,
    2230  HTTP_STATUS_METHOD_NOT_ALLOWED,
    2231  HTTP_STATUS_NOT_ACCEPTABLE,
    2232  HTTP_STATUS_PROXY_AUTH_REQUIRED,
    2233  HTTP_STATUS_REQUEST_TIMEOUT,
    2234  HTTP_STATUS_CONFLICT,
    2235  HTTP_STATUS_GONE,
    2236  HTTP_STATUS_LENGTH_REQUIRED,
    2237  HTTP_STATUS_PRECONDITION_FAILED,
    2238  HTTP_STATUS_REQ_ENTITY_TOO_LARGE,
    2239  HTTP_STATUS_REQ_URI_TOO_LONG,
    2240  HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE,
    2241  HTTP_STATUS_REQ_RANGE_NOT_SATISFIABLE,
    2242  HTTP_STATUS_EXPECTATION_FAILED,
    2243 
    2244  HTTP_STATUS_INTERNAL_SERVER_ERROR = 500,
    2245  HTTP_STATUS_NOT_IMPLEMENTED,
    2246  HTTP_STATUS_BAD_GATEWAY,
    2247  HTTP_STATUS_SERVICE_UNAVAILABLE,
    2248  HTTP_STATUS_GATEWAY_TIMEOUT,
    2249  HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED,
    2250 };
    2251 
    2253  char *p;
    2254  int len;
    2255  int max_len;
    2256  int final;
    2257 };
    2258 
    2259 typedef const char *(*lws_process_html_state_cb)(void *data, int index);
    2260 
    2262  char *start;
    2263  char swallow[16];
    2264  int pos;
    2265  void *data;
    2266  const char * const *vars;
    2269  lws_process_html_state_cb replace;
    2270 };
    2271 
    2276 LWS_VISIBLE LWS_EXTERN int
    2278  struct lws_process_html_state *s);
    2280 
    2313 
    2321 struct lws_tokens {
    2322  char *token;
    2324 };
    2325 
    2326 /* enum lws_token_indexes
    2327  * these have to be kept in sync with lextable.h / minilex.c
    2328  *
    2329  * NOTE: These public enums are part of the abi. If you want to add one,
    2330  * add it at where specified so existing users are unaffected.
    2331  */
    2332 enum lws_token_indexes {
    2333  WSI_TOKEN_GET_URI = 0,
    2334  WSI_TOKEN_POST_URI = 1,
    2335  WSI_TOKEN_OPTIONS_URI = 2,
    2336  WSI_TOKEN_HOST = 3,
    2337  WSI_TOKEN_CONNECTION = 4,
    2338  WSI_TOKEN_UPGRADE = 5,
    2339  WSI_TOKEN_ORIGIN = 6,
    2340  WSI_TOKEN_DRAFT = 7,
    2341  WSI_TOKEN_CHALLENGE = 8,
    2342  WSI_TOKEN_EXTENSIONS = 9,
    2343  WSI_TOKEN_KEY1 = 10,
    2344  WSI_TOKEN_KEY2 = 11,
    2345  WSI_TOKEN_PROTOCOL = 12,
    2346  WSI_TOKEN_ACCEPT = 13,
    2347  WSI_TOKEN_NONCE = 14,
    2348  WSI_TOKEN_HTTP = 15,
    2349  WSI_TOKEN_HTTP2_SETTINGS = 16,
    2350  WSI_TOKEN_HTTP_ACCEPT = 17,
    2351  WSI_TOKEN_HTTP_AC_REQUEST_HEADERS = 18,
    2352  WSI_TOKEN_HTTP_IF_MODIFIED_SINCE = 19,
    2353  WSI_TOKEN_HTTP_IF_NONE_MATCH = 20,
    2354  WSI_TOKEN_HTTP_ACCEPT_ENCODING = 21,
    2355  WSI_TOKEN_HTTP_ACCEPT_LANGUAGE = 22,
    2356  WSI_TOKEN_HTTP_PRAGMA = 23,
    2357  WSI_TOKEN_HTTP_CACHE_CONTROL = 24,
    2358  WSI_TOKEN_HTTP_AUTHORIZATION = 25,
    2359  WSI_TOKEN_HTTP_COOKIE = 26,
    2360  WSI_TOKEN_HTTP_CONTENT_LENGTH = 27,
    2361  WSI_TOKEN_HTTP_CONTENT_TYPE = 28,
    2362  WSI_TOKEN_HTTP_DATE = 29,
    2363  WSI_TOKEN_HTTP_RANGE = 30,
    2364  WSI_TOKEN_HTTP_REFERER = 31,
    2365  WSI_TOKEN_KEY = 32,
    2366  WSI_TOKEN_VERSION = 33,
    2367  WSI_TOKEN_SWORIGIN = 34,
    2368 
    2369  WSI_TOKEN_HTTP_COLON_AUTHORITY = 35,
    2370  WSI_TOKEN_HTTP_COLON_METHOD = 36,
    2371  WSI_TOKEN_HTTP_COLON_PATH = 37,
    2372  WSI_TOKEN_HTTP_COLON_SCHEME = 38,
    2373  WSI_TOKEN_HTTP_COLON_STATUS = 39,
    2374 
    2375  WSI_TOKEN_HTTP_ACCEPT_CHARSET = 40,
    2376  WSI_TOKEN_HTTP_ACCEPT_RANGES = 41,
    2377  WSI_TOKEN_HTTP_ACCESS_CONTROL_ALLOW_ORIGIN = 42,
    2378  WSI_TOKEN_HTTP_AGE = 43,
    2379  WSI_TOKEN_HTTP_ALLOW = 44,
    2380  WSI_TOKEN_HTTP_CONTENT_DISPOSITION = 45,
    2381  WSI_TOKEN_HTTP_CONTENT_ENCODING = 46,
    2382  WSI_TOKEN_HTTP_CONTENT_LANGUAGE = 47,
    2383  WSI_TOKEN_HTTP_CONTENT_LOCATION = 48,
    2384  WSI_TOKEN_HTTP_CONTENT_RANGE = 49,
    2385  WSI_TOKEN_HTTP_ETAG = 50,
    2386  WSI_TOKEN_HTTP_EXPECT = 51,
    2387  WSI_TOKEN_HTTP_EXPIRES = 52,
    2388  WSI_TOKEN_HTTP_FROM = 53,
    2389  WSI_TOKEN_HTTP_IF_MATCH = 54,
    2390  WSI_TOKEN_HTTP_IF_RANGE = 55,
    2391  WSI_TOKEN_HTTP_IF_UNMODIFIED_SINCE = 56,
    2392  WSI_TOKEN_HTTP_LAST_MODIFIED = 57,
    2393  WSI_TOKEN_HTTP_LINK = 58,
    2394  WSI_TOKEN_HTTP_LOCATION = 59,
    2395  WSI_TOKEN_HTTP_MAX_FORWARDS = 60,
    2396  WSI_TOKEN_HTTP_PROXY_AUTHENTICATE = 61,
    2397  WSI_TOKEN_HTTP_PROXY_AUTHORIZATION = 62,
    2398  WSI_TOKEN_HTTP_REFRESH = 63,
    2399  WSI_TOKEN_HTTP_RETRY_AFTER = 64,
    2400  WSI_TOKEN_HTTP_SERVER = 65,
    2401  WSI_TOKEN_HTTP_SET_COOKIE = 66,
    2402  WSI_TOKEN_HTTP_STRICT_TRANSPORT_SECURITY = 67,
    2403  WSI_TOKEN_HTTP_TRANSFER_ENCODING = 68,
    2404  WSI_TOKEN_HTTP_USER_AGENT = 69,
    2405  WSI_TOKEN_HTTP_VARY = 70,
    2406  WSI_TOKEN_HTTP_VIA = 71,
    2407  WSI_TOKEN_HTTP_WWW_AUTHENTICATE = 72,
    2408 
    2409  WSI_TOKEN_PATCH_URI = 73,
    2410  WSI_TOKEN_PUT_URI = 74,
    2411  WSI_TOKEN_DELETE_URI = 75,
    2412 
    2413  WSI_TOKEN_HTTP_URI_ARGS = 76,
    2414  WSI_TOKEN_PROXY = 77,
    2415  WSI_TOKEN_HTTP_X_REAL_IP = 78,
    2416  WSI_TOKEN_HTTP1_0 = 79,
    2417 
    2418  /****** add new things just above ---^ ******/
    2419 
    2420  /* use token storage to stash these internally, not for
    2421  * user use */
    2422 
    2423  _WSI_TOKEN_CLIENT_SENT_PROTOCOLS,
    2424  _WSI_TOKEN_CLIENT_PEER_ADDRESS,
    2425  _WSI_TOKEN_CLIENT_URI,
    2426  _WSI_TOKEN_CLIENT_HOST,
    2427  _WSI_TOKEN_CLIENT_ORIGIN,
    2428  _WSI_TOKEN_CLIENT_METHOD,
    2429 
    2430  /* always last real token index*/
    2431  WSI_TOKEN_COUNT,
    2432 
    2433  /* parser state additions, no storage associated */
    2434  WSI_TOKEN_NAME_PART,
    2435  WSI_TOKEN_SKIPPING,
    2436  WSI_TOKEN_SKIPPING_SAW_CR,
    2437  WSI_PARSING_COMPLETE,
    2438  WSI_INIT_TOKEN_MUXURL,
    2439 };
    2440 
    2442  unsigned short token_limit[WSI_TOKEN_COUNT];
    2443 };
    2444 
    2450 LWS_VISIBLE LWS_EXTERN const unsigned char *
    2451 lws_token_to_string(enum lws_token_indexes token);
    2452 
    2453 
    2462 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2463 lws_hdr_total_length(struct lws *wsi, enum lws_token_indexes h);
    2464 
    2474 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2475 lws_hdr_fragment_length(struct lws *wsi, enum lws_token_indexes h, int frag_idx);
    2476 
    2490 LWS_VISIBLE LWS_EXTERN int
    2491 lws_hdr_copy(struct lws *wsi, char *dest, int len, enum lws_token_indexes h);
    2492 
    2510 LWS_VISIBLE LWS_EXTERN int
    2511 lws_hdr_copy_fragment(struct lws *wsi, char *dest, int len,
    2512  enum lws_token_indexes h, int frag_idx);
    2513 
    2524 LWS_VISIBLE LWS_EXTERN const char *
    2525 lws_get_urlarg_by_name(struct lws *wsi, const char *name, char *buf, int len);
    2527 
    2542 
    2553 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2554 lws_add_http_header_status(struct lws *wsi,
    2555  unsigned int code, unsigned char **p,
    2556  unsigned char *end);
    2569 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2570 lws_add_http_header_by_name(struct lws *wsi, const unsigned char *name,
    2571  const unsigned char *value, int length,
    2572  unsigned char **p, unsigned char *end);
    2586 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2587 lws_add_http_header_by_token(struct lws *wsi, enum lws_token_indexes token,
    2588  const unsigned char *value, int length,
    2589  unsigned char **p, unsigned char *end);
    2600 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2601 lws_add_http_header_content_length(struct lws *wsi,
    2602  unsigned long content_length,
    2603  unsigned char **p, unsigned char *end);
    2613 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2614 lws_finalize_http_header(struct lws *wsi, unsigned char **p,
    2615  unsigned char *end);
    2617 
    2636 
    2646 };
    2647 
    2661 typedef int (*lws_spa_fileupload_cb)(void *data, const char *name,
    2662  const char *filename, char *buf, int len,
    2663  enum lws_spa_fileupload_states state);
    2664 
    2667 struct lws_spa;
    2668 
    2687 LWS_VISIBLE LWS_EXTERN struct lws_spa *
    2688 lws_spa_create(struct lws *wsi, const char * const *param_names,
    2689  int count_params, int max_storage, lws_spa_fileupload_cb opt_cb,
    2690  void *opt_data);
    2691 
    2699 LWS_VISIBLE LWS_EXTERN int
    2700 lws_spa_process(struct lws_spa *spa, const char *in, int len);
    2701 
    2707 LWS_VISIBLE LWS_EXTERN int
    2708 lws_spa_finalize(struct lws_spa *spa);
    2709 
    2716 LWS_VISIBLE LWS_EXTERN int
    2717 lws_spa_get_length(struct lws_spa *spa, int n);
    2718 
    2724 LWS_VISIBLE LWS_EXTERN const char *
    2725 lws_spa_get_string(struct lws_spa *spa, int n);
    2726 
    2732 LWS_VISIBLE LWS_EXTERN int
    2733 lws_spa_destroy(struct lws_spa *spa);
    2735 
    2746 
    2757 LWS_VISIBLE LWS_EXTERN const char *
    2758 lws_urlencode(char *escaped, const char *string, int len);
    2759 
    2760 /*
    2761  * URLDECODE 1 / 2
    2762  *
    2763  * This simple urldecode only operates until the first '\0' and requires the
    2764  * data to exist all at once
    2765  */
    2778 LWS_VISIBLE LWS_EXTERN int
    2779 lws_urldecode(char *string, const char *escaped, int len);
    2781 
    2790 LWS_VISIBLE LWS_EXTERN int
    2791 lws_return_http_status(struct lws *wsi, unsigned int code,
    2792  const char *html_body);
    2793 
    2804 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2805 lws_http_redirect(struct lws *wsi, int code, const unsigned char *loc, int len,
    2806  unsigned char **p, unsigned char *end);
    2807 
    2816 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    2817 lws_http_transaction_completed(struct lws *wsi);
    2819 
    2827 
    2838 LWS_VISIBLE LWS_EXTERN const char *
    2839 lws_sql_purify(char *escaped, const char *string, int len);
    2840 
    2851 LWS_VISIBLE LWS_EXTERN const char *
    2852 lws_json_purify(char *escaped, const char *string, int len);
    2854 
    2861 
    2863 #ifdef LWS_USE_LIBEV
    2864 typedef void (lws_ev_signal_cb_t)(EV_P_ struct ev_signal *w, int revents);
    2865 
    2866 LWS_VISIBLE LWS_EXTERN int
    2867 lws_ev_sigint_cfg(struct lws_context *context, int use_ev_sigint,
    2868  lws_ev_signal_cb_t *cb);
    2869 
    2870 LWS_VISIBLE LWS_EXTERN int
    2871 lws_ev_initloop(struct lws_context *context, struct ev_loop *loop, int tsi);
    2872 
    2873 LWS_VISIBLE LWS_EXTERN void
    2874 lws_ev_sigint_cb(struct ev_loop *loop, struct ev_signal *watcher, int revents);
    2875 #endif /* LWS_USE_LIBEV */
    2876 
    2878 
    2885 #ifdef LWS_USE_LIBUV
    2887 LWS_VISIBLE LWS_EXTERN int
    2888 lws_uv_sigint_cfg(struct lws_context *context, int use_uv_sigint,
    2889  uv_signal_cb cb);
    2890 
    2891 LWS_VISIBLE LWS_EXTERN void
    2892 lws_libuv_run(const struct lws_context *context, int tsi);
    2893 
    2894 LWS_VISIBLE LWS_EXTERN void
    2895 lws_libuv_stop(struct lws_context *context);
    2896 
    2897 LWS_VISIBLE LWS_EXTERN int
    2898 lws_uv_initloop(struct lws_context *context, uv_loop_t *loop, int tsi);
    2899 
    2900 LWS_VISIBLE LWS_EXTERN uv_loop_t *
    2901 lws_uv_getloop(struct lws_context *context, int tsi);
    2902 
    2903 LWS_VISIBLE LWS_EXTERN void
    2904 lws_uv_sigint_cb(uv_signal_t *watcher, int signum);
    2905 #endif /* LWS_USE_LIBUV */
    2906 
    2913 
    2914 /*
    2915  * NOTE: These public enums are part of the abi. If you want to add one,
    2916  * add it at where specified so existing users are unaffected.
    2917  */
    2918 enum pending_timeout {
    2919  NO_PENDING_TIMEOUT = 0,
    2920  PENDING_TIMEOUT_AWAITING_PROXY_RESPONSE = 1,
    2921  PENDING_TIMEOUT_AWAITING_CONNECT_RESPONSE = 2,
    2922  PENDING_TIMEOUT_ESTABLISH_WITH_SERVER = 3,
    2923  PENDING_TIMEOUT_AWAITING_SERVER_RESPONSE = 4,
    2924  PENDING_TIMEOUT_AWAITING_PING = 5,
    2925  PENDING_TIMEOUT_CLOSE_ACK = 6,
    2926  PENDING_TIMEOUT_AWAITING_EXTENSION_CONNECT_RESPONSE = 7,
    2927  PENDING_TIMEOUT_SENT_CLIENT_HANDSHAKE = 8,
    2928  PENDING_TIMEOUT_SSL_ACCEPT = 9,
    2929  PENDING_TIMEOUT_HTTP_CONTENT = 10,
    2930  PENDING_TIMEOUT_AWAITING_CLIENT_HS_SEND = 11,
    2931  PENDING_FLUSH_STORED_SEND_BEFORE_CLOSE = 12,
    2932  PENDING_TIMEOUT_SHUTDOWN_FLUSH = 13,
    2933  PENDING_TIMEOUT_CGI = 14,
    2934  PENDING_TIMEOUT_HTTP_KEEPALIVE_IDLE = 15,
    2935 
    2936  /****** add new things just above ---^ ******/
    2937 };
    2938 
    2948 LWS_VISIBLE LWS_EXTERN void
    2949 lws_set_timeout(struct lws *wsi, enum pending_timeout reason, int secs);
    2951 
    2957 #if !defined(LWS_SIZEOFPTR)
    2958 #define LWS_SIZEOFPTR (sizeof (void *))
    2959 #endif
    2960 #if !defined(u_int64_t)
    2961 #define u_int64_t unsigned long long
    2962 #endif
    2963 
    2964 #if defined(__x86_64__)
    2965 #define _LWS_PAD_SIZE 16 /* Intel recommended for best performance */
    2966 #else
    2967 #define _LWS_PAD_SIZE LWS_SIZEOFPTR /* Size of a pointer on the target arch */
    2968 #endif
    2969 #define _LWS_PAD(n) (((n) % _LWS_PAD_SIZE) ? \
    2970  ((n) + (_LWS_PAD_SIZE - ((n) % _LWS_PAD_SIZE))) : (n))
    2971 #define LWS_PRE _LWS_PAD(4 + 10)
    2972 /* used prior to 1.7 and retained for backward compatibility */
    2973 #define LWS_SEND_BUFFER_PRE_PADDING LWS_PRE
    2974 #define LWS_SEND_BUFFER_POST_PADDING 0
    2975 
    2976 /*
    2977  * NOTE: These public enums are part of the abi. If you want to add one,
    2978  * add it at where specified so existing users are unaffected.
    2979  */
    2994  /* LWS_WRITE_CLOSE is handled by lws_close_reason() */
    2995  LWS_WRITE_PING = 5,
    2996  LWS_WRITE_PONG = 6,
    2997 
    2998  /* Same as write_http but we know this write ends the transaction */
    2999  LWS_WRITE_HTTP_FINAL = 7,
    3000 
    3001  /* HTTP2 */
    3002 
    3010  /****** add new things just above ---^ ******/
    3011 
    3012  /* flags */
    3013 
    3021 };
    3022 
    3023 
    3095 LWS_VISIBLE LWS_EXTERN int
    3096 lws_write(struct lws *wsi, unsigned char *buf, size_t len,
    3097  enum lws_write_protocol protocol);
    3098 
    3099 /* helper for case where buffer may be const */
    3100 #define lws_write_http(wsi, buf, len) \
    3101  lws_write(wsi, (unsigned char *)(buf), len, LWS_WRITE_HTTP)
    3102 
    3104 
    3123 
    3136 LWS_VISIBLE LWS_EXTERN int
    3137 lws_callback_on_writable(struct lws *wsi);
    3138 
    3152 LWS_VISIBLE LWS_EXTERN int
    3153 lws_callback_on_writable_all_protocol(const struct lws_context *context,
    3154  const struct lws_protocols *protocol);
    3155 
    3169 LWS_VISIBLE LWS_EXTERN int
    3170 lws_callback_on_writable_all_protocol_vhost(const struct lws_vhost *vhost,
    3171  const struct lws_protocols *protocol);
    3172 
    3185 LWS_VISIBLE LWS_EXTERN int
    3186 lws_callback_all_protocol(struct lws_context *context,
    3187  const struct lws_protocols *protocol, int reason);
    3188 
    3201 LWS_VISIBLE LWS_EXTERN int
    3202 lws_callback_all_protocol_vhost(struct lws_vhost *vh,
    3203  const struct lws_protocols *protocol, int reason);
    3204 
    3218 LWS_VISIBLE LWS_EXTERN int
    3219 lws_callback_vhost_protocols(struct lws *wsi, int reason, void *in, int len);
    3220 
    3228 LWS_VISIBLE LWS_EXTERN int
    3229 lws_get_socket_fd(struct lws *wsi);
    3230 
    3252 LWS_VISIBLE LWS_EXTERN size_t
    3253 lws_get_peer_write_allowance(struct lws *wsi);
    3255 
    3266 LWS_VISIBLE LWS_EXTERN int
    3267 lws_rx_flow_control(struct lws *wsi, int enable);
    3268 
    3278 LWS_VISIBLE LWS_EXTERN void
    3279 lws_rx_flow_allow_all_protocol(const struct lws_context *context,
    3280  const struct lws_protocols *protocol);
    3281 
    3298 LWS_VISIBLE LWS_EXTERN size_t
    3299 lws_remaining_packet_payload(struct lws *wsi);
    3300 
    3301 
    3310 
    3323 LWS_VISIBLE LWS_EXTERN struct lws *
    3324 lws_adopt_socket(struct lws_context *context, lws_sockfd_type accept_fd);
    3347 LWS_VISIBLE LWS_EXTERN struct lws *
    3348 lws_adopt_socket_readbuf(struct lws_context *context, lws_sockfd_type accept_fd,
    3349  const char *readbuf, size_t len);
    3351 
    3357 
    3368 LWS_VISIBLE LWS_EXTERN const char * LWS_WARN_UNUSED_RESULT
    3369 lws_canonical_hostname(struct lws_context *context);
    3370 
    3385 LWS_VISIBLE LWS_EXTERN void
    3386 lws_get_peer_addresses(struct lws *wsi, lws_sockfd_type fd, char *name,
    3387  int name_len, char *rip, int rip_len);
    3388 
    3399 LWS_VISIBLE LWS_EXTERN const char *
    3400 lws_get_peer_simple(struct lws *wsi, char *name, int namelen);
    3401 
    3413 LWS_VISIBLE LWS_EXTERN int
    3414 lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr,
    3415  size_t addrlen);
    3417 
    3423 
    3436 LWS_VISIBLE LWS_EXTERN int
    3437 lws_get_random(struct lws_context *context, void *buf, int len);
    3445 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    3446 lws_daemonize(const char *_lock_path);
    3452 LWS_VISIBLE LWS_EXTERN const char * LWS_WARN_UNUSED_RESULT
    3454 
    3461 LWS_VISIBLE LWS_EXTERN void *
    3462 lws_wsi_user(struct lws *wsi);
    3463 
    3475 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    3476 lws_parse_uri(char *p, const char **prot, const char **ads, int *port,
    3477  const char **path);
    3478 
    3482 LWS_VISIBLE LWS_EXTERN unsigned long
    3483 lws_now_secs(void);
    3484 
    3494 LWS_VISIBLE LWS_EXTERN struct lws_context * LWS_WARN_UNUSED_RESULT
    3495 lws_get_context(const struct lws *wsi);
    3496 
    3506 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    3507 lws_get_count_threads(struct lws_context *context);
    3508 
    3516 LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT
    3517 lws_get_parent(const struct lws *wsi);
    3518 
    3525 LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT
    3526 lws_get_child(const struct lws *wsi);
    3527 
    3528 
    3529 /*
    3530  * \deprecated DEPRECATED Note: this is not normally needed as a user api.
    3531  * It's provided in case it is
    3532  * useful when integrating with other app poll loop service code.
    3533  */
    3534 LWS_VISIBLE LWS_EXTERN int
    3535 lws_read(struct lws *wsi, unsigned char *buf, size_t len);
    3536 
    3544 LWS_VISIBLE LWS_EXTERN void
    3545 lws_set_allocator(void *(*realloc)(void *ptr, size_t size));
    3547 
    3553 
    3560 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    3561 lws_send_pipe_choked(struct lws *wsi);
    3562 
    3567 LWS_VISIBLE LWS_EXTERN int
    3568 lws_is_final_fragment(struct lws *wsi);
    3569 
    3574 LWS_VISIBLE LWS_EXTERN unsigned char
    3575 lws_get_reserved_bits(struct lws *wsi);
    3576 
    3593 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    3594 lws_partial_buffered(struct lws *wsi);
    3595 
    3605 LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
    3606 lws_frame_is_binary(struct lws *wsi);
    3607 
    3616 LWS_VISIBLE LWS_EXTERN int
    3617 lws_is_ssl(struct lws *wsi);
    3622 LWS_VISIBLE LWS_EXTERN int
    3623 lws_is_cgi(struct lws *wsi);
    3625 
    3626 
    3632 #ifdef LWS_SHA1_USE_OPENSSL_NAME
    3634 #define lws_SHA1 SHA1
    3635 #else
    3636 
    3645 LWS_VISIBLE LWS_EXTERN unsigned char *
    3646 lws_SHA1(const unsigned char *d, size_t n, unsigned char *md);
    3647 #endif
    3648 
    3658 LWS_VISIBLE LWS_EXTERN int
    3659 lws_b64_encode_string(const char *in, int in_len, char *out, int out_size);
    3669 LWS_VISIBLE LWS_EXTERN int
    3670 lws_b64_decode_string(const char *in, char *out, int out_size);
    3672 
    3673 
    3683 #ifdef LWS_WITH_CGI
    3684 enum lws_enum_stdinouterr {
    3685  LWS_STDIN = 0,
    3686  LWS_STDOUT = 1,
    3687  LWS_STDERR = 2,
    3688 };
    3689 
    3690 enum lws_cgi_hdr_state {
    3691  LCHS_HEADER,
    3692  LCHS_CR1,
    3693  LCHS_LF1,
    3694  LCHS_CR2,
    3695  LCHS_LF2,
    3696  LHCS_PAYLOAD,
    3697  LCHS_SINGLE_0A,
    3698 };
    3699 
    3701  struct lws **stdwsi;
    3702  enum lws_enum_stdinouterr ch;
    3703  unsigned char *data;
    3704  enum lws_cgi_hdr_state hdr_state;
    3705  int len;
    3706 };
    3707 
    3708 
    3718 LWS_VISIBLE LWS_EXTERN int
    3719 lws_cgi(struct lws *wsi, const char * const *exec_array,
    3720  int script_uri_path_len, int timeout_secs,
    3721  const struct lws_protocol_vhost_options *mp_cgienv);
    3722 
    3728 LWS_VISIBLE LWS_EXTERN int
    3729 lws_cgi_write_split_stdout_headers(struct lws *wsi);
    3730 
    3736 LWS_VISIBLE LWS_EXTERN int
    3737 lws_cgi_kill(struct lws *wsi);
    3738 #endif
    3739 
    3741 
    3758 
    3765  lws_filefd_type (*open)(struct lws *wsi, const char *filename,
    3766  unsigned long *filelen, int flags);
    3770  int (*close)(struct lws *wsi, lws_filefd_type fd);
    3772  unsigned long (*seek_cur)(struct lws *wsi, lws_filefd_type fd,
    3773  long offset_from_cur_pos);
    3775  int (*read)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount,
    3776  unsigned char *buf, unsigned long len);
    3778  int (*write)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount,
    3779  unsigned char *buf, unsigned long len);
    3782  /* Add new things just above here ---^
    3783  * This is part of the ABI, don't needlessly break compatibility */
    3784 };
    3785 
    3791 LWS_VISIBLE LWS_EXTERN struct lws_plat_file_ops * LWS_WARN_UNUSED_RESULT
    3792 lws_get_fops(struct lws_context *context);
    3793 
    3802 static LWS_INLINE lws_filefd_type LWS_WARN_UNUSED_RESULT
    3803 lws_plat_file_open(struct lws *wsi, const char *filename,
    3804  unsigned long *filelen, int flags)
    3805 {
    3806  return lws_get_fops(lws_get_context(wsi))->open(wsi, filename,
    3807  filelen, flags);
    3808 }
    3809 
    3816 static LWS_INLINE int
    3817 lws_plat_file_close(struct lws *wsi, lws_filefd_type fd)
    3818 {
    3819  return lws_get_fops(lws_get_context(wsi))->close(wsi, fd);
    3820 }
    3821 
    3829 static LWS_INLINE unsigned long
    3830 lws_plat_file_seek_cur(struct lws *wsi, lws_filefd_type fd, long offset)
    3831 {
    3832  return lws_get_fops(lws_get_context(wsi))->seek_cur(wsi, fd, offset);
    3833 }
    3843 static LWS_INLINE int LWS_WARN_UNUSED_RESULT
    3844 lws_plat_file_read(struct lws *wsi, lws_filefd_type fd, unsigned long *amount,
    3845  unsigned char *buf, unsigned long len)
    3846 {
    3847  return lws_get_fops(lws_get_context(wsi))->read(wsi, fd, amount, buf,
    3848  len);
    3849 }
    3859 static LWS_INLINE int LWS_WARN_UNUSED_RESULT
    3860 lws_plat_file_write(struct lws *wsi, lws_filefd_type fd, unsigned long *amount,
    3861  unsigned char *buf, unsigned long len)
    3862 {
    3863  return lws_get_fops(lws_get_context(wsi))->write(wsi, fd, amount, buf,
    3864  len);
    3865 }
    3867 
    3899 #ifdef LWS_WITH_SMTP
    3900 
    3912 };
    3913 
    3915 struct lws_email {
    3916  void *data;
    3918  uv_loop_t *loop;
    3921  char email_smtp_ip[32];
    3922  char email_helo[32];
    3923  char email_from[100];
    3924  char email_to[100];
    3926  unsigned int max_content_size;
    3929  /* Fill all the callbacks before init */
    3930 
    3931  int (*on_next)(struct lws_email *email);
    3936  int (*on_sent)(struct lws_email *email);
    3941  int (*on_get_body)(struct lws_email *email, char *buf, int len);
    3947  /* private things */
    3948  uv_timer_t timeout_email;
    3950  uv_connect_t email_connect_req;
    3951  uv_tcp_t email_client;
    3953  char email_buf[256];
    3954  char *content;
    3955 };
    3956 
    3966 LWS_VISIBLE LWS_EXTERN int
    3967 lws_email_init(struct lws_email *email, uv_loop_t *loop, int max_content);
    3968 
    3977 LWS_VISIBLE LWS_EXTERN void
    3978 lws_email_check(struct lws_email *email);
    3986 LWS_VISIBLE LWS_EXTERN void
    3987 lws_email_destroy(struct lws_email *email);
    3988 
    3989 #endif
    3990 
    3991 
    3992 #ifdef __cplusplus
    3993 }
    3994 #endif
    3995 
    3996 #endif
    LWS_VISIBLE LWS_EXTERN int lws_spa_destroy(struct lws_spa *spa)
    LWS_VISIBLE LWS_EXTERN const char * lws_json_purify(char *escaped, const char *string, int len)
    -
    Definition: libwebsockets.h:3695
    -
    size_t rx_buffer_size
    Definition: libwebsockets.h:1194
    +
    Definition: libwebsockets.h:3700
    +
    size_t rx_buffer_size
    Definition: libwebsockets.h:1199
    LWS_VISIBLE LWS_EXTERN struct lws_spa * lws_spa_create(struct lws *wsi, const char *const *param_names, int count_params, int max_storage, lws_spa_fileupload_cb opt_cb, void *opt_data)
    LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_vhost_get(struct lws *wsi) LWS_WARN_DEPRECATED
    Definition: libwebsockets.h:684
    Definition: libwebsockets.h:812
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_daemonize(const char *_lock_path)
    -
    Definition: libwebsockets.h:1794
    -
    Definition: libwebsockets.h:2986
    -
    Definition: libwebsockets.h:3900
    +
    Definition: libwebsockets.h:1799
    +
    Definition: libwebsockets.h:2991
    +
    Definition: libwebsockets.h:3905
    LWS_VISIBLE LWS_EXTERN struct lws * lws_adopt_socket_readbuf(struct lws_context *context, lws_sockfd_type accept_fd, const char *readbuf, size_t len)
    Definition: libwebsockets.h:234
    -
    unsigned int auth_mask
    Definition: libwebsockets.h:1829
    -
    Definition: libwebsockets.h:3009
    -
    void * data
    Definition: libwebsockets.h:3911
    -
    const char * uri_replace_from
    Definition: libwebsockets.h:1893
    -
    int(* write)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, unsigned char *buf, unsigned long len)
    Definition: libwebsockets.h:3773
    +
    unsigned int auth_mask
    Definition: libwebsockets.h:1834
    +
    Definition: libwebsockets.h:3014
    +
    void * data
    Definition: libwebsockets.h:3916
    +
    const char * uri_replace_from
    Definition: libwebsockets.h:1898
    +
    int(* write)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, unsigned char *buf, unsigned long len)
    Definition: libwebsockets.h:3778
    lws_callback_reasons
    Definition: libwebsockets.h:577
    LWS_VISIBLE LWS_EXTERN int lws_hdr_copy_fragment(struct lws *wsi, char *dest, int len, enum lws_token_indexes h, int frag_idx)
    -
    lwsgs_auth_bits
    Definition: libwebsockets.h:1339
    +
    lwsgs_auth_bits
    Definition: libwebsockets.h:1344
    LWS_VISIBLE LWS_EXTERN void lws_close_reason(struct lws *wsi, enum lws_close_status status, unsigned char *buf, size_t len)
    LWS_VISIBLE LWS_EXTERN void lws_email_destroy(struct lws_email *email)
    LWS_VISIBLE LWS_EXTERN int lws_urldecode(char *string, const char *escaped, int len)
    Definition: libwebsockets.h:810
    -
    Definition: libwebsockets.h:998
    -
    unsigned int id
    Definition: libwebsockets.h:1203
    +
    Definition: libwebsockets.h:1003
    +
    unsigned int id
    Definition: libwebsockets.h:1208
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_hdr_total_length(struct lws *wsi, enum lws_token_indexes h)
    -
    Definition: libwebsockets.h:996
    +
    Definition: libwebsockets.h:1001
    Definition: libwebsockets.h:715
    LWS_VISIBLE LWS_EXTERN int lws_service_fd_tsi(struct lws_context *context, struct lws_pollfd *pollfd, int tsi)
    LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT lws_get_parent(const struct lws *wsi)
    LWS_VISIBLE LWS_EXTERN size_t lws_get_peer_write_allowance(struct lws *wsi)
    Definition: libwebsockets.h:661
    LWS_VISIBLE LWS_EXTERN const char *LWS_WARN_UNUSED_RESULT lws_get_library_version(void)
    -
    int(* on_sent)(struct lws_email *email)
    Definition: libwebsockets.h:3931
    -
    Definition: libwebsockets.h:1334
    -
    struct lws ** pwsi
    Definition: libwebsockets.h:1900
    +
    int(* on_sent)(struct lws_email *email)
    Definition: libwebsockets.h:3936
    +
    Definition: libwebsockets.h:1339
    +
    struct lws ** pwsi
    Definition: libwebsockets.h:1905
    Definition: libwebsockets.h:695
    -
    const char * path
    Definition: libwebsockets.h:1872
    +
    const char * path
    Definition: libwebsockets.h:1877
    LWS_VISIBLE LWS_EXTERN size_t lws_remaining_packet_payload(struct lws *wsi)
    Definition: libwebsockets.h:496
    -
    Definition: libwebsockets.h:1290
    +
    Definition: libwebsockets.h:1295
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_ext_parse_options(const struct lws_extension *ext, struct lws *wsi, void *ext_user, const struct lws_ext_options *opts, const char *o, int len)
    -
    time_t email_connect_started
    Definition: libwebsockets.h:3947
    +
    time_t email_connect_started
    Definition: libwebsockets.h:3952
    lws_close_status
    Definition: libwebsockets.h:467
    LWS_VISIBLE LWS_EXTERN int lws_callback_all_protocol(struct lws_context *context, const struct lws_protocols *protocol, int reason)
    Definition: libwebsockets.h:507
    - -
    int token_len
    Definition: libwebsockets.h:2318
    -
    const struct lws_http_mount * mounts
    Definition: libwebsockets.h:1569
    + +
    int token_len
    Definition: libwebsockets.h:2323
    +
    const struct lws_http_mount * mounts
    Definition: libwebsockets.h:1574
    Definition: libwebsockets.h:836
    LWS_VISIBLE LWS_EXTERN struct lws_context *LWS_WARN_UNUSED_RESULT lws_get_context(const struct lws *wsi)
    -
    const char * value
    Definition: libwebsockets.h:1783
    -
    Definition: libwebsockets.h:2637
    -
    Definition: libwebsockets.h:3905
    -
    const char * username
    Definition: libwebsockets.h:1365
    +
    const char * value
    Definition: libwebsockets.h:1788
    +
    Definition: libwebsockets.h:2642
    +
    Definition: libwebsockets.h:3910
    +
    const char * username
    Definition: libwebsockets.h:1370
    LWS_VISIBLE LWS_EXTERN struct lws * lws_client_connect_via_info(struct lws_client_connect_info *ccinfo)
    -
    const char * protocol
    Definition: libwebsockets.h:1813
    -
    struct lws ** stdwsi
    Definition: libwebsockets.h:3696
    +
    const char * protocol
    Definition: libwebsockets.h:1818
    +
    struct lws ** stdwsi
    Definition: libwebsockets.h:3701
    LWS_VISIBLE LWS_EXTERN int lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len)
    Definition: libwebsockets.h:782
    LWS_VISIBLE LWS_EXTERN const char * lws_get_mimetype(const char *file, const struct lws_http_mount *m)
    -
    Definition: libwebsockets.h:1336
    -
    int cache_max_age
    Definition: libwebsockets.h:1827
    -
    long ssl_options_clear
    Definition: libwebsockets.h:1587
    +
    Definition: libwebsockets.h:1341
    +
    int cache_max_age
    Definition: libwebsockets.h:1832
    +
    long ssl_options_clear
    Definition: libwebsockets.h:1592
    Definition: libwebsockets.h:675
    -
    Definition: libwebsockets.h:1455
    +
    Definition: libwebsockets.h:1460
    LWS_VISIBLE LWS_EXTERN void lws_context_destroy(struct lws_context *context)
    Definition: libwebsockets.h:523
    -
    char * start
    Definition: libwebsockets.h:2257
    +
    char * start
    Definition: libwebsockets.h:2262
    LWS_VISIBLE LWS_EXTERN void lws_set_allocator(void *(*realloc)(void *ptr, size_t size))
    -
    lws_callback_function * callback
    Definition: libwebsockets.h:1185
    -
    Definition: libwebsockets.h:2976
    +
    lws_callback_function * callback
    Definition: libwebsockets.h:1190
    +
    Definition: libwebsockets.h:2981
    LWS_VISIBLE LWS_EXTERN int lws_get_socket_fd(struct lws *wsi)
    Definition: libwebsockets.h:873
    -
    const char * protocol
    Definition: libwebsockets.h:1878
    +
    const char * protocol
    Definition: libwebsockets.h:1883
    Definition: libwebsockets.h:862
    -
    unsigned int pt_serv_buf_size
    Definition: libwebsockets.h:1574
    +
    unsigned int pt_serv_buf_size
    Definition: libwebsockets.h:1579
    LWS_VISIBLE LWS_EXTERN struct lws * lws_adopt_socket(struct lws_context *context, lws_sockfd_type accept_fd)
    -
    int len
    Definition: libwebsockets.h:2249
    -
    int ka_time
    Definition: libwebsockets.h:1510
    -
    Definition: libwebsockets.h:1410
    +
    int len
    Definition: libwebsockets.h:2254
    +
    int ka_time
    Definition: libwebsockets.h:1515
    +
    Definition: libwebsockets.h:1415
    LWS_VISIBLE LWS_EXTERN int lws_callback_on_writable_all_protocol(const struct lws_context *context, const struct lws_protocols *protocol)
    LWS_VISIBLE LWS_EXTERN void lws_set_log_level(int level, void(*log_emit_function)(int level, const char *line))
    -
    int count_extensions
    Definition: libwebsockets.h:1295
    -
    Definition: libwebsockets.h:2980
    -
    int port
    Definition: libwebsockets.h:1868
    -
    struct lws_context * context
    Definition: libwebsockets.h:1864
    -
    Definition: libwebsockets.h:1342
    -
    int ietf_version_or_minus_one
    Definition: libwebsockets.h:1880
    +
    int count_extensions
    Definition: libwebsockets.h:1300
    +
    Definition: libwebsockets.h:2985
    +
    int port
    Definition: libwebsockets.h:1873
    +
    struct lws_context * context
    Definition: libwebsockets.h:1869
    +
    Definition: libwebsockets.h:1347
    +
    int ietf_version_or_minus_one
    Definition: libwebsockets.h:1885
    LWS_VISIBLE LWS_EXTERN int lws_callback_all_protocol_vhost(struct lws_vhost *vh, const struct lws_protocols *protocol, int reason)
    -
    Definition: libwebsockets.h:3898
    -
    Definition: libwebsockets.h:1779
    +
    Definition: libwebsockets.h:3903
    +
    Definition: libwebsockets.h:1784
    LWS_VISIBLE LWS_EXTERN int lws_callback_on_writable(struct lws *wsi)
    -
    const char *const * vars
    Definition: libwebsockets.h:2261
    +
    const char *const * vars
    Definition: libwebsockets.h:2266
    Definition: libwebsockets.h:475
    -
    Definition: libwebsockets.h:1863
    -
    int lws_extension_callback_function(struct lws_context *context, const struct lws_extension *ext, struct lws *wsi, enum lws_extension_callback_reasons reason, void *user, void *in, size_t len)
    Definition: libwebsockets.h:1085
    +
    Definition: libwebsockets.h:1868
    +
    int lws_extension_callback_function(struct lws_context *context, const struct lws_extension *ext, struct lws *wsi, enum lws_extension_callback_reasons reason, void *user, void *in, size_t len)
    Definition: libwebsockets.h:1090
    -
    int len
    Definition: libwebsockets.h:1021
    -
    Definition: libwebsockets.h:1804
    -
    const char * def
    Definition: libwebsockets.h:1811
    +
    int len
    Definition: libwebsockets.h:1026
    +
    Definition: libwebsockets.h:1809
    +
    const char * def
    Definition: libwebsockets.h:1816
    Definition: libwebsockets.h:636
    -
    Definition: libwebsockets.h:1422
    -
    lws_context_options
    Definition: libwebsockets.h:1393
    +
    Definition: libwebsockets.h:1427
    +
    lws_context_options
    Definition: libwebsockets.h:1398
    Definition: libwebsockets.h:814
    -
    Definition: libwebsockets.h:1359
    -
    Definition: libwebsockets.h:1428
    +
    Definition: libwebsockets.h:1364
    +
    Definition: libwebsockets.h:1433
    Definition: libwebsockets.h:802
    -
    const char * option_name
    Definition: libwebsockets.h:1018
    -
    Definition: libwebsockets.h:1792
    +
    const char * option_name
    Definition: libwebsockets.h:1023
    +
    Definition: libwebsockets.h:1797
    lws_sockfd_type fd
    Definition: libwebsockets.h:445
    -
    const char * ssl_private_key_password
    Definition: libwebsockets.h:1478
    +
    const char * ssl_private_key_password
    Definition: libwebsockets.h:1483
    short events
    Definition: libwebsockets.h:414
    -
    Definition: libwebsockets.h:1303
    -
    const struct lws_extension * extensions
    Definition: libwebsockets.h:1294
    +
    Definition: libwebsockets.h:1308
    +
    const struct lws_extension * extensions
    Definition: libwebsockets.h:1299
    LWS_VISIBLE LWS_EXTERN void lws_set_timeout(struct lws *wsi, enum pending_timeout reason, int secs)
    -
    void * userdata
    Definition: libwebsockets.h:1882
    +
    void * userdata
    Definition: libwebsockets.h:1887
    Definition: libwebsockets.h:633
    Definition: libwebsockets.h:820
    LWS_VISIBLE LWS_EXTERN int lws_service_tsi(struct lws_context *context, int timeout_ms, int tsi)
    -
    unsigned char * data
    Definition: libwebsockets.h:3698
    -
    const struct lws_protocol_vhost_options * extra_mimetypes
    Definition: libwebsockets.h:1820
    +
    unsigned char * data
    Definition: libwebsockets.h:3703
    +
    const struct lws_protocol_vhost_options * extra_mimetypes
    Definition: libwebsockets.h:1825
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_finalize_http_header(struct lws *wsi, unsigned char **p, unsigned char *end)
    Definition: libwebsockets.h:626
    LWS_VISIBLE LWS_EXTERN const char * lws_urlencode(char *escaped, const char *string, int len)
    Definition: libwebsockets.h:707
    -
    uv_loop_t * loop
    Definition: libwebsockets.h:3913
    +
    uv_loop_t * loop
    Definition: libwebsockets.h:3918
    Definition: libwebsockets.h:805
    Definition: libwebsockets.h:72
    -
    Definition: libwebsockets.h:3012
    -
    int pos
    Definition: libwebsockets.h:2259
    -
    struct lws_plugin * list
    Definition: libwebsockets.h:1304
    +
    Definition: libwebsockets.h:3017
    +
    int pos
    Definition: libwebsockets.h:2264
    +
    struct lws_plugin * list
    Definition: libwebsockets.h:1309
    LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT lws_client_connect_extended(struct lws_context *clients, const char *address, int port, int ssl_connection, const char *path, const char *host, const char *origin, const char *protocol, int ietf_version_or_minus_one, void *userdata) LWS_WARN_DEPRECATED
    -
    short max_http_header_data
    Definition: libwebsockets.h:1530
    +
    short max_http_header_data
    Definition: libwebsockets.h:1535
    LWS_VISIBLE LWS_EXTERN int lws_spa_process(struct lws_spa *spa, const char *in, int len)
    -
    void * provided_client_ssl_ctx
    Definition: libwebsockets.h:1527
    +
    void * provided_client_ssl_ctx
    Definition: libwebsockets.h:1532
    LWS_VISIBLE LWS_EXTERN struct lws_vhost * lws_get_vhost(struct lws *wsi)
    Definition: libwebsockets.h:44
    LWS_VISIBLE LWS_EXTERN void lwsl_emit_syslog(int level, const char *line)
    -
    const struct lws_protocols * protocols
    Definition: libwebsockets.h:1292
    -
    Definition: libwebsockets.h:997
    -
    int ka_probes
    Definition: libwebsockets.h:1513
    +
    const struct lws_protocols * protocols
    Definition: libwebsockets.h:1297
    +
    Definition: libwebsockets.h:1002
    +
    int ka_probes
    Definition: libwebsockets.h:1518
    void onError(Socket *s, socket_error_t err)
    -
    const char * origin
    Definition: libwebsockets.h:1876
    +
    const char * origin
    Definition: libwebsockets.h:1881
    SHORT revents
    Definition: libwebsockets.h:400
    -
    const char * method
    Definition: libwebsockets.h:1886
    +
    const char * method
    Definition: libwebsockets.h:1891
    LWS_VISIBLE LWS_EXTERN const char * lws_spa_get_string(struct lws_spa *spa, int n)
    -
    Definition: libwebsockets.h:1091
    +
    Definition: libwebsockets.h:1096
    LWS_VISIBLE LWS_EXTERN int lws_callback_on_writable_all_protocol_vhost(const struct lws_vhost *vhost, const struct lws_protocols *protocol)
    Definition: libwebsockets.h:842
    -
    const struct lws_extension * client_exts
    Definition: libwebsockets.h:1884
    -
    unsigned char origin_protocol
    Definition: libwebsockets.h:1836
    -
    const char * log_filepath
    Definition: libwebsockets.h:1566
    +
    const struct lws_extension * client_exts
    Definition: libwebsockets.h:1889
    +
    unsigned char origin_protocol
    Definition: libwebsockets.h:1841
    +
    const char * log_filepath
    Definition: libwebsockets.h:1571
    Definition: libwebsockets.h:682
    -
    unsigned int max_content_size
    Definition: libwebsockets.h:3921
    -
    int option_index
    Definition: libwebsockets.h:1019
    +
    unsigned int max_content_size
    Definition: libwebsockets.h:3926
    +
    int option_index
    Definition: libwebsockets.h:1024
    LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT lws_get_child(const struct lws *wsi)
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_by_token(struct lws *wsi, enum lws_token_indexes token, const unsigned char *value, int length, unsigned char **p, unsigned char *end)
    Definition: libwebsockets.h:678
    -
    const char * uri_replace_to
    Definition: libwebsockets.h:1896
    -
    struct lws * parent_wsi
    Definition: libwebsockets.h:1889
    +
    const char * uri_replace_to
    Definition: libwebsockets.h:1901
    +
    struct lws * parent_wsi
    Definition: libwebsockets.h:1894
    LWS_VISIBLE LWS_EXTERN int lws_b64_decode_string(const char *in, char *out, int out_size)
    -
    enum lwsgs_smtp_states estate
    Definition: libwebsockets.h:3944
    +
    enum lwsgs_smtp_states estate
    Definition: libwebsockets.h:3949
    LWS_VISIBLE LWS_EXTERN int lws_spa_finalize(struct lws_spa *spa)
    Definition: libwebsockets.h:578
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_get_count_threads(struct lws_context *context)
    -
    const char *const * plugin_dirs
    Definition: libwebsockets.h:1557
    -
    char name[64]
    Definition: libwebsockets.h:1310
    +
    const char *const * plugin_dirs
    Definition: libwebsockets.h:1562
    +
    char name[64]
    Definition: libwebsockets.h:1315
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_hdr_fragment_length(struct lws *wsi, enum lws_token_indexes h, int frag_idx)
    LWS_VISIBLE LWS_EXTERN int lws_cgi_kill(struct lws *wsi)
    -
    char email_buf[256]
    Definition: libwebsockets.h:3948
    +
    char email_buf[256]
    Definition: libwebsockets.h:3953
    LWS_VISIBLE LWS_EXTERN int lws_is_ssl(struct lws *wsi)
    -
    Definition: libwebsockets.h:1399
    -
    int(* close)(struct lws *wsi, lws_filefd_type fd)
    Definition: libwebsockets.h:3765
    -
    uv_lib_t lib
    Definition: libwebsockets.h:1306
    +
    Definition: libwebsockets.h:1404
    +
    int(* close)(struct lws *wsi, lws_filefd_type fd)
    Definition: libwebsockets.h:3770
    +
    uv_lib_t lib
    Definition: libwebsockets.h:1311
    x509_crt certificate
    Definition: libwebsockets.h:236
    LWS_VISIBLE LWS_EXTERN void lws_get_peer_addresses(struct lws *wsi, lws_sockfd_type fd, char *name, int name_len, char *rip, int rip_len)
    -
    Definition: libwebsockets.h:3899
    +
    Definition: libwebsockets.h:3904
    LWS_VISIBLE LWS_EXTERN int lws_is_cgi(struct lws *wsi)
    -
    int ssl_connection
    Definition: libwebsockets.h:1870
    -
    Definition: libwebsockets.h:1358
    -
    SSL_CTX * provided_client_ssl_ctx
    Definition: libwebsockets.h:1521
    +
    int ssl_connection
    Definition: libwebsockets.h:1875
    +
    Definition: libwebsockets.h:1363
    +
    SSL_CTX * provided_client_ssl_ctx
    Definition: libwebsockets.h:1526
    LWS_VISIBLE LWS_EXTERN int lws_rx_flow_control(struct lws *wsi, int enable)
    -
    Definition: libwebsockets.h:2247
    +
    Definition: libwebsockets.h:2252
    LWS_VISIBLE LWS_EXTERN struct lws_plat_file_ops *LWS_WARN_UNUSED_RESULT lws_get_fops(struct lws_context *context)
    Definition: libwebsockets.h:444
    -
    const struct lws_protocol_vhost_options * cgienv
    Definition: libwebsockets.h:1816
    -
    const char * name
    Definition: libwebsockets.h:1782
    -
    unsigned char mountpoint_len
    Definition: libwebsockets.h:1837
    -
    Definition: libwebsockets.h:2983
    -
    Definition: libwebsockets.h:1417
    +
    const struct lws_protocol_vhost_options * cgienv
    Definition: libwebsockets.h:1821
    +
    const char * name
    Definition: libwebsockets.h:1787
    +
    unsigned char mountpoint_len
    Definition: libwebsockets.h:1842
    +
    Definition: libwebsockets.h:2988
    +
    Definition: libwebsockets.h:1422
    lws_sockfd_type fd
    Definition: libwebsockets.h:398
    -
    Definition: libwebsockets.h:1793
    +
    Definition: libwebsockets.h:1798
    LWS_VISIBLE LWS_EXTERN int lws_is_final_fragment(struct lws *wsi)
    -
    const struct lws_extension * extensions
    Definition: libwebsockets.h:1472
    -
    Definition: libwebsockets.h:1401
    +
    const struct lws_extension * extensions
    Definition: libwebsockets.h:1477
    +
    Definition: libwebsockets.h:1406
    LWS_VISIBLE LWS_EXTERN void * lws_protocol_vh_priv_zalloc(struct lws_vhost *vhost, const struct lws_protocols *prot, int size)
    -
    Definition: libwebsockets.h:1406
    -
    lws_ext_options_types
    Definition: libwebsockets.h:995
    -
    const struct lws_protocols * protocols
    Definition: libwebsockets.h:1468
    +
    Definition: libwebsockets.h:1411
    +
    lws_ext_options_types
    Definition: libwebsockets.h:1000
    +
    const struct lws_protocols * protocols
    Definition: libwebsockets.h:1473
    LWS_VISIBLE LWS_EXTERN int lwsws_get_config_globals(struct lws_context_creation_info *info, const char *d, char **config_strings, int *len)
    LWS_VISIBLE LWS_EXTERN void * lws_wsi_user(struct lws *wsi)
    LWS_VISIBLE LWS_EXTERN unsigned long lws_now_secs(void)
    LWS_VISIBLE LWS_EXTERN const char * lws_get_peer_simple(struct lws *wsi, char *name, int namelen)
    -
    const char * start
    Definition: libwebsockets.h:1020
    -
    const char * ssl_cipher_list
    Definition: libwebsockets.h:1492
    +
    const char * start
    Definition: libwebsockets.h:1025
    +
    const char * ssl_cipher_list
    Definition: libwebsockets.h:1497
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_by_name(struct lws *wsi, const unsigned char *name, const unsigned char *value, int length, unsigned char **p, unsigned char *end)
    -
    const char * mountpoint
    Definition: libwebsockets.h:1807
    -
    const char * http_proxy_address
    Definition: libwebsockets.h:1496
    +
    const char * mountpoint
    Definition: libwebsockets.h:1812
    +
    const char * http_proxy_address
    Definition: libwebsockets.h:1501
    rsa_context key
    Definition: libwebsockets.h:237
    -
    const char * ssl_cert_filepath
    Definition: libwebsockets.h:1480
    -
    const char * ecdh_curve
    Definition: libwebsockets.h:1551
    -
    int cgi_timeout
    Definition: libwebsockets.h:1825
    -
    Definition: libwebsockets.h:1795
    -
    Definition: libwebsockets.h:1343
    +
    const char * ssl_cert_filepath
    Definition: libwebsockets.h:1485
    +
    const char * ecdh_curve
    Definition: libwebsockets.h:1556
    +
    int cgi_timeout
    Definition: libwebsockets.h:1830
    +
    Definition: libwebsockets.h:1800
    +
    Definition: libwebsockets.h:1348
    Definition: libwebsockets.h:412
    Definition: libwebsockets.h:501
    LWS_VISIBLE LWS_EXTERN unsigned char lws_get_reserved_bits(struct lws *wsi)
    @@ -304,171 +304,172 @@ $(document).ready(function(){initNavTree('libwebsockets_8h_source.html','');});
    LWS_VISIBLE LWS_EXTERN struct lws *LWS_WARN_UNUSED_RESULT lws_client_connect(struct lws_context *clients, const char *address, int port, int ssl_connection, const char *path, const char *host, const char *origin, const char *protocol, int ietf_version_or_minus_one) LWS_WARN_DEPRECATED
    Definition: libwebsockets.h:680
    LWS_VISIBLE LWS_EXTERN int lwsws_get_config_vhosts(struct lws_context *context, struct lws_context_creation_info *info, const char *d, char **config_strings, int *len)
    -
    Definition: libwebsockets.h:1426
    +
    Definition: libwebsockets.h:1431
    LWS_VISIBLE LWS_EXTERN int lwsl_timestamp(int level, char *p, int len)
    -
    Definition: libwebsockets.h:1438
    -
    uv_timer_t timeout_email
    Definition: libwebsockets.h:3943
    -
    Definition: libwebsockets.h:1408
    -
    short max_http_header_pool
    Definition: libwebsockets.h:1533
    +
    Definition: libwebsockets.h:918
    +
    Definition: libwebsockets.h:1443
    +
    uv_timer_t timeout_email
    Definition: libwebsockets.h:3948
    +
    Definition: libwebsockets.h:1413
    +
    short max_http_header_pool
    Definition: libwebsockets.h:1538
    LWS_VISIBLE LWS_EXTERN int lws_chunked_html_process(struct lws_process_html_args *args, struct lws_process_html_state *s)
    -
    char * p
    Definition: libwebsockets.h:2248
    +
    char * p
    Definition: libwebsockets.h:2253
    x509_crt ca
    Definition: libwebsockets.h:235
    -
    size_t per_session_data_size
    Definition: libwebsockets.h:1189
    +
    size_t per_session_data_size
    Definition: libwebsockets.h:1194
    Definition: libwebsockets.h:485
    -
    lwsgs_smtp_states
    Definition: libwebsockets.h:3897
    -
    Definition: libwebsockets.h:1420
    +
    lwsgs_smtp_states
    Definition: libwebsockets.h:3902
    +
    Definition: libwebsockets.h:1425
    Definition: libwebsockets.h:758
    Definition: libwebsockets.h:644
    -
    Definition: libwebsockets.h:1181
    +
    Definition: libwebsockets.h:1186
    Definition: libwebsockets.h:490
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_http_redirect(struct lws *wsi, int code, const unsigned char *loc, int len, unsigned char **p, unsigned char *end)
    -
    unsigned int count_threads
    Definition: libwebsockets.h:1540
    -
    const char * email
    Definition: libwebsockets.h:1366
    +
    unsigned int count_threads
    Definition: libwebsockets.h:1545
    +
    const char * email
    Definition: libwebsockets.h:1371
    LWS_VISIBLE LWS_EXTERN int lws_get_random(struct lws_context *context, void *buf, int len)
    Definition: libwebsockets.h:472
    -
    uv_connect_t email_connect_req
    Definition: libwebsockets.h:3945
    -
    const char * server_string
    Definition: libwebsockets.h:1571
    -
    Definition: libwebsockets.h:1431
    +
    uv_connect_t email_connect_req
    Definition: libwebsockets.h:3950
    +
    const char * server_string
    Definition: libwebsockets.h:1576
    +
    Definition: libwebsockets.h:1436
    SHORT events
    Definition: libwebsockets.h:399
    Definition: libwebsockets.h:649
    -
    Definition: libwebsockets.h:1415
    -
    const char * vhost_name
    Definition: libwebsockets.h:1553
    -
    Definition: libwebsockets.h:1796
    +
    Definition: libwebsockets.h:1420
    +
    const char * vhost_name
    Definition: libwebsockets.h:1558
    +
    Definition: libwebsockets.h:1801
    LWS_VISIBLE LWS_EXTERN const struct lws_protocols * lws_get_protocol(struct lws *wsi)
    -
    Definition: libwebsockets.h:1341
    -
    Definition: libwebsockets.h:1363
    -
    unsigned int fd_limit_per_thread
    Definition: libwebsockets.h:1542
    +
    Definition: libwebsockets.h:1346
    +
    Definition: libwebsockets.h:1368
    +
    unsigned int fd_limit_per_thread
    Definition: libwebsockets.h:1547
    LWS_VISIBLE LWS_EXTERN int lws_cgi_write_split_stdout_headers(struct lws *wsi)
    -
    lws_gs_event
    Definition: libwebsockets.h:1357
    +
    lws_gs_event
    Definition: libwebsockets.h:1362
    LWS_VISIBLE LWS_EXTERN int lws_finalize_startup(struct lws_context *context)
    -
    int ka_interval
    Definition: libwebsockets.h:1517
    -
    Definition: libwebsockets.h:1340
    -
    int uid
    Definition: libwebsockets.h:1503
    -
    Definition: libwebsockets.h:2639
    +
    int ka_interval
    Definition: libwebsockets.h:1522
    +
    Definition: libwebsockets.h:1345
    +
    int uid
    Definition: libwebsockets.h:1508
    +
    Definition: libwebsockets.h:2644
    LWS_VISIBLE LWS_EXTERN int lws_b64_encode_string(const char *in, int in_len, char *out, int out_size)
    LWS_VISIBLE LWS_EXTERN void * lws_context_user(struct lws_context *context)
    -
    const char * name
    Definition: libwebsockets.h:1182
    +
    const char * name
    Definition: libwebsockets.h:1187
    LWS_VISIBLE LWS_EXTERN int lws_init_vhost_client_ssl(const struct lws_context_creation_info *info, struct lws_vhost *vhost)
    -
    Definition: libwebsockets.h:3903
    -
    unsigned int http_proxy_port
    Definition: libwebsockets.h:1499
    +
    Definition: libwebsockets.h:3908
    +
    unsigned int http_proxy_port
    Definition: libwebsockets.h:1504
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_partial_buffered(struct lws *wsi)
    -
    unsigned int timeout_secs
    Definition: libwebsockets.h:1546
    -
    int port
    Definition: libwebsockets.h:1456
    +
    unsigned int timeout_secs
    Definition: libwebsockets.h:1551
    +
    int port
    Definition: libwebsockets.h:1461
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_parse_uri(char *p, const char **prot, const char **ads, int *port, const char **path)
    -
    unsigned int options
    Definition: libwebsockets.h:1505
    +
    unsigned int options
    Definition: libwebsockets.h:1510
    LWS_VISIBLE LWS_EXTERN int lws_spa_get_length(struct lws_spa *spa, int n)
    -
    const struct lws_protocol_vhost_options * options
    Definition: libwebsockets.h:1781
    +
    const struct lws_protocol_vhost_options * options
    Definition: libwebsockets.h:1786
    int prev_events
    Definition: libwebsockets.h:447
    -
    int keepalive_timeout
    Definition: libwebsockets.h:1563
    -
    Definition: libwebsockets.h:1347
    -
    Definition: libwebsockets.h:1008
    -
    Definition: libwebsockets.h:2436
    +
    int keepalive_timeout
    Definition: libwebsockets.h:1568
    +
    Definition: libwebsockets.h:1352
    +
    Definition: libwebsockets.h:1013
    +
    Definition: libwebsockets.h:2441
    LWS_VISIBLE LWS_EXTERN int lws_write(struct lws *wsi, unsigned char *buf, size_t len, enum lws_write_protocol protocol)
    -
    const struct lws_protocol_vhost_options * pvo
    Definition: libwebsockets.h:1560
    -
    const char * host
    Definition: libwebsockets.h:1874
    -
    Definition: libwebsockets.h:1017
    +
    const struct lws_protocol_vhost_options * pvo
    Definition: libwebsockets.h:1565
    +
    const char * host
    Definition: libwebsockets.h:1879
    +
    Definition: libwebsockets.h:1022
    Definition: libwebsockets.h:511
    LWS_VISIBLE LWS_EXTERN const struct lws_protocols * lws_vhost_name_to_protocol(struct lws_vhost *vh, const char *name)
    -
    int len
    Definition: libwebsockets.h:3700
    -
    struct lws_http_mount * mount_next
    Definition: libwebsockets.h:1805
    +
    int len
    Definition: libwebsockets.h:3705
    +
    struct lws_http_mount * mount_next
    Definition: libwebsockets.h:1810
    LWS_VISIBLE LWS_EXTERN const char * lws_get_urlarg_by_name(struct lws *wsi, const char *name, char *buf, int len)
    -
    const char * iface
    Definition: libwebsockets.h:1461
    -
    Definition: libwebsockets.h:3759
    +
    const char * iface
    Definition: libwebsockets.h:1466
    +
    Definition: libwebsockets.h:3764
    LWS_VISIBLE LWS_EXTERN void lwsl_hexdump(void *buf, size_t len)
    -
    lws_spa_fileupload_states
    Definition: libwebsockets.h:2634
    +
    lws_spa_fileupload_states
    Definition: libwebsockets.h:2639
    LWS_VISIBLE LWS_EXTERN int lws_service_fd(struct lws_context *context, struct lws_pollfd *pollfd)
    LWS_VISIBLE LWS_EXTERN int lws_callback_vhost_protocols(struct lws *wsi, int reason, void *in, int len)
    Definition: libwebsockets.h:469
    Definition: libwebsockets.h:478
    LWS_VISIBLE LWS_EXTERN const char * lws_sql_purify(char *escaped, const char *string, int len)
    -
    uv_tcp_t email_client
    Definition: libwebsockets.h:3946
    +
    uv_tcp_t email_client
    Definition: libwebsockets.h:3951
    LWS_VISIBLE LWS_EXTERN int lws_json_dump_context(const struct lws_context *context, char *buf, int len)
    Definition: libwebsockets.h:397
    Definition: libwebsockets.h:582
    -
    lws_filefd_type(* open)(struct lws *wsi, const char *filename, unsigned long *filelen, int flags)
    Definition: libwebsockets.h:3760
    -
    lws_write_protocol
    Definition: libwebsockets.h:2975
    -
    const char * client_offer
    Definition: libwebsockets.h:1094
    -
    int(* read)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, unsigned char *buf, unsigned long len)
    Definition: libwebsockets.h:3770
    +
    lws_filefd_type(* open)(struct lws *wsi, const char *filename, unsigned long *filelen, int flags)
    Definition: libwebsockets.h:3765
    +
    lws_write_protocol
    Definition: libwebsockets.h:2980
    +
    const char * client_offer
    Definition: libwebsockets.h:1099
    +
    int(* read)(struct lws *wsi, lws_filefd_type fd, unsigned long *amount, unsigned char *buf, unsigned long len)
    Definition: libwebsockets.h:3775
    LWS_VISIBLE LWS_EXTERN void lws_cancel_service(struct lws_context *context)
    -
    Definition: libwebsockets.h:2635
    +
    Definition: libwebsockets.h:2640
    Definition: libwebsockets.h:483
    -
    const char * origin
    Definition: libwebsockets.h:1809
    -
    const char * name
    Definition: libwebsockets.h:1009
    +
    const char * origin
    Definition: libwebsockets.h:1814
    +
    const char * name
    Definition: libwebsockets.h:1014
    LWS_VISIBLE LWS_EXTERN int lws_serve_http_file(struct lws *wsi, const char *file, const char *content_type, const char *other_headers, int other_headers_len)
    LWS_VISIBLE LWS_EXTERN void lws_email_check(struct lws_email *email)
    LWS_VISIBLE LWS_EXTERN int lws_set_proxy(struct lws_vhost *vhost, const char *proxy)
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_frame_is_binary(struct lws *wsi)
    LWS_VISIBLE LWS_EXTERN int lws_hdr_copy(struct lws *wsi, char *dest, int len, enum lws_token_indexes h)
    Definition: libwebsockets.h:659
    -
    const char * name
    Definition: libwebsockets.h:1092
    -
    Definition: libwebsockets.h:3902
    +
    const char * name
    Definition: libwebsockets.h:1097
    +
    Definition: libwebsockets.h:3907
    short revents
    Definition: libwebsockets.h:415
    -
    lws_extension_callback_function * callback
    Definition: libwebsockets.h:1093
    -
    long ssl_options_set
    Definition: libwebsockets.h:1585
    -
    Definition: libwebsockets.h:921
    +
    lws_extension_callback_function * callback
    Definition: libwebsockets.h:1098
    +
    long ssl_options_set
    Definition: libwebsockets.h:1590
    +
    Definition: libwebsockets.h:926
    LWS_VISIBLE LWS_EXTERN const struct lws_protocols * lws_protocol_get(struct lws *wsi) LWS_WARN_DEPRECATED
    -
    unsigned int mask
    Definition: libwebsockets.h:1351
    +
    unsigned int mask
    Definition: libwebsockets.h:1356
    LWS_VISIBLE LWS_EXTERN int lws_email_init(struct lws_email *email, uv_loop_t *loop, int max_content)
    -
    lws_mount_protocols
    Definition: libwebsockets.h:1790
    +
    lws_mount_protocols
    Definition: libwebsockets.h:1795
    LWS_EXTERN int lws_extension_callback_pm_deflate(struct lws_context *context, const struct lws_extension *ext, struct lws *wsi, enum lws_extension_callback_reasons reason, void *user, void *in, size_t len)
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_content_length(struct lws *wsi, unsigned long content_length, unsigned char **p, unsigned char *end)
    lws_sockfd_type fd
    Definition: libwebsockets.h:413
    -
    unsigned int max_http_header_data2
    Definition: libwebsockets.h:1580
    -
    Definition: libwebsockets.h:1791
    +
    unsigned int max_http_header_data2
    Definition: libwebsockets.h:1585
    +
    Definition: libwebsockets.h:1796
    LWS_VISIBLE LWS_EXTERN int lws_return_http_status(struct lws *wsi, unsigned int code, const char *html_body)
    LWS_EXTERN LWS_VISIBLE struct lws_vhost * lws_create_vhost(struct lws_context *context, struct lws_context_creation_info *info)
    -
    const struct lws_protocol_vhost_options * interpret
    Definition: libwebsockets.h:1822
    +
    const struct lws_protocol_vhost_options * interpret
    Definition: libwebsockets.h:1827
    LWS_VISIBLE LWS_EXTERN int lws_service(struct lws_context *context, int timeout_ms)
    -
    Definition: libwebsockets.h:1413
    +
    Definition: libwebsockets.h:1418
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_http_transaction_completed(struct lws *wsi)
    -
    int count_vars
    Definition: libwebsockets.h:2262
    +
    int count_vars
    Definition: libwebsockets.h:2267
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_add_http_header_status(struct lws *wsi, unsigned int code, unsigned char **p, unsigned char *end)
    -
    Definition: libwebsockets.h:2316
    +
    Definition: libwebsockets.h:2321
    LWS_VISIBLE LWS_EXTERN struct lws_context * lws_create_context(struct lws_context_creation_info *info)
    Definition: libwebsockets.h:638
    -
    void * data
    Definition: libwebsockets.h:2260
    -
    char * content
    Definition: libwebsockets.h:3949
    +
    void * data
    Definition: libwebsockets.h:2265
    +
    char * content
    Definition: libwebsockets.h:3954
    LWS_VISIBLE LWS_EXTERN int lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr, size_t addrlen)
    -
    const struct lws_token_limits * token_limits
    Definition: libwebsockets.h:1475
    -
    lws_process_html_state_cb replace
    Definition: libwebsockets.h:2264
    -
    Definition: libwebsockets.h:3910
    -
    const char * address
    Definition: libwebsockets.h:1866
    -
    unsigned long(* seek_cur)(struct lws *wsi, lws_filefd_type fd, long offset_from_cur_pos)
    Definition: libwebsockets.h:3767
    -
    void * user
    Definition: libwebsockets.h:1210
    +
    const struct lws_token_limits * token_limits
    Definition: libwebsockets.h:1480
    +
    lws_process_html_state_cb replace
    Definition: libwebsockets.h:2269
    +
    Definition: libwebsockets.h:3915
    +
    const char * address
    Definition: libwebsockets.h:1871
    +
    unsigned long(* seek_cur)(struct lws *wsi, lws_filefd_type fd, long offset_from_cur_pos)
    Definition: libwebsockets.h:3772
    +
    void * user
    Definition: libwebsockets.h:1215
    int events
    Definition: libwebsockets.h:446
    -
    int(* on_get_body)(struct lws_email *email, char *buf, int len)
    Definition: libwebsockets.h:3936
    -
    Definition: libwebsockets.h:1797
    -
    void * user
    Definition: libwebsockets.h:1507
    -
    Definition: libwebsockets.h:3906
    -
    Definition: libwebsockets.h:2998
    -
    char * token
    Definition: libwebsockets.h:2317
    +
    int(* on_get_body)(struct lws_email *email, char *buf, int len)
    Definition: libwebsockets.h:3941
    +
    Definition: libwebsockets.h:1802
    +
    void * user
    Definition: libwebsockets.h:1512
    +
    Definition: libwebsockets.h:3911
    +
    Definition: libwebsockets.h:3003
    +
    char * token
    Definition: libwebsockets.h:2322
    LWS_VISIBLE LWS_EXTERN void * lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *prot)
    -
    int count_protocols
    Definition: libwebsockets.h:1293
    -
    void * l
    Definition: libwebsockets.h:1308
    -
    const char * ssl_private_key_filepath
    Definition: libwebsockets.h:1484
    -
    int max_len
    Definition: libwebsockets.h:2250
    +
    int count_protocols
    Definition: libwebsockets.h:1298
    +
    void * l
    Definition: libwebsockets.h:1313
    +
    const char * ssl_private_key_filepath
    Definition: libwebsockets.h:1489
    +
    int max_len
    Definition: libwebsockets.h:2255
    Definition: libwebsockets.h:640
    -
    const struct lws_protocol_vhost_options * next
    Definition: libwebsockets.h:1780
    +
    const struct lws_protocol_vhost_options * next
    Definition: libwebsockets.h:1785
    Definition: libwebsockets.h:651
    LWS_VISIBLE LWS_EXTERN void lws_rx_flow_allow_all_protocol(const struct lws_context *context, const struct lws_protocols *protocol)
    -
    Definition: libwebsockets.h:2256
    +
    Definition: libwebsockets.h:2261
    LWS_VISIBLE LWS_EXTERN const char *LWS_WARN_UNUSED_RESULT lws_canonical_hostname(struct lws_context *context)
    Definition: libwebsockets.h:850
    -
    const char * ssl_ca_filepath
    Definition: libwebsockets.h:1490
    -
    lws_client_connect_ssl_connection_flags
    Definition: libwebsockets.h:1854
    -
    int gid
    Definition: libwebsockets.h:1501
    -
    struct lws_vhost * vhost
    Definition: libwebsockets.h:1898
    -
    int lws_callback_function(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len)
    Definition: libwebsockets.h:943
    +
    const char * ssl_ca_filepath
    Definition: libwebsockets.h:1495
    +
    lws_client_connect_ssl_connection_flags
    Definition: libwebsockets.h:1859
    +
    int gid
    Definition: libwebsockets.h:1506
    +
    struct lws_vhost * vhost
    Definition: libwebsockets.h:1903
    +
    int lws_callback_function(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len)
    Definition: libwebsockets.h:948
    LWS_VISIBLE LWS_EXTERN void lws_cancel_service_pt(struct lws *wsi)
    -
    Definition: libwebsockets.h:1433
    +
    Definition: libwebsockets.h:1438
    Definition: libwebsockets.h:519
    -
    Definition: libwebsockets.h:3901
    -
    unsigned int api_magic
    Definition: libwebsockets.h:1291
    -
    Definition: libwebsockets.h:1436
    +
    Definition: libwebsockets.h:3906
    +
    unsigned int api_magic
    Definition: libwebsockets.h:1296
    +
    Definition: libwebsockets.h:1441
    LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT lws_send_pipe_choked(struct lws *wsi)
    -
    Definition: libwebsockets.h:3904
    -
    int(* lws_spa_fileupload_cb)(void *data, const char *name, const char *filename, char *buf, int len, enum lws_spa_fileupload_states state)
    Definition: libwebsockets.h:2656
    +
    Definition: libwebsockets.h:3909
    +
    int(* lws_spa_fileupload_cb)(void *data, const char *name, const char *filename, char *buf, int len, enum lws_spa_fileupload_states state)
    Definition: libwebsockets.h:2661
    diff --git a/doc/html/lwsgt-overview.png b/doc/html/lwsgt-overview.png new file mode 100644 index 00000000..4d031959 Binary files /dev/null and b/doc/html/lwsgt-overview.png differ diff --git a/doc/html/md_README.problems.html b/doc/html/md_README.problems.html index d93138b6..e8e9980a 100644 --- a/doc/html/md_README.problems.html +++ b/doc/html/md_README.problems.html @@ -66,10 +66,11 @@ $(document).ready(function(){initNavTree('md_README.problems.html','');});

    Library is a component

    -

    As a library, lws is just a component in a bigger application.

    -

    Many users are able to share their sources, but others decide not to, for "commerical advantage" or whatever.

    +

    As a library, lws is always just a component in a bigger application.

    +

    When users have a problem involving lws, what is happening in the bigger application is usually critical to understand what is going on (and where the solution lies).

    +

    Many users are able to share their sources, but others decide not to, for presumed "commercial advantage" or whatever. (In any event, it can be painful looking through large chunks of someone else's sources for problems when that is not the library author's responsibility.)

    This makes answering questions like "what is wrong with my code I am not -going to show you?" very difficult.

    +going to show you?" or even "what is wrong with my code?" very difficult.

    Even if it's clear there is a problem somewhere, it cannot be understood or reproduced by anyone else if it needs user code that isn't provided.

    The biggest question is, "is this an lws problem actually"?

    Use the test apps as sanity checks

    diff --git a/doc/html/navtreedata.js b/doc/html/navtreedata.js index f0e7b5b1..34b85e05 100644 --- a/doc/html/navtreedata.js +++ b/doc/html/navtreedata.js @@ -23,6 +23,7 @@ var NAVTREE = [ "Cross compiling", "md_README.build.html#cross", null ], [ "Memory efficiency", "md_README.build.html#mem", null ] ] ], + [ "Debugging problems", "md_README.problems.html", null ], [ "Notes about lwsws", "md_README.lwsws.html", [ [ "Libwebsockets Web Server", "md_README.lwsws.html#lwsws", null ], [ "Build", "md_README.lwsws.html#lwswsb", null ], @@ -76,6 +77,15 @@ var NAVTREE = [ "Lwsgs Email configuration", "md_README.generic-sessions.html#gsrmail", null ], [ "Lwsgs Integration with another protocol", "md_README.generic-sessions.html#gsap", null ] ] ], + [ "Notes about generic-table", "md_README.generic-table.html", [ + [ "What is generic-table?", "md_README.generic-table.html#gtint", null ], + [ "Enabling for build", "md_README.generic-table.html#gteb", null ], + [ "Integrating with your html", "md_README.generic-table.html#gtinth", null ], + [ "Lwsgt constructor", "md_README.generic-table.html#gtc", null ], + [ "Lwsgt click handling function", "md_README.generic-table.html#gtclick", null ], + [ "Generic-table JSON", "md_README.generic-table.html#gtgj", null ], + [ "Setting up protocol-lws-table-dirlisting", "md_README.generic-table.html#gtdirl", null ] + ] ], [ "Overview of lws test apps", "md_README.test-apps.html", [ [ "Testing server with a browser", "md_README.test-apps.html#tsb", null ], [ "Running test server as a Daemon", "md_README.test-apps.html#tsd", null ], @@ -123,8 +133,8 @@ var NAVTREEINDEX = "annotated.html", "group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016", "group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5", -"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbad9cdc12a796e6c7d912278834d9c7dde", -"structlws__process__html__args.html#a362547891ee0d693f3900a1f807ea475" +"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbac8f5f992c6615324108cdf931da903be", +"structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27" ]; var SYNCONMSG = 'click to disable panel synchronisation'; diff --git a/doc/html/navtreeindex0.js b/doc/html/navtreeindex0.js index 4871d7d2..b81b349f 100644 --- a/doc/html/navtreeindex0.js +++ b/doc/html/navtreeindex0.js @@ -1,253 +1,253 @@ var NAVTREEINDEX0 = { -"annotated.html":[8,0], -"classes.html":[8,1], -"classlws__conn.html":[8,0,2], -"classlws__conn.html#a49f87612c6a3098cd1587f8382b8c85b":[8,0,2,2], -"classlws__conn.html#a4fb477fad697ce1faf8ec7a884ea6c6b":[8,0,2,3], -"classlws__conn.html#a5226010afdf5421f279454e5cbb282a4":[8,0,2,8], -"classlws__conn.html#a5cad031b6b779da42b37f4007cae541b":[8,0,2,9], -"classlws__conn.html#a7e504bd449ffb51c7ab1d2126613ebc3":[8,0,2,11], -"classlws__conn.html#a8e1fdd467b7f66fc438dc70ae979b938":[8,0,2,10], -"classlws__conn.html#aad7d2406618e560114650a91c729a596":[8,0,2,5], -"classlws__conn.html#aba42bdd763a36c3a331b62410969b6ba":[8,0,2,4], -"classlws__conn.html#accc57581269c554291dac840ed135231":[8,0,2,6], -"classlws__conn.html#aef530971372f55e862f2e09bc98f1029":[8,0,2,1], -"classlws__conn.html#af0e213af91d53d1e1aef70ed7816191f":[8,0,2,0], -"classlws__conn.html#afe73e53da2070f659ad6e7fd14878c7e":[8,0,2,7], -"classlws__conn__listener.html":[8,0,3], -"classlws__conn__listener.html#a271ac4f8ad5770b3bc96cce5b265b72c":[8,0,3,2], -"classlws__conn__listener.html#a3c19c314f2ea2b758407b4041e4c4010":[8,0,3,5], -"classlws__conn__listener.html#aa7076f8965bb9df268798fd9a0283374":[8,0,3,6], -"classlws__conn__listener.html#aab3c7bf550a8f15d20f1e093125c2e60":[8,0,3,1], -"classlws__conn__listener.html#ab3bc839797ba14554ac70ad09fd155c7":[8,0,3,4], -"classlws__conn__listener.html#ab432a456c3a961ec562e06141897806b":[8,0,3,3], -"classlws__conn__listener.html#ac82c8696a36a2f386b4094490d300dee":[8,0,3,0], -"deprecated.html":[6], -"dir_97aefd0d527b934f1d99a682da8fe6a9.html":[9,0,0], -"files.html":[9,0], -"functions.html":[8,3,0], -"functions_func.html":[8,3,1], -"functions_vars.html":[8,3,2], -"globals.html":[9,1,0], -"globals.html":[9,1,0,0], -"globals_enum.html":[9,1,3], -"globals_eval.html":[9,1,4], -"globals_func.html":[9,1,1], -"globals_l.html":[9,1,0,1], -"globals_type.html":[9,1,2], -"group__HTTP-headers-create.html":[7,6,3], -"group__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6":[7,6,3,3], -"group__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6":[9,0,0,0,41], -"group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8":[7,6,3,0], -"group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8":[9,0,0,0,38], -"group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b":[7,6,3,4], -"group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b":[9,0,0,0,76], -"group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf":[7,6,3,2], -"group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf":[9,0,0,0,40], -"group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1":[7,6,3,1], -"group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1":[9,0,0,0,39], -"group__HTTP-headers-read.html":[7,6,4], -"group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b":[9,0,0,0,143], -"group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b":[7,6,4,7], -"group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e":[7,6,4,5], -"group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e":[9,0,0,0,97], -"group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77":[7,6,4,3], -"group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77":[9,0,0,0,95], -"group__HTTP-headers-read.html#ga6e747906f9d76532ec118d6ef418b82e":[9,0,0,0,31], -"group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2":[7,6,4,2], -"group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2":[9,0,0,0,93], -"group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8":[7,6,4,6], -"group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8":[9,0,0,0,98], -"group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9":[7,6,4,4], -"group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9":[9,0,0,0,96], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea03293996964a8bb617215508908048d4":[9,0,0,0,31,42], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea05c73ad09f25570a50068de13333e41a":[9,0,0,0,31,57], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0784fa0e5bdbacd1e14c2d6ba0c42992":[9,0,0,0,31,27], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0830a0c1c62c444ade7cf15599e92345":[9,0,0,0,31,47], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0a3c723f67cb6d95dba0c0ccc7d898f8":[9,0,0,0,31,69], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0dd5ce6fa8932e0d378b86c393d8f726":[9,0,0,0,31,11], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea11ed9b0cc3b4525c830de7185fd8d7df":[9,0,0,0,31,62], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1347e093d73e88489ba3ebda56a393a5":[9,0,0,0,31,32], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea138fedfdb81765272d22b0eca9aec22b":[9,0,0,0,31,9], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea157c1db7d8edd3cd3b649e7756a559c8":[9,0,0,0,31,80], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea166e60d6689436c1fb9169438d5db1b9":[9,0,0,0,31,13], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1d41be78df2704c54b906f7f0abbaa30":[9,0,0,0,31,51], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1ee866e12a483229599f4e3cfc358b36":[9,0,0,0,31,53], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea21ac48d2a499f6afa44cee92cebd8ae3":[9,0,0,0,31,82], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea220975eeb65cac57691adb3761a492bb":[9,0,0,0,31,50], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea228ece9e187ddbb80236851e9a09145c":[9,0,0,0,31,83], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea277d11b0d5e7fdfc6b5fb45470e6f63e":[9,0,0,0,31,39], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea2be8537e80387a88197d3ed62ac3b954":[9,0,0,0,31,45], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea2efae4ba6646ba040c371706f7f3a125":[9,0,0,0,31,56], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3733863fb466c1df6b00c9384a53e544":[9,0,0,0,31,85], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea385f0e1933f81529307fff61eb08ff8d":[9,0,0,0,31,54], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3ac4744411849aff89001ee0350aed75":[9,0,0,0,31,60], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3cf47b821d473b717002b22619a9814e":[9,0,0,0,31,7], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3ef26b531c1c2416850ebd539f08ba5e":[9,0,0,0,31,17], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3fd7c7c9587953adc8f317a615df6b83":[9,0,0,0,31,14], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea400831fe4ba52d4c454364a81ea3bfe4":[9,0,0,0,31,91], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea428409a7aaea6446b660574e4097c0bd":[9,0,0,0,31,90], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea439ada24e20de209e08e7dd398ca61ac":[9,0,0,0,31,66], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea525ee6d2330fca0929df75ffb8dec68e":[9,0,0,0,31,33], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea52a30bd1a5ca619ab19bb8178138e42f":[9,0,0,0,31,58], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea549fcdd8300f0c7434289db6326ec06a":[9,0,0,0,31,22], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea56913c617d46273743bb187bcd8e90c2":[9,0,0,0,31,65], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea569588399651cdd6b81de40be4b73fd8":[9,0,0,0,31,46], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea57ff348ebbae88bf904bc64ef284d83b":[9,0,0,0,31,20], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea598578cda71fe6ca34320bbd6ba1e887":[9,0,0,0,31,55], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea5dcd48b2643d8a82a97b7abbc3928ea8":[9,0,0,0,31,81], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea5e005569744e3246ba40d524f9a84fe4":[9,0,0,0,31,44], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea6164d17e9598f89c822b4be55814de0a":[9,0,0,0,31,48], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea63e1e08da7555313caf632a819db27d4":[9,0,0,0,31,41], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea669e4eea57595f569f329bfba900a15d":[9,0,0,0,31,3], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea693a74f3cd695016120bfdae3d3ced1a":[9,0,0,0,31,68], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea70b452bb6ce670e32c30fa237bceb731":[9,0,0,0,31,15], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7460d076c52a9fae65c9e00bac05ef19":[9,0,0,0,31,76], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea751322eb9f58fa33bf1f6e4923ff9abb":[9,0,0,0,31,1], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7708c82134391d257d6c354ae7bf1429":[9,0,0,0,31,31], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea78834452a5833032294abe1aa42055c6":[9,0,0,0,31,64], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7892390328672ed812b3b68bc3e0fe40":[9,0,0,0,31,52], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea78fbb32e1809d5767e55de3181d454b0":[9,0,0,0,31,19], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7e80eff7eefa68741f0a776d6d8feeae":[9,0,0,0,31,78], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea832a110c8b9eb42890f252a756c81bde":[9,0,0,0,31,36], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea86b3c4cf71dc5c5b441243db99ca696a":[9,0,0,0,31,61], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea883a86db0c05266214affd78d37e871f":[9,0,0,0,31,86], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8913c5b1378b1ffad7e2da975c454d15":[9,0,0,0,31,26], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8d7393b324a076186bbde01a2cfe6b62":[9,0,0,0,31,49], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8d9809cf381705f73af48d8f6809412b":[9,0,0,0,31,24], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8f6a44a37c29cb5ade4c5989467a880b":[9,0,0,0,31,75], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8ff0b2f6666e008de14d9b9721b87ead":[9,0,0,0,31,89], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea9004d6ff6b16b8877f760545a3c7be60":[9,0,0,0,31,63], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa0cad0c7a20ac23945a33dbc3d726718":[9,0,0,0,31,30], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa566f2c37d9a459ca95eee347cca68d0":[9,0,0,0,31,67], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa76ea751f1ee86567d27e9e30075d6db":[9,0,0,0,31,40], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa84e4902ebeb7ab468e3a4bd4acf4f90":[9,0,0,0,31,84], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa8c8eb9b32feb43ec214d8469655a0df":[9,0,0,0,31,87], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaab4585e187936b4f2abf22e9138ee271":[9,0,0,0,31,5], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaae70d627de34f9c881445f6fbcfcc2dd":[9,0,0,0,31,38], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab0926aa28ea9bb73d2b0124c05c30a78":[9,0,0,0,31,88], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab2339b9e75c79dae3547255d1fb046cd":[9,0,0,0,31,2], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab460c34b18e1ae54219c3fb9e60544ef":[9,0,0,0,31,4], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaba11ed0aa8c8c7bd71d971a234df0a72":[9,0,0,0,31,21], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eabfb2738a1148ec7c039f2af640b28430":[9,0,0,0,31,71], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eac7157acd472d24de05aee3de57b8dc8a":[9,0,0,0,31,12], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eac9a937e393da4c3a77cf82463265dcee":[9,0,0,0,31,6], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ead32022a286b9cc6fbe60b1a0411370a7":[9,0,0,0,31,28], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ead603502e2545c533c4c01ba39e35a2b0":[9,0,0,0,31,16], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadb08a1c7b1f76e2962d44149bf488bf8":[9,0,0,0,31,34], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadbb64ba8a29fee913ded2163a5d16615":[9,0,0,0,31,10], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadff4760ab45fc182ab1e1fb68afa6714":[9,0,0,0,31,70], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae215f7e72fea4458fd971cdcb45d8e04":[9,0,0,0,31,18], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae24b2d70918c70e034ff574a516e0023":[9,0,0,0,31,59], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae5d5ca0131fbea1df03d7ad6d69ebfbd":[9,0,0,0,31,25], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae6286060884d4c80a88fa94fec58dda3":[9,0,0,0,31,0], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae898ee2a1e374f7d98aa483940c91511":[9,0,0,0,31,73], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae9d2323ce213a112ac90361f04a1ee5a":[9,0,0,0,31,43], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaec69fb61493d1c67316c02259b86bdc2":[9,0,0,0,31,35], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaec821397393facee38ddd4119473b992":[9,0,0,0,31,29], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaee14b94fcd4ab788e313e0789bec0cdc":[9,0,0,0,31,77], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaeef14469c992ebb09a43a8548db37401":[9,0,0,0,31,23], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf2b7eac7ff98aea6d9b240f6f51995c3":[9,0,0,0,31,72], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf48e3b9c89dba34054ea0833dbad4b57":[9,0,0,0,31,8], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf567d4d400062fab44f1b96c64cb93ac":[9,0,0,0,31,37], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf64cb8232e172aaa019c38b398d0a0bb":[9,0,0,0,31,74], -"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eafc1e8568187b2de76e2ddd5cc692908e":[9,0,0,0,31,79], -"group__Protocols-and-Plugins.html":[7,10], -"group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43":[7,10,4], -"group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43":[9,0,0,0,77], -"group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d":[9,0,0,0,151], -"group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d":[7,10,9], -"group__Protocols-and-Plugins.html#ga40994491e1567f91f579d2b444775266":[9,0,0,0,12], -"group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112":[7,10,5], -"group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112":[9,0,0,0,89], -"group__Protocols-and-Plugins.html#ga83f7a924ba790fa273476075a59f08b0":[9,0,0,0,11], -"group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030":[7,10,6], -"group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030":[9,0,0,0,115], -"group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1":[7,10,8], -"group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1":[9,0,0,0,117], -"group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129":[7,10,7], -"group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129":[9,0,0,0,116], -"group__callback-when-writeable.html":[7,1], -"group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053":[7,1,1], -"group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053":[9,0,0,0,47], -"group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5":[7,1,5], -"group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5":[9,0,0,0,51], -"group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8":[7,1,4], -"group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8":[9,0,0,0,50], -"group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d":[7,1,2], -"group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d":[9,0,0,0,48], -"group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba":[7,1,7], -"group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba":[9,0,0,0,92], -"group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107":[7,1,3], -"group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107":[9,0,0,0,49], -"group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde":[7,1,6], -"group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde":[9,0,0,0,88], -"group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70":[7,1,0], -"group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70":[9,0,0,0,46], -"group__cgi.html":[7,19], -"group__client.html":[7,2], -"group__client.html#ga0c966136905f467816307cfba6deb5fd":[7,2,4], -"group__client.html#ga0c966136905f467816307cfba6deb5fd":[9,0,0,0,61], -"group__client.html#ga4450c34200bf9dab3beb90ef23221870":[9,0,0,0,99], -"group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3":[7,2,2], -"group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3":[9,0,0,0,59], -"group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340":[7,2,5], -"group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340":[9,0,0,0,102], -"group__client.html#ga96f3dbad54b2853969cfa933d66871ce":[9,0,0,0,21], -"group__client.html#ga96f3dbad54b2853969cfa933d66871ce":[7,2,1], -"group__client.html#gac6a8558b4410961a880241c2ac1271e2":[7,2,3], -"group__client.html#gac6a8558b4410961a880241c2ac1271e2":[9,0,0,0,60], -"group__client.html#gga96f3dbad54b2853969cfa933d66871cea7051e79bb97b69862f2ff00ae5298ec7":[9,0,0,0,21,0], -"group__client.html#gga96f3dbad54b2853969cfa933d66871cea89866ab6a749aaa1684158c55f826b35":[9,0,0,0,21,2], -"group__client.html#gga96f3dbad54b2853969cfa933d66871ceafc72c0ffbc7462bdddd4ce7bd99ac092":[9,0,0,0,21,1], -"group__context-and-vhost.html":[7,4], -"group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932":[7,4,8], -"group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932":[9,0,0,0,94], -"group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c":[7,4,7], -"group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c":[9,0,0,0,66], -"group__context-and-vhost.html#ga341064721add2618ae1b29717493a212":[9,0,0,0,158], -"group__context-and-vhost.html#ga341064721add2618ae1b29717493a212":[7,4,14], -"group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5":[9,0,0,0,23], -"group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5":[7,4,3], -"group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4":[7,4,11], -"group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4":[9,0,0,0,133], -"group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c":[9,0,0,0,150], -"group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c":[7,4,12], -"group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb":[7,4,4], -"group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb":[9,0,0,0,63], -"group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6":[7,4,10], -"group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6":[9,0,0,0,108], -"group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73":[9,0,0,0,157], -"group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73":[7,4,13], -"group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d":[7,4,9], -"group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d":[9,0,0,0,107], -"group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da":[7,4,5], -"group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da":[9,0,0,0,64], -"group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648":[9,0,0,0,65], -"group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648":[7,4,6], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c":[9,0,0,0,23,8], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c":[7,4,3,8], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d":[9,0,0,0,23,2], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d":[7,4,3,2], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6":[9,0,0,0,23,3], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6":[7,4,3,3], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092":[9,0,0,0,23,0], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092":[7,4,3,0], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9":[9,0,0,0,23,4], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9":[7,4,3,4], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada":[9,0,0,0,23,10], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada":[7,4,3,10], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93":[9,0,0,0,23,5], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93":[7,4,3,5], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c":[9,0,0,0,23,1], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c":[7,4,3,1], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a":[9,0,0,0,23,11], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a":[7,4,3,11], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941":[9,0,0,0,23,13], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941":[7,4,3,13], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f":[9,0,0,0,23,7], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f":[7,4,3,7], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc":[9,0,0,0,23,6], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc":[7,4,3,6] +"annotated.html":[10,0], +"classes.html":[10,1], +"classlws__conn.html":[10,0,2], +"classlws__conn.html#a49f87612c6a3098cd1587f8382b8c85b":[10,0,2,2], +"classlws__conn.html#a4fb477fad697ce1faf8ec7a884ea6c6b":[10,0,2,3], +"classlws__conn.html#a5226010afdf5421f279454e5cbb282a4":[10,0,2,8], +"classlws__conn.html#a5cad031b6b779da42b37f4007cae541b":[10,0,2,9], +"classlws__conn.html#a7e504bd449ffb51c7ab1d2126613ebc3":[10,0,2,11], +"classlws__conn.html#a8e1fdd467b7f66fc438dc70ae979b938":[10,0,2,10], +"classlws__conn.html#aad7d2406618e560114650a91c729a596":[10,0,2,5], +"classlws__conn.html#aba42bdd763a36c3a331b62410969b6ba":[10,0,2,4], +"classlws__conn.html#accc57581269c554291dac840ed135231":[10,0,2,6], +"classlws__conn.html#aef530971372f55e862f2e09bc98f1029":[10,0,2,1], +"classlws__conn.html#af0e213af91d53d1e1aef70ed7816191f":[10,0,2,0], +"classlws__conn.html#afe73e53da2070f659ad6e7fd14878c7e":[10,0,2,7], +"classlws__conn__listener.html":[10,0,3], +"classlws__conn__listener.html#a271ac4f8ad5770b3bc96cce5b265b72c":[10,0,3,2], +"classlws__conn__listener.html#a3c19c314f2ea2b758407b4041e4c4010":[10,0,3,5], +"classlws__conn__listener.html#aa7076f8965bb9df268798fd9a0283374":[10,0,3,6], +"classlws__conn__listener.html#aab3c7bf550a8f15d20f1e093125c2e60":[10,0,3,1], +"classlws__conn__listener.html#ab3bc839797ba14554ac70ad09fd155c7":[10,0,3,4], +"classlws__conn__listener.html#ab432a456c3a961ec562e06141897806b":[10,0,3,3], +"classlws__conn__listener.html#ac82c8696a36a2f386b4094490d300dee":[10,0,3,0], +"deprecated.html":[8], +"dir_97aefd0d527b934f1d99a682da8fe6a9.html":[11,0,0], +"files.html":[11,0], +"functions.html":[10,3,0], +"functions_func.html":[10,3,1], +"functions_vars.html":[10,3,2], +"globals.html":[11,1,0], +"globals.html":[11,1,0,0], +"globals_enum.html":[11,1,3], +"globals_eval.html":[11,1,4], +"globals_func.html":[11,1,1], +"globals_l.html":[11,1,0,1], +"globals_type.html":[11,1,2], +"group__HTTP-headers-create.html":[9,6,3], +"group__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6":[9,6,3,3], +"group__HTTP-headers-create.html#ga29b7d6d2ddfdbaff3d8b607e7e3151b6":[11,0,0,0,41], +"group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8":[9,6,3,0], +"group__HTTP-headers-create.html#ga2b36bf44405755ff51c1939303b995a8":[11,0,0,0,38], +"group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b":[9,6,3,4], +"group__HTTP-headers-create.html#ga4887605ff2242a54db3a7fa01f6f864b":[11,0,0,0,76], +"group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf":[9,6,3,2], +"group__HTTP-headers-create.html#gacc76a5babcb4dce1b01b1955aa7a2faf":[11,0,0,0,40], +"group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1":[9,6,3,1], +"group__HTTP-headers-create.html#gaf74adb761b22566ad70004882712dce1":[11,0,0,0,39], +"group__HTTP-headers-read.html":[9,6,4], +"group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b":[11,0,0,0,143], +"group__HTTP-headers-read.html#ga2c0597b2ef1d2cee35736c338bcbd17b":[9,6,4,7], +"group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e":[9,6,4,5], +"group__HTTP-headers-read.html#ga594f3d0ece5b09c2ccf9f98ea533bb4e":[11,0,0,0,97], +"group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77":[9,6,4,3], +"group__HTTP-headers-read.html#ga6ce6aa1c0155ea42b7708bed271d1c77":[11,0,0,0,95], +"group__HTTP-headers-read.html#ga6e747906f9d76532ec118d6ef418b82e":[11,0,0,0,31], +"group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2":[9,6,4,2], +"group__HTTP-headers-read.html#ga84e9ce5e71a77501a0998ac403a984c2":[11,0,0,0,93], +"group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8":[9,6,4,6], +"group__HTTP-headers-read.html#ga8ade0e1ffb0da7e62b989d8d867bf6c8":[11,0,0,0,98], +"group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9":[9,6,4,4], +"group__HTTP-headers-read.html#gaa427cad61a9a5e3004afd65c4527b5e9":[11,0,0,0,96], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea03293996964a8bb617215508908048d4":[11,0,0,0,31,42], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea05c73ad09f25570a50068de13333e41a":[11,0,0,0,31,57], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0784fa0e5bdbacd1e14c2d6ba0c42992":[11,0,0,0,31,27], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0830a0c1c62c444ade7cf15599e92345":[11,0,0,0,31,47], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0a3c723f67cb6d95dba0c0ccc7d898f8":[11,0,0,0,31,69], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea0dd5ce6fa8932e0d378b86c393d8f726":[11,0,0,0,31,11], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea11ed9b0cc3b4525c830de7185fd8d7df":[11,0,0,0,31,62], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1347e093d73e88489ba3ebda56a393a5":[11,0,0,0,31,32], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea138fedfdb81765272d22b0eca9aec22b":[11,0,0,0,31,9], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea157c1db7d8edd3cd3b649e7756a559c8":[11,0,0,0,31,80], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea166e60d6689436c1fb9169438d5db1b9":[11,0,0,0,31,13], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1d41be78df2704c54b906f7f0abbaa30":[11,0,0,0,31,51], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea1ee866e12a483229599f4e3cfc358b36":[11,0,0,0,31,53], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea21ac48d2a499f6afa44cee92cebd8ae3":[11,0,0,0,31,82], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea220975eeb65cac57691adb3761a492bb":[11,0,0,0,31,50], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea228ece9e187ddbb80236851e9a09145c":[11,0,0,0,31,83], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea277d11b0d5e7fdfc6b5fb45470e6f63e":[11,0,0,0,31,39], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea2be8537e80387a88197d3ed62ac3b954":[11,0,0,0,31,45], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea2efae4ba6646ba040c371706f7f3a125":[11,0,0,0,31,56], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3733863fb466c1df6b00c9384a53e544":[11,0,0,0,31,85], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea385f0e1933f81529307fff61eb08ff8d":[11,0,0,0,31,54], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3ac4744411849aff89001ee0350aed75":[11,0,0,0,31,60], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3cf47b821d473b717002b22619a9814e":[11,0,0,0,31,7], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3ef26b531c1c2416850ebd539f08ba5e":[11,0,0,0,31,17], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea3fd7c7c9587953adc8f317a615df6b83":[11,0,0,0,31,14], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea400831fe4ba52d4c454364a81ea3bfe4":[11,0,0,0,31,91], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea428409a7aaea6446b660574e4097c0bd":[11,0,0,0,31,90], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea439ada24e20de209e08e7dd398ca61ac":[11,0,0,0,31,66], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea525ee6d2330fca0929df75ffb8dec68e":[11,0,0,0,31,33], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea52a30bd1a5ca619ab19bb8178138e42f":[11,0,0,0,31,58], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea549fcdd8300f0c7434289db6326ec06a":[11,0,0,0,31,22], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea56913c617d46273743bb187bcd8e90c2":[11,0,0,0,31,65], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea569588399651cdd6b81de40be4b73fd8":[11,0,0,0,31,46], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea57ff348ebbae88bf904bc64ef284d83b":[11,0,0,0,31,20], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea598578cda71fe6ca34320bbd6ba1e887":[11,0,0,0,31,55], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea5dcd48b2643d8a82a97b7abbc3928ea8":[11,0,0,0,31,81], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea5e005569744e3246ba40d524f9a84fe4":[11,0,0,0,31,44], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea6164d17e9598f89c822b4be55814de0a":[11,0,0,0,31,48], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea63e1e08da7555313caf632a819db27d4":[11,0,0,0,31,41], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea669e4eea57595f569f329bfba900a15d":[11,0,0,0,31,3], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea693a74f3cd695016120bfdae3d3ced1a":[11,0,0,0,31,68], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea70b452bb6ce670e32c30fa237bceb731":[11,0,0,0,31,15], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7460d076c52a9fae65c9e00bac05ef19":[11,0,0,0,31,76], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea751322eb9f58fa33bf1f6e4923ff9abb":[11,0,0,0,31,1], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7708c82134391d257d6c354ae7bf1429":[11,0,0,0,31,31], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea78834452a5833032294abe1aa42055c6":[11,0,0,0,31,64], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7892390328672ed812b3b68bc3e0fe40":[11,0,0,0,31,52], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea78fbb32e1809d5767e55de3181d454b0":[11,0,0,0,31,19], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea7e80eff7eefa68741f0a776d6d8feeae":[11,0,0,0,31,78], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea832a110c8b9eb42890f252a756c81bde":[11,0,0,0,31,36], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea86b3c4cf71dc5c5b441243db99ca696a":[11,0,0,0,31,61], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea883a86db0c05266214affd78d37e871f":[11,0,0,0,31,86], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8913c5b1378b1ffad7e2da975c454d15":[11,0,0,0,31,26], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8d7393b324a076186bbde01a2cfe6b62":[11,0,0,0,31,49], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8d9809cf381705f73af48d8f6809412b":[11,0,0,0,31,24], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8f6a44a37c29cb5ade4c5989467a880b":[11,0,0,0,31,75], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea8ff0b2f6666e008de14d9b9721b87ead":[11,0,0,0,31,89], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ea9004d6ff6b16b8877f760545a3c7be60":[11,0,0,0,31,63], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa0cad0c7a20ac23945a33dbc3d726718":[11,0,0,0,31,30], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa566f2c37d9a459ca95eee347cca68d0":[11,0,0,0,31,67], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa76ea751f1ee86567d27e9e30075d6db":[11,0,0,0,31,40], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa84e4902ebeb7ab468e3a4bd4acf4f90":[11,0,0,0,31,84], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaa8c8eb9b32feb43ec214d8469655a0df":[11,0,0,0,31,87], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaab4585e187936b4f2abf22e9138ee271":[11,0,0,0,31,5], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaae70d627de34f9c881445f6fbcfcc2dd":[11,0,0,0,31,38], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab0926aa28ea9bb73d2b0124c05c30a78":[11,0,0,0,31,88], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab2339b9e75c79dae3547255d1fb046cd":[11,0,0,0,31,2], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eab460c34b18e1ae54219c3fb9e60544ef":[11,0,0,0,31,4], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaba11ed0aa8c8c7bd71d971a234df0a72":[11,0,0,0,31,21], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eabfb2738a1148ec7c039f2af640b28430":[11,0,0,0,31,71], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eac7157acd472d24de05aee3de57b8dc8a":[11,0,0,0,31,12], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eac9a937e393da4c3a77cf82463265dcee":[11,0,0,0,31,6], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ead32022a286b9cc6fbe60b1a0411370a7":[11,0,0,0,31,28], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82ead603502e2545c533c4c01ba39e35a2b0":[11,0,0,0,31,16], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadb08a1c7b1f76e2962d44149bf488bf8":[11,0,0,0,31,34], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadbb64ba8a29fee913ded2163a5d16615":[11,0,0,0,31,10], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eadff4760ab45fc182ab1e1fb68afa6714":[11,0,0,0,31,70], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae215f7e72fea4458fd971cdcb45d8e04":[11,0,0,0,31,18], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae24b2d70918c70e034ff574a516e0023":[11,0,0,0,31,59], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae5d5ca0131fbea1df03d7ad6d69ebfbd":[11,0,0,0,31,25], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae6286060884d4c80a88fa94fec58dda3":[11,0,0,0,31,0], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae898ee2a1e374f7d98aa483940c91511":[11,0,0,0,31,73], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eae9d2323ce213a112ac90361f04a1ee5a":[11,0,0,0,31,43], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaec69fb61493d1c67316c02259b86bdc2":[11,0,0,0,31,35], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaec821397393facee38ddd4119473b992":[11,0,0,0,31,29], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaee14b94fcd4ab788e313e0789bec0cdc":[11,0,0,0,31,77], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaeef14469c992ebb09a43a8548db37401":[11,0,0,0,31,23], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf2b7eac7ff98aea6d9b240f6f51995c3":[11,0,0,0,31,72], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf48e3b9c89dba34054ea0833dbad4b57":[11,0,0,0,31,8], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf567d4d400062fab44f1b96c64cb93ac":[11,0,0,0,31,37], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eaf64cb8232e172aaa019c38b398d0a0bb":[11,0,0,0,31,74], +"group__HTTP-headers-read.html#gga6e747906f9d76532ec118d6ef418b82eafc1e8568187b2de76e2ddd5cc692908e":[11,0,0,0,31,79], +"group__Protocols-and-Plugins.html":[9,10], +"group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43":[9,10,4], +"group__Protocols-and-Plugins.html#ga106b37ae9c247e84d191ab09441adc43":[11,0,0,0,77], +"group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d":[11,0,0,0,151], +"group__Protocols-and-Plugins.html#ga25754726d97c5f519d313e691a9fe29d":[9,10,9], +"group__Protocols-and-Plugins.html#ga40994491e1567f91f579d2b444775266":[11,0,0,0,12], +"group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112":[9,10,5], +"group__Protocols-and-Plugins.html#ga72ad550786ca7976463589d347e62112":[11,0,0,0,89], +"group__Protocols-and-Plugins.html#ga83f7a924ba790fa273476075a59f08b0":[11,0,0,0,11], +"group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030":[9,10,6], +"group__Protocols-and-Plugins.html#ga8bbe5e65faca068845704bab911a5030":[11,0,0,0,115], +"group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1":[9,10,8], +"group__Protocols-and-Plugins.html#gaec0c0477288ff3f83aff38d357b883d1":[11,0,0,0,117], +"group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129":[9,10,7], +"group__Protocols-and-Plugins.html#gaf3be4243443baac0f8be1fcfb4d25129":[11,0,0,0,116], +"group__callback-when-writeable.html":[9,1], +"group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053":[9,1,1], +"group__callback-when-writeable.html#ga13c984d8c5a44a745fd02bc2fba36053":[11,0,0,0,47], +"group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5":[9,1,5], +"group__callback-when-writeable.html#ga60939cf0c073d933fde3d17f3591caf5":[11,0,0,0,51], +"group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8":[9,1,4], +"group__callback-when-writeable.html#ga8570860e191b62db264f2bac67354ea8":[11,0,0,0,50], +"group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d":[9,1,2], +"group__callback-when-writeable.html#ga941caaa468bc507b1cae52275f58800d":[11,0,0,0,48], +"group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba":[9,1,7], +"group__callback-when-writeable.html#gaa709e02a10558753c851e58f1e2c16ba":[11,0,0,0,92], +"group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107":[9,1,3], +"group__callback-when-writeable.html#gabbe4655c7eeb3eb1671b2323ec6b3107":[11,0,0,0,49], +"group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde":[9,1,6], +"group__callback-when-writeable.html#gac4643fe16b0940ae5b68b4ee6195cbde":[11,0,0,0,88], +"group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70":[9,1,0], +"group__callback-when-writeable.html#gacf04bbe089f47c971c6408c5efe2ac70":[11,0,0,0,46], +"group__cgi.html":[9,19], +"group__client.html":[9,2], +"group__client.html#ga0c966136905f467816307cfba6deb5fd":[9,2,4], +"group__client.html#ga0c966136905f467816307cfba6deb5fd":[11,0,0,0,61], +"group__client.html#ga4450c34200bf9dab3beb90ef23221870":[11,0,0,0,99], +"group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3":[9,2,2], +"group__client.html#ga4af0a20108a95e8b6d94dd4d80055ff3":[11,0,0,0,59], +"group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340":[9,2,5], +"group__client.html#ga4f44b8230e6732816ca5cd8d1aaaf340":[11,0,0,0,102], +"group__client.html#ga96f3dbad54b2853969cfa933d66871ce":[9,2,1], +"group__client.html#ga96f3dbad54b2853969cfa933d66871ce":[11,0,0,0,21], +"group__client.html#gac6a8558b4410961a880241c2ac1271e2":[9,2,3], +"group__client.html#gac6a8558b4410961a880241c2ac1271e2":[11,0,0,0,60], +"group__client.html#gga96f3dbad54b2853969cfa933d66871cea7051e79bb97b69862f2ff00ae5298ec7":[11,0,0,0,21,0], +"group__client.html#gga96f3dbad54b2853969cfa933d66871cea89866ab6a749aaa1684158c55f826b35":[11,0,0,0,21,2], +"group__client.html#gga96f3dbad54b2853969cfa933d66871ceafc72c0ffbc7462bdddd4ce7bd99ac092":[11,0,0,0,21,1], +"group__context-and-vhost.html":[9,4], +"group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932":[9,4,8], +"group__context-and-vhost.html#ga06e77ce2916f8bc9826ef8d9d68e3932":[11,0,0,0,94], +"group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c":[11,0,0,0,66], +"group__context-and-vhost.html#ga0c54c667ccd9b8b3dddcd123ca72f87c":[9,4,7], +"group__context-and-vhost.html#ga341064721add2618ae1b29717493a212":[11,0,0,0,158], +"group__context-and-vhost.html#ga341064721add2618ae1b29717493a212":[9,4,14], +"group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5":[11,0,0,0,23], +"group__context-and-vhost.html#ga41c2d763f78cc248df3b9f8645dbd2a5":[9,4,3], +"group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4":[11,0,0,0,133], +"group__context-and-vhost.html#ga7e9d5405547a457d86e0b4f0ae2bb1c4":[9,4,11], +"group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c":[11,0,0,0,150], +"group__context-and-vhost.html#ga8db03e19a372e34ac25cf21af894a02c":[9,4,12], +"group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb":[9,4,4], +"group__context-and-vhost.html#ga8ee0314028755f1ddfa9428e09b4fddb":[11,0,0,0,63], +"group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6":[9,4,10], +"group__context-and-vhost.html#ga94e6cc2223c4eec316b13bcebc3628b6":[11,0,0,0,108], +"group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73":[11,0,0,0,157], +"group__context-and-vhost.html#ga98d88c9080fd89c37114363a6474ea73":[9,4,13], +"group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d":[9,4,9], +"group__context-and-vhost.html#gae2134657cdd2ea7a59e13ad314e4c50d":[11,0,0,0,107], +"group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da":[9,4,5], +"group__context-and-vhost.html#gaeb12f934bfd178bd2132a9e73fc641da":[11,0,0,0,64], +"group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648":[11,0,0,0,65], +"group__context-and-vhost.html#gaf2fff58562caab7510c41eeac85a8648":[9,4,6], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c":[11,0,0,0,23,8], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c":[9,4,3,8], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d":[11,0,0,0,23,2], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d":[9,4,3,2], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6":[11,0,0,0,23,3], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6":[9,4,3,3], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092":[11,0,0,0,23,0], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092":[9,4,3,0], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9":[11,0,0,0,23,4], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9":[9,4,3,4], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada":[11,0,0,0,23,10], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada":[9,4,3,10], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93":[11,0,0,0,23,5], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93":[9,4,3,5], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c":[11,0,0,0,23,1], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c":[9,4,3,1], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a":[11,0,0,0,23,11], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a":[9,4,3,11], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941":[11,0,0,0,23,13], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5a9637e9001d8c8b2521086bcafbd8a941":[9,4,3,13], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f":[11,0,0,0,23,7], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f":[9,4,3,7], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc":[11,0,0,0,23,6], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc":[9,4,3,6] }; diff --git a/doc/html/navtreeindex1.js b/doc/html/navtreeindex1.js index b895bd67..f7b82c04 100644 --- a/doc/html/navtreeindex1.js +++ b/doc/html/navtreeindex1.js @@ -1,253 +1,253 @@ var NAVTREEINDEX1 = { -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016":[9,0,0,0,23,14], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016":[7,4,3,14], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160":[9,0,0,0,23,16], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160":[7,4,3,16], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e":[9,0,0,0,23,12], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e":[7,4,3,12], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8":[9,0,0,0,23,15], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8":[7,4,3,15], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e":[9,0,0,0,23,9], -"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e":[7,4,3,9], -"group__ev.html":[7,21], -"group__ev.html#ga3b0ffd4d2b4fa791c0fd75353a330208":[9,0,0,0,8], -"group__ev.html#ga3fdd23ded693b21853356dc9eaef5ccc":[9,0,0,0,71], -"group__ev.html#ga5caf14a420a2a0bd687a1fc952f8d64e":[9,0,0,0,73], -"group__ev.html#gaabfc0880d6a98133550c61aa01ef3563":[9,0,0,0,72], -"group__extensions.html":[7,5], -"group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e":[7,5,6], -"group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e":[9,0,0,0,75], -"group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b":[7,5,5], -"group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b":[9,0,0,0,74], -"group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0":[9,0,0,0,9], -"group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0":[7,5,3], -"group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e":[9,0,0,0,25], -"group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e":[7,5,4], -"group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9":[7,5,7], -"group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9":[9,0,0,0,131], -"group__extensions.html#gae9993815eee72c6070300a0ae2f022d7":[9,0,0,0,26], -"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e":[7,5,4,1], -"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e":[9,0,0,0,25,1], -"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880":[7,5,4,2], -"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880":[9,0,0,0,25,2], -"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c":[9,0,0,0,25,0], -"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c":[7,5,4,0], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a05b74161bfab0f815d7fd47b85e20bfc":[9,0,0,0,26,9], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a0b220da55b7d7a9579175f1ec81579fb":[9,0,0,0,26,17], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a22a8130d0db03d62154d0502b1737a48":[9,0,0,0,26,22], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a246b82fadb41dc04cf4d40fd42987458":[9,0,0,0,26,19], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a25ceebb1ee06c2f0963b44165065efb9":[9,0,0,0,26,26], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a270b950562f97510ec06b02dbcbace11":[9,0,0,0,26,23], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a5a4cacc86ebddc8cb5a3f4ec91ba3fba":[9,0,0,0,26,12], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a648e8e3988ca8bdf20ddcfd2a14e3f10":[9,0,0,0,26,13], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a6cbdd5cfd6d39e3cacd4ca02e2ae54e3":[9,0,0,0,26,8], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a741d5d795895b192cbde6adbc851a822":[9,0,0,0,26,11], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a7fe88715ded486af17228050a1d05e90":[9,0,0,0,26,2], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a83dff5bb6cd4c6e0cc85cb12fb9c0178":[9,0,0,0,26,5], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a862b122e8f17a50f5ab6e7b56087c09c":[9,0,0,0,26,20], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a866a849e7d59a3a44c92ecdfb1393e4e":[9,0,0,0,26,0], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a8e4e3c201d029c8d78457fb4fdddef4a":[9,0,0,0,26,7], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa2901960832871f606354d58e58b6453":[9,0,0,0,26,4], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa4eb48182ed8bd10d257df5a8b154cc2":[9,0,0,0,26,24], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa6d94d15f31176a4e1214c4c31edd5f8":[9,0,0,0,26,18], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aaf81548db378fa156a7cf290abff87ad":[9,0,0,0,26,21], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7abb36b02569c81df4509f58f964a8155b":[9,0,0,0,26,3], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7abc92c2b16b0d54b3a9736e62a520a446":[9,0,0,0,26,10], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ac2af19277affbbc731379ddfb38f820e":[9,0,0,0,26,16], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ac5d7be02c676c836bb8ec448803dd606":[9,0,0,0,26,14], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ad113e96df806fb20fd4f02dbe19e4f4b":[9,0,0,0,26,6], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ad426ef79eec1b6e036118f64e6fa62f5":[9,0,0,0,26,25], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ae57bedd24d5a29f5f381f8155c2ab3b8":[9,0,0,0,26,15], -"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7afa4a8739f6424c4dac3eead479628002":[9,0,0,0,26,1], -"group__fops.html":[7,20], -"group__fops.html#gac08aef64c4c34647ed699b24759b6b0e":[7,20,1], -"group__fops.html#gac08aef64c4c34647ed699b24759b6b0e":[9,0,0,0,82], -"group__form-parsing.html":[7,6,0], -"group__form-parsing.html#ga162f86762173a2bc8c28497941d74815":[7,6,0,2], -"group__form-parsing.html#ga162f86762173a2bc8c28497941d74815":[9,0,0,0,136], -"group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd":[7,6,0,6], -"group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd":[9,0,0,0,140], -"group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f":[9,0,0,0,139], -"group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f":[7,6,0,5], -"group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae":[7,6,0,1], -"group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae":[9,0,0,0,30], -"group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e":[7,6,0,0], -"group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e":[9,0,0,0,15], -"group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24":[7,6,0,4], -"group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24":[9,0,0,0,138], -"group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2":[7,6,0,7], -"group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2":[9,0,0,0,141], -"group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b":[9,0,0,0,137], -"group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b":[7,6,0,3], -"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83":[7,6,0,1,2], -"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83":[9,0,0,0,30,2], -"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7":[7,6,0,1,1], -"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7":[9,0,0,0,30,1], -"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f":[7,6,0,1,0], -"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f":[9,0,0,0,30,0], -"group__generic-sessions.html":[7,10,0], -"group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1":[7,10,0,5], -"group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1":[9,0,0,0,33], -"group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e":[7,10,0,4], -"group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e":[9,0,0,0,27], -"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf":[7,10,0,5,1], -"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf":[9,0,0,0,33,1], -"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a":[7,10,0,5,3], -"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a":[9,0,0,0,33,3], -"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887":[7,10,0,5,2], -"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887":[9,0,0,0,33,2], -"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57":[7,10,0,5,0], -"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57":[9,0,0,0,33,0], -"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308":[7,10,0,4,0], -"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308":[9,0,0,0,27,0], -"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde":[7,10,0,4,1], -"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde":[9,0,0,0,27,1], -"group__html-chunked-substitution.html":[7,6,1], -"group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60":[7,6,1,2], -"group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60":[9,0,0,0,58], -"group__html-chunked-substitution.html#ga669d3d7ce2d5f193473f649a89b3e7ac":[9,0,0,0,13], -"group__html-chunked-substitution.html#gabc3b93f68c8bdd857ad32913628dfa8d":[9,0,0,0,18], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da08107f6b0e1d7c9e2ca100700cc7200f":[9,0,0,0,18,22], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da145570ed1178d3d90ad9b7652fea83cf":[9,0,0,0,18,20], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da1558c42d80f54def5f3277dc879d2844":[9,0,0,0,18,11], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da2637ec8a704c0d7fcb7ff8ce5d871be0":[9,0,0,0,18,19], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da299a2d262210540b593420fe89e01b32":[9,0,0,0,18,23], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da2e57a633f7a2422f67bf207648519e30":[9,0,0,0,18,21], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da36b5bcf2059ae3c84a47e080822239c7":[9,0,0,0,18,13], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da40246e02220192ce8d7f86591ca1cfe4":[9,0,0,0,18,12], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da419c919f74b88d18803358141ab9471c":[9,0,0,0,18,8], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da49cf9c4c184f9e4d265ceae249e92477":[9,0,0,0,18,5], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da53df069872b37830e4296f32e7ec20d8":[9,0,0,0,18,3], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da63eb71a406e943d4634c357d60dd96df":[9,0,0,0,18,10], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da67278d96cfa0eb507535b94338810d65":[9,0,0,0,18,15], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da6964f9591ba7284dc4bd388d40c106a9":[9,0,0,0,18,14], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da9632802fcd318d1676be7589e6004e96":[9,0,0,0,18,2], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daafd60e3a2073e04b8f2247f8f9ac9710":[9,0,0,0,18,18], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dab355dd546e62b1478fe3ef94b554f75c":[9,0,0,0,18,26], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dab42dfcbd67b4e66096e3a8e924b6d6c9":[9,0,0,0,18,16], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac3d4da4de851d5c8f95748145b59716a":[9,0,0,0,18,17], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac96829d2c2cb76feb1549f0fac72c69e":[9,0,0,0,18,25], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac9c5b4e80aa858cfe2763656db1f16e3":[9,0,0,0,18,24], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad000a2e30c534c201201dd74fac8d2f9":[9,0,0,0,18,1], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad34cd21de350cd4fa83b8099e3993b91":[9,0,0,0,18,0], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad771b2a0ab88db11b2719c8e5086fb48":[9,0,0,0,18,6], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dadd02813da14cfdc7fe83029b8779ea4b":[9,0,0,0,18,28], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dae301c12d0cf56920659cb7b947a95267":[9,0,0,0,18,4], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daefdfc7b525c87b911d6e92a30e36cfec":[9,0,0,0,18,27], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daf06c31278cb67d7eec4b2b8157b9ad25":[9,0,0,0,18,9], -"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dafac24097912a70f224166528ce44b83b":[9,0,0,0,18,7], -"group__http.html":[7,6], -"group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25":[7,6,7], -"group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25":[9,0,0,0,100], -"group__http.html#gac8a4a71240857dc6b2ed70456b6923f4":[7,6,9], -"group__http.html#gac8a4a71240857dc6b2ed70456b6923f4":[9,0,0,0,120], -"group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a":[7,6,8], -"group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a":[9,0,0,0,101], -"group__httpft.html":[7,6,2], -"group__httpft.html#ga29e1123f6d56cd777b3e5bf9ca40f9e5":[9,0,0,0,125], -"group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7":[7,6,2,1], -"group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7":[9,0,0,0,124], -"group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c":[7,6,2,0], -"group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c":[9,0,0,0,84], -"group__log.html":[7,7], -"group__log.html#ga14542b84d2c76efa7814124bb10f9c5f":[9,0,0,0,28], -"group__log.html#ga244647f9e1bf0097ccdde66d74f41e26":[7,7,0], -"group__log.html#ga244647f9e1bf0097ccdde66d74f41e26":[9,0,0,0,132], -"group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd":[9,0,0,0,156], -"group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd":[7,7,3], -"group__log.html#ga74eb146969f0595e12ea835851b4588e":[9,0,0,0,37], -"group__log.html#ga898b1f03872ad019f507d4e35bbefa90":[9,0,0,0,155], -"group__log.html#ga898b1f03872ad019f507d4e35bbefa90":[7,7,2], -"group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c":[9,0,0,0,154], -"group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c":[7,7,1], -"group__log.html#gaf5f07837692b2f231a79da8a058288aa":[9,0,0,0,36], -"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa083a44e71966a0e768426e477e1bc358":[9,0,0,0,28,8], -"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa2be9c1d50d05756078e9abc72c9e50cc":[9,0,0,0,28,5], -"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa52e5cd60bbb85f30ec0078a2c4be0c59":[9,0,0,0,28,3], -"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa6353ac9650d35e8958981eebcb4b67a9":[9,0,0,0,28,7], -"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faa12195bd6dd442763a8321c463a2c906":[9,0,0,0,28,1], -"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faacc8fe5891eba3cf4537bee50eaaa8fa":[9,0,0,0,28,10], -"group__log.html#gga14542b84d2c76efa7814124bb10f9c5facef27c02b70f1bc9140685bdfafe0942":[9,0,0,0,28,6], -"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fad0b18841adbb4792c39981ec05702744":[9,0,0,0,28,4], -"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fad40a82f6c94e6408dd003cf3f0231212":[9,0,0,0,28,2], -"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fae4235ca28326353e283bc7dd1b39bd86":[9,0,0,0,28,9], -"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faff4895280366d59ef0c5e9f4578241af":[9,0,0,0,28,0], -"group__misc.html":[7,8], -"group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b":[7,8,2], -"group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b":[9,0,0,0,80], -"group__misc.html#ga0e705d498e8c8500649a26ba30a1e106":[9,0,0,0,118], -"group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[9,0,0,0,113], -"group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[7,8,8], -"group__misc.html#ga33bf2635033710b25f931b57ed663e1e":[7,8,7], -"group__misc.html#ga33bf2635033710b25f931b57ed663e1e":[9,0,0,0,112], -"group__misc.html#ga58f906c6be0ca80efd813f694569dd4a":[7,8,6], -"group__misc.html#ga58f906c6be0ca80efd813f694569dd4a":[9,0,0,0,90], -"group__misc.html#ga629f48268fd1856b54b11172991b97d9":[7,8,3], -"group__misc.html#ga629f48268fd1856b54b11172991b97d9":[9,0,0,0,81], -"group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899":[7,8,5], -"group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899":[9,0,0,0,85], -"group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[9,0,0,0,153], -"group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[7,8,10], -"group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b":[7,8,9], -"group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b":[9,0,0,0,130], -"group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0":[7,8,4], -"group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0":[9,0,0,0,83], -"group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234":[7,8,1], -"group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234":[9,0,0,0,79], -"group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af":[7,8,0], -"group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af":[9,0,0,0,67], -"group__net.html":[7,9], -"group__net.html#ga092e5f473b3347f03ffeef8a950080f3":[7,9,1], -"group__net.html#ga092e5f473b3347f03ffeef8a950080f3":[9,0,0,0,86], -"group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8":[7,9,3], -"group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8":[9,0,0,0,103], -"group__net.html#gad01014fed09759741b6d23afccfdaacc":[7,9,2], -"group__net.html#gad01014fed09759741b6d23afccfdaacc":[9,0,0,0,87], -"group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4":[7,9,0], -"group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4":[9,0,0,0,54], -"group__pur.html":[7,12], -"group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865":[9,0,0,0,142], -"group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865":[7,12,1], -"group__pur.html#gab15187efcfa256b7c928562c182b92a3":[7,12,0], -"group__pur.html#gab15187efcfa256b7c928562c182b92a3":[9,0,0,0,109], -"group__sending-data.html":[7,13], -"group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d":[7,13,0], -"group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d":[9,0,0,0,32], -"group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001":[9,0,0,0,152], -"group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001":[7,13,1], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826":[7,13,0,2], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826":[9,0,0,0,32,2], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3":[7,13,0,5], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3":[9,0,0,0,32,8], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce":[7,13,0,6], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce":[9,0,0,0,32,9], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da6e556322ff8f205bf311608f7f6e6559":[9,0,0,0,32,4], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db":[7,13,0,0], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db":[9,0,0,0,32,0], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dab7e7a62cf6f456c09c21dff24dad9039":[9,0,0,0,32,5], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e":[7,13,0,3], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e":[9,0,0,0,32,3], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dae7d8a025a65524652fe9e24c2654c935":[9,0,0,0,32,6], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2":[7,13,0,1], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2":[9,0,0,0,32,1], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917":[7,13,0,4], -"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917":[9,0,0,0,32,7], -"group__service.html":[7,0], -"group__service.html#ga29c246707997ab7a466aa709aecd2d7b":[7,0,1], -"group__service.html#ga29c246707997ab7a466aa709aecd2d7b":[9,0,0,0,53], -"group__service.html#ga53e3d0801dfda7960a7249dd559e68a2":[7,0,0], -"group__service.html#ga53e3d0801dfda7960a7249dd559e68a2":[9,0,0,0,52], -"group__service.html#ga9b3cc4473fd8848e5bbee7f310712939":[7,0,5], -"group__service.html#ga9b3cc4473fd8848e5bbee7f310712939":[9,0,0,0,129], -"group__service.html#gad82efa5466d14a9f05aa06416375b28d":[7,0,3], -"group__service.html#gad82efa5466d14a9f05aa06416375b28d":[9,0,0,0,127], -"group__service.html#gaebf426eda371ba23642fc11d8e0ace6b":[7,0,4], -"group__service.html#gaebf426eda371ba23642fc11d8e0ace6b":[9,0,0,0,128], -"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8":[7,0,2], -"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8":[9,0,0,0,126], -"group__sha.html":[7,11], -"group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d":[7,11,0], -"group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d":[9,0,0,0,44], -"group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5":[9,0,0,0,135] +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016":[11,0,0,0,23,14], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5ac962efd35abf6c402f9fb14aa14f5016":[9,4,3,14], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160":[11,0,0,0,23,16], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aca5d42820b65eac5618ec3f0bd8a1160":[9,4,3,16], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e":[11,0,0,0,23,12], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5accc9d0d11d1124a21659586164b0962e":[9,4,3,12], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8":[11,0,0,0,23,15], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5af62887536e25e053e68741006dba46d8":[9,4,3,15], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e":[11,0,0,0,23,9], +"group__context-and-vhost.html#gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e":[9,4,3,9], +"group__ev.html":[9,21], +"group__ev.html#ga3b0ffd4d2b4fa791c0fd75353a330208":[11,0,0,0,8], +"group__ev.html#ga3fdd23ded693b21853356dc9eaef5ccc":[11,0,0,0,71], +"group__ev.html#ga5caf14a420a2a0bd687a1fc952f8d64e":[11,0,0,0,73], +"group__ev.html#gaabfc0880d6a98133550c61aa01ef3563":[11,0,0,0,72], +"group__extensions.html":[9,5], +"group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e":[9,5,6], +"group__extensions.html#ga4cdbe42d872e21a448a947714d6c607e":[11,0,0,0,75], +"group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b":[9,5,5], +"group__extensions.html#ga6fb3e2c3dfb9d64dc87026a4e99c128b":[11,0,0,0,74], +"group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0":[9,5,3], +"group__extensions.html#gaae7169b2cd346b34fa33d0250db2afd0":[11,0,0,0,9], +"group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e":[9,5,4], +"group__extensions.html#gacc9f55936dc165257a2e1f7d47bce89e":[11,0,0,0,25], +"group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9":[9,5,7], +"group__extensions.html#gae0e24e1768f83a7fb07896ce975704b9":[11,0,0,0,131], +"group__extensions.html#gae9993815eee72c6070300a0ae2f022d7":[11,0,0,0,26], +"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e":[9,5,4,1], +"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e":[11,0,0,0,25,1], +"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880":[9,5,4,2], +"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880":[11,0,0,0,25,2], +"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c":[9,5,4,0], +"group__extensions.html#ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c":[11,0,0,0,25,0], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a05b74161bfab0f815d7fd47b85e20bfc":[11,0,0,0,26,9], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a0b220da55b7d7a9579175f1ec81579fb":[11,0,0,0,26,17], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a22a8130d0db03d62154d0502b1737a48":[11,0,0,0,26,22], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a246b82fadb41dc04cf4d40fd42987458":[11,0,0,0,26,19], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a25ceebb1ee06c2f0963b44165065efb9":[11,0,0,0,26,26], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a270b950562f97510ec06b02dbcbace11":[11,0,0,0,26,23], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a5a4cacc86ebddc8cb5a3f4ec91ba3fba":[11,0,0,0,26,12], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a648e8e3988ca8bdf20ddcfd2a14e3f10":[11,0,0,0,26,13], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a6cbdd5cfd6d39e3cacd4ca02e2ae54e3":[11,0,0,0,26,8], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a741d5d795895b192cbde6adbc851a822":[11,0,0,0,26,11], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a7fe88715ded486af17228050a1d05e90":[11,0,0,0,26,2], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a83dff5bb6cd4c6e0cc85cb12fb9c0178":[11,0,0,0,26,5], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a862b122e8f17a50f5ab6e7b56087c09c":[11,0,0,0,26,20], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a866a849e7d59a3a44c92ecdfb1393e4e":[11,0,0,0,26,0], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7a8e4e3c201d029c8d78457fb4fdddef4a":[11,0,0,0,26,7], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa2901960832871f606354d58e58b6453":[11,0,0,0,26,4], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa4eb48182ed8bd10d257df5a8b154cc2":[11,0,0,0,26,24], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aa6d94d15f31176a4e1214c4c31edd5f8":[11,0,0,0,26,18], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7aaf81548db378fa156a7cf290abff87ad":[11,0,0,0,26,21], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7abb36b02569c81df4509f58f964a8155b":[11,0,0,0,26,3], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7abc92c2b16b0d54b3a9736e62a520a446":[11,0,0,0,26,10], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ac2af19277affbbc731379ddfb38f820e":[11,0,0,0,26,16], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ac5d7be02c676c836bb8ec448803dd606":[11,0,0,0,26,14], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ad113e96df806fb20fd4f02dbe19e4f4b":[11,0,0,0,26,6], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ad426ef79eec1b6e036118f64e6fa62f5":[11,0,0,0,26,25], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7ae57bedd24d5a29f5f381f8155c2ab3b8":[11,0,0,0,26,15], +"group__extensions.html#ggae9993815eee72c6070300a0ae2f022d7afa4a8739f6424c4dac3eead479628002":[11,0,0,0,26,1], +"group__fops.html":[9,20], +"group__fops.html#gac08aef64c4c34647ed699b24759b6b0e":[9,20,1], +"group__fops.html#gac08aef64c4c34647ed699b24759b6b0e":[11,0,0,0,82], +"group__form-parsing.html":[9,6,0], +"group__form-parsing.html#ga162f86762173a2bc8c28497941d74815":[11,0,0,0,136], +"group__form-parsing.html#ga162f86762173a2bc8c28497941d74815":[9,6,0,2], +"group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd":[11,0,0,0,140], +"group__form-parsing.html#ga2da476217166da02704b90d3a8d4f3cd":[9,6,0,6], +"group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f":[11,0,0,0,139], +"group__form-parsing.html#ga3fbe378632f85ec9a14cc2c1687bf05f":[9,6,0,5], +"group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae":[9,6,0,1], +"group__form-parsing.html#ga41a74a822771d3dce89751aa3bce28ae":[11,0,0,0,30], +"group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e":[9,6,0,0], +"group__form-parsing.html#ga5a70527c0861c2ffa3d29333a6aa7f8e":[11,0,0,0,15], +"group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24":[11,0,0,0,138], +"group__form-parsing.html#ga83835bf250ee3d4a60f36a182f2b8d24":[9,6,0,4], +"group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2":[11,0,0,0,141], +"group__form-parsing.html#ga9ad9ebf5ea1a7108415ed7e04cb231d2":[9,6,0,7], +"group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b":[11,0,0,0,137], +"group__form-parsing.html#gaaa482f07dad3f04b391cccf0a814e13b":[9,6,0,3], +"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83":[9,6,0,1,2], +"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83":[11,0,0,0,30,2], +"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7":[9,6,0,1,1], +"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7":[11,0,0,0,30,1], +"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f":[9,6,0,1,0], +"group__form-parsing.html#gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f":[11,0,0,0,30,0], +"group__generic-sessions.html":[9,10,0], +"group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1":[9,10,0,5], +"group__generic-sessions.html#ga7c2dc7bfb4ccb91c5d771f9e9ea237e1":[11,0,0,0,33], +"group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e":[9,10,0,4], +"group__generic-sessions.html#gaa93946b3d921072209d5cd8cdfa5332e":[11,0,0,0,27], +"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf":[9,10,0,5,1], +"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf":[11,0,0,0,33,1], +"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a":[9,10,0,5,3], +"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a":[11,0,0,0,33,3], +"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887":[9,10,0,5,2], +"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887":[11,0,0,0,33,2], +"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57":[9,10,0,5,0], +"group__generic-sessions.html#gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57":[11,0,0,0,33,0], +"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308":[9,10,0,4,0], +"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308":[11,0,0,0,27,0], +"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde":[9,10,0,4,1], +"group__generic-sessions.html#ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde":[11,0,0,0,27,1], +"group__html-chunked-substitution.html":[9,6,1], +"group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60":[9,6,1,2], +"group__html-chunked-substitution.html#ga643073f918c0a7016b690aae9793fd60":[11,0,0,0,58], +"group__html-chunked-substitution.html#ga669d3d7ce2d5f193473f649a89b3e7ac":[11,0,0,0,13], +"group__html-chunked-substitution.html#gabc3b93f68c8bdd857ad32913628dfa8d":[11,0,0,0,18], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da08107f6b0e1d7c9e2ca100700cc7200f":[11,0,0,0,18,22], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da145570ed1178d3d90ad9b7652fea83cf":[11,0,0,0,18,20], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da1558c42d80f54def5f3277dc879d2844":[11,0,0,0,18,11], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da2637ec8a704c0d7fcb7ff8ce5d871be0":[11,0,0,0,18,19], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da299a2d262210540b593420fe89e01b32":[11,0,0,0,18,23], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da2e57a633f7a2422f67bf207648519e30":[11,0,0,0,18,21], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da36b5bcf2059ae3c84a47e080822239c7":[11,0,0,0,18,13], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da40246e02220192ce8d7f86591ca1cfe4":[11,0,0,0,18,12], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da419c919f74b88d18803358141ab9471c":[11,0,0,0,18,8], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da49cf9c4c184f9e4d265ceae249e92477":[11,0,0,0,18,5], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da53df069872b37830e4296f32e7ec20d8":[11,0,0,0,18,3], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da63eb71a406e943d4634c357d60dd96df":[11,0,0,0,18,10], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da67278d96cfa0eb507535b94338810d65":[11,0,0,0,18,15], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da6964f9591ba7284dc4bd388d40c106a9":[11,0,0,0,18,14], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8da9632802fcd318d1676be7589e6004e96":[11,0,0,0,18,2], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daafd60e3a2073e04b8f2247f8f9ac9710":[11,0,0,0,18,18], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dab355dd546e62b1478fe3ef94b554f75c":[11,0,0,0,18,26], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dab42dfcbd67b4e66096e3a8e924b6d6c9":[11,0,0,0,18,16], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac3d4da4de851d5c8f95748145b59716a":[11,0,0,0,18,17], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac96829d2c2cb76feb1549f0fac72c69e":[11,0,0,0,18,25], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dac9c5b4e80aa858cfe2763656db1f16e3":[11,0,0,0,18,24], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad000a2e30c534c201201dd74fac8d2f9":[11,0,0,0,18,1], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad34cd21de350cd4fa83b8099e3993b91":[11,0,0,0,18,0], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dad771b2a0ab88db11b2719c8e5086fb48":[11,0,0,0,18,6], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dadd02813da14cfdc7fe83029b8779ea4b":[11,0,0,0,18,28], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dae301c12d0cf56920659cb7b947a95267":[11,0,0,0,18,4], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daefdfc7b525c87b911d6e92a30e36cfec":[11,0,0,0,18,27], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8daf06c31278cb67d7eec4b2b8157b9ad25":[11,0,0,0,18,9], +"group__html-chunked-substitution.html#ggabc3b93f68c8bdd857ad32913628dfa8dafac24097912a70f224166528ce44b83b":[11,0,0,0,18,7], +"group__http.html":[9,6], +"group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25":[9,6,7], +"group__http.html#ga8fbf01e473ac421fc33ad9f8da8b8a25":[11,0,0,0,100], +"group__http.html#gac8a4a71240857dc6b2ed70456b6923f4":[9,6,9], +"group__http.html#gac8a4a71240857dc6b2ed70456b6923f4":[11,0,0,0,120], +"group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a":[9,6,8], +"group__http.html#gad27aed6c66a41b2b89ffe4da2a309e8a":[11,0,0,0,101], +"group__httpft.html":[9,6,2], +"group__httpft.html#ga29e1123f6d56cd777b3e5bf9ca40f9e5":[11,0,0,0,125], +"group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7":[9,6,2,1], +"group__httpft.html#gab393a06d3d2722af4c3f8b06842c80d7":[11,0,0,0,124], +"group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c":[9,6,2,0], +"group__httpft.html#gab4da87a4800413f15e7aba649fb1d77c":[11,0,0,0,84], +"group__log.html":[9,7], +"group__log.html#ga14542b84d2c76efa7814124bb10f9c5f":[11,0,0,0,28], +"group__log.html#ga244647f9e1bf0097ccdde66d74f41e26":[11,0,0,0,132], +"group__log.html#ga244647f9e1bf0097ccdde66d74f41e26":[9,7,0], +"group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd":[11,0,0,0,156], +"group__log.html#ga42e39775c6b69b7251bdbf5a2cdd5dcd":[9,7,3], +"group__log.html#ga74eb146969f0595e12ea835851b4588e":[11,0,0,0,37], +"group__log.html#ga898b1f03872ad019f507d4e35bbefa90":[11,0,0,0,155], +"group__log.html#ga898b1f03872ad019f507d4e35bbefa90":[9,7,2], +"group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c":[11,0,0,0,154], +"group__log.html#gab7c0fc936cc9f1eb58e2bb234c15147c":[9,7,1], +"group__log.html#gaf5f07837692b2f231a79da8a058288aa":[11,0,0,0,36], +"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa083a44e71966a0e768426e477e1bc358":[11,0,0,0,28,8], +"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa2be9c1d50d05756078e9abc72c9e50cc":[11,0,0,0,28,5], +"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa52e5cd60bbb85f30ec0078a2c4be0c59":[11,0,0,0,28,3], +"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fa6353ac9650d35e8958981eebcb4b67a9":[11,0,0,0,28,7], +"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faa12195bd6dd442763a8321c463a2c906":[11,0,0,0,28,1], +"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faacc8fe5891eba3cf4537bee50eaaa8fa":[11,0,0,0,28,10], +"group__log.html#gga14542b84d2c76efa7814124bb10f9c5facef27c02b70f1bc9140685bdfafe0942":[11,0,0,0,28,6], +"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fad0b18841adbb4792c39981ec05702744":[11,0,0,0,28,4], +"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fad40a82f6c94e6408dd003cf3f0231212":[11,0,0,0,28,2], +"group__log.html#gga14542b84d2c76efa7814124bb10f9c5fae4235ca28326353e283bc7dd1b39bd86":[11,0,0,0,28,9], +"group__log.html#gga14542b84d2c76efa7814124bb10f9c5faff4895280366d59ef0c5e9f4578241af":[11,0,0,0,28,0], +"group__misc.html":[9,8], +"group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b":[9,8,2], +"group__misc.html#ga0af4f7d2dd375aeedcfa7eb0e1101c4b":[11,0,0,0,80], +"group__misc.html#ga0e705d498e8c8500649a26ba30a1e106":[11,0,0,0,118], +"group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[9,8,8], +"group__misc.html#ga1ec0d9faac5d3a5824d765c287c043aa":[11,0,0,0,113], +"group__misc.html#ga33bf2635033710b25f931b57ed663e1e":[9,8,7], +"group__misc.html#ga33bf2635033710b25f931b57ed663e1e":[11,0,0,0,112], +"group__misc.html#ga58f906c6be0ca80efd813f694569dd4a":[9,8,6], +"group__misc.html#ga58f906c6be0ca80efd813f694569dd4a":[11,0,0,0,90], +"group__misc.html#ga629f48268fd1856b54b11172991b97d9":[9,8,3], +"group__misc.html#ga629f48268fd1856b54b11172991b97d9":[11,0,0,0,81], +"group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899":[9,8,5], +"group__misc.html#ga8930fe36a3f3eefe4a6a4fd499d8e899":[11,0,0,0,85], +"group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[11,0,0,0,153], +"group__misc.html#gaa194584fff9698f3b280658f770ccd0f":[9,8,10], +"group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b":[9,8,9], +"group__misc.html#gab321ed812f46f6dc7ef9e3ca6f00cf1b":[11,0,0,0,130], +"group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0":[9,8,4], +"group__misc.html#gac6abfc0b2bd5b2f09281a4432bb2f5f0":[11,0,0,0,83], +"group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234":[9,8,1], +"group__misc.html#gacae4d7b6a8d22e4c2d82ff8b12c1e234":[11,0,0,0,79], +"group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af":[9,8,0], +"group__misc.html#gace5171b1dbbc03ec89a98f8afdb5c9af":[11,0,0,0,67], +"group__net.html":[9,9], +"group__net.html#ga092e5f473b3347f03ffeef8a950080f3":[9,9,1], +"group__net.html#ga092e5f473b3347f03ffeef8a950080f3":[11,0,0,0,86], +"group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8":[9,9,3], +"group__net.html#ga869d8bdffb0f2a7ce08e3ce10d6be3d8":[11,0,0,0,103], +"group__net.html#gad01014fed09759741b6d23afccfdaacc":[9,9,2], +"group__net.html#gad01014fed09759741b6d23afccfdaacc":[11,0,0,0,87], +"group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4":[9,9,0], +"group__net.html#gad0df22db2be9fc65a667a1e83f9a92a4":[11,0,0,0,54], +"group__pur.html":[9,12], +"group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865":[11,0,0,0,142], +"group__pur.html#ga9cc82f06e5ae7e71458626d7a39a5865":[9,12,1], +"group__pur.html#gab15187efcfa256b7c928562c182b92a3":[9,12,0], +"group__pur.html#gab15187efcfa256b7c928562c182b92a3":[11,0,0,0,109], +"group__sending-data.html":[9,13], +"group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d":[9,13,0], +"group__sending-data.html#ga98b099cf8c1c7e38ad78501f270e193d":[11,0,0,0,32], +"group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001":[11,0,0,0,152], +"group__sending-data.html#gafd5fdd285a0e25ba7e3e1051deec1001":[9,13,1], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826":[9,13,0,2], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826":[11,0,0,0,32,2], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3":[9,13,0,5], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3":[11,0,0,0,32,8], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce":[11,0,0,0,32,9], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce":[9,13,0,6], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da6e556322ff8f205bf311608f7f6e6559":[11,0,0,0,32,4], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db":[9,13,0,0], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db":[11,0,0,0,32,0], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dab7e7a62cf6f456c09c21dff24dad9039":[11,0,0,0,32,5], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e":[9,13,0,3], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e":[11,0,0,0,32,3], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dae7d8a025a65524652fe9e24c2654c935":[11,0,0,0,32,6], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2":[9,13,0,1], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2":[11,0,0,0,32,1], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917":[9,13,0,4], +"group__sending-data.html#gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917":[11,0,0,0,32,7], +"group__service.html":[9,0], +"group__service.html#ga29c246707997ab7a466aa709aecd2d7b":[9,0,1], +"group__service.html#ga29c246707997ab7a466aa709aecd2d7b":[11,0,0,0,53], +"group__service.html#ga53e3d0801dfda7960a7249dd559e68a2":[9,0,0], +"group__service.html#ga53e3d0801dfda7960a7249dd559e68a2":[11,0,0,0,52], +"group__service.html#ga9b3cc4473fd8848e5bbee7f310712939":[11,0,0,0,129], +"group__service.html#ga9b3cc4473fd8848e5bbee7f310712939":[9,0,5], +"group__service.html#gad82efa5466d14a9f05aa06416375b28d":[9,0,3], +"group__service.html#gad82efa5466d14a9f05aa06416375b28d":[11,0,0,0,127], +"group__service.html#gaebf426eda371ba23642fc11d8e0ace6b":[9,0,4], +"group__service.html#gaebf426eda371ba23642fc11d8e0ace6b":[11,0,0,0,128], +"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8":[11,0,0,0,126], +"group__service.html#gaf95bd0c663d6516a0c80047d9b1167a8":[9,0,2], +"group__sha.html":[9,11], +"group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d":[11,0,0,0,44], +"group__sha.html#ga66316e6a5a0644a09d5a10e919dfdd8d":[9,11,0], +"group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5":[11,0,0,0,135] }; diff --git a/doc/html/navtreeindex2.js b/doc/html/navtreeindex2.js index ee0f0af3..9546a95b 100644 --- a/doc/html/navtreeindex2.js +++ b/doc/html/navtreeindex2.js @@ -1,253 +1,253 @@ var NAVTREEINDEX2 = { -"group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5":[7,11,2], -"group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575":[7,11,1], -"group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575":[9,0,0,0,45], -"group__smtp.html":[7,14], -"group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0":[7,14,1], -"group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0":[9,0,0,0,34], -"group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2":[7,14,3], -"group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2":[9,0,0,0,69], -"group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb":[7,14,2], -"group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb":[9,0,0,0,68], -"group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29":[9,0,0,0,70], -"group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29":[7,14,4], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad":[7,14,1,3], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad":[9,0,0,0,34,3], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c":[9,0,0,0,34,0], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c":[7,14,1,0], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5":[7,14,1,8], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5":[9,0,0,0,34,8], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69":[7,14,1,7], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69":[9,0,0,0,34,7], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14":[7,14,1,6], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14":[9,0,0,0,34,6], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab":[9,0,0,0,34,4], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab":[7,14,1,4], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83":[9,0,0,0,34,5], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83":[7,14,1,5], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d":[7,14,1,2], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d":[9,0,0,0,34,2], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933":[9,0,0,0,34,1], -"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933":[7,14,1,1], -"group__sock-adopt.html":[7,15], -"group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b":[9,0,0,0,43], -"group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b":[7,15,1], -"group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af":[9,0,0,0,42], -"group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af":[7,15,0], -"group__timeout.html":[7,3], -"group__timeout.html#ga2c0aa4b9c3c55bae7b35cbfac3246c87":[9,0,0,0,35], -"group__timeout.html#gaced9f9237f6172fed9f730a2af51345a":[7,3,0], -"group__timeout.html#gaced9f9237f6172fed9f730a2af51345a":[9,0,0,0,134], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a0d6b956db11acb6d263af3ea054a914e":[9,0,0,0,35,12], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a0eef059426f37d00b75142d4dc3e25e3":[9,0,0,0,35,3], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a1104c39d0177378713a9332ab7a9d7fe":[9,0,0,0,35,4], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a11292263c9eccd090294e7e316200d7f":[9,0,0,0,35,13], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a13527b2b1f61d9b2709eb432acd0a248":[9,0,0,0,35,7], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a211dd9910c37aa3a3a45fd532c76bf6e":[9,0,0,0,35,5], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a44feda6cc9507a8613b9263b1acc8ce1":[9,0,0,0,35,8], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a52236b42ec5ffe65d4cdbadeb6c4fcb0":[9,0,0,0,35,2], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a5fe48ea6f3f5363cca55d39b78490b45":[9,0,0,0,35,15], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a65785467c0b560bead865231fdd405d7":[9,0,0,0,35,0], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a73f61afae387e16f7ab8a4f299aca8d2":[9,0,0,0,35,14], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a7d5b3bcc88ccbddfa57674e174a78c2d":[9,0,0,0,35,9], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87aaf69f440c2e000787efae5ad6f39e74c":[9,0,0,0,35,11], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ab20463ee983bcd68cd8a501319da56d3":[9,0,0,0,35,6], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ad7ebebb506afd30c48e1e5e3a578cd30":[9,0,0,0,35,1], -"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ae8b3de955cec5da5ea52fe040f914501":[9,0,0,0,35,10], -"group__urlendec.html":[7,6,5], -"group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3":[9,0,0,0,144], -"group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3":[7,6,5,0], -"group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7":[9,0,0,0,145], -"group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7":[7,6,5,1], -"group__usercb.html":[7,16], -"group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f":[9,0,0,0,7], -"group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f":[7,16,0], -"group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7":[9,0,0,0,19], -"group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7":[7,16,1], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6":[9,0,0,0,19,17], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6":[7,16,1,17], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0418587d5083bb4850faa438648496ba":[9,0,0,0,19,49], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493":[9,0,0,0,19,22], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493":[7,16,1,22], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79":[9,0,0,0,19,36], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79":[7,16,1,36], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9":[9,0,0,0,19,9], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9":[7,16,1,9], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a182a4a14c3278784505cea6d516a8308":[9,0,0,0,19,47], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46":[9,0,0,0,19,26], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46":[7,16,1,26], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768":[9,0,0,0,19,33], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768":[7,16,1,33], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a23b90b5e5146e760bc3123ae1fd2a6e5":[9,0,0,0,19,40], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439":[7,16,1,0], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439":[9,0,0,0,19,0], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738":[9,0,0,0,19,7], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738":[7,16,1,7], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804":[9,0,0,0,19,14], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804":[7,16,1,14], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e":[9,0,0,0,19,25], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e":[7,16,1,25], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a45d538082dec32dbecfe9d9a05ddfecd":[9,0,0,0,19,50], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8":[9,0,0,0,19,4], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8":[7,16,1,4], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c":[9,0,0,0,19,6], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c":[7,16,1,6], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa":[9,0,0,0,19,28], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa":[7,16,1,28], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a659539cfa65c66e0d813113b09900d31":[9,0,0,0,19,42], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a6a09ee9c01c4a233aedbe6697e29cc01":[9,0,0,0,19,44], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c":[9,0,0,0,19,18], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c":[7,16,1,18], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604":[9,0,0,0,19,3], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604":[7,16,1,3], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc":[9,0,0,0,19,11], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc":[7,16,1,11], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba":[7,16,1,5], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba":[9,0,0,0,19,5], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428":[9,0,0,0,19,35], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428":[7,16,1,35], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a89862929a72bff65257ca1d51a0fce4d":[9,0,0,0,19,52], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514":[9,0,0,0,19,10], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514":[7,16,1,10], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f":[9,0,0,0,19,24], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f":[7,16,1,24], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a":[9,0,0,0,19,56], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a":[7,16,1,39], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b":[9,0,0,0,19,37], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b":[7,16,1,37], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2":[9,0,0,0,19,2], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2":[7,16,1,2], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587":[9,0,0,0,19,15], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587":[7,16,1,15], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e":[9,0,0,0,19,34], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e":[7,16,1,34], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aaffd08a5cae791c9f3c38ee242203900":[9,0,0,0,19,46], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412":[7,16,1,32], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412":[9,0,0,0,19,32], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab884f3d5f8a6126a0d34c0172f5e3725":[9,0,0,0,19,53], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1":[9,0,0,0,19,8], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1":[7,16,1,8], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abcf9c720cd3d361a83d1ac65bf052a25":[9,0,0,0,19,39], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac11c336f7052abf3618962902a71ebc8":[9,0,0,0,19,54], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51":[9,0,0,0,19,38], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51":[7,16,1,38], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac432e9f891c733ba8f968c1bf57c0ddc":[9,0,0,0,19,45], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae":[9,0,0,0,19,13], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae":[7,16,1,13], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac8c0ae966ef1877e0020c0077ff2e4a4":[9,0,0,0,19,41], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e":[9,0,0,0,19,30], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e":[7,16,1,30], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d":[9,0,0,0,19,20], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d":[7,16,1,20], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49":[9,0,0,0,19,27], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49":[7,16,1,27], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad724974204d51d688f569c5d387b967d":[9,0,0,0,19,43], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad87774f1c7784cf632e1e2f5b51036e1":[9,0,0,0,19,48], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8":[9,0,0,0,19,1], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8":[7,16,1,1], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34":[9,0,0,0,19,31], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34":[7,16,1,31], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c":[9,0,0,0,19,21], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c":[7,16,1,21], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac":[7,16,1,23], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac":[9,0,0,0,19,23], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e":[9,0,0,0,19,12], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e":[7,16,1,12], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3":[9,0,0,0,19,19], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3":[7,16,1,19], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7af6cf80e57aae8ba0a57a5c456b1fe026":[9,0,0,0,19,55], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afc4b2f72cc9e424a750b506ce0cc4310":[9,0,0,0,19,51], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01":[9,0,0,0,19,29], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01":[7,16,1,29], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09":[7,16,1,16], -"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09":[9,0,0,0,19,16], -"group__uv.html":[7,22], -"group__uv.html#ga097c89497824d4de225a85a00661fc89":[9,0,0,0,110], -"group__uv.html#ga3c75cd6ec3f80fc0a0c8ead4c4e71a15":[9,0,0,0,111], -"group__uv.html#ga99099e045993383f251a8026e1e40414":[9,0,0,0,149], -"group__uv.html#gaa5e3593c94f91910d9d928dfa0c18f6c":[9,0,0,0,146], -"group__uv.html#gac5f60dba13a45e5d554b4fb7df7b9610":[9,0,0,0,148], -"group__uv.html#gad85ce3bfc53ff754988d36bf5de39e21":[9,0,0,0,147], -"group__vhost-mounts.html":[7,4,0], -"group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437":[7,4,0,2], -"group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437":[9,0,0,0,29], -"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69":[9,0,0,0,29,3], -"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69":[7,4,0,2,3], -"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0":[7,4,0,2,0], -"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0":[9,0,0,0,29,0], -"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2":[7,4,0,2,2], -"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2":[9,0,0,0,29,2], -"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67":[9,0,0,0,29,5], -"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67":[7,4,0,2,5], -"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da":[9,0,0,0,29,6], -"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da":[7,4,0,2,6], -"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970":[9,0,0,0,29,4], -"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970":[7,4,0,2,4], -"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1":[7,4,0,2,1], -"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1":[9,0,0,0,29,1], -"group__wsclose.html":[7,17], -"group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262":[9,0,0,0,62], -"group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262":[7,17,1], -"group__wsclose.html#gae399c571df32ba532c0ca67da9284985":[9,0,0,0,22], -"group__wsclose.html#gae399c571df32ba532c0ca67da9284985":[7,17,0], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98":[9,0,0,0,22,3], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98":[7,17,0,2], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8":[9,0,0,0,22,10], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8":[7,17,0,9], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a32c38edab10d1379febac0c479ab2e9c":[9,0,0,0,22,14], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4":[9,0,0,0,22,1], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4":[7,17,0,0], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276":[9,0,0,0,22,4], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276":[7,17,0,3], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044":[9,0,0,0,22,6], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044":[7,17,0,5], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c":[9,0,0,0,22,7], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c":[7,17,0,6], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050":[9,0,0,0,22,8], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050":[7,17,0,7], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218":[9,0,0,0,22,2], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218":[7,17,0,1], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e":[7,17,0,10], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e":[9,0,0,0,22,11], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985acc9a317c70363dd88e823e066b2c73b7":[9,0,0,0,22,0], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350":[9,0,0,0,22,12], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350":[7,17,0,11], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5":[9,0,0,0,22,9], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5":[7,17,0,8], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390":[7,17,0,12], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390":[9,0,0,0,22,13], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2":[9,0,0,0,22,5], -"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2":[7,17,0,4], -"group__wsstatus.html":[7,18], -"group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37":[9,0,0,0,105], -"group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37":[7,18,3], -"group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa":[7,18,4], -"group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa":[9,0,0,0,106], -"group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421":[7,18,6], -"group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421":[9,0,0,0,123], -"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[7,18,1], -"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[9,0,0,0,91], -"group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[9,0,0,0,104], -"group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[7,18,2], -"group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd":[9,0,0,0,78], -"group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd":[7,18,0], -"group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85":[7,18,5], -"group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85":[9,0,0,0,114], -"hierarchy.html":[8,2], +"group__sha.html#ga7b09ab74646266f0b555103b3bb8dfe5":[9,11,2], +"group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575":[9,11,1], +"group__sha.html#gaf39765e4a3b413efb65e4698b2ec3575":[11,0,0,0,45], +"group__smtp.html":[9,14], +"group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0":[9,14,1], +"group__smtp.html#ga116be79bf44f9dc2a97f46e051fe4dc0":[11,0,0,0,34], +"group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2":[9,14,3], +"group__smtp.html#ga25298a5afc1074e13b2d5711a86432b2":[11,0,0,0,69], +"group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb":[9,14,2], +"group__smtp.html#ga5e535e346d92a9daf00be33abf79d4eb":[11,0,0,0,68], +"group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29":[11,0,0,0,70], +"group__smtp.html#ga77fc9b56a1bb39484844981ec375fc29":[9,14,4], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad":[9,14,1,3], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad":[11,0,0,0,34,3], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c":[9,14,1,0], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c":[11,0,0,0,34,0], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5":[9,14,1,8], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5":[11,0,0,0,34,8], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69":[11,0,0,0,34,7], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69":[9,14,1,7], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14":[11,0,0,0,34,6], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14":[9,14,1,6], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab":[9,14,1,4], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab":[11,0,0,0,34,4], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83":[11,0,0,0,34,5], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83":[9,14,1,5], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d":[9,14,1,2], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d":[11,0,0,0,34,2], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933":[9,14,1,1], +"group__smtp.html#gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933":[11,0,0,0,34,1], +"group__sock-adopt.html":[9,15], +"group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b":[9,15,1], +"group__sock-adopt.html#gab2d045df0f81afe00891aaed312d552b":[11,0,0,0,43], +"group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af":[11,0,0,0,42], +"group__sock-adopt.html#gabe71b7462afb21c767bdc67334f305af":[9,15,0], +"group__timeout.html":[9,3], +"group__timeout.html#ga2c0aa4b9c3c55bae7b35cbfac3246c87":[11,0,0,0,35], +"group__timeout.html#gaced9f9237f6172fed9f730a2af51345a":[11,0,0,0,134], +"group__timeout.html#gaced9f9237f6172fed9f730a2af51345a":[9,3,0], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a0d6b956db11acb6d263af3ea054a914e":[11,0,0,0,35,12], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a0eef059426f37d00b75142d4dc3e25e3":[11,0,0,0,35,3], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a1104c39d0177378713a9332ab7a9d7fe":[11,0,0,0,35,4], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a11292263c9eccd090294e7e316200d7f":[11,0,0,0,35,13], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a13527b2b1f61d9b2709eb432acd0a248":[11,0,0,0,35,7], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a211dd9910c37aa3a3a45fd532c76bf6e":[11,0,0,0,35,5], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a44feda6cc9507a8613b9263b1acc8ce1":[11,0,0,0,35,8], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a52236b42ec5ffe65d4cdbadeb6c4fcb0":[11,0,0,0,35,2], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a5fe48ea6f3f5363cca55d39b78490b45":[11,0,0,0,35,15], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a65785467c0b560bead865231fdd405d7":[11,0,0,0,35,0], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a73f61afae387e16f7ab8a4f299aca8d2":[11,0,0,0,35,14], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87a7d5b3bcc88ccbddfa57674e174a78c2d":[11,0,0,0,35,9], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87aaf69f440c2e000787efae5ad6f39e74c":[11,0,0,0,35,11], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ab20463ee983bcd68cd8a501319da56d3":[11,0,0,0,35,6], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ad7ebebb506afd30c48e1e5e3a578cd30":[11,0,0,0,35,1], +"group__timeout.html#gga2c0aa4b9c3c55bae7b35cbfac3246c87ae8b3de955cec5da5ea52fe040f914501":[11,0,0,0,35,10], +"group__urlendec.html":[9,6,5], +"group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3":[11,0,0,0,144], +"group__urlendec.html#gaa373a9c16acdd96c395af61ab915ece3":[9,6,5,0], +"group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7":[11,0,0,0,145], +"group__urlendec.html#gabc2888476e50e001c875c1a8abf455b7":[9,6,5,1], +"group__usercb.html":[9,16], +"group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f":[11,0,0,0,7], +"group__usercb.html#gad4fcb82e68d60ffacca61a3f783a0a2f":[9,16,0], +"group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7":[9,16,1], +"group__usercb.html#gad62860e19975ba4c4af401c3cdb6abf7":[11,0,0,0,19], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6":[11,0,0,0,19,17], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a026502768778b8d79d62dd0fe4375fc6":[9,16,1,17], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0418587d5083bb4850faa438648496ba":[11,0,0,0,19,49], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493":[11,0,0,0,19,22], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a06006e98d27e1e884364d88317f83493":[9,16,1,22], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79":[11,0,0,0,19,36], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a0e9e3dd667c0c42cdbe1a3d921f4fd79":[9,16,1,36], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9":[11,0,0,0,19,9], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a136a7cec11c3afd13245623bd84e76c9":[9,16,1,9], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a182a4a14c3278784505cea6d516a8308":[11,0,0,0,19,47], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46":[11,0,0,0,19,26], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1ce5b22039ca37ee224d00047596ea46":[9,16,1,26], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768":[11,0,0,0,19,33], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a1df60f314710236f9b53efbf468da768":[9,16,1,33], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a23b90b5e5146e760bc3123ae1fd2a6e5":[11,0,0,0,19,40], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439":[11,0,0,0,19,0], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a24d39bf1cfc0bad9d92da9ac1717e439":[9,16,1,0], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738":[9,16,1,7], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2db02fc6e1c17ab62b52109d1aa9d738":[11,0,0,0,19,7], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804":[11,0,0,0,19,14], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a2fce9a8608220f32abbf1422a5498804":[9,16,1,14], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e":[11,0,0,0,19,25], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a390da3639296660a78cc1a5dcb19037e":[9,16,1,25], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a45d538082dec32dbecfe9d9a05ddfecd":[11,0,0,0,19,50], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8":[11,0,0,0,19,4], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a48a9590e5e18c7920282e094a0bfd9d8":[9,16,1,4], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c":[11,0,0,0,19,6], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a492c1b1c0ac0ed980042ee732fe2990c":[9,16,1,6], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa":[11,0,0,0,19,28], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a54269ca88508e6efd3afdb9d360a9caa":[9,16,1,28], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a659539cfa65c66e0d813113b09900d31":[11,0,0,0,19,42], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a6a09ee9c01c4a233aedbe6697e29cc01":[11,0,0,0,19,44], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c":[11,0,0,0,19,18], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a75199176c82c1a56e4a6bbf1cc30c12c":[9,16,1,18], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604":[11,0,0,0,19,3], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7e12418eec9bce85735e6460176ab604":[9,16,1,3], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc":[11,0,0,0,19,11], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a7ec8e2e9557ee02a4fc9f7dec7e2babc":[9,16,1,11], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba":[11,0,0,0,19,5], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a838b18d255c1b94a533287ba302a2eba":[9,16,1,5], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428":[11,0,0,0,19,35], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8909732521d379179003d97ab7a05428":[9,16,1,35], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a89862929a72bff65257ca1d51a0fce4d":[11,0,0,0,19,52], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514":[11,0,0,0,19,10], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a8e8b2e6dbeac76d8d126947d2166a514":[9,16,1,10], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f":[11,0,0,0,19,24], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a909cc2a7018864b0b71abacc4058fd8f":[9,16,1,24], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a":[11,0,0,0,19,57], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a":[9,16,1,40], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b":[11,0,0,0,19,37], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b":[9,16,1,37], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2":[11,0,0,0,19,2], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa536e574a642ff3ab9e12bff7ba2c6a2":[9,16,1,2], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a":[11,0,0,0,19,56], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a":[9,16,1,39], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587":[11,0,0,0,19,15], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa627548e1296e654fcfab463ec3c9587":[9,16,1,15], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e":[11,0,0,0,19,34], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aa87d2e82fffa42c3680c7403ef94216e":[9,16,1,34], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aaffd08a5cae791c9f3c38ee242203900":[11,0,0,0,19,46], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412":[11,0,0,0,19,32], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab69783a9fbf2ca71ad70706bda77b412":[9,16,1,32], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ab884f3d5f8a6126a0d34c0172f5e3725":[11,0,0,0,19,53], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1":[9,16,1,8], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abbbe7a0a67c5866ca9109d46823fc5b1":[11,0,0,0,19,8], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7abcf9c720cd3d361a83d1ac65bf052a25":[11,0,0,0,19,39], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac11c336f7052abf3618962902a71ebc8":[11,0,0,0,19,54], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51":[11,0,0,0,19,38], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51":[9,16,1,38], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac432e9f891c733ba8f968c1bf57c0ddc":[11,0,0,0,19,45], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae":[11,0,0,0,19,13], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac4c68e00efcf1ff7bda7ada462aff8ae":[9,16,1,13], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ac8c0ae966ef1877e0020c0077ff2e4a4":[11,0,0,0,19,41], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e":[9,16,1,30], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7aca834dc035b7f7486f9ce40fde54fe9e":[11,0,0,0,19,30], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d":[11,0,0,0,19,20], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7accd8753672d319a30b4b4c2fb775e84d":[9,16,1,20], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49":[11,0,0,0,19,27], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad5d34583e3556e153eda91620b48cc49":[9,16,1,27], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad724974204d51d688f569c5d387b967d":[11,0,0,0,19,43], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad87774f1c7784cf632e1e2f5b51036e1":[11,0,0,0,19,48], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8":[11,0,0,0,19,1], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ad8c6207b0c4e732f3d507f0fb79370e8":[9,16,1,1], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34":[11,0,0,0,19,31], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7adfb41c92e2522712207ef7f2462b5e34":[9,16,1,31], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c":[11,0,0,0,19,21], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae4986291b7a810fe290851d73bebeb1c":[9,16,1,21], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac":[11,0,0,0,19,23], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae5ad65d779b7eab32ab67ceff91a3bac":[9,16,1,23], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e":[9,16,1,12], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae8d1de0bb56e03aa58cb4d44b18edd2e":[11,0,0,0,19,12], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3":[11,0,0,0,19,19], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7ae9734e1d7af2abf291665ce9e4a728d3":[9,16,1,19], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7af6cf80e57aae8ba0a57a5c456b1fe026":[11,0,0,0,19,55], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afc4b2f72cc9e424a750b506ce0cc4310":[11,0,0,0,19,51], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01":[11,0,0,0,19,29], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afd8fd77a1cc9405fcb4f26915d7f2d01":[9,16,1,29], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09":[9,16,1,16], +"group__usercb.html#ggad62860e19975ba4c4af401c3cdb6abf7afedadfb3cde37a8ea4c84ed535f26d09":[11,0,0,0,19,16], +"group__uv.html":[9,22], +"group__uv.html#ga097c89497824d4de225a85a00661fc89":[11,0,0,0,110], +"group__uv.html#ga3c75cd6ec3f80fc0a0c8ead4c4e71a15":[11,0,0,0,111], +"group__uv.html#ga99099e045993383f251a8026e1e40414":[11,0,0,0,149], +"group__uv.html#gaa5e3593c94f91910d9d928dfa0c18f6c":[11,0,0,0,146], +"group__uv.html#gac5f60dba13a45e5d554b4fb7df7b9610":[11,0,0,0,148], +"group__uv.html#gad85ce3bfc53ff754988d36bf5de39e21":[11,0,0,0,147], +"group__vhost-mounts.html":[9,4,0], +"group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437":[9,4,0,2], +"group__vhost-mounts.html#ga31eca18e50cb4357480f2fcad36ff437":[11,0,0,0,29], +"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69":[9,4,0,2,3], +"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a13ab58b01ac6e05f595977f1e0f0db69":[11,0,0,0,29,3], +"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0":[9,4,0,2,0], +"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a1e9f0842b0e85db50fe648ed4ba9a4b0":[11,0,0,0,29,0], +"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2":[11,0,0,0,29,2], +"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a42f2361cfe76cd287fa8fcfc502357e2":[9,4,0,2,2], +"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67":[9,4,0,2,5], +"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a8894d16316863077dfe530963ca59f67":[11,0,0,0,29,5], +"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da":[9,4,0,2,6], +"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437a946a88cf9c852eed2c0317f4115d19da":[11,0,0,0,29,6], +"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970":[9,4,0,2,4], +"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437aec137a2434851bd856ceebfb697b9970":[11,0,0,0,29,4], +"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1":[9,4,0,2,1], +"group__vhost-mounts.html#gga31eca18e50cb4357480f2fcad36ff437afbd10eb4777517ed1f6bfdcf3b9ea1d1":[11,0,0,0,29,1], +"group__wsclose.html":[9,17], +"group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262":[11,0,0,0,62], +"group__wsclose.html#gaa1c863415d1783cd8de7938aa6efa262":[9,17,1], +"group__wsclose.html#gae399c571df32ba532c0ca67da9284985":[11,0,0,0,22], +"group__wsclose.html#gae399c571df32ba532c0ca67da9284985":[9,17,0], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98":[11,0,0,0,22,3], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a1bb501d212fa4d57053db681b1dfab98":[9,17,0,2], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8":[11,0,0,0,22,10], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a2e1f0113494a58e762eed3d22e7080d8":[9,17,0,9], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a32c38edab10d1379febac0c479ab2e9c":[11,0,0,0,22,14], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4":[11,0,0,0,22,1], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a3ffa38d5081b85fb739e02a747ccf2c4":[9,17,0,0], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276":[11,0,0,0,22,4], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a462c99b05459df700919cfd3f53c8276":[9,17,0,3], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044":[9,17,0,5], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a4b8a3b7ce6f731e5248e4b0fb64a5044":[11,0,0,0,22,6], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c":[9,17,0,6], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a68b3d34bebd88547dcfa5cadba0acd6c":[11,0,0,0,22,7], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050":[9,17,0,7], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a7aef2da0062da606eeb35aaca5cf9050":[11,0,0,0,22,8], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218":[11,0,0,0,22,2], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985a9737a68759e739856b150ff9dfa30218":[9,17,0,1], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e":[11,0,0,0,22,11], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ac6a161822783ee873be1c66f48d14e0e":[9,17,0,10], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985acc9a317c70363dd88e823e066b2c73b7":[11,0,0,0,22,0], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350":[9,17,0,11], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad0869604d79e13700ae5d196a431b350":[11,0,0,0,22,12], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5":[9,17,0,8], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad09e68295eabdddcba4e332fbea70ae5":[11,0,0,0,22,9], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390":[9,17,0,12], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985ad2b477a91c8445bf34ecd43977f9b390":[11,0,0,0,22,13], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2":[11,0,0,0,22,5], +"group__wsclose.html#ggae399c571df32ba532c0ca67da9284985af90cb98d983ad3d4c79df9b6f3d4a4d2":[9,17,0,4], +"group__wsstatus.html":[9,18], +"group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37":[9,18,3], +"group__wsstatus.html#ga08e9ee165fca503fd9427d55cfecac37":[11,0,0,0,105], +"group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa":[9,18,4], +"group__wsstatus.html#ga26a140623d202dd2bf2004deb6994baa":[11,0,0,0,106], +"group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421":[9,18,6], +"group__wsstatus.html#ga2bb3655329b4651cd06f79ee3a764421":[11,0,0,0,123], +"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[9,18,1], +"group__wsstatus.html#ga3df5045656dfb6b0e63a38de2dca79d2":[11,0,0,0,91], +"group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[9,18,2], +"group__wsstatus.html#ga4ad226d5e01024b4046f4a5a37199aa1":[11,0,0,0,104], +"group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd":[9,18,0], +"group__wsstatus.html#gaccd9c59336efad8af0554f79cc5966fd":[11,0,0,0,78], +"group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85":[9,18,5], +"group__wsstatus.html#gaeca4afc94b1f026034f99cbba37e2f85":[11,0,0,0,114], +"hierarchy.html":[10,2], "index.html":[0], "index.html":[], -"libwebsockets_8h.html":[9,0,0,0], -"libwebsockets_8h.html#a0b056fdcf949a838ff82209b4a627dd9":[9,0,0,0,159], -"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905f":[9,0,0,0,24], -"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fa7741c12fc97574fa73a810fedae2be76":[9,0,0,0,24,1], -"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fa9ce9c65d4229d1d168fca3cc12e7f535":[9,0,0,0,24,2], -"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fafdb6cf2797a3ea957c690ad6edff25d6":[9,0,0,0,24,0], -"libwebsockets_8h.html#a27bb0b3cdcd0af839c928c253b521ff4":[9,0,0,0,56], -"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedb":[9,0,0,0,20], -"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedba35cf2bed9944faa062d9310197489b2f":[9,0,0,0,20,4], -"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedba60ac587febc583475c185e1409a0210c":[9,0,0,0,20,1], -"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbaa424646e067c6266bcb4f0190b026d66":[9,0,0,0,20,0], -"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbac8f5f992c6615324108cdf931da903be":[9,0,0,0,20,2], -"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbad655f0eecc9e94be37b8ed07348716ef":[9,0,0,0,20,6] +"libwebsockets_8h.html":[11,0,0,0], +"libwebsockets_8h.html#a0b056fdcf949a838ff82209b4a627dd9":[11,0,0,0,159], +"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905f":[11,0,0,0,24], +"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fa7741c12fc97574fa73a810fedae2be76":[11,0,0,0,24,1], +"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fa9ce9c65d4229d1d168fca3cc12e7f535":[11,0,0,0,24,2], +"libwebsockets_8h.html#a2271141d8be8d72b47ba327130b4905fafdb6cf2797a3ea957c690ad6edff25d6":[11,0,0,0,24,0], +"libwebsockets_8h.html#a27bb0b3cdcd0af839c928c253b521ff4":[11,0,0,0,56], +"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedb":[11,0,0,0,20], +"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedba35cf2bed9944faa062d9310197489b2f":[11,0,0,0,20,4], +"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedba60ac587febc583475c185e1409a0210c":[11,0,0,0,20,1], +"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbaa424646e067c6266bcb4f0190b026d66":[11,0,0,0,20,0] }; diff --git a/doc/html/navtreeindex3.js b/doc/html/navtreeindex3.js index 5cc461fd..219460db 100644 --- a/doc/html/navtreeindex3.js +++ b/doc/html/navtreeindex3.js @@ -1,20 +1,22 @@ var NAVTREEINDEX3 = { -"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbad9cdc12a796e6c7d912278834d9c7dde":[9,0,0,0,20,3], -"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbada3dca91d96bcde5df08a67b5a66e972":[9,0,0,0,20,5], -"libwebsockets_8h.html#a5326d3402af8429a166dd991dc65c4a2":[9,0,0,0,57], -"libwebsockets_8h.html#a5e627dbf1db48170ef486edbaf268672":[9,0,0,0,121], -"libwebsockets_8h.html#a72fe65e83b8bb03f904a1a256c673536":[9,0,0,0,119], -"libwebsockets_8h.html#a9032a3062641d334161c29adcc4fa15d":[9,0,0,0,161], -"libwebsockets_8h.html#a9f2a8506fd963db95a5103823c60fb0a":[9,0,0,0,162], -"libwebsockets_8h.html#abddb8d337fb2692586d892b494739003":[9,0,0,0,17], -"libwebsockets_8h.html#ac3abb8b7e6d29a0292797230e4031681":[9,0,0,0,16], -"libwebsockets_8h.html#adedbc79528b71a5c7f27cde87100c9aa":[9,0,0,0,14], -"libwebsockets_8h.html#adf4abd01e8c43f07c6e498ce13590c3e":[9,0,0,0,122], -"libwebsockets_8h.html#aefb2f20fe5bb29d79701a399838ef4ce":[9,0,0,0,160], -"libwebsockets_8h.html#af52923473c59e643a974d65e12290831":[9,0,0,0,55], -"libwebsockets_8h.html#aff42d53861afdc1a6edfb999ba688ecb":[9,0,0,0,10], -"libwebsockets_8h_source.html":[9,0,0,0], +"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbac8f5f992c6615324108cdf931da903be":[11,0,0,0,20,2], +"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbad655f0eecc9e94be37b8ed07348716ef":[11,0,0,0,20,6], +"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbad9cdc12a796e6c7d912278834d9c7dde":[11,0,0,0,20,3], +"libwebsockets_8h.html#a42394a38f08a97420c98127358cfeedbada3dca91d96bcde5df08a67b5a66e972":[11,0,0,0,20,5], +"libwebsockets_8h.html#a5326d3402af8429a166dd991dc65c4a2":[11,0,0,0,57], +"libwebsockets_8h.html#a5e627dbf1db48170ef486edbaf268672":[11,0,0,0,121], +"libwebsockets_8h.html#a72fe65e83b8bb03f904a1a256c673536":[11,0,0,0,119], +"libwebsockets_8h.html#a9032a3062641d334161c29adcc4fa15d":[11,0,0,0,161], +"libwebsockets_8h.html#a9f2a8506fd963db95a5103823c60fb0a":[11,0,0,0,162], +"libwebsockets_8h.html#abddb8d337fb2692586d892b494739003":[11,0,0,0,17], +"libwebsockets_8h.html#ac3abb8b7e6d29a0292797230e4031681":[11,0,0,0,16], +"libwebsockets_8h.html#adedbc79528b71a5c7f27cde87100c9aa":[11,0,0,0,14], +"libwebsockets_8h.html#adf4abd01e8c43f07c6e498ce13590c3e":[11,0,0,0,122], +"libwebsockets_8h.html#aefb2f20fe5bb29d79701a399838ef4ce":[11,0,0,0,160], +"libwebsockets_8h.html#af52923473c59e643a974d65e12290831":[11,0,0,0,55], +"libwebsockets_8h.html#aff42d53861afdc1a6edfb999ba688ecb":[11,0,0,0,10], +"libwebsockets_8h_source.html":[11,0,0,0], "md_README.build.html":[1], "md_README.build.html#bu":[1,2], "md_README.build.html#build1":[1,1], @@ -34,220 +36,218 @@ var NAVTREEINDEX3 = "md_README.build.html#mem":[1,14], "md_README.build.html#wolf":[1,8], "md_README.build.html#wolf1":[1,9], -"md_README.coding.html":[3], -"md_README.coding.html#clientasync":[3,13], -"md_README.coding.html#closing":[3,5], -"md_README.coding.html#conns":[3,1], -"md_README.coding.html#cpp":[3,9], -"md_README.coding.html#dae":[3,0], -"md_README.coding.html#debuglog":[3,7], -"md_README.coding.html#ecdh":[3,15], -"md_README.coding.html#evtloop":[3,2], -"md_README.coding.html#extopts":[3,18], -"md_README.coding.html#extpoll":[3,8], -"md_README.coding.html#fileapi":[3,14], -"md_README.coding.html#frags":[3,6], -"md_README.coding.html#headerinfo":[3,10], -"md_README.coding.html#httpsclient":[3,19], -"md_README.coding.html#ka":[3,11], -"md_README.coding.html#libevuv":[3,17], -"md_README.coding.html#mountcallback":[3,23], -"md_README.coding.html#mounts":[3,22], -"md_README.coding.html#otherwr":[3,4], -"md_README.coding.html#smp":[3,16], -"md_README.coding.html#sni":[3,21], -"md_README.coding.html#sslopt":[3,12], -"md_README.coding.html#vhosts":[3,20], -"md_README.coding.html#writeable":[3,3], -"md_README.generic-sessions.html":[4], -"md_README.generic-sessions.html#gsap":[4,8], -"md_README.generic-sessions.html#gsconf":[4,4], -"md_README.generic-sessions.html#gseb":[4,0], -"md_README.generic-sessions.html#gsi":[4,1], -"md_README.generic-sessions.html#gsin":[4,2], -"md_README.generic-sessions.html#gsof":[4,3], -"md_README.generic-sessions.html#gsprep":[4,6], -"md_README.generic-sessions.html#gspwc":[4,5], -"md_README.generic-sessions.html#gsrmail":[4,7], -"md_README.lwsws.html":[2], -"md_README.lwsws.html#lwsws":[2,0], -"md_README.lwsws.html#lwswsb":[2,1], -"md_README.lwsws.html#lwswsc":[2,2], -"md_README.lwsws.html#lwswslr":[2,13], -"md_README.lwsws.html#lwswsm":[2,7], -"md_README.lwsws.html#lwswsomo":[2,8], -"md_README.lwsws.html#lwswsovo":[2,6], -"md_README.lwsws.html#lwswspl":[2,9], -"md_README.lwsws.html#lwswsplaplp":[2,10], -"md_README.lwsws.html#lwswspr":[2,5], -"md_README.lwsws.html#lwswsssp":[2,11], -"md_README.lwsws.html#lwswssysd":[2,12], -"md_README.lwsws.html#lwswsv":[2,3], -"md_README.lwsws.html#lwswsvn":[2,4], -"md_README.test-apps.html":[5], -"md_README.test-apps.html#autobahn":[5,13], -"md_README.test-apps.html#autobahnnotes":[5,14], -"md_README.test-apps.html#choosingts":[5,4], -"md_README.test-apps.html#echo":[5,5], -"md_README.test-apps.html#latency":[5,12], -"md_README.test-apps.html#sssl":[5,2], -"md_README.test-apps.html#ta":[5,8], -"md_README.test-apps.html#talog":[5,10], -"md_README.test-apps.html#taping":[5,7], -"md_README.test-apps.html#taproxy":[5,9], -"md_README.test-apps.html#tassl":[5,6], -"md_README.test-apps.html#tsb":[5,0], -"md_README.test-apps.html#tsd":[5,1], -"md_README.test-apps.html#ws13":[5,11], -"md_README.test-apps.html#wscl":[5,3], -"modules.html":[7], +"md_README.coding.html":[4], +"md_README.coding.html#clientasync":[4,13], +"md_README.coding.html#closing":[4,5], +"md_README.coding.html#conns":[4,1], +"md_README.coding.html#cpp":[4,9], +"md_README.coding.html#dae":[4,0], +"md_README.coding.html#debuglog":[4,7], +"md_README.coding.html#ecdh":[4,15], +"md_README.coding.html#evtloop":[4,2], +"md_README.coding.html#extopts":[4,18], +"md_README.coding.html#extpoll":[4,8], +"md_README.coding.html#fileapi":[4,14], +"md_README.coding.html#frags":[4,6], +"md_README.coding.html#headerinfo":[4,10], +"md_README.coding.html#httpsclient":[4,19], +"md_README.coding.html#ka":[4,11], +"md_README.coding.html#libevuv":[4,17], +"md_README.coding.html#mountcallback":[4,23], +"md_README.coding.html#mounts":[4,22], +"md_README.coding.html#otherwr":[4,4], +"md_README.coding.html#smp":[4,16], +"md_README.coding.html#sni":[4,21], +"md_README.coding.html#sslopt":[4,12], +"md_README.coding.html#vhosts":[4,20], +"md_README.coding.html#writeable":[4,3], +"md_README.generic-sessions.html":[5], +"md_README.generic-sessions.html#gsap":[5,8], +"md_README.generic-sessions.html#gsconf":[5,4], +"md_README.generic-sessions.html#gseb":[5,0], +"md_README.generic-sessions.html#gsi":[5,1], +"md_README.generic-sessions.html#gsin":[5,2], +"md_README.generic-sessions.html#gsof":[5,3], +"md_README.generic-sessions.html#gsprep":[5,6], +"md_README.generic-sessions.html#gspwc":[5,5], +"md_README.generic-sessions.html#gsrmail":[5,7], +"md_README.generic-table.html":[6], +"md_README.generic-table.html#gtc":[6,3], +"md_README.generic-table.html#gtclick":[6,4], +"md_README.generic-table.html#gtdirl":[6,6], +"md_README.generic-table.html#gteb":[6,1], +"md_README.generic-table.html#gtgj":[6,5], +"md_README.generic-table.html#gtint":[6,0], +"md_README.generic-table.html#gtinth":[6,2], +"md_README.lwsws.html":[3], +"md_README.lwsws.html#lwsws":[3,0], +"md_README.lwsws.html#lwswsb":[3,1], +"md_README.lwsws.html#lwswsc":[3,2], +"md_README.lwsws.html#lwswslr":[3,13], +"md_README.lwsws.html#lwswsm":[3,7], +"md_README.lwsws.html#lwswsomo":[3,8], +"md_README.lwsws.html#lwswsovo":[3,6], +"md_README.lwsws.html#lwswspl":[3,9], +"md_README.lwsws.html#lwswsplaplp":[3,10], +"md_README.lwsws.html#lwswspr":[3,5], +"md_README.lwsws.html#lwswsssp":[3,11], +"md_README.lwsws.html#lwswssysd":[3,12], +"md_README.lwsws.html#lwswsv":[3,3], +"md_README.lwsws.html#lwswsvn":[3,4], +"md_README.problems.html":[2], +"md_README.test-apps.html":[7], +"md_README.test-apps.html#autobahn":[7,13], +"md_README.test-apps.html#autobahnnotes":[7,14], +"md_README.test-apps.html#choosingts":[7,4], +"md_README.test-apps.html#echo":[7,5], +"md_README.test-apps.html#latency":[7,12], +"md_README.test-apps.html#sssl":[7,2], +"md_README.test-apps.html#ta":[7,8], +"md_README.test-apps.html#talog":[7,10], +"md_README.test-apps.html#taping":[7,7], +"md_README.test-apps.html#taproxy":[7,9], +"md_README.test-apps.html#tassl":[7,6], +"md_README.test-apps.html#tsb":[7,0], +"md_README.test-apps.html#tsd":[7,1], +"md_README.test-apps.html#ws13":[7,11], +"md_README.test-apps.html#wscl":[7,3], +"modules.html":[9], "pages.html":[], -"structlws__cgi__args.html":[8,0,0], -"structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d":[8,0,0,3], -"structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1":[8,0,0,4], -"structlws__cgi__args.html#a741c11b9aa05997ec45a3400d7fb7739":[8,0,0,2], -"structlws__cgi__args.html#a8ac842084688c02f3f94694ef700d8f7":[8,0,0,1], -"structlws__cgi__args.html#adeee220b29aeacc34632c38e50f0f5a5":[8,0,0,0], -"structlws__client__connect__info.html":[7,2,0], -"structlws__client__connect__info.html#a03c305fdca809667b6a9a83b3edfd83a":[7,2,0,14], -"structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e":[7,2,0,12], -"structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9":[7,2,0,10], -"structlws__client__connect__info.html#a3893181d728f326f9f5b47c1459cb8be":[7,2,0,17], -"structlws__client__connect__info.html#a6843a60e1050b10db9d98d7eeb45f587":[7,2,0,8], -"structlws__client__connect__info.html#a69abb5aeed755750b9755e5c91db6895":[7,2,0,5], -"structlws__client__connect__info.html#a76a8388733f114fb8fd3643874781185":[7,2,0,9], -"structlws__client__connect__info.html#a7732b996e977393c3e1076be2a8ded6c":[7,2,0,2], -"structlws__client__connect__info.html#a8595f83e64147cb687b6418cf500dd4c":[7,2,0,7], -"structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836":[7,2,0,16], -"structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d":[7,2,0,13], -"structlws__client__connect__info.html#a9959ba103d3d2484e559a9f7879eebe3":[7,2,0,15], -"structlws__client__connect__info.html#a9b36d47c3422329df32c21040a35ebc7":[7,2,0,4], -"structlws__client__connect__info.html#aa364094f94ef1bcaaabbd9161971d502":[7,2,0,1], -"structlws__client__connect__info.html#aa9e8e3da4e783a0651b0dea62c2dd1db":[7,2,0,6], -"structlws__client__connect__info.html#aba35adfb74845a5fd0c3dc141cbdddd2":[7,2,0,11], -"structlws__client__connect__info.html#ad47f50d1633dc5df74548606c9a66d73":[7,2,0,0], -"structlws__client__connect__info.html#afe999d133cc240a0bfd02aade0514cfd":[7,2,0,3], -"structlws__context__creation__info.html":[7,4,1], -"structlws__context__creation__info.html#a0b154e79abc1167ba4ac3539f4af6720":[7,4,1,16], -"structlws__context__creation__info.html#a0cdfd3c484689ba6f0f2cc91b38ce948":[7,4,1,14], -"structlws__context__creation__info.html#a0e790dda6202604f73a03b6149bc12bb":[7,4,1,23], -"structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0":[7,4,1,37], -"structlws__context__creation__info.html#a137a9b9de4f6a7993fed8746d551e616":[7,4,1,26], -"structlws__context__creation__info.html#a13ffbb0d010309669611f8c4eda7d7f8":[7,4,1,17], -"structlws__context__creation__info.html#a1654d41bea6fb2f619b57e6a264b26a4":[7,4,1,22], -"structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd":[7,4,1,9], -"structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410":[7,4,1,10], -"structlws__context__creation__info.html#a3e1516fd7fed26bfa77c0246ed26c2eb":[7,4,1,29], -"structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85":[7,4,1,20], -"structlws__context__creation__info.html#a45e63e24c88289e0c8352377ef4d3646":[7,4,1,4], -"structlws__context__creation__info.html#a4a3d1155fc52f5048b481884f6fb947c":[7,4,1,3], -"structlws__context__creation__info.html#a4f8e65c3a059d3b586fafa9ef3282c29":[7,4,1,27], -"structlws__context__creation__info.html#a57f88c0745adbd1d6b9b619b8de30209":[7,4,1,24], -"structlws__context__creation__info.html#a6cfa3d51df2def3349a5cbf0d712822d":[7,4,1,34], -"structlws__context__creation__info.html#a704940261951ced6b5d8191bd8b9bb2d":[7,4,1,31], -"structlws__context__creation__info.html#a75434932bb5df54665ea678eb8ac104a":[7,4,1,8], -"structlws__context__creation__info.html#a7b59f2bdc869871e7bde232db94f5ca6":[7,4,1,7], -"structlws__context__creation__info.html#a8122cfc0810bafe51edb3ba6bf9a1251":[7,4,1,19], -"structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6":[7,4,1,12], -"structlws__context__creation__info.html#a999866fcd15dbd621773436f97190458":[7,4,1,25], -"structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03":[7,4,1,5], -"structlws__context__creation__info.html#a9d3b17a25e1fbc772f21eb4959a82724":[7,4,1,18], -"structlws__context__creation__info.html#aa8d9e85e137f35fb006f2e4a53f0887a":[7,4,1,15], -"structlws__context__creation__info.html#ab9ec8893e0f7843cf5d783d2f350ef14":[7,4,1,32], -"structlws__context__creation__info.html#abb90ffb3e6d6db2db20f529d61bd9122":[7,4,1,21], -"structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e":[7,4,1,36], -"structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56":[7,4,1,11], -"structlws__context__creation__info.html#ac62b0f0e8e402412ba5011d15c244103":[7,4,1,28], -"structlws__context__creation__info.html#ac8a75b7b259a3c3a5fbb4219a3f06c29":[7,4,1,35], -"structlws__context__creation__info.html#ad0e95ba721f7bd2b676719f8093c23a2":[7,4,1,13], -"structlws__context__creation__info.html#ad50db098a208f045f7811207d2bee4b9":[7,4,1,38], -"structlws__context__creation__info.html#adb0bc0b28cd7d90ab306723d8ffa96fa":[7,4,1,30], -"structlws__context__creation__info.html#ae52f3237e144e9ddcab5e2cf91d1e419":[7,4,1,1], -"structlws__context__creation__info.html#aef917c0b23976a264d2474901b4f5aa3":[7,4,1,6], -"structlws__context__creation__info.html#af3fb447be15c4fcb01d3285a6678ab54":[7,4,1,33], -"structlws__context__creation__info.html#afa5d4e7d9f86b58a1c6fac14f0a5f5f9":[7,4,1,2], -"structlws__context__creation__info.html#afce3b59950eca3203faa07381bbed5d7":[7,4,1,0], -"structlws__email.html":[7,14,0], -"structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e":[7,14,0,3], -"structlws__email.html#a2aff78c8e04db243052aa91b4d87e987":[7,14,0,13], -"structlws__email.html#a39ef6263d58eb40cca417c8697b227d8":[7,14,0,15], -"structlws__email.html#a472ae23fc9fca6599e5c512bc21458d2":[7,14,0,8], -"structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3":[7,14,0,4], -"structlws__email.html#a6453a8b92b3de6d2c2101af3edce685e":[7,14,0,9], -"structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed":[7,14,0,0], -"structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be":[7,14,0,16], -"structlws__email.html#a7bbc1964889c984b3da723c86a210e05":[7,14,0,12], -"structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82":[7,14,0,2], -"structlws__email.html#a939e5d7ee0339a16de73bde71ab4d4d9":[7,14,0,7], -"structlws__email.html#a9747ca85597788c2d118d287df47b7c1":[7,14,0,5], -"structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168":[7,14,0,11], -"structlws__email.html#ac6115d3cbef2e8bac62cc00895bf5fd3":[7,14,0,10], -"structlws__email.html#ad8dc60353ee246d84dd59ec0591e9719":[7,14,0,14], -"structlws__email.html#add1341456045382c183f4c763bdea6bc":[7,14,0,1], -"structlws__email.html#af7f0ae934347d81071f63a963301f9e2":[7,14,0,6], -"structlws__ext__option__arg.html":[7,5,1], -"structlws__ext__option__arg.html#a0a320c56b79271b8f059eeaad9423ac9":[7,5,1,2], -"structlws__ext__option__arg.html#a0b1f7b30c3ceaf5f1bf9d105c24568d1":[7,5,1,3], -"structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5":[7,5,1,0], -"structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f":[7,5,1,1], -"structlws__ext__options.html":[7,5,0], -"structlws__ext__options.html#a1769e4a9805bbdda227821e9578ddc7e":[7,5,0,0], -"structlws__ext__options.html#a7c4dbd62dbeba63a9d50d2306bd1cc61":[7,5,0,1], -"structlws__extension.html":[7,5,2], -"structlws__extension.html#a1e5018c883d85176f5c2152176843f9e":[7,5,2,2], -"structlws__extension.html#a36b06c213aedb02bf9a402651751855b":[7,5,2,1], -"structlws__extension.html#afa21f3b3c8c2c9212a276c52b680c3af":[7,5,2,0], -"structlws__gs__event__args.html":[7,10,0,3], -"structlws__gs__event__args.html#a2bec693d8a43730d487004a44326178b":[7,10,0,3,2], -"structlws__gs__event__args.html#a477274f8ca22ba7411b9285b9dc8dd06":[7,10,0,3,1], -"structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463":[7,10,0,3,0], -"structlws__http__mount.html":[7,4,0,1], -"structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b":[7,4,0,1,15], -"structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773":[7,4,0,1,9], -"structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a":[7,4,0,1,13], -"structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146":[7,4,0,1,2], -"structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7":[7,4,0,1,8], -"structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa":[7,4,0,1,5], -"structlws__http__mount.html#a614364c770b0bd4db464ad65cddab477":[7,4,0,1,0], -"structlws__http__mount.html#a6a9b1492a0b9749e39bd19932717a0b7":[7,4,0,1,14], -"structlws__http__mount.html#a8316dd183ffbef50419a5a4968d35d84":[7,4,0,1,3], -"structlws__http__mount.html#aa2391bfcada0b7a290b3c6651f64586c":[7,4,0,1,11], -"structlws__http__mount.html#aabec1a326780aafe11b977000983be0c":[7,4,0,1,1], -"structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743":[7,4,0,1,12], -"structlws__http__mount.html#ad878546ae1c399bbca7d7f8a0baf973d":[7,4,0,1,10], -"structlws__http__mount.html#ae137203040c6153694bd88a708da5395":[7,4,0,1,4], -"structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af":[7,4,0,1,6], -"structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4":[7,4,0,1,7], -"structlws__plat__file__ops.html":[7,20,0], -"structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40":[7,20,0,2], -"structlws__plat__file__ops.html#a034ec96f2fbaf52b4aa3e82d20795f7b":[7,20,0,0], -"structlws__plat__file__ops.html#a1fae8330ee94649a3551e31a30809793":[7,20,0,4], -"structlws__plat__file__ops.html#abfcda19b003dcc13c61ff9e2bb4ff869":[7,20,0,3], -"structlws__plat__file__ops.html#ad37a97abc68d0af967cef874f4d8df32":[7,20,0,1], -"structlws__plugin.html":[7,10,3], -"structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4":[7,10,3,1], -"structlws__plugin.html#a65dffd68fd267ce17b988790d1d35f22":[7,10,3,3], -"structlws__plugin.html#ac7f1fdfe8cf8a21f8ee9720c21934a3f":[7,10,3,0], -"structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105":[7,10,3,4], -"structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330":[7,10,3,2], -"structlws__plugin__capability.html":[7,10,2], -"structlws__plugin__capability.html#a523c7cde6f15bba345f56493dcf6b32a":[7,10,2,0], -"structlws__plugin__capability.html#a6a4d9d01e770f378ddadc77b37522033":[7,10,2,4], -"structlws__plugin__capability.html#a7936f0eb93d79dea76b903d0f8a5f623":[7,10,2,3], -"structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3":[7,10,2,1], -"structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f":[7,10,2,2], -"structlws__polarssl__context.html":[8,0,14], -"structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af":[8,0,14,0], -"structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270":[8,0,14,2], -"structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27":[8,0,14,1], -"structlws__pollargs.html":[8,0,15], -"structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6":[8,0,15,0], -"structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8":[8,0,15,2], -"structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81":[8,0,15,1], -"structlws__pollfd.html":[8,0,16], -"structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be":[8,0,16,1], -"structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9":[8,0,16,0], -"structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932":[8,0,16,2], -"structlws__process__html__args.html":[7,6,1,0], -"structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14":[7,6,1,0,3] +"structlws__cgi__args.html":[10,0,0], +"structlws__cgi__args.html#a36e5c256433c187bd0eaa9c1ca667f1d":[10,0,0,3], +"structlws__cgi__args.html#a4ccc1058e7e914a26eef31ab2ad46aa1":[10,0,0,4], +"structlws__cgi__args.html#a741c11b9aa05997ec45a3400d7fb7739":[10,0,0,2], +"structlws__cgi__args.html#a8ac842084688c02f3f94694ef700d8f7":[10,0,0,1], +"structlws__cgi__args.html#adeee220b29aeacc34632c38e50f0f5a5":[10,0,0,0], +"structlws__client__connect__info.html":[9,2,0], +"structlws__client__connect__info.html#a03c305fdca809667b6a9a83b3edfd83a":[9,2,0,14], +"structlws__client__connect__info.html#a065063b5117ecd0a59567c97f04bda2e":[9,2,0,12], +"structlws__client__connect__info.html#a1af124d81c3c22a46d39387c5bc3d6b9":[9,2,0,10], +"structlws__client__connect__info.html#a3893181d728f326f9f5b47c1459cb8be":[9,2,0,17], +"structlws__client__connect__info.html#a6843a60e1050b10db9d98d7eeb45f587":[9,2,0,8], +"structlws__client__connect__info.html#a69abb5aeed755750b9755e5c91db6895":[9,2,0,5], +"structlws__client__connect__info.html#a76a8388733f114fb8fd3643874781185":[9,2,0,9], +"structlws__client__connect__info.html#a7732b996e977393c3e1076be2a8ded6c":[9,2,0,2], +"structlws__client__connect__info.html#a8595f83e64147cb687b6418cf500dd4c":[9,2,0,7], +"structlws__client__connect__info.html#a9831b9f9ab54a1aec4bb15324f1c3836":[9,2,0,16], +"structlws__client__connect__info.html#a9862297827639238a7a0b4054c3ddf3d":[9,2,0,13], +"structlws__client__connect__info.html#a9959ba103d3d2484e559a9f7879eebe3":[9,2,0,15], +"structlws__client__connect__info.html#a9b36d47c3422329df32c21040a35ebc7":[9,2,0,4], +"structlws__client__connect__info.html#aa364094f94ef1bcaaabbd9161971d502":[9,2,0,1], +"structlws__client__connect__info.html#aa9e8e3da4e783a0651b0dea62c2dd1db":[9,2,0,6], +"structlws__client__connect__info.html#aba35adfb74845a5fd0c3dc141cbdddd2":[9,2,0,11], +"structlws__client__connect__info.html#ad47f50d1633dc5df74548606c9a66d73":[9,2,0,0], +"structlws__client__connect__info.html#afe999d133cc240a0bfd02aade0514cfd":[9,2,0,3], +"structlws__context__creation__info.html":[9,4,1], +"structlws__context__creation__info.html#a0b154e79abc1167ba4ac3539f4af6720":[9,4,1,16], +"structlws__context__creation__info.html#a0cdfd3c484689ba6f0f2cc91b38ce948":[9,4,1,14], +"structlws__context__creation__info.html#a0e790dda6202604f73a03b6149bc12bb":[9,4,1,23], +"structlws__context__creation__info.html#a0e9d94cdfb893d777b4a4db81e7b5ac0":[9,4,1,37], +"structlws__context__creation__info.html#a137a9b9de4f6a7993fed8746d551e616":[9,4,1,26], +"structlws__context__creation__info.html#a13ffbb0d010309669611f8c4eda7d7f8":[9,4,1,17], +"structlws__context__creation__info.html#a1654d41bea6fb2f619b57e6a264b26a4":[9,4,1,22], +"structlws__context__creation__info.html#a381342a398883d6204955ff3c1849ddd":[9,4,1,9], +"structlws__context__creation__info.html#a3baab4285c679fbe027c2504621d7410":[9,4,1,10], +"structlws__context__creation__info.html#a3e1516fd7fed26bfa77c0246ed26c2eb":[9,4,1,29], +"structlws__context__creation__info.html#a424a5ce268d6903e42243be94487ab85":[9,4,1,20], +"structlws__context__creation__info.html#a45e63e24c88289e0c8352377ef4d3646":[9,4,1,4], +"structlws__context__creation__info.html#a4a3d1155fc52f5048b481884f6fb947c":[9,4,1,3], +"structlws__context__creation__info.html#a4f8e65c3a059d3b586fafa9ef3282c29":[9,4,1,27], +"structlws__context__creation__info.html#a57f88c0745adbd1d6b9b619b8de30209":[9,4,1,24], +"structlws__context__creation__info.html#a6cfa3d51df2def3349a5cbf0d712822d":[9,4,1,34], +"structlws__context__creation__info.html#a704940261951ced6b5d8191bd8b9bb2d":[9,4,1,31], +"structlws__context__creation__info.html#a75434932bb5df54665ea678eb8ac104a":[9,4,1,8], +"structlws__context__creation__info.html#a7b59f2bdc869871e7bde232db94f5ca6":[9,4,1,7], +"structlws__context__creation__info.html#a8122cfc0810bafe51edb3ba6bf9a1251":[9,4,1,19], +"structlws__context__creation__info.html#a81697c6b763b5ef3ee52862bc70b07d6":[9,4,1,12], +"structlws__context__creation__info.html#a999866fcd15dbd621773436f97190458":[9,4,1,25], +"structlws__context__creation__info.html#a9c9d22437de92c197f3cee52912b2c03":[9,4,1,5], +"structlws__context__creation__info.html#a9d3b17a25e1fbc772f21eb4959a82724":[9,4,1,18], +"structlws__context__creation__info.html#aa8d9e85e137f35fb006f2e4a53f0887a":[9,4,1,15], +"structlws__context__creation__info.html#ab9ec8893e0f7843cf5d783d2f350ef14":[9,4,1,32], +"structlws__context__creation__info.html#abb90ffb3e6d6db2db20f529d61bd9122":[9,4,1,21], +"structlws__context__creation__info.html#ac105b4180008cb3e672d57beead8382e":[9,4,1,36], +"structlws__context__creation__info.html#ac583ce92b8e1c949cb6fef6bfe713d56":[9,4,1,11], +"structlws__context__creation__info.html#ac62b0f0e8e402412ba5011d15c244103":[9,4,1,28], +"structlws__context__creation__info.html#ac8a75b7b259a3c3a5fbb4219a3f06c29":[9,4,1,35], +"structlws__context__creation__info.html#ad0e95ba721f7bd2b676719f8093c23a2":[9,4,1,13], +"structlws__context__creation__info.html#ad50db098a208f045f7811207d2bee4b9":[9,4,1,38], +"structlws__context__creation__info.html#adb0bc0b28cd7d90ab306723d8ffa96fa":[9,4,1,30], +"structlws__context__creation__info.html#ae52f3237e144e9ddcab5e2cf91d1e419":[9,4,1,1], +"structlws__context__creation__info.html#aef917c0b23976a264d2474901b4f5aa3":[9,4,1,6], +"structlws__context__creation__info.html#af3fb447be15c4fcb01d3285a6678ab54":[9,4,1,33], +"structlws__context__creation__info.html#afa5d4e7d9f86b58a1c6fac14f0a5f5f9":[9,4,1,2], +"structlws__context__creation__info.html#afce3b59950eca3203faa07381bbed5d7":[9,4,1,0], +"structlws__email.html":[9,14,0], +"structlws__email.html#a01f31934166dc6d01e8a375012f8ad1e":[9,14,0,3], +"structlws__email.html#a2aff78c8e04db243052aa91b4d87e987":[9,14,0,13], +"structlws__email.html#a39ef6263d58eb40cca417c8697b227d8":[9,14,0,15], +"structlws__email.html#a472ae23fc9fca6599e5c512bc21458d2":[9,14,0,8], +"structlws__email.html#a5f53d4c5a1e34b0dcaa8787e2eabb1b3":[9,14,0,4], +"structlws__email.html#a6453a8b92b3de6d2c2101af3edce685e":[9,14,0,9], +"structlws__email.html#a6fff03c5a5d369a2aa3cab0c897b1bed":[9,14,0,0], +"structlws__email.html#a77723e2f2b940b1c879ef5e1cd88c2be":[9,14,0,16], +"structlws__email.html#a7bbc1964889c984b3da723c86a210e05":[9,14,0,12], +"structlws__email.html#a8f34ec0643a817be67ef4276aeb7fb82":[9,14,0,2], +"structlws__email.html#a939e5d7ee0339a16de73bde71ab4d4d9":[9,14,0,7], +"structlws__email.html#a9747ca85597788c2d118d287df47b7c1":[9,14,0,5], +"structlws__email.html#ab5fbf121195a8e67509c78a42cfbe168":[9,14,0,11], +"structlws__email.html#ac6115d3cbef2e8bac62cc00895bf5fd3":[9,14,0,10], +"structlws__email.html#ad8dc60353ee246d84dd59ec0591e9719":[9,14,0,14], +"structlws__email.html#add1341456045382c183f4c763bdea6bc":[9,14,0,1], +"structlws__email.html#af7f0ae934347d81071f63a963301f9e2":[9,14,0,6], +"structlws__ext__option__arg.html":[9,5,1], +"structlws__ext__option__arg.html#a0a320c56b79271b8f059eeaad9423ac9":[9,5,1,2], +"structlws__ext__option__arg.html#a0b1f7b30c3ceaf5f1bf9d105c24568d1":[9,5,1,3], +"structlws__ext__option__arg.html#af37f0b6caa7735af51a1ac12b68d5bc5":[9,5,1,0], +"structlws__ext__option__arg.html#af57fffcfa253dfa8d98681ac1fb1785f":[9,5,1,1], +"structlws__ext__options.html":[9,5,0], +"structlws__ext__options.html#a1769e4a9805bbdda227821e9578ddc7e":[9,5,0,0], +"structlws__ext__options.html#a7c4dbd62dbeba63a9d50d2306bd1cc61":[9,5,0,1], +"structlws__extension.html":[9,5,2], +"structlws__extension.html#a1e5018c883d85176f5c2152176843f9e":[9,5,2,2], +"structlws__extension.html#a36b06c213aedb02bf9a402651751855b":[9,5,2,1], +"structlws__extension.html#afa21f3b3c8c2c9212a276c52b680c3af":[9,5,2,0], +"structlws__gs__event__args.html":[9,10,0,3], +"structlws__gs__event__args.html#a2bec693d8a43730d487004a44326178b":[9,10,0,3,2], +"structlws__gs__event__args.html#a477274f8ca22ba7411b9285b9dc8dd06":[9,10,0,3,1], +"structlws__gs__event__args.html#acd17e4f9f91f7f9a8f0fbf0744a3a463":[9,10,0,3,0], +"structlws__http__mount.html":[9,4,0,1], +"structlws__http__mount.html#a05347d92c3d379809564bd4f3eab259b":[9,4,0,1,15], +"structlws__http__mount.html#a11ea62b952710d59733dbcf9794a5773":[9,4,0,1,9], +"structlws__http__mount.html#a21d86fd6043ec00e121ababbc29af39a":[9,4,0,1,13], +"structlws__http__mount.html#a4283e30ea89d27ae7d061ad760d1d146":[9,4,0,1,2], +"structlws__http__mount.html#a4437423df85ee3dbcae0e15974c89ec7":[9,4,0,1,8], +"structlws__http__mount.html#a4a7239d6d4c03986e6e1a72abb6c83aa":[9,4,0,1,5], +"structlws__http__mount.html#a614364c770b0bd4db464ad65cddab477":[9,4,0,1,0], +"structlws__http__mount.html#a6a9b1492a0b9749e39bd19932717a0b7":[9,4,0,1,14], +"structlws__http__mount.html#a8316dd183ffbef50419a5a4968d35d84":[9,4,0,1,3], +"structlws__http__mount.html#aa2391bfcada0b7a290b3c6651f64586c":[9,4,0,1,11], +"structlws__http__mount.html#aabec1a326780aafe11b977000983be0c":[9,4,0,1,1], +"structlws__http__mount.html#ac8489b60b8f969eb19c9abbdeac90743":[9,4,0,1,12], +"structlws__http__mount.html#ad878546ae1c399bbca7d7f8a0baf973d":[9,4,0,1,10], +"structlws__http__mount.html#ae137203040c6153694bd88a708da5395":[9,4,0,1,4], +"structlws__http__mount.html#ae7b5c0f4c5408061e6ea3a8d281f45af":[9,4,0,1,6], +"structlws__http__mount.html#ae90d1efe7178199fad39de2926902ee4":[9,4,0,1,7], +"structlws__plat__file__ops.html":[9,20,0], +"structlws__plat__file__ops.html#a01f483807a9862736b17ba9ed5110c40":[9,20,0,2], +"structlws__plat__file__ops.html#a034ec96f2fbaf52b4aa3e82d20795f7b":[9,20,0,0], +"structlws__plat__file__ops.html#a1fae8330ee94649a3551e31a30809793":[9,20,0,4], +"structlws__plat__file__ops.html#abfcda19b003dcc13c61ff9e2bb4ff869":[9,20,0,3], +"structlws__plat__file__ops.html#ad37a97abc68d0af967cef874f4d8df32":[9,20,0,1], +"structlws__plugin.html":[9,10,3], +"structlws__plugin.html#a4ef37a43653715b6c69cbf8a7be747f4":[9,10,3,1], +"structlws__plugin.html#a65dffd68fd267ce17b988790d1d35f22":[9,10,3,3], +"structlws__plugin.html#ac7f1fdfe8cf8a21f8ee9720c21934a3f":[9,10,3,0], +"structlws__plugin.html#af4ac8fcb79e10e0c2d960e1804d98105":[9,10,3,4], +"structlws__plugin.html#af9e1042dc1de5b9d202c2f5fd1834330":[9,10,3,2], +"structlws__plugin__capability.html":[9,10,2], +"structlws__plugin__capability.html#a523c7cde6f15bba345f56493dcf6b32a":[9,10,2,0], +"structlws__plugin__capability.html#a6a4d9d01e770f378ddadc77b37522033":[9,10,2,4], +"structlws__plugin__capability.html#a7936f0eb93d79dea76b903d0f8a5f623":[9,10,2,3], +"structlws__plugin__capability.html#abcf51db969522fdda9aaf902e65739d3":[9,10,2,1], +"structlws__plugin__capability.html#ae38f7cf1246b9ca3af3cbf9d46b7090f":[9,10,2,2], +"structlws__polarssl__context.html":[10,0,14], +"structlws__polarssl__context.html#a1872f2ea24878d807ae20ca8513674af":[10,0,14,0], +"structlws__polarssl__context.html#a919c33af37aab170f828d954de1fa270":[10,0,14,2] }; diff --git a/doc/html/navtreeindex4.js b/doc/html/navtreeindex4.js index e9af076f..f1d420fc 100644 --- a/doc/html/navtreeindex4.js +++ b/doc/html/navtreeindex4.js @@ -1,53 +1,64 @@ var NAVTREEINDEX4 = { -"structlws__process__html__args.html#a362547891ee0d693f3900a1f807ea475":[7,6,1,0,0], -"structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef":[7,6,1,0,1], -"structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99":[7,6,1,0,2], -"structlws__process__html__state.html":[7,6,1,1], -"structlws__process__html__state.html#a3b113e00c03a2fded51b1c85ff5bf077":[7,6,1,1,6], -"structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20":[7,6,1,1,2], -"structlws__process__html__state.html#a693d2fb45378afee5da29b539c1ea644":[7,6,1,1,3], -"structlws__process__html__state.html#a71982bc1cbd8cf876ca0f545144404eb":[7,6,1,1,5], -"structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968":[7,6,1,1,0], -"structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3":[7,6,1,1,4], -"structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5":[7,6,1,1,1], -"structlws__protocol__vhost__options.html":[7,4,0,0], -"structlws__protocol__vhost__options.html":[7,4,2], -"structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7":[7,4,2,3], -"structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7":[7,4,0,0,3], -"structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c":[7,4,0,0,1], -"structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c":[7,4,2,1], -"structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9":[7,4,0,0,0], -"structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9":[7,4,2,0], -"structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822":[7,4,0,0,2], -"structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822":[7,4,2,2], -"structlws__protocols.html":[7,10,1], -"structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5":[7,10,1,4], -"structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624":[7,10,1,2], -"structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e":[7,10,1,5], -"structlws__protocols.html#a6b632018590c2b1bbe43fbab6d5e6fac":[7,10,1,1], -"structlws__protocols.html#a9bbd85f591ffb4259711cb5acbb05bea":[7,10,1,3], -"structlws__protocols.html#acabf94c1a9bfe7be0387fbb0e0c56b2d":[7,10,1,0], -"structlws__session__info.html":[7,10,0,2], -"structlws__session__info.html#a3d57a70b6e7181d95a8bec429b1a7697":[7,10,0,2,4], -"structlws__session__info.html#a4353b5dd19400b2b15edfd7cee1e4cd5":[7,10,0,2,3], -"structlws__session__info.html#a53eed02325e8717a53297391e3e98fac":[7,10,0,2,1], -"structlws__session__info.html#a94b813cfc6b0da4b182659de30038ad3":[7,10,0,2,0], -"structlws__session__info.html#afb924864b70f40372920688a5c1c895e":[7,10,0,2,2], -"structlws__token__limits.html":[7,6,4,1], -"structlws__token__limits.html#a6ec712306cbf8585bce7a56758a3ceff":[7,6,4,1,0], -"structlws__tokens.html":[7,6,6], -"structlws__tokens.html":[7,6,4,0], -"structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766":[7,6,6,1], -"structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766":[7,6,4,0,1], -"structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd":[7,6,6,0], -"structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd":[7,6,4,0,0], -"structlwsgw__hash.html":[7,10,0,1], -"structlwsgw__hash.html#a29435f5cf78747d4257695b0f141d164":[7,10,0,1,0], -"structlwsgw__hash__bin.html":[7,10,0,0], -"structlwsgw__hash__bin.html#ac92f50d9471058525d110597a4e0de6b":[7,10,0,0,0], -"structpollfd.html":[8,0,26], -"structpollfd.html#aafb457d11cac415faf0e1e2b825118c2":[8,0,26,2], -"structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef":[8,0,26,0], -"structpollfd.html#af084f089bdece61d177f85782d6673d0":[8,0,26,1] +"structlws__polarssl__context.html#ae7e11c9129ff71c7ee71b3b2e320ff27":[10,0,14,1], +"structlws__pollargs.html":[10,0,15], +"structlws__pollargs.html#a00bbffea9f55de342783e32d71ce1de6":[10,0,15,0], +"structlws__pollargs.html#a437fec0de5cf264371e1ab5a401e86d8":[10,0,15,2], +"structlws__pollargs.html#af14a48ef4e78128aef9a76902b104a81":[10,0,15,1], +"structlws__pollfd.html":[10,0,16], +"structlws__pollfd.html#a714cf5ca90b41926117fdde9fa6542be":[10,0,16,1], +"structlws__pollfd.html#ac393db6fc7fb6ed8fe7ca20936908ee9":[10,0,16,0], +"structlws__pollfd.html#ae7cecfe7511c59d4a3a44f876d030932":[10,0,16,2], +"structlws__process__html__args.html":[9,6,1,0], +"structlws__process__html__args.html#a11859d8bedd379fbf64543b25c65fe14":[9,6,1,0,3], +"structlws__process__html__args.html#a362547891ee0d693f3900a1f807ea475":[9,6,1,0,0], +"structlws__process__html__args.html#a754513f2311241cabb0cd1c90d7307ef":[9,6,1,0,1], +"structlws__process__html__args.html#a8be7fd396a1942ea2449a2fda990ff99":[9,6,1,0,2], +"structlws__process__html__state.html":[9,6,1,1], +"structlws__process__html__state.html#a3b113e00c03a2fded51b1c85ff5bf077":[9,6,1,1,6], +"structlws__process__html__state.html#a53234f2948812c7208a256f9f5b23c20":[9,6,1,1,2], +"structlws__process__html__state.html#a693d2fb45378afee5da29b539c1ea644":[9,6,1,1,3], +"structlws__process__html__state.html#a71982bc1cbd8cf876ca0f545144404eb":[9,6,1,1,5], +"structlws__process__html__state.html#adcafd17704775b4bbeea9561fb340968":[9,6,1,1,0], +"structlws__process__html__state.html#af0732884ef891e24fe5fa237ebaa21a3":[9,6,1,1,4], +"structlws__process__html__state.html#af21119890fdfebe28fb5c4dabfc1bdf5":[9,6,1,1,1], +"structlws__protocol__vhost__options.html":[9,4,0,0], +"structlws__protocol__vhost__options.html":[9,4,2], +"structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7":[9,4,2,3], +"structlws__protocol__vhost__options.html#a0640a92513c70ee6b9b295a9ad1658e7":[9,4,0,0,3], +"structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c":[9,4,2,1], +"structlws__protocol__vhost__options.html#abc714ddb4171756fc8196e9823a1e21c":[9,4,0,0,1], +"structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9":[9,4,0,0,0], +"structlws__protocol__vhost__options.html#acf9db77f8eb64cd4e314be9b43d8a8b9":[9,4,2,0], +"structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822":[9,4,2,2], +"structlws__protocol__vhost__options.html#afd99fbc90be51ea2465b550c2ec47822":[9,4,0,0,2], +"structlws__protocols.html":[9,10,1], +"structlws__protocols.html#a0d1d4996d81b2f5e125bcec981e461c5":[9,10,1,4], +"structlws__protocols.html#a0e63edb457a613c3fa4271e0a8f19624":[9,10,1,2], +"structlws__protocols.html#a3cbd903ad076736ae934a54cae36580e":[9,10,1,5], +"structlws__protocols.html#a6b632018590c2b1bbe43fbab6d5e6fac":[9,10,1,1], +"structlws__protocols.html#a9bbd85f591ffb4259711cb5acbb05bea":[9,10,1,3], +"structlws__protocols.html#acabf94c1a9bfe7be0387fbb0e0c56b2d":[9,10,1,0], +"structlws__session__info.html":[9,10,0,2], +"structlws__session__info.html#a3d57a70b6e7181d95a8bec429b1a7697":[9,10,0,2,4], +"structlws__session__info.html#a4353b5dd19400b2b15edfd7cee1e4cd5":[9,10,0,2,3], +"structlws__session__info.html#a53eed02325e8717a53297391e3e98fac":[9,10,0,2,1], +"structlws__session__info.html#a94b813cfc6b0da4b182659de30038ad3":[9,10,0,2,0], +"structlws__session__info.html#afb924864b70f40372920688a5c1c895e":[9,10,0,2,2], +"structlws__token__limits.html":[9,6,4,1], +"structlws__token__limits.html#a6ec712306cbf8585bce7a56758a3ceff":[9,6,4,1,0], +"structlws__tokens.html":[9,6,4,0], +"structlws__tokens.html":[9,6,6], +"structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766":[9,6,4,0,1], +"structlws__tokens.html#a855b7375d1d58516c0ecd4b60e9a7766":[9,6,6,1], +"structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd":[9,6,6,0], +"structlws__tokens.html#a9f3635412bc71a5cb78e9862b55f10cd":[9,6,4,0,0], +"structlwsgw__hash.html":[9,10,0,1], +"structlwsgw__hash.html#a29435f5cf78747d4257695b0f141d164":[9,10,0,1,0], +"structlwsgw__hash__bin.html":[9,10,0,0], +"structlwsgw__hash__bin.html#ac92f50d9471058525d110597a4e0de6b":[9,10,0,0,0], +"structpollfd.html":[10,0,26], +"structpollfd.html#aafb457d11cac415faf0e1e2b825118c2":[10,0,26,2], +"structpollfd.html#ac9b2f2c5b1f9a7487eb57e67cd4960ef":[10,0,26,0], +"structpollfd.html#af084f089bdece61d177f85782d6673d0":[10,0,26,1] }; diff --git a/doc/html/pages.html b/doc/html/pages.html index 880af1c5..f9a0d6f2 100644 --- a/doc/html/pages.html +++ b/doc/html/pages.html @@ -68,11 +68,13 @@ $(document).ready(function(){initNavTree('pages.html','');});
    Here is a list of all related documentation pages:
    diff --git a/doc/latex/classlws__conn.pdf b/doc/latex/classlws__conn.pdf index b52f4af0..a18b8906 100644 Binary files a/doc/latex/classlws__conn.pdf and b/doc/latex/classlws__conn.pdf differ diff --git a/doc/latex/classlws__conn__listener.pdf b/doc/latex/classlws__conn__listener.pdf index c9e91499..f3ea3a98 100644 Binary files a/doc/latex/classlws__conn__listener.pdf and b/doc/latex/classlws__conn__listener.pdf differ diff --git a/doc/latex/group__context-and-vhost.tex b/doc/latex/group__context-and-vhost.tex index 3bb241cf..5a50157a 100644 --- a/doc/latex/group__context-and-vhost.tex +++ b/doc/latex/group__context-and-vhost.tex @@ -122,6 +122,7 @@ L\+W\+S\+\_\+\+S\+E\+R\+V\+E\+R\+\_\+\+O\+P\+T\+I\+O\+N\+\_\+\+I\+P\+V6\+\_\+\+V \end{Desc} \begin{DoxyCode} +<<<<<<< current 1393 \{ 1394 \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092}{LWS\_SERVER\_OPTION\_REQUIRE\_VALID\_OPENSSL\_CLIENT\_CERT} = (1 << 1) | @@ -143,6 +144,30 @@ L\+W\+S\+\_\+\+S\+E\+R\+V\+E\+R\+\_\+\+O\+P\+T\+I\+O\+N\+\_\+\+I\+P\+V6\+\_\+\+V 1420 \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e}{LWS\_SERVER\_OPTION\_LIBUV} = (1 << 10), 1422 \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada}{LWS\_SERVER\_OPTION\_REDIRECT\_HTTP\_TO\_HTTPS} = ( 1 << 11) | +======= +1392 \{ +1393 \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a274ed462a1a9239eb6ddf9007f5b7092}{LWS\_SERVER\_OPTION\_REQUIRE\_VALID\_OPENSSL\_CLIENT\_CERT} + = (1 << 1) | +1394 (1 << 12), +1398 \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a6582c985ee0ceaadc1d277030eae2d7c}{LWS\_SERVER\_OPTION\_SKIP\_SERVER\_CANONICAL\_NAME} + = (1 << 2), +1400 \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a1cc4562d05cba52a6dfa0697a65ade0d}{LWS\_SERVER\_OPTION\_ALLOW\_NON\_SSL\_ON\_SSL\_PORT} = ( + 1 << 3) | +1401 (1 << 12), +1405 \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a273d9975675130de0c6dc937dde7c8a6}{LWS\_SERVER\_OPTION\_LIBEV} = (1 << 4), +1407 \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a34ab36e68c0d593b6f19b8d5ef1240a9}{LWS\_SERVER\_OPTION\_DISABLE\_IPV6} = (1 << 5), +1409 \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a4933347a821e73c3f1e13fb6bfc7ad93}{LWS\_SERVER\_OPTION\_DISABLE\_OS\_CA\_CERTS} = ( + 1 << 6), +1412 \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5ac56a8a6590e74a8016d0fae09fb404fc}{LWS\_SERVER\_OPTION\_PEER\_CERT\_NOT\_REQUIRED} = ( + 1 << 7), +1414 \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5aa0158b4e85420811e6b0f1378c6ded0f}{LWS\_SERVER\_OPTION\_VALIDATE\_UTF8} = (1 << 8), +1416 \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a1b2f8bde0f62adc7ebe81b2043f34c0c}{LWS\_SERVER\_OPTION\_SSL\_ECDH} = (1 << 9) | +1417 (1 << 12), +1419 \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5aff121db04a10cf8b2c5df9d4f2b89f1e}{LWS\_SERVER\_OPTION\_LIBUV} = (1 << 10), +1421 \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a4832187186c4d130c68051214cd42ada}{LWS\_SERVER\_OPTION\_REDIRECT\_HTTP\_TO\_HTTPS} = ( + 1 << 11) | +1422 (1 << 3) | +>>>>>>> patched 1423 (1 << 12), 1426 \hyperlink{group__context-and-vhost_gga41c2d763f78cc248df3b9f8645dbd2a5a7fed6a527c8d5e0acac1b4179644583a}{LWS\_SERVER\_OPTION\_DO\_SSL\_GLOBAL\_INIT} = ( 1 << 12), diff --git a/doc/latex/group__extensions.tex b/doc/latex/group__extensions.tex index 9683b0a4..5fe71867 100644 --- a/doc/latex/group__extensions.tex +++ b/doc/latex/group__extensions.tex @@ -174,6 +174,7 @@ E\+X\+T\+A\+R\+G\+\_\+\+O\+P\+T\+\_\+\+D\+EC\hypertarget{group__extensions_ggacc \end{Desc} \begin{DoxyCode} +<<<<<<< current 995 \{ 996 \hyperlink{group__extensions_ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c}{EXTARG\_NONE}, 997 \hyperlink{group__extensions_ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e}{EXTARG\_DEC}, @@ -181,6 +182,15 @@ E\+X\+T\+A\+R\+G\+\_\+\+O\+P\+T\+\_\+\+D\+EC\hypertarget{group__extensions_ggacc 1000 \textcolor{comment}{/* Add new things just above here ---^} 1001 \textcolor{comment}{ * This is part of the ABI, don't needlessly break compatibility */} 1002 \}; +======= +994 \{ +995 \hyperlink{group__extensions_ggacc9f55936dc165257a2e1f7d47bce89eaabcf56c456c1ff6e81dc82586a16f14c}{EXTARG\_NONE}, +996 \hyperlink{group__extensions_ggacc9f55936dc165257a2e1f7d47bce89ea1c86adf924c8786a12bee9687094673e}{EXTARG\_DEC}, +997 \hyperlink{group__extensions_ggacc9f55936dc165257a2e1f7d47bce89ea5265abe3e1c3f64412f2affe7bffd880}{EXTARG\_OPT\_DEC} +999 \textcolor{comment}{/* Add new things just above here ---^} +1000 \textcolor{comment}{ * This is part of the ABI, don't needlessly break compatibility */} +1001 \}; +>>>>>>> patched \end{DoxyCode} diff --git a/doc/latex/group__form-parsing.tex b/doc/latex/group__form-parsing.tex index b6472365..6220e2ae 100644 --- a/doc/latex/group__form-parsing.tex +++ b/doc/latex/group__form-parsing.tex @@ -89,11 +89,19 @@ L\+W\+S\+\_\+\+U\+F\+S\+\_\+\+O\+P\+EN\hypertarget{group__form-parsing_gga41a74a \end{Desc} \begin{DoxyCode} +<<<<<<< current 2634 \{ 2635 \hyperlink{group__form-parsing_gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f}{LWS\_UFS\_CONTENT}, 2637 \hyperlink{group__form-parsing_gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7}{LWS\_UFS\_FINAL\_CONTENT}, 2639 \hyperlink{group__form-parsing_gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83}{LWS\_UFS\_OPEN} 2641 \}; +======= +2623 \{ +2624 \hyperlink{group__form-parsing_gga41a74a822771d3dce89751aa3bce28aead3a958e7719ac273c3ba4f684f00c87f}{LWS\_UFS\_CONTENT}, +2626 \hyperlink{group__form-parsing_gga41a74a822771d3dce89751aa3bce28aea6ce2a55a4c3695cdb640c893d95bd3a7}{LWS\_UFS\_FINAL\_CONTENT}, +2628 \hyperlink{group__form-parsing_gga41a74a822771d3dce89751aa3bce28aea2d25de44865bd44e5a3903a2bab9ca83}{LWS\_UFS\_OPEN} +2630 \}; +>>>>>>> patched \end{DoxyCode} diff --git a/doc/latex/group__generic-sessions.tex b/doc/latex/group__generic-sessions.tex index e1767b3c..d7133395 100644 --- a/doc/latex/group__generic-sessions.tex +++ b/doc/latex/group__generic-sessions.tex @@ -50,10 +50,17 @@ L\+W\+S\+G\+S\+E\+\_\+\+D\+E\+L\+E\+T\+ED\hypertarget{group__generic-sessions_gg \end{Desc} \begin{DoxyCode} +<<<<<<< current 1357 \{ 1358 \hyperlink{group__generic-sessions_ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308}{LWSGSE\_CREATED}, 1359 \hyperlink{group__generic-sessions_ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde}{LWSGSE\_DELETED} 1360 \}; +======= +1356 \{ +1357 \hyperlink{group__generic-sessions_ggaa93946b3d921072209d5cd8cdfa5332ea596010a165bf13473c5eea3a34cd4308}{LWSGSE\_CREATED}, +1358 \hyperlink{group__generic-sessions_ggaa93946b3d921072209d5cd8cdfa5332ead908cdc5689c5d22c9d3c8934e94dcde}{LWSGSE\_DELETED} +1359 \}; +>>>>>>> patched \end{DoxyCode} \index{plugin\+: generic-\/sessions@{plugin\+: generic-\/sessions}!lwsgs\+\_\+auth\+\_\+bits@{lwsgs\+\_\+auth\+\_\+bits}} \index{lwsgs\+\_\+auth\+\_\+bits@{lwsgs\+\_\+auth\+\_\+bits}!plugin\+: generic-\/sessions@{plugin\+: generic-\/sessions}} @@ -77,10 +84,19 @@ L\+W\+S\+G\+S\+\_\+\+A\+U\+T\+H\+\_\+\+F\+O\+R\+G\+O\+T\+\_\+\+F\+L\+OW\hypertar \end{Desc} \begin{DoxyCode} +<<<<<<< current 1339 \{ 1340 \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57}{LWSGS\_AUTH\_LOGGED\_IN} = 1, 1341 \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf}{LWSGS\_AUTH\_ADMIN} = 2, 1342 \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887}{LWSGS\_AUTH\_VERIFIED} = 4, 1343 \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a}{LWSGS\_AUTH\_FORGOT\_FLOW} = 8, 1344 \}; +======= +1338 \{ +1339 \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a81e63075115dedd150265d81b8f7fa57}{LWSGS\_AUTH\_LOGGED\_IN} = 1, +1340 \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a0657a9e846814781b128c397fe4b10bf}{LWSGS\_AUTH\_ADMIN} = 2, +1341 \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a5a607e4668d20cadada62c4b8007f887}{LWSGS\_AUTH\_VERIFIED} = 4, +1342 \hyperlink{group__generic-sessions_gga7c2dc7bfb4ccb91c5d771f9e9ea237e1a2cd8fb86e3b85c106e7711c03f0ddd0a}{LWSGS\_AUTH\_FORGOT\_FLOW} = 8, +1343 \}; +>>>>>>> patched \end{DoxyCode} diff --git a/doc/latex/group__sending-data.tex b/doc/latex/group__sending-data.tex index 4bbfd827..e44af696 100644 --- a/doc/latex/group__sending-data.tex +++ b/doc/latex/group__sending-data.tex @@ -57,6 +57,7 @@ L\+W\+S\+\_\+\+W\+R\+I\+T\+E\+\_\+\+C\+L\+I\+E\+N\+T\+\_\+\+I\+G\+N\+O\+R\+E\+\_ \end{Desc} \begin{DoxyCode} +<<<<<<< current 2975 \{ 2976 \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db}{LWS\_WRITE\_TEXT} = 0, 2980 \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2}{LWS\_WRITE\_BINARY} = 1, @@ -79,6 +80,30 @@ L\+W\+S\+\_\+\+W\+R\+I\+T\+E\+\_\+\+C\+L\+I\+E\+N\+T\+\_\+\+I\+G\+N\+O\+R\+E\+\_ 3009 \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3}{LWS\_WRITE\_NO\_FIN} = 0x40, 3012 \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce}{LWS\_WRITE\_CLIENT\_IGNORE\_XOR\_MASK} = 0x80 3016 \}; +======= +2964 \{ +2965 \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193da80e8f169fda236c56bfb795ed62903db}{LWS\_WRITE\_TEXT} = 0, +2969 \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193daf6486c0dba50c44198100717721d9ab2}{LWS\_WRITE\_BINARY} = 1, +2972 \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193da10047eb05b5e1c298151dc47a5b44826}{LWS\_WRITE\_CONTINUATION} = 2, +2975 \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193dabb6705e1d1327cdda5025be28f07712e}{LWS\_WRITE\_HTTP} = 3, +2978 \textcolor{comment}{/* LWS\_WRITE\_CLOSE is handled by lws\_close\_reason() */} +2979 LWS\_WRITE\_PING = 5, +2980 LWS\_WRITE\_PONG = 6, +2981 +2982 \textcolor{comment}{/* Same as write\_http but we know this write ends the transaction */} +2983 LWS\_WRITE\_HTTP\_FINAL = 7, +2984 +2985 \textcolor{comment}{/* HTTP2 */} +2986 +2987 \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193dafe5a38e940ce56708ac814627e9c0917}{LWS\_WRITE\_HTTP\_HEADERS} = 8, +2994 \textcolor{comment}{/****** add new things just above ---^ ******/} +2995 +2996 \textcolor{comment}{/* flags */} +2997 +2998 \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193da115440f272a5d55518adfc8099acfee3}{LWS\_WRITE\_NO\_FIN} = 0x40, +3001 \hyperlink{group__sending-data_gga98b099cf8c1c7e38ad78501f270e193da220d8e8652d9b97fb66e476e2a60ffce}{LWS\_WRITE\_CLIENT\_IGNORE\_XOR\_MASK} = 0x80 +3005 \}; +>>>>>>> patched \end{DoxyCode} diff --git a/doc/latex/group__smtp.tex b/doc/latex/group__smtp.tex index e5a78748..75149c92 100644 --- a/doc/latex/group__smtp.tex +++ b/doc/latex/group__smtp.tex @@ -88,6 +88,7 @@ L\+G\+S\+S\+M\+T\+P\+\_\+\+S\+E\+N\+T\+\_\+\+Q\+U\+IT\hypertarget{group__smtp_gg \end{Desc} \begin{DoxyCode} +<<<<<<< current 3897 \{ 3898 \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c}{LGSSMTP\_IDLE}, 3899 \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933}{LGSSMTP\_CONNECTING}, @@ -99,6 +100,19 @@ L\+G\+S\+S\+M\+T\+P\+\_\+\+S\+E\+N\+T\+\_\+\+Q\+U\+IT\hypertarget{group__smtp_gg 3905 \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69}{LGSSMTP\_SENT\_BODY}, 3906 \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5}{LGSSMTP\_SENT\_QUIT}, 3907 \}; +======= +3886 \{ +3887 \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a29e5b0ecf75375b5a643faa3d6222b7c}{LGSSMTP\_IDLE}, +3888 \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0ab89442b7a3ca2b94c3cdcf33756eb933}{LGSSMTP\_CONNECTING}, +3889 \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0ab61778f70ecac007b334bb14942eb41d}{LGSSMTP\_CONNECTED}, +3890 \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a1dfec948a864205cec875f63cbe0d4ad}{LGSSMTP\_SENT\_HELO}, +3891 \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a929bb4623ff3f585108aba2a1b047fab}{LGSSMTP\_SENT\_FROM}, +3892 \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0aae20a0cb95b97a70f6b45d0ed2d5be83}{LGSSMTP\_SENT\_TO}, +3893 \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a85e3c452950c09a79086bff4b9be5c14}{LGSSMTP\_SENT\_DATA}, +3894 \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a38fba41f28d754e38079b31418a86a69}{LGSSMTP\_SENT\_BODY}, +3895 \hyperlink{group__smtp_gga116be79bf44f9dc2a97f46e051fe4dc0a2c2ed16ffc572326e3040684084b21d5}{LGSSMTP\_SENT\_QUIT}, +3896 \}; +>>>>>>> patched \end{DoxyCode} diff --git a/doc/latex/group__usercb.tex b/doc/latex/group__usercb.tex index fc9df2aa..2ad27a29 100644 --- a/doc/latex/group__usercb.tex +++ b/doc/latex/group__usercb.tex @@ -79,6 +79,7 @@ enum \hyperlink{group__usercb_gad62860e19975ba4c4af401c3cdb6abf7}{lws\+\_\+callb {\bfseries L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+S\+E\+S\+S\+I\+O\+N\+\_\+\+I\+N\+FO} = 54, {\bfseries L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+G\+S\+\_\+\+E\+V\+E\+NT} = 55, \\* +\hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a}{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+T\+P\+\_\+\+P\+MO} = 56, \hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a}{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER} = 1000 \} \end{DoxyCompactItemize} @@ -267,7 +268,9 @@ L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+N\+L\+O\+C\+K\+\_\+\+P\+O\+LL\hy L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+O\+P\+E\+N\+S\+S\+L\+\_\+\+C\+O\+N\+T\+E\+X\+T\+\_\+\+R\+E\+Q\+U\+I\+R\+E\+S\+\_\+\+P\+R\+I\+V\+A\+T\+E\+\_\+\+K\+EY\hypertarget{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b}{}\label{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7aa46f705dcf97502e95627ffde614f98b} }]if configured for including Open\+S\+SL support but no private key file has been specified (ssl\+\_\+private\+\_\+key\+\_\+filepath is N\+U\+LL), this is called to allow the user to set the private key directly via libopenssl and perform further operations if required; this might be useful in situations where the private key is not directly accessible by the OS, for example if it is stored on a smartcard. user is the server\textquotesingle{}s Open\+S\+SL S\+S\+L\+\_\+\+C\+T\+X$\ast$ \index{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+W\+S\+\_\+\+P\+E\+E\+R\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+D\+\_\+\+C\+L\+O\+SE@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+W\+S\+\_\+\+P\+E\+E\+R\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+D\+\_\+\+C\+L\+O\+SE}!User Callback@{User Callback}}\index{User Callback@{User Callback}!L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+W\+S\+\_\+\+P\+E\+E\+R\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+D\+\_\+\+C\+L\+O\+SE@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+W\+S\+\_\+\+P\+E\+E\+R\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+D\+\_\+\+C\+L\+O\+SE}}\item[{\em L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+W\+S\+\_\+\+P\+E\+E\+R\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+D\+\_\+\+C\+L\+O\+SE\hypertarget{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51}{}\label{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51} -}]The peer has sent an unsolicited Close WS packet. in and len are the optional close code (first 2 bytes, network order) and the optional additional information which is not defined in the standard, and may be a string or non-\/human-\/ readable data. If you return 0 lws will echo the close and then close the connection. If you return nonzero lws will just close the connection. \index{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER}!User Callback@{User Callback}}\index{User Callback@{User Callback}!L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER}}\item[{\em +}]The peer has sent an unsolicited Close WS packet. in and len are the optional close code (first 2 bytes, network order) and the optional additional information which is not defined in the standard, and may be a string or non-\/human-\/ readable data. If you return 0 lws will echo the close and then close the connection. If you return nonzero lws will just close the connection. \index{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+T\+P\+\_\+\+P\+MO@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+T\+P\+\_\+\+P\+MO}!User Callback@{User Callback}}\index{User Callback@{User Callback}!L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+T\+P\+\_\+\+P\+MO@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+T\+P\+\_\+\+P\+MO}}\item[{\em +L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+T\+P\+\_\+\+P\+MO\hypertarget{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a}{}\label{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a} +}]per-\/mount options for this connection, called before the normal L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+TP when the mount has per-\/mount options \index{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER}!User Callback@{User Callback}}\index{User Callback@{User Callback}!L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER@{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER}}\item[{\em L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER\hypertarget{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a}{}\label{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a} }]user code can use any including / above without fear of clashes \end{description} \end{Desc} @@ -326,6 +329,7 @@ L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER\hypertarget{group__usercb_ = 37, 873 \hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7ac3fc5bbb55e69f90396526287ee84a51}{LWS\_CALLBACK\_WS\_PEER\_INITIATED\_CLOSE} = 38, +<<<<<<< current 882 LWS\_CALLBACK\_WS\_EXT\_DEFAULTS = 39, 885 LWS\_CALLBACK\_CGI = 40, 887 LWS\_CALLBACK\_CGI\_TERMINATED = 41, @@ -347,4 +351,28 @@ L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER\hypertarget{group__usercb_ 920 921 \hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a}{LWS\_CALLBACK\_USER} = 1000, 923 \}; +======= +876 LWS\_CALLBACK\_WS\_EXT\_DEFAULTS = 39, +879 LWS\_CALLBACK\_CGI = 40, +881 LWS\_CALLBACK\_CGI\_TERMINATED = 41, +883 LWS\_CALLBACK\_CGI\_STDIN\_DATA = 42, +885 LWS\_CALLBACK\_CGI\_STDIN\_COMPLETED = 43, +887 LWS\_CALLBACK\_ESTABLISHED\_CLIENT\_HTTP = 44, +889 LWS\_CALLBACK\_CLOSED\_CLIENT\_HTTP = 45, +891 LWS\_CALLBACK\_RECEIVE\_CLIENT\_HTTP = 46, +893 LWS\_CALLBACK\_COMPLETED\_CLIENT\_HTTP = 47, +895 LWS\_CALLBACK\_RECEIVE\_CLIENT\_HTTP\_READ = 48, +897 LWS\_CALLBACK\_HTTP\_BIND\_PROTOCOL = 49, +899 LWS\_CALLBACK\_HTTP\_DROP\_PROTOCOL = 50, +901 LWS\_CALLBACK\_CHECK\_ACCESS\_RIGHTS = 51, +903 LWS\_CALLBACK\_PROCESS\_HTML = 52, +905 LWS\_CALLBACK\_ADD\_HEADERS = 53, +907 LWS\_CALLBACK\_SESSION\_INFO = 54, +910 LWS\_CALLBACK\_GS\_EVENT = 55, +912 \hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a}{LWS\_CALLBACK\_HTTP\_PMO} = 56, +918 \textcolor{comment}{/****** add new things just above ---^ ******/} +919 +920 \hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a}{LWS\_CALLBACK\_USER} = 1000, +922 \}; +>>>>>>> patched \end{DoxyCode} diff --git a/doc/latex/libwebsockets_8h.tex b/doc/latex/libwebsockets_8h.tex index c4bfa59e..ebcda1a0 100644 --- a/doc/latex/libwebsockets_8h.tex +++ b/doc/latex/libwebsockets_8h.tex @@ -198,6 +198,7 @@ enum \hyperlink{group__usercb_gad62860e19975ba4c4af401c3cdb6abf7}{lws\+\_\+callb {\bfseries L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+S\+E\+S\+S\+I\+O\+N\+\_\+\+I\+N\+FO} = 54, {\bfseries L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+G\+S\+\_\+\+E\+V\+E\+NT} = 55, \\* +\hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7aa5cc921b7697743017a533822a3d556a}{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+H\+T\+T\+P\+\_\+\+P\+MO} = 56, \hyperlink{group__usercb_ggad62860e19975ba4c4af401c3cdb6abf7a982579753e70e59a9ea13ce628ac891a}{L\+W\+S\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+U\+S\+ER} = 1000 \} \item diff --git a/doc/latex/md_README.generic-table.tex b/doc/latex/md_README.generic-table.tex index 06008e66..72b8f646 100644 --- a/doc/latex/md_README.generic-table.tex +++ b/doc/latex/md_README.generic-table.tex @@ -2,11 +2,135 @@ Generic-\/table is a J\+S\+ON schema and client-\/side JS file that makes it easy to display live, table structured H\+T\+ML over a ws link. -An example plugin and index.\+html using it are provided. +An example plugin and index.\+html using it are provided, but lwsgt itself doesn\textquotesingle{}t have its own plugin, it\textquotesingle{}s just a J\+S\+ON schema and client-\/side JS that other plugins can use to simplify displaying live, table-\/based data without having to reinvent the wheel each time. \subsection*{Enabling for build } -Enable at C\+Make with -\/\+D\+L\+W\+S\+\_\+\+W\+I\+T\+H\+\_\+\+P\+L\+U\+G\+I\+NS=1 +Enable the demo plugin at C\+Make with -\/\+D\+L\+W\+S\+\_\+\+W\+I\+T\+H\+\_\+\+P\+L\+U\+G\+I\+NS=1 + +\subsection*{Integrating with your html } + + +\begin{DoxyItemize} +\item In your H\+E\+AD section, include lwsgt.\+js +\end{DoxyItemize} + + +\begin{DoxyCode} +1 +\end{DoxyCode} + + + +\begin{DoxyItemize} +\item Also in your H\+E\+AD section, style the lwsgt C\+SS, eg +\end{DoxyItemize} + + +\begin{DoxyCode} +1 +\end{DoxyCode} + + +You can skip this but the result will be less beautiful until some C\+SS is provided. + + +\begin{DoxyItemize} +\item In your body section, declare a div with an id (can be whatever you want) +\end{DoxyItemize} + + +\begin{DoxyCode} +1
    +\end{DoxyCode} + + +lwsgt JS will put its content there. + + +\begin{DoxyItemize} +\item Finally in a $<$script$>$ at the end of your page, instantiate lwsgt and provide a custom callback for clickable links +\end{DoxyItemize} + + +\begin{DoxyCode} +1 +\end{DoxyCode} + + +In the callback, you can recover the ws object by {\ttfamily window\mbox{[}gt\mbox{]}.lwsgt\+\_\+ws}. + +\subsection*{Lwsgt constructor } + +{\ttfamily var myvar = new lwsgt\+\_\+initial(title, ws\+\_\+protocol, div\+\_\+id, click\+\_\+cb, myvar);} + +All of the arguments are strings. + +\tabulinesep=1mm +\begin{longtabu} spread 0pt [c]{*2{|X[-1]}|} +\hline +\rowcolor{\tableheadbgcolor}{\bf Parameter }&{\bf Description }\\\cline{1-2} +\endfirsthead +\hline +\endfoot +\hline +\rowcolor{\tableheadbgcolor}{\bf Parameter }&{\bf Description }\\\cline{1-2} +\endhead +title &Title string to go above the table \\\cline{1-2} +ws\+\_\+protocol &Protocol name string to use when making ws connection \\\cline{1-2} +div\+\_\+id &H\+T\+ML id of div to fill with content \\\cline{1-2} +click\+\_\+cb &Callback function name string to handle clickable links \\\cline{1-2} +myvar &Name of var used to hold this instantiation globally \\\cline{1-2} +\end{longtabu} + + +\subsection*{Lwsgt click handling function } + +When a clickable link produced by lwsgt is clicked, the function named in the click\+\_\+cb parameter to lwsgt\+\_\+initial is called. + +That function is expected to take four parameters, eg + +{\ttfamily function lwsgt\+\_\+dir\+\_\+click(gt, u, col, row)} + +\tabulinesep=1mm +\begin{longtabu} spread 0pt [c]{*2{|X[-1]}|} +\hline +\rowcolor{\tableheadbgcolor}{\bf Parameter }&{\bf Description }\\\cline{1-2} +\endfirsthead +\hline +\endfoot +\hline +\rowcolor{\tableheadbgcolor}{\bf Parameter }&{\bf Description }\\\cline{1-2} +\endhead +gt &Name of global var holding this lwsgt context (ie, myvar) \\\cline{1-2} +u &Link \char`\"{}url\char`\"{} string \\\cline{1-2} +col &Table column number link is from \\\cline{1-2} +row &Table row number link is from \\\cline{1-2} +\end{longtabu} + \subsection*{Generic-\/table J\+S\+ON } @@ -16,14 +140,14 @@ When the ws connection is established, the protocol should send a J\+S\+ON messa \begin{DoxyCode} -1 msg = "\{\(\backslash\)"cols\(\backslash\)":[" -2 " \{\(\backslash\)"name\(\backslash\)": \(\backslash\)"Date\(\backslash\)"\}," -3 " \{\(\backslash\)"name\(\backslash\)": \(\backslash\)"Size\(\backslash\)", \(\backslash\)"align\(\backslash\)": \(\backslash\)"right\(\backslash\)"\}," -4 " \{\(\backslash\)"name\(\backslash\)": \(\backslash\)"Icon\(\backslash\)"\}," -5 " \{\(\backslash\)"name\(\backslash\)": \(\backslash\)"Name\(\backslash\)", \(\backslash\)"href\(\backslash\)": \(\backslash\)"uri\(\backslash\)"\}," -6 " \{\(\backslash\)"name\(\backslash\)": \(\backslash\)"uri\(\backslash\)", \(\backslash\)"hide\(\backslash\)": \(\backslash\)"1\(\backslash\)" \}" -7 " ]" -8 "\}"; +1 "cols": [ +2 \{ "name": "Date" \}, +3 \{ "name": "Size", "align": "right" \}, +4 \{ "name": "Icon" \}, +5 \{ "name": "Name", "href": "uri"\}, +6 \{ "name": "uri", "hide": "1" \}" +7 ] +8 \} \end{DoxyCode} @@ -35,6 +159,34 @@ When the ws connection is established, the protocol should send a J\+S\+ON messa \item \char`\"{}\+Size\char`\"{} field should be presented aligned to the right \end{DoxyItemize} +\subsubsection*{Breadcrumbs} + +When a view is hierarchical, it\textquotesingle{}s useful to provide a \char`\"{}path\char`\"{} with links back in the \char`\"{}path\char`\"{}, known as \char`\"{}breadcrumbs\char`\"{}. + +Elements before the last one should provide a \char`\"{}url\char`\"{} member as well as the displayable name, which is used to create the link destination. + +The last element, being the current displayed page should not have a url member and be displayed without link style. + + +\begin{DoxyCode} +1 "breadcrumbs":[\{"name":"top", "url": "/" \}, \{"name":"mydir"\}] +\end{DoxyCode} + + \subsubsection*{Table data} -The \ No newline at end of file +The actual file data consists of an array of rows, containing the columns mentioned in the original \char`\"{}cols\char`\"{} section. + + +\begin{DoxyCode} +1 "data":[ +2 \{ +3 "Icon":" ", +4 "Date":"2015-Feb-06 03:08:35 +0000", +5 "Size":"1406", +6 "uri":"./serve//favicon.ico", +7 "Name":"favicon.ico" +8 \} +9 ] +\end{DoxyCode} + \ No newline at end of file diff --git a/doc/latex/refman.tex b/doc/latex/refman.tex index 8a9f9e3f..7ba81199 100644 --- a/doc/latex/refman.tex +++ b/doc/latex/refman.tex @@ -143,6 +143,10 @@ \label{md_README.build} \hypertarget{md_README.build}{} \input{md_README.build} +\chapter{Debugging problems} +\label{md_README.problems} +\hypertarget{md_README.problems}{} +\input{md_README.problems} \chapter{Notes about lwsws} \label{md_README.lwsws} \hypertarget{md_README.lwsws}{} @@ -155,6 +159,10 @@ \label{md_README.generic-sessions} \hypertarget{md_README.generic-sessions}{} \input{md_README.generic-sessions} +\chapter{Notes about generic-\/table} +\label{md_README.generic-table} +\hypertarget{md_README.generic-table}{} +\input{md_README.generic-table} \chapter{Overview of lws test apps} \label{md_README.test-apps} \hypertarget{md_README.test-apps}{} diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c index 586dab3e..5b1a7f2e 100755 --- a/lib/libwebsockets.c +++ b/lib/libwebsockets.c @@ -473,6 +473,13 @@ just_kill_connection: (wsi->state_pre_close == LWSS_FLUSHING_STORED_SEND_BEFORE_CLOSE) || (wsi->mode == LWSCM_WS_CLIENT && wsi->state_pre_close == LWSS_HTTP) || (wsi->mode == LWSCM_WS_SERVING && wsi->state_pre_close == LWSS_HTTP))) { + + if (wsi->user_space) { + lwsl_debug("%s: doing LWS_CALLBACK_HTTP_DROP_PROTOCOL for %p prot %s", __func__, wsi, wsi->protocol->name); + wsi->protocol->callback(wsi, + LWS_CALLBACK_HTTP_DROP_PROTOCOL, + wsi->user_space, NULL, 0); + } lwsl_debug("calling back CLOSED\n"); wsi->protocol->callback(wsi, LWS_CALLBACK_CLOSED, wsi->user_space, NULL, 0); @@ -1528,6 +1535,11 @@ lws_json_purify(char *escaped, const char *string, int len) const char *p = string; char *q = escaped; + if (!p) { + escaped[0] = '\0'; + return escaped; + } + while (*p && len-- > 6) { if (*p == '\"' || *p == '\\' || *p < 0x20) { *q++ = '\\'; diff --git a/lib/libwebsockets.h b/lib/libwebsockets.h index 7c8d8373..c9c83de7 100644 --- a/lib/libwebsockets.h +++ b/lib/libwebsockets.h @@ -915,6 +915,11 @@ enum lws_callback_reasons { LWS_CALLBACK_GS_EVENT = 55, /**< */ + LWS_CALLBACK_HTTP_PMO = 56, + /**< per-mount options for this connection, called before + * the normal LWS_CALLBACK_HTTP when the mount has per-mount + * options + */ /****** add new things just above ---^ ******/ diff --git a/lib/private-libwebsockets.h b/lib/private-libwebsockets.h index 03ef1c18..7161d411 100644 --- a/lib/private-libwebsockets.h +++ b/lib/private-libwebsockets.h @@ -1737,6 +1737,9 @@ lws_protocol_init(struct lws_context *context); int lws_bind_protocol(struct lws *wsi, const struct lws_protocols *p); +const struct lws_http_mount * +lws_find_mount(struct lws *wsi, const char *uri_ptr, int uri_len); + /* * custom allocator */ diff --git a/lib/server-handshake.c b/lib/server-handshake.c index a0bddff7..3cefa0bd 100644 --- a/lib/server-handshake.c +++ b/lib/server-handshake.c @@ -260,6 +260,18 @@ handshake_0405(struct lws_context *context, struct lws *wsi) wsi->state = LWSS_ESTABLISHED; wsi->lws_rx_parse_state = LWS_RXPS_NEW; + { + const char * uri_ptr = + lws_hdr_simple_ptr(wsi, WSI_TOKEN_GET_URI); + int uri_len = lws_hdr_total_length(wsi, WSI_TOKEN_GET_URI); + const struct lws_http_mount *hit = + lws_find_mount(wsi, uri_ptr, uri_len); + if (hit && hit->cgienv && + wsi->protocol->callback(wsi, LWS_CALLBACK_HTTP_PMO, + wsi->user_space, (void *)hit->cgienv, 0)) + return 1; + } + return 0; diff --git a/lib/server.c b/lib/server.c index d5272c67..85e65d3f 100644 --- a/lib/server.c +++ b/lib/server.c @@ -456,6 +456,35 @@ bail: return -1; } +const struct lws_http_mount * +lws_find_mount(struct lws *wsi, const char *uri_ptr, int uri_len) +{ + const struct lws_http_mount *hm, *hit = NULL; + int best = 0; + + hm = wsi->vhost->mount_list; + while (hm) { + if (uri_len >= hm->mountpoint_len && + !strncmp(uri_ptr, hm->mountpoint, hm->mountpoint_len) && + (uri_ptr[hm->mountpoint_len] == '\0' || + uri_ptr[hm->mountpoint_len] == '/' || + hm->mountpoint_len == 1) + ) { + if (hm->origin_protocol == LWSMPRO_CALLBACK || + ((hm->origin_protocol == LWSMPRO_CGI || + lws_hdr_total_length(wsi, WSI_TOKEN_GET_URI) || + hm->protocol) && + hm->mountpoint_len > best)) { + best = hm->mountpoint_len; + hit = hm; + } + } + hm = hm->mount_next; + } + + return hit; +} + int lws_http_action(struct lws *wsi) { @@ -464,13 +493,13 @@ lws_http_action(struct lws *wsi) enum http_version request_version; char content_length_str[32]; struct lws_process_html_args args; - const struct lws_http_mount *hm, *hit = NULL; + const struct lws_http_mount *hit = NULL; unsigned int n, count = 0; char http_version_str[10]; char http_conn_str[20]; int http_version_len; - char *uri_ptr = NULL; - int uri_len = 0, best = 0; + char *uri_ptr = NULL, *s; + int uri_len = 0; int meth = -1; static const unsigned char methods[] = { @@ -690,216 +719,8 @@ lws_http_action(struct lws *wsi) /* can we serve it from the mount list? */ - hm = wsi->vhost->mount_list; - while (hm) { - if (uri_len >= hm->mountpoint_len && - !strncmp(uri_ptr, hm->mountpoint, hm->mountpoint_len) && - (uri_ptr[hm->mountpoint_len] == '\0' || - uri_ptr[hm->mountpoint_len] == '/' || - hm->mountpoint_len == 1) - ) { - if (hm->origin_protocol == LWSMPRO_CALLBACK || - ((hm->origin_protocol == LWSMPRO_CGI || - lws_hdr_total_length(wsi, WSI_TOKEN_GET_URI) || - hm->protocol) && - hm->mountpoint_len > best)) { - best = hm->mountpoint_len; - hit = hm; - } - } - hm = hm->mount_next; - } - if (hit) { - char *s = uri_ptr + hit->mountpoint_len; - - lwsl_debug("*** hit %d %d %s\n", hit->mountpoint_len, - hit->origin_protocol , hit->origin); - - if (hit->protocol) { - const struct lws_protocols *pp = lws_vhost_name_to_protocol( - wsi->vhost, hit->protocol); - - if (!pp) { - lwsl_err("unknown protocol %s\n", hit->protocol); - return 1; - } - - if (lws_bind_protocol(wsi, pp)) - return 1; - } - lwsl_info("wsi %s protocol '%s'\n", uri_ptr, wsi->protocol->name); - - args.p = uri_ptr; - args.len = uri_len; - args.max_len = hit->auth_mask; - args.final = 0; /* used to signal callback dealt with it */ - - n = wsi->protocol->callback(wsi, LWS_CALLBACK_CHECK_ACCESS_RIGHTS, - wsi->user_space, &args, 0); - if (n) { - lws_return_http_status(wsi, HTTP_STATUS_UNAUTHORIZED, - NULL); - goto bail_nuke_ah; - } - if (args.final) /* callback completely handled it well */ - return 0; - - /* - * if we have a mountpoint like https://xxx.com/yyy - * there is an implied / at the end for our purposes since - * we can only mount on a "directory". - * - * But if we just go with that, the browser cannot understand - * that he is actually looking down one "directory level", so - * even though we give him /yyy/abc.html he acts like the - * current directory level is /. So relative urls like "x.png" - * wrongly look outside the mountpoint. - * - * Therefore if we didn't come in on a url with an explicit - * / at the end, we must redirect to add it so the browser - * understands he is one "directory level" down. - */ - if ((hit->mountpoint_len > 1 || - (hit->origin_protocol == LWSMPRO_REDIR_HTTP || - hit->origin_protocol == LWSMPRO_REDIR_HTTPS)) && - (*s != '/' || - (hit->origin_protocol == LWSMPRO_REDIR_HTTP || - hit->origin_protocol == LWSMPRO_REDIR_HTTPS)) && - (hit->origin_protocol != LWSMPRO_CGI && - hit->origin_protocol != LWSMPRO_CALLBACK //&& - //hit->protocol == NULL - )) { - unsigned char *start = pt->serv_buf + LWS_PRE, - *p = start, *end = p + 512; - - lwsl_debug("Doing 301 '%s' org %s\n", s, hit->origin); - - if (!lws_hdr_total_length(wsi, WSI_TOKEN_HOST)) - goto bail_nuke_ah; - - /* > at start indicates deal with by redirect */ - if (hit->origin_protocol == LWSMPRO_REDIR_HTTP || - hit->origin_protocol == LWSMPRO_REDIR_HTTPS) - n = snprintf((char *)end, 256, "%s%s", - oprot[hit->origin_protocol & 1], - hit->origin); - else - n = snprintf((char *)end, 256, - "%s%s%s/", oprot[lws_is_ssl(wsi)], - lws_hdr_simple_ptr(wsi, WSI_TOKEN_HOST), - uri_ptr); - - n = lws_http_redirect(wsi, HTTP_STATUS_MOVED_PERMANENTLY, - end, n, &p, end); - if ((int)n < 0) - goto bail_nuke_ah; - - return lws_http_transaction_completed(wsi); - } - - /* - * A particular protocol callback is mounted here? - * - * For the duration of this http transaction, bind us to the - * associated protocol - */ - - if (hit->origin_protocol == LWSMPRO_CALLBACK || - (hit->protocol && lws_hdr_total_length(wsi, WSI_TOKEN_POST_URI))) { - if (! hit->protocol) { - for (n = 0; n < (unsigned int)wsi->vhost->count_protocols; n++) - if (!strcmp(wsi->vhost->protocols[n].name, - hit->origin)) { - if (lws_bind_protocol(wsi, &wsi->vhost->protocols[n])) - return 1; - break; - } - - if (n == wsi->vhost->count_protocols) { - n = -1; - lwsl_err("Unable to find plugin '%s'\n", - hit->origin); - } - } - n = wsi->protocol->callback(wsi, LWS_CALLBACK_HTTP, - wsi->user_space, - uri_ptr + hit->mountpoint_len, - uri_len - hit->mountpoint_len); - - goto after; - } - -#ifdef LWS_WITH_CGI - /* did we hit something with a cgi:// origin? */ - if (hit->origin_protocol == LWSMPRO_CGI) { - const char *cmd[] = { - NULL, /* replace with cgi path */ - NULL - }; - unsigned char *p, *end, buffer[256]; - - lwsl_debug("%s: cgi\n", __func__); - cmd[0] = hit->origin; - - n = 5; - if (hit->cgi_timeout) - n = hit->cgi_timeout; - - n = lws_cgi(wsi, cmd, hit->mountpoint_len, n, - hit->cgienv); - if (n) { - lwsl_err("%s: cgi failed\n"); - return -1; - } - p = buffer + LWS_PRE; - end = p + sizeof(buffer) - LWS_PRE; - - if (lws_add_http_header_status(wsi, 200, &p, end)) - return 1; - if (lws_add_http_header_by_token(wsi, WSI_TOKEN_CONNECTION, - (unsigned char *)"close", 5, &p, end)) - return 1; - n = lws_write(wsi, buffer + LWS_PRE, - p - (buffer + LWS_PRE), - LWS_WRITE_HTTP_HEADERS); - - goto deal_body; - } -#endif - - n = strlen(s); - if (s[0] == '\0' || (n == 1 && s[n - 1] == '/')) - s = (char *)hit->def; - if (!s) - s = "index.html"; - - wsi->cache_secs = hit->cache_max_age; - wsi->cache_reuse = hit->cache_reusable; - wsi->cache_revalidate = hit->cache_revalidate; - wsi->cache_intermediaries = hit->cache_intermediaries; - - - n = lws_http_serve(wsi, s, hit->origin, hit); - if (n) { - /* - * lws_return_http_status(wsi, HTTP_STATUS_NOT_FOUND, NULL); - */ - if (hit->protocol) { - const struct lws_protocols *pp = lws_vhost_name_to_protocol( - wsi->vhost, hit->protocol); - - if (lws_bind_protocol(wsi, pp)) - return 1; - - n = pp->callback(wsi, LWS_CALLBACK_HTTP, - wsi->user_space, - uri_ptr + hit->mountpoint_len, - uri_len - hit->mountpoint_len); - } else - n = wsi->protocol->callback(wsi, LWS_CALLBACK_HTTP, - wsi->user_space, uri_ptr, uri_len); - } - } else { + hit = lws_find_mount(wsi, uri_ptr, uri_len); + if (!hit) { /* deferred cleanup and reset to protocols[0] */ lwsl_info("no hit\n"); @@ -909,7 +730,187 @@ lws_http_action(struct lws *wsi) n = wsi->protocol->callback(wsi, LWS_CALLBACK_HTTP, wsi->user_space, uri_ptr, uri_len); + + goto after; } + + s = uri_ptr + hit->mountpoint_len; + + args.p = uri_ptr; + args.len = uri_len; + args.max_len = hit->auth_mask; + args.final = 0; /* used to signal callback dealt with it */ + + n = wsi->protocol->callback(wsi, LWS_CALLBACK_CHECK_ACCESS_RIGHTS, + wsi->user_space, &args, 0); + if (n) { + lws_return_http_status(wsi, HTTP_STATUS_UNAUTHORIZED, + NULL); + goto bail_nuke_ah; + } + if (args.final) /* callback completely handled it well */ + return 0; + + /* + * if we have a mountpoint like https://xxx.com/yyy + * there is an implied / at the end for our purposes since + * we can only mount on a "directory". + * + * But if we just go with that, the browser cannot understand + * that he is actually looking down one "directory level", so + * even though we give him /yyy/abc.html he acts like the + * current directory level is /. So relative urls like "x.png" + * wrongly look outside the mountpoint. + * + * Therefore if we didn't come in on a url with an explicit + * / at the end, we must redirect to add it so the browser + * understands he is one "directory level" down. + */ + if ((hit->mountpoint_len > 1 || + (hit->origin_protocol == LWSMPRO_REDIR_HTTP || + hit->origin_protocol == LWSMPRO_REDIR_HTTPS)) && + (*s != '/' || + (hit->origin_protocol == LWSMPRO_REDIR_HTTP || + hit->origin_protocol == LWSMPRO_REDIR_HTTPS)) && + (hit->origin_protocol != LWSMPRO_CGI && + hit->origin_protocol != LWSMPRO_CALLBACK //&& + //hit->protocol == NULL + )) { + unsigned char *start = pt->serv_buf + LWS_PRE, + *p = start, *end = p + 512; + + lwsl_debug("Doing 301 '%s' org %s\n", s, hit->origin); + + if (!lws_hdr_total_length(wsi, WSI_TOKEN_HOST)) + goto bail_nuke_ah; + + /* > at start indicates deal with by redirect */ + if (hit->origin_protocol == LWSMPRO_REDIR_HTTP || + hit->origin_protocol == LWSMPRO_REDIR_HTTPS) + n = snprintf((char *)end, 256, "%s%s", + oprot[hit->origin_protocol & 1], + hit->origin); + else + n = snprintf((char *)end, 256, + "%s%s%s/", oprot[lws_is_ssl(wsi)], + lws_hdr_simple_ptr(wsi, WSI_TOKEN_HOST), + uri_ptr); + + n = lws_http_redirect(wsi, HTTP_STATUS_MOVED_PERMANENTLY, + end, n, &p, end); + if ((int)n < 0) + goto bail_nuke_ah; + + return lws_http_transaction_completed(wsi); + } + + /* + * A particular protocol callback is mounted here? + * + * For the duration of this http transaction, bind us to the + * associated protocol + */ + if (hit->origin_protocol == LWSMPRO_CALLBACK || hit->protocol) { + const struct lws_protocols *pp; + const char *name = hit->origin; + if (hit->protocol) + name = hit->protocol; + + pp = lws_vhost_name_to_protocol(wsi->vhost, name); + if (!pp) { + n = -1; + lwsl_err("Unable to find plugin '%s'\n", + hit->origin); + return 1; + } + + if (lws_bind_protocol(wsi, pp)) + return 1; + + if (hit->cgienv && wsi->protocol->callback(wsi, + LWS_CALLBACK_HTTP_PMO, + wsi->user_space, (void *)hit->cgienv, 0)) + return 1; + + if (lws_hdr_total_length(wsi, WSI_TOKEN_POST_URI)) { + n = wsi->protocol->callback(wsi, LWS_CALLBACK_HTTP, + wsi->user_space, + uri_ptr + hit->mountpoint_len, + uri_len - hit->mountpoint_len); + goto after; + } + } + +#ifdef LWS_WITH_CGI + /* did we hit something with a cgi:// origin? */ + if (hit->origin_protocol == LWSMPRO_CGI) { + const char *cmd[] = { + NULL, /* replace with cgi path */ + NULL + }; + unsigned char *p, *end, buffer[256]; + + lwsl_debug("%s: cgi\n", __func__); + cmd[0] = hit->origin; + + n = 5; + if (hit->cgi_timeout) + n = hit->cgi_timeout; + + n = lws_cgi(wsi, cmd, hit->mountpoint_len, n, + hit->cgienv); + if (n) { + lwsl_err("%s: cgi failed\n"); + return -1; + } + p = buffer + LWS_PRE; + end = p + sizeof(buffer) - LWS_PRE; + + if (lws_add_http_header_status(wsi, 200, &p, end)) + return 1; + if (lws_add_http_header_by_token(wsi, WSI_TOKEN_CONNECTION, + (unsigned char *)"close", 5, &p, end)) + return 1; + n = lws_write(wsi, buffer + LWS_PRE, + p - (buffer + LWS_PRE), + LWS_WRITE_HTTP_HEADERS); + + goto deal_body; + } +#endif + + n = strlen(s); + if (s[0] == '\0' || (n == 1 && s[n - 1] == '/')) + s = (char *)hit->def; + if (!s) + s = "index.html"; + + wsi->cache_secs = hit->cache_max_age; + wsi->cache_reuse = hit->cache_reusable; + wsi->cache_revalidate = hit->cache_revalidate; + wsi->cache_intermediaries = hit->cache_intermediaries; + + n = lws_http_serve(wsi, s, hit->origin, hit); + if (n) { + /* + * lws_return_http_status(wsi, HTTP_STATUS_NOT_FOUND, NULL); + */ + if (hit->protocol) { + const struct lws_protocols *pp = lws_vhost_name_to_protocol( + wsi->vhost, hit->protocol); + + if (lws_bind_protocol(wsi, pp)) + return 1; + + n = pp->callback(wsi, LWS_CALLBACK_HTTP, + wsi->user_space, + uri_ptr + hit->mountpoint_len, + uri_len - hit->mountpoint_len); + } else + n = wsi->protocol->callback(wsi, LWS_CALLBACK_HTTP, + wsi->user_space, uri_ptr, uri_len); + } + after: if (n) { lwsl_info("LWS_CALLBACK_HTTP closing\n"); @@ -1301,7 +1302,7 @@ upgrade_ws: return 1; } wsi->u.ws.rx_ubuf_alloc = n; - lwsl_info("Allocating RX buffer %d\n", n); + lwsl_debug("Allocating RX buffer %d\n", n); #if LWS_POSIX if (setsockopt(wsi->sock, SOL_SOCKET, SO_SNDBUF, (const char *)&n, sizeof n)) { @@ -1309,6 +1310,7 @@ upgrade_ws: return 1; } #endif + lwsl_parser("accepted v%02d connection\n", wsi->ietf_spec_revision); diff --git a/libwebsockets.dox b/libwebsockets.dox index e00e14a3..e1002850 100644 --- a/libwebsockets.dox +++ b/libwebsockets.dox @@ -101,9 +101,9 @@ WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- -INPUT = lib/libwebsockets.h mainpage.md README.build.md README.lwsws.md README.coding.md README.generic-sessions.md README.test-apps.md +INPUT = lib/libwebsockets.h mainpage.md README.build.md README.problems.md README.lwsws.md README.coding.md README.generic-sessions.md README.generic-table.md README.test-apps.md doc-assets INPUT_ENCODING = UTF-8 -FILE_PATTERNS = lib/*.c *.md +FILE_PATTERNS = lib/*.c *.md *.png RECURSIVE = NO EXCLUDE = EXCLUDE_SYMLINKS = NO @@ -112,7 +112,7 @@ EXCLUDE_SYMBOLS = EXAMPLE_PATH = EXAMPLE_PATTERNS = EXAMPLE_RECURSIVE = NO -IMAGE_PATH = +IMAGE_PATH = doc-assets INPUT_FILTER = FILTER_PATTERNS = FILTER_SOURCE_FILES = NO @@ -197,7 +197,7 @@ EXTRA_SEARCH_MAPPINGS = #--------------------------------------------------------------------------- # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- -GENERATE_LATEX = YES +GENERATE_LATEX = NO LATEX_OUTPUT = latex LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex diff --git a/plugins/generic-table/assets/index.html b/plugins/generic-table/assets/index.html new file mode 100644 index 00000000..1f11f8b6 --- /dev/null +++ b/plugins/generic-table/assets/index.html @@ -0,0 +1,75 @@ + + + + + + + + + + + + + +
    + LWS Generic Table demo +
    + This is a demo of lws generic table, using a protocol plugin + "protocol-lws-table-dirlisting". It shows a directory listing, + but unlike an oldstyle directory listing done on the + server side with a script, this is static html that connects + back to the server with a websocket, and gets live JSON from + that. +

    + Actually the static html is extremely simple, since it uses + lwsgt, LWS Generic Table, JS include on the client-side that + handles all the table generation from a template sent in JSON + over the ws link. It means there is no custom JS required + clientside either. It's just CSS, this text and a call to + initialize lwsgt with the appropriate ws protocol. +

    + There's no problem having multiple independent instances per + page... +
    +
    + + + + \ No newline at end of file diff --git a/plugins/generic-table/assets/lwsgt.js b/plugins/generic-table/assets/lwsgt.js new file mode 100644 index 00000000..5eda2af2 --- /dev/null +++ b/plugins/generic-table/assets/lwsgt.js @@ -0,0 +1,121 @@ +function lwsgt_get_appropriate_ws_url() +{ + var pcol; + var u = document.URL; + + if (u.substring(0, 5) == "https") { + pcol = "wss://"; + u = u.substr(8); + } else { + pcol = "ws://"; + if (u.substring(0, 4) == "http") + u = u.substr(7); + } + + return pcol + u; +} + +function lwsgt_app_hdr(j, bc, ws) +{ + var s = "", n, m = 0; + + for (n = 0; n < j.cols.length; n++) + if (!j.cols[n].hide) + m++; + + s = "" + ws.lwsgt_title + "" + + if (!!bc) { + s += ""; + for (n = 0; n < bc.length; n++) { + s += " / "; + if (!bc[n].url && bc[n].url !== "") + s += " " + lws_san(bc[n].name) + " "; + else + s += " " + + lws_san(bc[n].name) + " "; + } + s += ""; + } + s += ""; + for (n = 0; n < j.cols.length; n++) + if (!j.cols[n].hide) + s = s + "" + lws_san(j.cols[n].name) + ""; + + s += ""; + + return s; +} + +function lwsgt_initial(title, pcol, divname, cb, gname) +{ + this.divname = divname; + + lws_gray_out(true,{'zindex':'499'}); + + if (typeof MozWebSocket != "undefined") + this.lwsgt_ws = new MozWebSocket(lwsgt_get_appropriate_ws_url(), pcol); + else + this.lwsgt_ws = new WebSocket(lwsgt_get_appropriate_ws_url(), pcol); + this.lwsgt_ws.divname = divname; + this.lwsgt_ws.lwsgt_cb = cb; + this.lwsgt_ws.lwsgt_parent = gname; + this.lwsgt_ws.lwsgt_title = title; + try { + this.lwsgt_ws.onopen = function() { + lws_gray_out(false); + // document.getElementById("debug").textContent = + // "ws opened " + lwsgt_get_appropriate_ws_url(); + } + this.lwsgt_ws.onmessage = function got_packet(msg) { + var s, m, n, j = JSON.parse(msg.data); + // document.getElementById("debug").textContent = msg.data; + if (j.cols) { + this.hdr = j; + } + if (j.breadcrumbs) + this.breadcrumbs = j.breadcrumbs; + + if (j.data) { + s = "" + + lwsgt_app_hdr(this.hdr, this.breadcrumbs, this); + for (m = 0; m < j.data.length; m++) { + s = s + ""; + for (n = 0; n < this.hdr.cols.length; n++) { + if (!this.hdr.cols[n].hide) { + if (!this.hdr.cols[n].align) + s = s + ""; + } + } + + s = s + ""; + } + s = s + "
    "; + else + s = s + ""; + + if (this.hdr.cols[n].href && + !!j.data[m][this.hdr.cols[n].href]) + s = s + "" + + lws_san(j.data[m][this.hdr.cols[n].name]) + + ""; + else + s = s + lws_san(j.data[m][this.hdr.cols[n].name]); + + s = s + "
    "; + document.getElementById(this.divname).innerHTML = s; + } + } + this.lwsgt_ws.onclose = function(){ + lws_gray_out(true,{'zindex':'499'}); + } + } catch(exception) { + alert('

    Error' + exception); + } +} \ No newline at end of file diff --git a/plugins/generic-table/protocol_table_dirlisting.c b/plugins/generic-table/protocol_table_dirlisting.c new file mode 100644 index 00000000..39ab79c2 --- /dev/null +++ b/plugins/generic-table/protocol_table_dirlisting.c @@ -0,0 +1,394 @@ +/* + * ws protocol handler plugin for dirlisting "generic table" demo + * + * Copyright (C) 2010-2016 Andy Green + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation: + * version 2.1 of the License. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ + +#define LWS_DLL +#define LWS_INTERNAL +#include "../lib/libwebsockets.h" + +#include +#include + +struct fobj { + struct fobj *next; + const char *name, *uri, *icon, *date; + time_t m; + unsigned long size; +}; + +struct per_session_data__tbl_dir { + struct fobj base; + char strings[64 * 1024]; + char reldir[256]; + char *p; + const char *dir; + +#if UV_VERSION_MAJOR > 0 + uv_fs_event_t *event_req; +#endif + struct lws *wsi; +}; + +#if UV_VERSION_MAJOR > 0 +static void +mon_cb(uv_fs_event_t *handle, const char *filename, int events, int status) +{ + struct per_session_data__tbl_dir *pss = handle->data; + + //lwsl_notice("%s\n", __func__); + + if (pss && pss->wsi) + lws_callback_on_writable(pss->wsi); +} + +static void lws_uv_close_cb(uv_handle_t *handle) +{ + free(handle); +} + +static void +lws_protocol_dir_kill_monitor(struct per_session_data__tbl_dir *pss) +{ + if (!pss->event_req) + return; + pss->wsi = NULL; + pss->event_req->data = NULL; + uv_fs_event_stop(pss->event_req); + uv_close((uv_handle_t *)pss->event_req, lws_uv_close_cb); + pss->event_req = NULL; +} +#endif + +static int +scan_dir(struct lws *wsi, struct per_session_data__tbl_dir *pss) +{ +/* uuh travis... */ +#if UV_VERSION_MAJOR > 0 + uv_loop_t *loop = lws_uv_getloop(lws_get_context(wsi), 0); + char *end = &(pss->strings[sizeof(pss->strings) - 1]); + struct fobj *prev = &pss->base; + char path[512], da[200]; + const char *icon; + uv_dirent_t dent; + struct fobj *f; + struct stat st; + struct tm *tm; + int ret = 0, n; + uv_fs_t req; + + lws_protocol_dir_kill_monitor(pss); + + snprintf(path, sizeof(path) - 1, "%s/%s", pss->dir, pss->reldir); + //lwsl_notice("path = %s\n", path); + + pss->event_req = malloc(sizeof(*pss->event_req)); + if (!pss->event_req) + return 2; + + pss->wsi = wsi; + pss->event_req->data = pss; + + uv_fs_event_init(lws_uv_getloop(lws_get_context(wsi), 0), + pss->event_req); + // The recursive flag watches subdirectories too. + n = uv_fs_event_start(pss->event_req, mon_cb, path, UV_FS_EVENT_RECURSIVE); + //lwsl_notice("monitoring %s (%d)\n", path, n); + + if (!uv_fs_scandir(loop, &req, path, 0, NULL)) { + lwsl_err("Scandir on %s failed\n", path); + return 2; + } + + pss->p = pss->strings; + + while (uv_fs_scandir_next(&req, &dent) != UV_EOF) { + snprintf(path, sizeof(path) - 1, "%s/%s/%s", pss->dir, pss->reldir, dent.name); + + if (stat(path, &st)) { + lwsl_info("unable to stat %s\n", path); + goto bail; + } + f = malloc(sizeof(*f)); + f->next = NULL; + f->name = pss->p; + n = snprintf(pss->p, end - pss->p, "%s", dent.name); + pss->p += n + 1; + f->uri = NULL; + if ((S_IFMT & st.st_mode) == S_IFDIR) { + n = snprintf(pss->p, end - pss->p, "=%s/%s", pss->reldir, dent.name); + f->uri = pss->p; + } + if (lws_get_mimetype(dent.name, NULL)) { + n = snprintf(pss->p, end - pss->p, "./serve/%s/%s", pss->reldir, dent.name); + f->uri = pss->p; + } + if (f->uri) + pss->p += n + 1; + + if (end - pss->p < 100) + break; + + icon = " "; + if ((S_IFMT & st.st_mode) == S_IFDIR) + icon = "📂"; + + f->icon = pss->p; + n = snprintf(pss->p, end - pss->p, icon); + pss->p += n + 1; + + f->date = pss->p; + tm = gmtime(&st.st_mtime); + strftime(da, sizeof(da), "%Y-%b-%d %H:%M:%S %z", tm); + n = snprintf(pss->p, end - pss->p, "%s", da); + pss->p += n + 1; + + f->size = st.st_size; + f->m = st.st_mtime; + prev->next = f; + prev = f; + } + +bail: + uv_fs_req_cleanup(&req); + + return ret; +#else + return 0; +#endif +} + +static void +free_scan_dir(struct per_session_data__tbl_dir *pss) +{ + struct fobj *f = pss->base.next, *f1; + + while (f) { + f1 = f->next; + free(f); + f = f1; + } + + pss->base.next = NULL; +} + +static int +callback_lws_table_dirlisting(struct lws *wsi, enum lws_callback_reasons reason, + void *user, void *in, size_t len) +{ + struct per_session_data__tbl_dir *pss = (struct per_session_data__tbl_dir *)user; + char j[LWS_PRE + 16384], *p = j + LWS_PRE, *start = p, *q, *q1, *w, + *end = j + sizeof(j) - LWS_PRE, e[384], s[384], s1[384]; + const struct lws_protocol_vhost_options *pmo; + struct fobj *f; + int n, first = 1; + + switch (reason) { + case LWS_CALLBACK_PROTOCOL_INIT: /* per vhost */ + break; + + case LWS_CALLBACK_ESTABLISHED: + lwsl_debug("LWS_CALLBACK_ESTABLISHED\n"); + /* + * send client the lwsgt table layout + */ + start = "{\"cols\":[" + " {\"name\": \"Date\"}," + " {\"name\": \"Size\", \"align\": \"right\"}," + " {\"name\": \"Icon\"}," + " {\"name\": \"Name\", \"href\": \"uri\"}," + " {\"name\": \"uri\", \"hide\": \"1\" }" + " ]" + "}"; + if (lws_write(wsi, (unsigned char *)start, strlen(start), + LWS_WRITE_TEXT) < 0) + return -1; + + /* send a view update next */ + lws_callback_on_writable(wsi); + break; + + case LWS_CALLBACK_RECEIVE: + if (len > sizeof(pss->reldir) - 1) + len = sizeof(pss->reldir) - 1; + if (!strstr(in, "..") && !strchr(in, '~')) + strncpy(pss->reldir, in, len); + else + len = 0; + pss->reldir[len] = '\0'; + if (pss->reldir[0] == '/' && !pss->reldir[1]) + pss->reldir[0] = '\0'; + lwsl_info("%s\n", pss->reldir); + lws_callback_on_writable(wsi); + break; + + case LWS_CALLBACK_SERVER_WRITEABLE: + + if (scan_dir(wsi, pss)) + return 1; + + p += snprintf(p, end - p, "{\"breadcrumbs\":["); + q = pss->reldir; + + if (!q[0]) + p += snprintf(p, end - p, "{\"name\":\"top\"}"); + + while (*q) { + + q1 = strchr(q, '/'); + if (!q1) { + if (first) + strcpy(s, "top1"); + else + strcpy(s, q); + s1[0] = '\0'; + q += strlen(q); + } else { + n = q1 - q; + if (n > sizeof(s) - 1) + n = sizeof(s) - 1; + if (first) { + strcpy(s1, "/"); + strcpy(s, "top"); + } else { + strncpy(s, q, n); + s[n] = '\0'; + + n = q1 - pss->reldir; + if (n > sizeof(s1) - 1) + n = sizeof(s1) - 1; + strncpy(s1, pss->reldir, n); + s1[n] = '\0'; + } + q = q1 + 1; + } + if (!first) + p += snprintf(p, end - p, ","); + else + first = 0; + + p += snprintf(p, end - p, "{\"name\":\"%s\"", + lws_json_purify(e, s, sizeof(e))); + if (*q) { + w = s1; + while (w[0] == '/' && w[1] == '/') + w++; + p += snprintf(p, end - p, ",\"url\":\"%s\"", + lws_json_purify(e, w, sizeof(e))); + } + p += snprintf(p, end - p, "}"); + if (!q1) + break; + } + + p += snprintf(p, end - p, "],\"data\":["); + + f = pss->base.next; + while (f) { + /* format in JSON */ + p += snprintf(p, end - p, "{\"Icon\":\"%s\",", + lws_json_purify(e, f->icon, sizeof(e))); + p += snprintf(p, end - p, " \"Date\":\"%s\",", + lws_json_purify(e, f->date, sizeof(e))); + p += snprintf(p, end - p, " \"Size\":\"%ld\",", + f->size); + if (f->uri) + p += snprintf(p, end - p, " \"uri\":\"%s\",", + lws_json_purify(e, f->uri, sizeof(e))); + p += snprintf(p, end - p, " \"Name\":\"%s\"}", + lws_json_purify(e, f->name, sizeof(e))); + + f = f->next; + + if (f) + p += snprintf(p, end - p, ","); + } + + p += snprintf(p, end - p, "]}"); + + free_scan_dir(pss); + + if (lws_write(wsi, (unsigned char *)start, p - start, + LWS_WRITE_TEXT) < 0) + return -1; + + break; + + case LWS_CALLBACK_HTTP_PMO: + /* find the per-mount options we're interested in */ + lwsl_debug("LWS_CALLBACK_HTTP_PMO\n"); + pmo = (struct lws_protocol_vhost_options *)in; + while (pmo) { + if (!strcmp(pmo->name, "dir")) /* path to list files */ + pss->dir = pmo->value; + pmo = pmo->next; + } + if (!pss->dir[0]) { + lwsl_err("dirlisting: \"dir\" pmo missing\n"); + return 1; + } + break; + + case LWS_CALLBACK_HTTP_DROP_PROTOCOL: + //lwsl_notice("LWS_CALLBACK_HTTP_DROP_PROTOCOL\n"); +#if UV_VERSION_MAJOR > 0 + lws_protocol_dir_kill_monitor(pss); +#endif + break; + + default: + return 0; + } + + return 0; + +} + +static const struct lws_protocols protocols[] = { + { + "protocol-lws-table-dirlisting", + callback_lws_table_dirlisting, + sizeof(struct per_session_data__tbl_dir), + 0, + }, +}; + +LWS_EXTERN LWS_VISIBLE int +init_protocol_lws_table_dirlisting(struct lws_context *context, + struct lws_plugin_capability *c) +{ + if (c->api_magic != LWS_PLUGIN_API_MAGIC) { + lwsl_err("Plugin API %d, library API %d", LWS_PLUGIN_API_MAGIC, + c->api_magic); + return 1; + } + + c->protocols = protocols; + c->count_protocols = ARRAY_SIZE(protocols); + c->extensions = NULL; + c->count_extensions = 0; + + return 0; +} + +LWS_EXTERN LWS_VISIBLE int +destroy_protocol_lws_table_dirlisting(struct lws_context *context) +{ + return 0; +} diff --git a/test-server/lws-common.js b/test-server/lws-common.js new file mode 100644 index 00000000..917aedf5 --- /dev/null +++ b/test-server/lws-common.js @@ -0,0 +1,118 @@ +/* + * This section around grayOut came from here: + * http://www.codingforums.com/archive/index.php/t-151720.html + * Assumed public domain + * + * Init like this in your main html script, this also reapplies the gray + * + * lws_gray_out(true,{'zindex':'499'}); + * + * To remove the gray + * + * lws_gray_out(false); + * + */ + +function lws_gray_out(vis, options) { + var options = options || {}; + var zindex = options.zindex || 50; + var opacity = options.opacity || 70; + var opaque = (opacity / 100); + var bgcolor = options.bgcolor || '#000000'; + var dark = document.getElementById('darkenScreenObject'); + + if (!dark) { + var tbody = document.getElementsByTagName("body")[0]; + var tnode = document.createElement('div'); + tnode.style.position = 'absolute'; + tnode.style.top = '0px'; + tnode.style.left = '0px'; + tnode.style.overflow = 'hidden'; + tnode.style.display ='none'; + tnode.id = 'darkenScreenObject'; + tbody.appendChild(tnode); + dark = document.getElementById('darkenScreenObject'); + } + if (vis) { + dark.style.opacity = opaque; + dark.style.MozOpacity = opaque; + dark.style.filter ='alpha(opacity='+opacity+')'; + dark.style.zIndex = zindex; + dark.style.backgroundColor = bgcolor; + dark.style.width = gsize(1); + dark.style.height = gsize(0); + dark.style.display ='block'; + addEvent(window, "resize", + function() { + dark.style.height = gsize(0); + dark.style.width = gsize(1); + } + ); + } else { + dark.style.display = 'none'; + removeEvent(window, "resize", + function() { + dark.style.height = gsize(0); + dark.style.width = gsize(1); + } + ); + } +} + +function gsize(ptype) +{ + var h = document.compatMode == 'CSS1Compat' && + !window.opera ? + document.documentElement.clientHeight : + document.body.clientHeight; + var w = document.compatMode == 'CSS1Compat' && + !window.opera ? + document.documentElement.clientWidth : + document.body.clientWidth; + if (document.body && + (document.body.scrollWidth || document.body.scrollHeight)) { + var pageWidth = (w > (t = document.body.scrollWidth)) ? + ("" + w + "px") : ("" + (t) + "px"); + var pageHeight = (h > (t = document.body.scrollHeight)) ? + ("" + h + "px") : ("" + (t) + "px"); + } else if (document.body.offsetWidth) { + var pageWidth = (w > (t = document.body.offsetWidth)) ? + ("" + w + "px") : ("" + (t) + "px"); + var pageHeight =(h > (t = document.body.offsetHeight)) ? + ("" + h + "px") : ("" + (t) + "px"); + } else { + var pageWidth = '100%'; + var pageHeight = '100%'; + } + return (ptype == 1) ? pageWidth : pageHeight; +} + +function addEvent( obj, type, fn ) { + if ( obj.attachEvent ) { + obj['e' + type + fn] = fn; + obj[type+fn] = function() { obj['e' + type+fn]( window.event );} + obj.attachEvent('on' + type, obj[type + fn]); + } else + obj.addEventListener(type, fn, false); +} + +function removeEvent( obj, type, fn ) { + if ( obj.detachEvent ) { + obj.detachEvent('on' + type, obj[type + fn]); + obj[type + fn] = null; + } else + obj.removeEventListener(type, fn, false); +} + +/* + * end of grayOut related stuff + */ + + +function lws_san(s) +{ + if (s.search("<") != -1) + return "invalid string"; + + return s; +}