本文整理汇总了C++中cherokee_buffer_is_empty函数的典型用法代码示例。如果您正苦于以下问题:C++ cherokee_buffer_is_empty函数的具体用法?C++ cherokee_buffer_is_empty怎么用?C++ cherokee_buffer_is_empty使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cherokee_buffer_is_empty函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: match
static ret_t
match (cherokee_rule_request_t *rule,
cherokee_connection_t *conn,
cherokee_config_entry_t *ret_conf)
{
int re;
ret_t ret;
cherokee_regex_table_t *regexs = CONN_SRV(conn)->regexs;
UNUSED(ret_conf);
/* Sanity checks
*/
if (unlikely (regexs == NULL)) {
LOG_ERROR_S (CHEROKEE_ERROR_RULE_REQUEST_NO_TABLE);
return ret_error;
}
if (unlikely (rule->pcre == NULL)) {
LOG_ERROR_S (CHEROKEE_ERROR_RULE_REQUEST_NO_PCRE_PTR);
return ret_error;
}
/* Build the request string
*/
if (! cherokee_buffer_is_empty (&conn->query_string)) {
cherokee_buffer_add_str (&conn->request, "?");
cherokee_buffer_add_buffer (&conn->request, &conn->query_string);
}
/* Evaluate the pcre
*/
re = pcre_exec (rule->pcre, NULL,
conn->request.buf,
conn->request.len,
0, 0,
conn->regex_ovector, OVECTOR_LEN);
if (re < 0) {
TRACE (ENTRIES, "Request \"%s\" didn't match with \"%s\"\n",
conn->request.buf, rule->pattern.buf);
ret = ret_not_found;
goto restore;
}
conn->regex_ovecsize = re;
TRACE (ENTRIES, "Request \"%s\" matches with \"%s\", ovecsize=%d\n",
conn->request.buf, rule->pattern.buf, conn->regex_ovecsize);
ret = ret_ok;
restore:
if (! cherokee_buffer_is_empty (&conn->query_string)) {
cherokee_buffer_drop_ending (&conn->request, conn->query_string.len + 1);
}
return ret;
}
开发者ID:Daniel15,项目名称:webserver,代码行数:60,代码来源:rule_request.c
示例2: cherokee_validator_digest_response
ret_t
cherokee_validator_digest_response (cherokee_validator_t *validator,
char *A1,
cherokee_buffer_t *buf,
cherokee_connection_t *conn)
{
ret_t ret;
cherokee_buffer_t a2 = CHEROKEE_BUF_INIT;
/* A1 has to be in string of length 32:
* MD5_digest(user":"realm":"passwd)
*/
/* Sanity checks
*/
if (A1 == NULL)
return ret_deny;
if (cherokee_buffer_is_empty (&validator->nonce))
return ret_deny;
/* Build A2
*/
ret = digest_HA2 (validator, &a2, conn);
if (ret != ret_ok)
goto error;
/* Build the final string
*/
cherokee_buffer_ensure_size (buf, 32 + a2.len + validator->nonce.len + 4);
cherokee_buffer_add (buf, A1, 32);
cherokee_buffer_add_str (buf, ":");
cherokee_buffer_add_buffer (buf, &validator->nonce);
cherokee_buffer_add_str (buf, ":");
if (!cherokee_buffer_is_empty (&validator->qop)) {
if (!cherokee_buffer_is_empty (&validator->nc))
cherokee_buffer_add_buffer (buf, &validator->nc);
cherokee_buffer_add_str (buf, ":");
if (!cherokee_buffer_is_empty (&validator->cnonce))
cherokee_buffer_add_buffer (buf, &validator->cnonce);
cherokee_buffer_add_str (buf, ":");
cherokee_buffer_add_buffer (buf, &validator->qop);
cherokee_buffer_add_str (buf, ":");
}
cherokee_buffer_add_buffer (buf, &a2);
cherokee_buffer_encode_md5_digest (buf);
cherokee_buffer_mrproper (&a2);
return ret_ok;
error:
cherokee_buffer_mrproper (&a2);
return ret;
}
开发者ID:chetan,项目名称:cherokee,代码行数:57,代码来源:validator.c
示例3: do_send_socket
static ret_t
do_send_socket (cherokee_socket_t *sock,
cherokee_buffer_t *buffer,
cherokee_socket_status_t *blocking)
{
ret_t ret;
size_t written = 0;
ret = cherokee_socket_bufwrite (sock, buffer, &written);
switch (ret) {
case ret_ok:
break;
case ret_eagain:
if (written > 0) {
break;
}
TRACE (ENTRIES, "Post write: EAGAIN, wrote nothing of %d\n", buffer->len);
*blocking = socket_writing;
return ret_eagain;
default:
return ret_error;
}
cherokee_buffer_move_to_begin (buffer, written);
TRACE (ENTRIES, "sent=%d, remaining=%d\n", written, buffer->len);
if (! cherokee_buffer_is_empty (buffer)) {
return ret_eagain;
}
return ret_ok;
}
开发者ID:Daniel15,项目名称:webserver,代码行数:33,代码来源:post.c
示例4: downloader_send_buffer
static ret_t
downloader_send_buffer (cherokee_downloader_t *downloader, cherokee_buffer_t *buf)
{
ret_t ret;
size_t written = 0;
cherokee_socket_t *sock = &downloader->socket;;
ret = cherokee_socket_bufwrite (sock, buf, &written);
switch (ret) {
case ret_ok:
/* Drop the header that has been sent
*/
cherokee_buffer_drop_ending (buf, written);
if (cherokee_buffer_is_empty (buf)) {
return ret_ok;
}
return ret_eagain;
case ret_eagain:
return ret;
default:
return ret_error;
}
}
开发者ID:304471720,项目名称:webserver,代码行数:26,代码来源:downloader.c
示例5: cherokee_handler_ssi_init
ret_t
cherokee_handler_ssi_init (cherokee_handler_ssi_t *hdl)
{
ret_t ret;
cherokee_connection_t *conn = HANDLER_CONN(hdl);
/* Build the local directory
*/
cherokee_buffer_add_buffer (&hdl->dir, &conn->local_directory);
cherokee_buffer_add_buffer (&hdl->dir, &conn->request);
while (true) {
if (cherokee_buffer_is_empty (&hdl->dir))
return ret_error;
if (cherokee_buffer_is_ending (&hdl->dir, '/'))
break;
cherokee_buffer_drop_ending (&hdl->dir, 1);
}
/* Real init function
*/
cherokee_buffer_add_buffer (&conn->local_directory, &conn->request);
ret = init (hdl, &conn->local_directory);
cherokee_buffer_drop_ending (&conn->local_directory, conn->request.len);
return ret;
}
开发者ID:StichtingOpenGeo,项目名称:webserver,代码行数:30,代码来源:handler_ssi.c
示例6: cherokee_post_has_buffered_info
int
cherokee_post_has_buffered_info (cherokee_post_t *post,
cherokee_buffer_t *tmp)
{
cherokee_buffer_t *buffer = tmp ? tmp : &post->send.buffer;
return (! cherokee_buffer_is_empty (buffer));
}
开发者ID:mdavid,项目名称:cherokee-webserver-svnclone,代码行数:7,代码来源:post.c
示例7: cherokee_downloader_connect
ret_t
cherokee_downloader_connect (cherokee_downloader_t *downloader)
{
ret_t ret;
cherokee_boolean_t uses_proxy;
cherokee_url_t *url = &downloader->request.url;
/* Does it use a proxy?
*/
uses_proxy = ! cherokee_buffer_is_empty (&downloader->proxy);
ret = cherokee_request_header_uses_proxy (&downloader->request, uses_proxy);
if (ret != ret_ok) return ret;
/* Connect
*/
if (uses_proxy) {
ret = connect_to (downloader, &downloader->proxy, downloader->proxy_port, http);
if (ret != ret_ok) return ret;
} else {
ret = connect_to (downloader, &url->host, url->port, url->protocol);
if (ret != ret_ok) return ret;
}
return ret_ok;
}
开发者ID:304471720,项目名称:webserver,代码行数:25,代码来源:downloader.c
示例8: send_query
static ret_t
send_query (cherokee_handler_dbslayer_t *hdl)
{
int re;
cuint_t len;
cherokee_connection_t *conn = HANDLER_CONN(hdl);
cherokee_buffer_t *tmp = &HANDLER_THREAD(hdl)->tmp_buf1;
/* Extract the SQL query
*/
if ((cherokee_buffer_is_empty (&conn->web_directory)) ||
(cherokee_buffer_is_ending (&conn->web_directory, '/')))
{
len = conn->web_directory.len;
} else {
len = conn->web_directory.len + 1;
}
cherokee_buffer_clean (tmp);
cherokee_buffer_add (tmp,
conn->request.buf + len,
conn->request.len - len);
cherokee_buffer_unescape_uri (tmp);
/* Send the query
*/
re = mysql_real_query (hdl->conn, tmp->buf, tmp->len);
if (re != 0)
return ret_error;
return ret_ok;
}
开发者ID:nuxleus,项目名称:cherokee-webserver,代码行数:33,代码来源:handler_dbslayer.c
示例9: digest_HA2
static ret_t
digest_HA2 (cherokee_validator_t *validator, cherokee_buffer_t *buf, cherokee_connection_t *conn)
{
ret_t ret;
const char *method;
cuint_t method_len;
/* Sanity check
*/
if (cherokee_buffer_is_empty (&validator->uri))
return ret_deny;
ret = cherokee_http_method_to_string (conn->header.method, &method, &method_len);
if (unlikely (ret != ret_ok))
return ret;
cherokee_buffer_ensure_size (buf, method_len + 1 + validator->uri.len);
cherokee_buffer_add (buf, method, method_len);
cherokee_buffer_add_str (buf, ":");
cherokee_buffer_add_buffer (buf, &validator->uri);
cherokee_buffer_encode_md5_digest (buf);
return ret_ok;
}
开发者ID:chetan,项目名称:cherokee,代码行数:26,代码来源:validator.c
示例10: configure
static ret_t
configure (cherokee_rule_header_t *rule,
cherokee_config_node_t *conf,
cherokee_virtual_server_t *vsrv)
{
ret_t ret;
cherokee_buffer_t *type = NULL;
cherokee_buffer_t *header = NULL;
cherokee_regex_table_t *regexs = VSERVER_SRV(vsrv)->regexs;
/* Read the header
*/
ret = cherokee_config_node_read (conf, "header", &header);
if (ret != ret_ok) {
LOG_ERROR (CHEROKEE_ERROR_RULE_NO_PROPERTY,
RULE(rule)->priority, "header");
return ret_error;
}
ret = header_str_to_type (header, &rule->header);
if (ret != ret_ok) {
return ret;
}
/* Type
*/
ret = cherokee_config_node_read (conf, "type", &type);
if (ret == ret_ok) {
ret = type_str_to_type (type, &rule->type);
if (ret != ret_ok) {
return ret;
}
}
/* Read the match
*/
ret = cherokee_config_node_copy (conf, "match", &rule->match);
if (ret != ret_ok) {
if (equal_buf_str (type, "regex")) {
LOG_ERROR (CHEROKEE_ERROR_RULE_NO_PROPERTY,
RULE(rule)->priority, "match");
return ret_error;
}
}
/* Compile the regular expression
*/
if (! cherokee_buffer_is_empty (&rule->match)) {
ret = cherokee_regex_table_add (regexs, rule->match.buf);
if (ret != ret_ok)
return ret;
ret = cherokee_regex_table_get (regexs, rule->match.buf, &rule->pcre);
if (ret != ret_ok)
return ret;
}
return ret_ok;
}
开发者ID:felipebuarque,项目名称:PL-Stats,代码行数:59,代码来源:rule_header.c
示例11: cherokee_buffer_is_ending
int
cherokee_buffer_is_ending (cherokee_buffer_t *buf, char c)
{
if (cherokee_buffer_is_empty(buf))
return 0;
return (buf->buf[buf->len - 1] == c);
}
开发者ID:Daniel15,项目名称:webserver,代码行数:8,代码来源:buffer.c
示例12: cherokee_buffer_crc32
crc_t
cherokee_buffer_crc32 (cherokee_buffer_t *buf)
{
if (cherokee_buffer_is_empty (buf))
return 0;
return crc32_sz (buf->buf, buf->len);
}
开发者ID:304471720,项目名称:webserver,代码行数:8,代码来源:buffer.c
示例13: cherokee_validator_digest_check
ret_t
cherokee_validator_digest_check (cherokee_validator_t *validator, cherokee_buffer_t *passwd, cherokee_connection_t *conn)
{
ret_t ret;
int re = -1;
cherokee_buffer_t a1 = CHEROKEE_BUF_INIT;
cherokee_buffer_t buf = CHEROKEE_BUF_INIT;
/* Sanity check
*/
if (cherokee_buffer_is_empty (&validator->user) ||
cherokee_buffer_is_empty (&validator->realm))
return ret_deny;
/* Build A1
*/
cherokee_buffer_ensure_size (&a1,
validator->user.len + 1 +
validator->realm.len + 1 +
passwd->len);
cherokee_buffer_add_buffer (&a1, &validator->user);
cherokee_buffer_add_str (&a1, ":");
cherokee_buffer_add_buffer (&a1, &validator->realm);
cherokee_buffer_add_str (&a1, ":");
cherokee_buffer_add_buffer (&a1, passwd);
cherokee_buffer_encode_md5_digest (&a1);
/* Build a possible response
*/
ret = cherokee_validator_digest_response (validator, a1.buf, &buf, conn);
if (unlikely(ret != ret_ok))
goto go_out;
/* Compare and return
*/
re = cherokee_buffer_cmp_buf (&conn->validator->response, &buf);
go_out:
cherokee_buffer_mrproper (&a1);
cherokee_buffer_mrproper (&buf);
return (re == 0) ? ret_ok : ret_deny;
}
开发者ID:chetan,项目名称:cherokee,代码行数:45,代码来源:validator.c
示例14: cherokee_url_parse
ret_t
cherokee_url_parse (cherokee_url_t *url,
cherokee_buffer_t *string,
cherokee_buffer_t *user_ret,
cherokee_buffer_t *password_ret)
{
if (cherokee_buffer_is_empty (string)) {
return ret_error;
}
return cherokee_url_parse_guts (url, string, user_ret, password_ret);
}
开发者ID:felipebuarque,项目名称:PL-Stats,代码行数:12,代码来源:url.c
示例15: load_theme
static ret_t
load_theme (cherokee_buffer_t *theme_path, cherokee_handler_dirlist_props_t *props)
{
load_theme_load_file (theme_path, "header.html", &props->header);
load_theme_load_file (theme_path, "footer.html", &props->footer);
load_theme_load_file (theme_path, "entry.html", &props->entry);
load_theme_load_file (theme_path, "theme.css", &props->css);
/* Check it
*/
if ((cherokee_buffer_is_empty (&props->header) ||
cherokee_buffer_is_empty (&props->entry) ||
cherokee_buffer_is_empty (&props->footer)))
return ret_error;
/* Parse conditional blocks
*/
parse_macros_in_buffer (&props->header, props);
parse_macros_in_buffer (&props->footer, props);
parse_macros_in_buffer (&props->entry, props);
return ret_ok;
}
开发者ID:chetan,项目名称:cherokee,代码行数:23,代码来源:handler_dirlist.c
示例16: process_buffer
static ret_t
process_buffer (cherokee_handler_fcgi_t *hdl, cherokee_buffer_t *inbuf, cherokee_buffer_t *outbuf)
{
ret_t ret;
do {
ret = process_package (hdl, inbuf, outbuf);
} while (ret == ret_eagain);
if (ret == ret_ok) {
if (cherokee_buffer_is_empty (outbuf))
return (HDL_CGI_BASE(hdl)->got_eof) ? ret_eof : ret_eagain;
}
return ret;
}
开发者ID:jameshilliard,项目名称:bhr4_release_1.3.0.47.64,代码行数:16,代码来源:handler_fcgi.c
示例17: cherokee_validator_htdigest_check
ret_t
cherokee_validator_htdigest_check (cherokee_validator_htdigest_t *htdigest,
cherokee_connection_t *conn)
{
ret_t ret;
cherokee_buffer_t *fpass;
cherokee_buffer_t file = CHEROKEE_BUF_INIT;
/* Ensure that we have all what we need
*/
if ((conn->validator == NULL) ||
cherokee_buffer_is_empty (&conn->validator->user))
return ret_error;
/* Get the full path to the file
*/
ret = cherokee_validator_file_get_full_path (VFILE(htdigest), conn, &fpass,
&CONN_THREAD(conn)->tmp_buf1);
if (ret != ret_ok) {
ret = ret_error;
goto out;
}
/* Read the whole file
*/
ret = cherokee_buffer_read_file (&file, fpass->buf);
if (ret != ret_ok) {
ret = ret_error;
goto out;
}
/* Authenticate
*/
if (conn->req_auth_type & http_auth_basic) {
ret = validate_basic (htdigest, conn, &file);
} else if (conn->req_auth_type & http_auth_digest) {
ret = validate_digest (htdigest, conn, &file);
} else {
SHOULDNT_HAPPEN;
}
out:
cherokee_buffer_mrproper (&file);
return ret;
}
开发者ID:nuxleus,项目名称:cherokee-webserver,代码行数:47,代码来源:validator_htdigest.c
示例18: print_connection_info
static void
print_connection_info (void)
{
printf ("\n");
if (! cherokee_buffer_is_empty (&password)) {
printf ("Login:\n"
" User: admin\n"
" One-time Password: %s\n\n", password.buf);
}
printf ("Web Interface:\n"
" URL: http://%s:%d/\n\n",
(bind_to) ? bind_to : "localhost", port);
fflush(stdout);
}
开发者ID:nuxleus,项目名称:cherokee-webserver,代码行数:17,代码来源:main_admin.c
示例19: cherokee_handler_cgi_init
ret_t
cherokee_handler_cgi_init (cherokee_handler_cgi_t *cgi)
{
ret_t ret;
cherokee_handler_cgi_base_t *cgi_base = HDL_CGI_BASE(cgi);
cherokee_connection_t *conn = HANDLER_CONN(cgi);
switch (cgi_base->init_phase) {
case hcgi_phase_build_headers:
/* Extracts PATH_INFO and filename from request uri
*/
if (cherokee_buffer_is_empty (&cgi_base->executable)) {
ret = cherokee_handler_cgi_base_extract_path (cgi_base, true);
if (unlikely (ret < ret_ok)) {
return ret;
}
}
/* It has to update the timeout of the connection,
* otherwhise the server will drop it for the CGI
* isn't fast enough
*/
conn->timeout = cherokee_bogonow_now + CGI_TIMEOUT;
cgi_base->init_phase = hcgi_phase_connect;
case hcgi_phase_connect:
/* Launch the CGI
*/
ret = fork_and_execute_cgi_via_spawner(cgi);
if (unlikely (ret != ret_ok)) {
ret = fork_and_execute_cgi(cgi);
if (unlikely (ret != ret_ok)) {
return ret;
}
}
default:
break;
}
TRACE (ENTRIES, "finishing %s\n", "ret_ok");
return ret_ok;
}
开发者ID:dlucenap,项目名称:webserver,代码行数:44,代码来源:handler_cgi.c
示例20: cherokee_bind_v6
static ret_t
cherokee_bind_v6 (cherokee_socket_t *sock, cuint_t port, cherokee_buffer_t *listen_to)
{
int re;
ret_t ret;
SOCKET_ADDR_IPv6(sock)->sin6_port = htons(port);
if (cherokee_buffer_is_empty (listen_to)) {
SOCKET_ADDR_IPv6(sock)->sin6_addr = in6addr_any;
} else{
ret = cherokee_socket_pton (sock, listen_to);
if (ret != ret_ok) return ret;
}
re = bind (SOCKET_FD(sock), (struct sockaddr *)&SOCKET_ADDR(sock), sock->client_addr_len);
if (re != 0) return ret_error;
return ret_ok;
}
开发者ID:304471720,项目名称:webserver,代码行数:20,代码来源:socket.c
注:本文中的cherokee_buffer_is_empty函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论