![]() |
SOUND4 IMPACT.CL Library [1.3.12]
|
Web server configuring. More...
Macros | |
| #define | SOUND4_INVALID_WEBSERVER_ID ((uint64_t)-1) |
| #define | SOUND4_WEBSERVER_HTTP_OK (1<<0) |
| #define | SOUND4_WEBSERVER_HTTPS_OK (1<<1) |
Functions | |
| uint64_t | impact_Webserver_tcp (unsigned int listenport, unsigned int listenport_secure, const char *socket_ip, unsigned int socket_port) |
| uint64_t | impact_Webserver_tcp2 (unsigned int listenport, unsigned int listenport_secure, const char *socket_ip, unsigned int socket_port, const struct impact_CParameters *parameters) |
| uint64_t | impact_Webserver (unsigned int listenport, unsigned int listenport_secure, struct impact_CInstance *instance) |
| int | impact_Webserver_Stop (uint64_t id, int timeout_ms) |
| int | impact_Webserver_Status (uint64_t id) |
| void | impact_Webserver_SetAppHealth (struct impact_CInstance *instance, int httpcode, const char *contenttype, const char *content) |
| void | impact_Webserver_GetAppHealth (struct impact_CInstance *instance, int *httpcode, char **contenttype, char **content) |
| void | impact_Webserver_FreeString (char *str) |
Run a web server to configure the processor
The web server also expose /health which should always answer 200.
The web server also expose /licvalid which should answer 200 when license is valid, 402 when it is not valid, other standard code for other errors.
You can also use /livalid/[module] (where [module] is the name of a module) to check for validity of the [module] extension in the same way. For instance '/livalid/stream' will check the stream extension.
See also how to setup authentication with Environment variables and parameters. Their use is documented in impact_InitProcess3.
| #define SOUND4_INVALID_WEBSERVER_ID ((uint64_t)-1) |
This represents an invalid webserver id impact_Webserver and impact_Webserver_tcp will never return this value
Definition at line 1266 of file sound4.impact.cl.h.
| #define SOUND4_WEBSERVER_HTTP_OK (1<<0) |
If this bit is set in the return value from impact_Webserver_Status, then HTTP server is OK
Definition at line 1271 of file sound4.impact.cl.h.
| #define SOUND4_WEBSERVER_HTTPS_OK (1<<1) |
If this bit is set in the return value from impact_Webserver_Status, then HTTPS server is OK
Definition at line 1275 of file sound4.impact.cl.h.
| uint64_t impact_Webserver | ( | unsigned int | listenport, |
| unsigned int | listenport_secure, | ||
| struct impact_CInstance * | instance | ||
| ) |
Run a web server, connecting to local instance internally (no expose port needed)
This function returns after connecting to the process, and continue to run in background See impact_Webserver_Stop too stop it gracefully
For secure connection, it will use privatekey.pem and certificate.pem from current directory. Environment variables SSL_PRIVATE_PATH and SSL_CERTIFICATE_PATH can override those (see Environment variables and parameters). If none is valid, it will try also /etc/ssl/certs/server.key and /etc/ssl/certs/server.crt.
| listenport | The port to listen for HTTP connections (0 to disable) |
| listenport_secure | The port to listen for HTTPS connections (0 to disable) |
| instance | The process instance to connect to |
| void impact_Webserver_FreeString | ( | char * | str | ) |
Free a a string returned by impact_Webserver_GetAppHealth
| str | the string to free |
| void impact_Webserver_GetAppHealth | ( | struct impact_CInstance * | instance, |
| int * | httpcode, | ||
| char ** | contenttype, | ||
| char ** | content | ||
| ) |
Get the current web server /apphealth returned http code,content-type and content
| instance | The process instance |
| httpcode | The http code pointer |
| contenttype | The http Content-Type header pointer (to be freed with impact_Webserver_FreeString) |
| content | The http body content pointer (to be freed with impact_Webserver_FreeString) |
| void impact_Webserver_SetAppHealth | ( | struct impact_CInstance * | instance, |
| int | httpcode, | ||
| const char * | contenttype, | ||
| const char * | content | ||
| ) |
Set the web server /apphealth status info
The hosting application can use this to customize the handling of /apphealth path.
| instance | The process instance |
| httpcode | The http code |
| contenttype | The http Content-Type header |
| content | The http body content |
| int impact_Webserver_Status | ( | uint64_t | id | ) |
Get the web server status
| id | The web server Id, returned by impact_Webserver_tcp or impact_Webserver |
| int impact_Webserver_Stop | ( | uint64_t | id, |
| int | timeout_ms | ||
| ) |
Stop a web server started with impact_Webserver_tcp
| id | The web server Id, returned by impact_Webserver_tcp or impact_Webserver |
| timeout_ms | The timeout to wait gracefull shutdown |
| uint64_t impact_Webserver_tcp | ( | unsigned int | listenport, |
| unsigned int | listenport_secure, | ||
| const char * | socket_ip, | ||
| unsigned int | socket_port | ||
| ) |
Run a web server, connecting to process with JSON over TCP
Same as impact_Webserver_tcp2, but with default parameters (from env)
| uint64_t impact_Webserver_tcp2 | ( | unsigned int | listenport, |
| unsigned int | listenport_secure, | ||
| const char * | socket_ip, | ||
| unsigned int | socket_port, | ||
| const struct impact_CParameters * | parameters | ||
| ) |
Run a web server, connecting to process with JSON over TCP, using parameters
This function returns after connecting to the process, and continue to run in background See impact_Webserver_Stop too stop it gracefully
For secure connection, it will use privatekey.pem and certificate.pem from current directory. Environment variables SSL_PRIVATE_PATH and SSL_CERTIFICATE_PATH can override those (see Environment variables and parameters). If none is valid, it will try also /etc/ssl/certs/server.key and /etc/ssl/certs/server.crt.
| listenport | The port to listen for HTTP connections |
| listenport_secure | The port to listen for HTTPS connections |
| socket_ip | The ip of the process to connect to |
| socket_port | The port of the process's JSON server to connect to |
| parameters | The parameters to use, created with impact_NewParameters |