small-package/luci-app-nginx-pingos/modules/nginx-toolkit-module/doc/ngx-toolkit-misc.md

89 lines
2.0 KiB
Markdown

# ngx-toolkit-misc
---
## Instructions
Misc toolkit functions
## API
**header file**
For using this API, You should include the header file as below:
#include "ngx_toolkit_misc.h"
**structure**
/*
* scheme://[user@]host[:port]/path[?args][#fragment]
*/
typedef struct {
ngx_str_t scheme;
ngx_str_t user;
ngx_str_t host;
ngx_str_t port;
ngx_str_t path;
ngx_str_t args;
ngx_str_t fragment;
ngx_str_t host_with_port; /* host[:port] */
ngx_str_t uri_with_args; /* /path[?args][#fragment] */
} ngx_request_url_t;
**ngx\_parse\_request\_url**
ngx_int_t ngx_parse_request_url(ngx_request_url_t *request_url, ngx_str_t *url);
parse request url format as: scheme://[user@]host[:port]/path[?args][#fragment]
- return value:
- NGX_OK: parse success
- NGX_ERROR: request url format error
- paras:
- request_url: url parse result return to user, all paras in request url is segment point to url
- url: request url for parse
**ngx\_request\_port**
in_port_t ngx_request_port(ngx_str_t *scheme, ngx_str_t *port);
convert port to in_port_t according to scheme and port
- return value:
- If port is set to correct number range in [1, 65535], return port
- If port is set to non correct value, return 0
- If port is not set, return default value for scheme:
- 80 for http
- 443 for https
- 1935 for rtmp
- 0 for others now
- values:
- scheme : sheme string like http https or rtmp
- port : port for convert to in_port_t
**ngx\_md5\_file**
#define NGX_MD5KEY_LEN 32
ngx_int_t ngx_md5_file(ngx_fd_t fd, u_char md5key[NGX_MD5KEY_LEN]);
calculating file md5key as md5sum in shell
- return value:
- NGX_OK: calculating success
- NGX_ERROR: calculating error such as file is not exist
- paras:
- fd: file desc for calculating md5key
- md5key: md5key result