本文整理汇总了C++中buffer_copy_string函数的典型用法代码示例。如果您正苦于以下问题:C++ buffer_copy_string函数的具体用法?C++ buffer_copy_string怎么用?C++ buffer_copy_string使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了buffer_copy_string函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: calloc
static struct music_file *new_music_file(const char *spath, const char *lpath)
{
struct music_file *p = calloc(1, sizeof(*p));
if (p == NULL)
return p;
p->shortpath = buffer_init();
if (p->shortpath == NULL) {
free(p);
return NULL;
}
p->longpath = buffer_init();
if (p->longpath == NULL) {
buffer_free(p->shortpath);
free(p);
return NULL;
}
buffer_copy_string(p->shortpath, spath);
buffer_copy_string(p->longpath, lpath);
p->next = NULL;
return p;
}
开发者ID:azuwis,项目名称:xreader,代码行数:29,代码来源:musicmgr.c
示例2: proxy_set_header
static void proxy_set_header(connection *con, const char *key, const char *value) {
data_string *ds_dst;
if (NULL == (ds_dst = (data_string *)array_get_unused_element(con->request.headers, TYPE_STRING))) {
ds_dst = data_string_init();
}
buffer_copy_string(ds_dst->key, key);
buffer_copy_string(ds_dst->value, value);
array_insert_unique(con->request.headers, (data_unset *)ds_dst);
}
开发者ID:angad,项目名称:lighttpd-android,代码行数:11,代码来源:mod_proxy.c
示例3: ssi_env_add
static int ssi_env_add(array *env, const char *key, const char *val) {
data_string *ds;
if (NULL == (ds = (data_string *)array_get_unused_element(env, TYPE_STRING))) {
ds = data_string_init();
}
buffer_copy_string(ds->key, key);
buffer_copy_string(ds->value, val);
array_insert_unique(env, (data_unset *)ds);
return 0;
}
开发者ID:HitoriSensei,项目名称:lighttpd,代码行数:13,代码来源:mod_ssi.c
示例4: magnet_env_set
static int magnet_env_set(lua_State *L) {
server *srv;
connection *con;
const char *key = luaL_checkstring(L, 2);
const char *val = luaL_checkstring(L, 3);
buffer *dest = NULL;
lua_pushstring(L, "lighty.srv");
lua_gettable(L, LUA_REGISTRYINDEX);
srv = lua_touserdata(L, -1);
lua_pop(L, 1);
lua_pushstring(L, "lighty.con");
lua_gettable(L, LUA_REGISTRYINDEX);
con = lua_touserdata(L, -1);
lua_pop(L, 1);
if (NULL != (dest = magnet_env_get_buffer(srv, con, key))) {
buffer_copy_string(dest, val);
} else {
/* couldn't save */
return luaL_error(L, "couldn't store '%s' in lighty.env[]", key);
}
return 0;
}
开发者ID:unix-socket-lwjian,项目名称:my-understanding-of-lighttpd,代码行数:28,代码来源:mod_magnet.c
示例5: query_one_hostname
void query_one_hostname(){
smb_srv_info_t *p;
for (p = smb_srv_info_list; p; p = p->next) {
if(strcmp(p->name->ptr, "")!=0){
continue;
}
if(p->id==0){
Cdbg(DBE, "query_one_hostname [%s]\n", p->ip->ptr);
//continue;
}
char* hostname = smbc_nmblookup(p->ip->ptr);
if(hostname==NULL){
//Cdbg(DBE, "\t\tCan't query samba server name[%s]\n", p->ip->ptr);
buffer_free(p->ip);
buffer_free(p->mac);
buffer_free(p->name);
DLIST_REMOVE(smb_srv_info_list, p);
free(p);
}
else{
buffer_copy_string(p->name, hostname);
}
}
}
开发者ID:heartshare,项目名称:asuswrt-merlin,代码行数:30,代码来源:~arpping_thread.c
示例6: buffer_init
buffer *buffer_init_string(const char *str) {
buffer *b = buffer_init();
buffer_copy_string(b, str);
return b;
}
开发者ID:presidentbeef,项目名称:sqwee,代码行数:7,代码来源:buffer.c
示例7: test_configfile_addrbuf_eq_remote_ip_mask
static void test_configfile_addrbuf_eq_remote_ip_mask (void) {
int i, m;
buffer * const s = buffer_init();
sock_addr rmt;
for (i = 0; i < (int)(sizeof(rmtmask)/sizeof(rmtmask[0])); ++i) {
#ifndef HAVE_INET_PTON
rmt.ipv4.sin_family = AF_INET;
rmt.ipv4.sin_addr.s_addr = inet_addr(rmtmask[i].rmtstr);
#else
if (rmtmask[i].rmtfamily == AF_INET) {
rmt.ipv4.sin_family = AF_INET;
inet_pton(AF_INET, rmtmask[i].rmtstr, &rmt.ipv4.sin_addr);
#ifdef HAVE_IPV6
} else if (rmtmask[i].rmtfamily == AF_INET6) {
rmt.ipv6.sin6_family = AF_INET6;
inet_pton(AF_INET6, rmtmask[i].rmtstr, &rmt.ipv6.sin6_addr);
#endif
} else {
continue;
}
#endif
buffer_copy_string(s, rmtmask[i].string);
m = config_addrbuf_eq_remote_ip_mask(NULL,s,strchr(s->ptr,'/'),&rmt);
if (m != rmtmask[i].expect) {
fprintf(stderr, "failed assertion: %s %s %s\n",
rmtmask[i].string,
rmtmask[i].expect ? "==" : "!=",
rmtmask[i].rmtstr);
exit(-1);
}
}
buffer_free(s);
}
开发者ID:AndreLouisCaron,项目名称:lighttpd,代码行数:35,代码来源:test_configfile.c
示例8: proxy_create_env
static int proxy_create_env(server *srv, handler_ctx *hctx) {
size_t i;
connection *con = hctx->remote_conn;
buffer *b;
/* build header */
b = buffer_init();
/* request line */
buffer_copy_string(b, get_http_method_name(con->request.http_method));
buffer_append_string_len(b, CONST_STR_LEN(" "));
buffer_append_string_buffer(b, con->request.uri);
buffer_append_string_len(b, CONST_STR_LEN(" HTTP/1.0\r\n"));
proxy_append_header(con, "X-Forwarded-For", (char *)inet_ntop_cache_get_ip(srv, &(con->dst_addr)));
/* http_host is NOT is just a pointer to a buffer
* which is NULL if it is not set */
if (!buffer_string_is_empty(con->request.http_host)) {
proxy_set_header(con, "X-Host", con->request.http_host->ptr);
}
proxy_set_header(con, "X-Forwarded-Proto", con->uri.scheme->ptr);
/* request header */
for (i = 0; i < con->request.headers->used; i++) {
data_string *ds;
ds = (data_string *)con->request.headers->data[i];
if (!buffer_is_empty(ds->value) && !buffer_is_empty(ds->key)) {
if (buffer_is_equal_string(ds->key, CONST_STR_LEN("Connection"))) continue;
if (buffer_is_equal_string(ds->key, CONST_STR_LEN("Proxy-Connection"))) continue;
buffer_append_string_buffer(b, ds->key);
buffer_append_string_len(b, CONST_STR_LEN(": "));
buffer_append_string_buffer(b, ds->value);
buffer_append_string_len(b, CONST_STR_LEN("\r\n"));
}
}
buffer_append_string_len(b, CONST_STR_LEN("\r\n"));
hctx->wb->bytes_in += buffer_string_length(b);
chunkqueue_append_buffer(hctx->wb, b);
buffer_free(b);
/* body */
if (con->request.content_length) {
chunkqueue *req_cq = con->request_content_queue;
chunkqueue_steal(hctx->wb, req_cq, req_cq->bytes_in);
}
return 0;
}
开发者ID:automatical,项目名称:lighttpd1.4,代码行数:58,代码来源:mod_proxy.c
示例9: aicloud_connection_smb_info_url_patch
static void aicloud_connection_smb_info_url_patch(server *srv, connection *con)
{
char strr[2048]="\0";
char uri[2048]="\0";
UNUSED(srv);
char* pch = strchr(con->request.uri->ptr,'?');
if(pch){
buffer_copy_string_len(con->url_options, pch+1, strlen(pch)-1);
int len = pch-con->request.uri->ptr;
strncpy(uri,con->request.uri->ptr, len);
}
else{
strcpy(uri,con->request.uri->ptr);
}
if(con->mode == DIRECT){
sprintf(strr, "%s", uri);
}
else {
if(con->smb_info&&con->smb_info->server->used) {
if(con->mode == SMB_BASIC){
if(con->smb_info->username->used&&con->smb_info->password->used){
sprintf(strr, "smb://%s:%[email protected]%s", con->smb_info->username->ptr, con->smb_info->password->ptr, uri+1);
}
else
sprintf(strr, "smb://%s", uri+1);
}
else if(con->mode == SMB_NTLM){
sprintf(strr, "smb://%s", uri+1);
}
} else {
sprintf(strr, "smb://");
}
}
buffer_copy_string(con->url.path, strr);
buffer_copy_string(con->url.rel_path, uri);
buffer_urldecode_path(con->url.path);
buffer_urldecode_path(con->url.rel_path);
}
开发者ID:Nymphetaminer,项目名称:dsl-n55u,代码行数:44,代码来源:mod_aicloud_auth.c
示例10: network_ssl_servername_callback
static int network_ssl_servername_callback(SSL *ssl, int *al, server *srv) {
const char *servername;
connection *con = (connection *) SSL_get_app_data(ssl);
UNUSED(al);
buffer_copy_string(con->uri.scheme, "https");
if (NULL == (servername = SSL_get_servername(ssl, TLSEXT_NAMETYPE_host_name))) {
#if 0
/* this "error" just means the client didn't support it */
log_error_write(srv, __FILE__, __LINE__, "ss", "SSL:",
"failed to get TLS server name");
#endif
return SSL_TLSEXT_ERR_NOACK;
}
buffer_copy_string(con->tlsext_server_name, servername);
buffer_to_lower(con->tlsext_server_name);
/* Sometimes this is still set, confusing COMP_HTTP_HOST */
buffer_reset(con->uri.authority);
config_cond_cache_reset(srv, con);
config_setup_connection(srv, con);
config_patch_connection(srv, con, COMP_SERVER_SOCKET);
config_patch_connection(srv, con, COMP_HTTP_SCHEME);
config_patch_connection(srv, con, COMP_HTTP_HOST);
if (NULL == con->conf.ssl_ctx) {
/* ssl_ctx <=> pemfile was set <=> ssl_ctx got patched: so this should never happen */
log_error_write(srv, __FILE__, __LINE__, "ssb", "SSL:",
"null SSL_CTX for TLS server name", con->tlsext_server_name);
return SSL_TLSEXT_ERR_ALERT_FATAL;
}
/* switch to new SSL_CTX in reaction to a client's server_name extension */
if (con->conf.ssl_ctx != SSL_set_SSL_CTX(ssl, con->conf.ssl_ctx)) {
log_error_write(srv, __FILE__, __LINE__, "ssb", "SSL:",
"failed to set SSL_CTX for TLS server name", con->tlsext_server_name);
return SSL_TLSEXT_ERR_ALERT_FATAL;
}
return SSL_TLSEXT_ERR_OK;
}
开发者ID:h0tw1r3,项目名称:asuswrt-merlin,代码行数:44,代码来源:network.c
示例11: chmEnum
static int chmEnum(struct chmFile *h, struct chmUnitInfo *ui, void *context)
{
t_win_menuitem item;
t_fs_filetype ft;
char fname[PATH_MAX] = "";
char t[20];
int size = strlen(ui->path);
if (size == 0 || ui->path[size - 1] == '/')
return CHM_ENUMERATOR_CONTINUE;
ft = fs_file_get_type(ui->path);
if (ft == fs_filetype_chm || ft == fs_filetype_zip || ft == fs_filetype_rar || ft == fs_filetype_umd || ft == fs_filetype_pdb)
return CHM_ENUMERATOR_CONTINUE;
win_menuitem_new(&item);
buffer_copy_string(item.compname, ui->path);
SPRINTF_S(t, "%u", (unsigned int) ui->length);
buffer_copy_string(item.shortname, t);
if (ui->path[0] == '/') {
strncpy_s(fname, NELEMS(fname), ui->path + 1, 256);
} else {
strncpy_s(fname, NELEMS(fname), ui->path, 256);
}
charsets_utf8_conv((unsigned char *) fname, sizeof(fname), (unsigned char *) fname, sizeof(fname));
item.data = (void *) ft;
filename_to_itemname(&item, fname);
item.selected = false;
item.icolor = ((p_fs_chm_enum) context)->icolor;
item.selicolor = ((p_fs_chm_enum) context)->selicolor;
item.selrcolor = ((p_fs_chm_enum) context)->selrcolor;
item.selbcolor = ((p_fs_chm_enum) context)->selbcolor;
item.data3 = ui->length;
win_menu_add(g_menu, &item);
return CHM_ENUMERATOR_CONTINUE;
}
开发者ID:DreamingPiggy,项目名称:xreader-hg,代码行数:41,代码来源:fs.c
示例12: UNUSED
static buffer *magnet_env_get_buffer_by_id(server *srv, connection *con, int id) {
buffer *dest = NULL;
UNUSED(srv);
/**
* map all internal variables to lua
*
*/
switch (id) {
case MAGNET_ENV_PHYICAL_PATH: dest = con->physical.path; break;
case MAGNET_ENV_PHYICAL_REL_PATH: dest = con->physical.rel_path; break;
case MAGNET_ENV_PHYICAL_DOC_ROOT: dest = con->physical.doc_root; break;
case MAGNET_ENV_PHYICAL_BASEDIR: dest = con->physical.basedir; break;
case MAGNET_ENV_URI_PATH: dest = con->uri.path; break;
case MAGNET_ENV_URI_PATH_RAW: dest = con->uri.path_raw; break;
case MAGNET_ENV_URI_SCHEME: dest = con->uri.scheme; break;
case MAGNET_ENV_URI_AUTHORITY: dest = con->uri.authority; break;
case MAGNET_ENV_URI_QUERY: dest = con->uri.query; break;
case MAGNET_ENV_REQUEST_METHOD:
buffer_copy_string(srv->tmp_buf, get_http_method_name(con->request.http_method));
dest = srv->tmp_buf;
break;
case MAGNET_ENV_REQUEST_URI: dest = con->request.uri; break;
case MAGNET_ENV_REQUEST_ORIG_URI: dest = con->request.orig_uri; break;
case MAGNET_ENV_REQUEST_PATH_INFO: dest = con->request.pathinfo; break;
case MAGNET_ENV_REQUEST_REMOTE_IP: dest = con->dst_addr_buf; break;
case MAGNET_ENV_REQUEST_PROTOCOL:
buffer_copy_string(srv->tmp_buf, get_http_version_name(con->request.http_version));
dest = srv->tmp_buf;
break;
case MAGNET_ENV_UNSET: break;
}
return dest;
}
开发者ID:jonahglover,项目名称:lighttpd1.4,代码行数:40,代码来源:mod_magnet.c
示例13: response_header_overwrite
int response_header_overwrite(server *srv, connection *con, const char *key, size_t keylen, const char *value, size_t vallen) {
data_string *ds;
UNUSED(srv);
/* if there already is a key by this name overwrite the value */
if (NULL != (ds = (data_string *)array_get_element(con->response.headers, key))) {
buffer_copy_string(ds->value, value);
return 0;
}
return response_header_insert(srv, con, key, keylen, value, vallen);
}
开发者ID:adalovelace561,项目名称:lighttpd-1.4.x-wolf,代码行数:14,代码来源:http-header-glue.c
示例14: print_help
void print_help()
{
buffer * b=buffer_init();
buffer_copy_string(b,
"minihttpd is a simple,high-performance webserver\n" \
"usage:\n" \
"-f configuration_file specify the configuration file you want to load for minihttpd\n" \
"-D specify the minihttpd do not run as a deamon process\n" \
"-v print the minihttpd version information\n" \
"-h show help\n");
fprintf(stdout,"%s",(const char*)b->ptr);
buffer_free(b);
}
开发者ID:materlai,项目名称:minihttpd,代码行数:14,代码来源:main.cpp
示例15: add_parent_to_menu
static int add_parent_to_menu(p_win_menu menu, u32 icolor, u32 selicolor, u32 selrcolor, u32 selbcolor)
{
t_win_menuitem item;
if (menu == NULL) {
return -1;
}
win_menuitem_new(&item);
STRCPY_S(item.name, "<..>");
buffer_copy_string(item.compname, "..");
buffer_copy_string(item.shortname, "..");
item.data = (void *) fs_filetype_dir;
item.width = 4;
item.selected = false;
item.icolor = icolor;
item.selicolor = selicolor;
item.selrcolor = selrcolor;
item.selbcolor = selbcolor;
win_menu_add(menu, &item);
return 0;
}
开发者ID:DreamingPiggy,项目名称:xreader-hg,代码行数:23,代码来源:fs.c
示例16: ssi_env_add_request_headers
static int ssi_env_add_request_headers(server *srv, connection *con, plugin_data *p) {
size_t i;
for (i = 0; i < con->request.headers->used; i++) {
data_string *ds;
ds = (data_string *)con->request.headers->data[i];
if (ds->value->used && ds->key->used) {
size_t j;
buffer_reset(srv->tmp_buf);
/* don't forward the Authorization: Header */
if (0 == strcasecmp(ds->key->ptr, "AUTHORIZATION")) {
continue;
}
if (0 != strcasecmp(ds->key->ptr, "CONTENT-TYPE")) {
buffer_copy_string(srv->tmp_buf, "HTTP_");
srv->tmp_buf->used--;
}
buffer_prepare_append(srv->tmp_buf, ds->key->used + 2);
for (j = 0; j < ds->key->used - 1; j++) {
char c = '_';
if (light_isalpha(ds->key->ptr[j])) {
/* upper-case */
c = ds->key->ptr[j] & ~32;
} else if (light_isdigit(ds->key->ptr[j])) {
/* copy */
c = ds->key->ptr[j];
}
srv->tmp_buf->ptr[srv->tmp_buf->used++] = c;
}
srv->tmp_buf->ptr[srv->tmp_buf->used] = '\0';
ssi_env_add(p->ssi_cgi_env, srv->tmp_buf->ptr, ds->value->ptr);
}
}
return 0;
}
开发者ID:chandantr,项目名称:lighty2,代码行数:42,代码来源:mod_ssi.c
示例17: smbc_wrapper_response_401
void smbc_wrapper_response_401(server *srv, connection *con)
{
data_string *ds = (data_string *)array_get_element(con->request.headers, "user-Agent");
//- Browser response
if( ds && (strstr( ds->value->ptr, "Mozilla" )||strstr( ds->value->ptr, "Opera" )) ){
if(con->mode == SMB_BASIC||con->mode == DIRECT){
Cdbg(DBE, "con->mode == SMB_BASIC -> return 401");
con->http_status = 401;
return;
}
}
Cdbg(DBE, "smbc_wrapper_response_401 -> return 401");
char str[50];
UNUSED(srv);
buffer* tmp_buf = buffer_init();
if(con->mode == SMB_BASIC){
//sprintf(str, "Basic realm=\"%s\"", "smbdav");
if(con->smb_info&&con->smb_info->server->used)
sprintf(str, "Basic realm=\"smb://%s\"", con->smb_info->server->ptr);
else
sprintf(str, "Basic realm=\"%s\"", "webdav");
}
else if(con->mode == SMB_NTLM)
sprintf(str, "NTLM");
else
sprintf(str, "Basic realm=\"%s\"", "webdav");
buffer_copy_string(tmp_buf, str);
response_header_insert(srv, con, CONST_STR_LEN("WWW-Authenticate"), CONST_BUF_LEN(tmp_buf));
con->http_status = 401;
buffer_free(tmp_buf);
}
开发者ID:heartshare,项目名称:asuswrt-merlin,代码行数:40,代码来源:smb_auth.c
示例18: lua_to_c_get_string
static int lua_to_c_get_string(lua_State *L, const char *varname, buffer *b) {
int curelem;
lua_pushstring(L, varname);
curelem = lua_gettop(L);
lua_gettable(L, LUA_GLOBALSINDEX);
/* it should be a table */
if (!lua_isstring(L, curelem)) {
lua_settop(L, curelem - 1);
return -1;
}
buffer_copy_string(b, lua_tostring(L, curelem));
lua_pop(L, 1);
assert(curelem - 1 == lua_gettop(L));
return 0;
}
开发者ID:0d0f,项目名称:exfe-bus,代码行数:23,代码来源:mod_cml_lua.c
示例19: smbc_wrapper_response_realm_401
void smbc_wrapper_response_realm_401(server *srv, connection *con)
{
/*
if(con->mode == SMB_BASIC){
if(con->smb_info&&con->smb_info->server->used){
Cdbg(DBE, "sssssssss");
con->http_status = 401;
}
return;
}
*/
char str[50];
UNUSED(srv);
buffer* tmp_buf = buffer_init();
if(con->mode == SMB_BASIC){
//sprintf(str, "Basic realm=\"%s\"", "smbdav");
if(con->smb_info&&con->smb_info->server->used)
sprintf(str, "Basic realm=\"smb://%s\"", con->smb_info->server->ptr);
else
sprintf(str, "Basic realm=\"%s\"", "webdav");
}
else if(con->mode == SMB_NTLM)
sprintf(str, "NTLM");
else
sprintf(str, "Basic realm=\"%s\"", "webdav");
buffer_copy_string(tmp_buf, str);
response_header_insert(srv, con, CONST_STR_LEN("WWW-Authenticate"), CONST_BUF_LEN(tmp_buf));
con->http_status = 401;
buffer_free(tmp_buf);
}
开发者ID:heartshare,项目名称:asuswrt-merlin,代码行数:37,代码来源:smb_auth.c
示例20: config_insert_values_global
int config_insert_values_global(server *srv, array *ca, const config_values_t cv[]) {
size_t i;
data_unset *du;
for (i = 0; cv[i].key; i++) {
data_string *touched;
if (NULL == (du = array_get_element(ca, cv[i].key))) {
/* no found */
continue;
}
/* touched */
touched = data_string_init();
buffer_copy_string(touched->value, "");
buffer_copy_string_buffer(touched->key, du->key);
array_insert_unique(srv->config_touched, (data_unset *)touched);
}
return config_insert_values_internal(srv, ca, cv);
}
开发者ID:OpenSight,项目名称:StreamSwitch,代码行数:24,代码来源:configfile-glue.c
注:本文中的buffer_copy_string函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论