本文整理汇总了C++中buf_free函数的典型用法代码示例。如果您正苦于以下问题:C++ buf_free函数的具体用法?C++ buf_free怎么用?C++ buf_free使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了buf_free函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: test_routerlist_router_is_already_dir_fetching
static void
test_routerlist_router_is_already_dir_fetching(void *arg)
{
(void)arg;
tor_addr_port_t test_ap, null_addr_ap, zero_port_ap;
/* Setup */
tor_addr_parse(&test_ap.addr, TEST_ADDR_STR);
test_ap.port = TEST_DIR_PORT;
tor_addr_make_null(&null_addr_ap.addr, AF_INET6);
null_addr_ap.port = TEST_DIR_PORT;
tor_addr_parse(&zero_port_ap.addr, TEST_ADDR_STR);
zero_port_ap.port = 0;
MOCK(connection_get_by_type_addr_port_purpose,
mock_connection_get_by_type_addr_port_purpose);
/* Test that we never get 1 from a NULL connection */
mocked_connection = NULL;
tt_assert(router_is_already_dir_fetching(&test_ap, 1, 1) == 0);
tt_assert(router_is_already_dir_fetching(&test_ap, 1, 0) == 0);
tt_assert(router_is_already_dir_fetching(&test_ap, 0, 1) == 0);
/* We always expect 0 in these cases */
tt_assert(router_is_already_dir_fetching(&test_ap, 0, 0) == 0);
tt_assert(router_is_already_dir_fetching(NULL, 1, 1) == 0);
tt_assert(router_is_already_dir_fetching(&null_addr_ap, 1, 1) == 0);
tt_assert(router_is_already_dir_fetching(&zero_port_ap, 1, 1) == 0);
/* Test that we get 1 with a connection in the appropriate circumstances */
mocked_connection = connection_new(CONN_TYPE_DIR, AF_INET);
tt_assert(router_is_already_dir_fetching(&test_ap, 1, 1) == 1);
tt_assert(router_is_already_dir_fetching(&test_ap, 1, 0) == 1);
tt_assert(router_is_already_dir_fetching(&test_ap, 0, 1) == 1);
/* Test that we get 0 even with a connection in the appropriate
* circumstances */
tt_assert(router_is_already_dir_fetching(&test_ap, 0, 0) == 0);
tt_assert(router_is_already_dir_fetching(NULL, 1, 1) == 0);
tt_assert(router_is_already_dir_fetching(&null_addr_ap, 1, 1) == 0);
tt_assert(router_is_already_dir_fetching(&zero_port_ap, 1, 1) == 0);
done:
/* If a connection is never set up, connection_free chokes on it. */
if (mocked_connection) {
buf_free(mocked_connection->inbuf);
buf_free(mocked_connection->outbuf);
}
tor_free(mocked_connection);
UNMOCK(connection_get_by_type_addr_port_purpose);
}
开发者ID:Archer-sys,项目名称:tor,代码行数:49,代码来源:test_routerlist.c
示例2: auth_generate_auth_hmac
void auth_generate_auth_hmac (SESSION * session, unsigned char *auth_hmac,
unsigned int mac_len)
{
(void)mac_len;
struct buf* buf = buf_new();
buf_append_data(buf, session->init_client_packet->ptr,
session->init_client_packet->len);
buf_append_data(buf, session->init_server_packet->ptr,
session->init_server_packet->len);
buf_append_u8(buf, 0); /* random data length */
buf_append_u8(buf, 0); /* unknown */
buf_append_u16(buf, 8); /* puzzle solution length */
buf_append_u32(buf, 0); /* unknown */
/* <-- random data would go here */
buf_append_data(buf, session->puzzle_solution, 8);
#ifdef DEBUG_LOGIN
hexdump8x32 ("auth_generate_auth_hmac, HMAC message", buf->ptr,
buf->len);
hexdump8x32 ("auth_generate_auth_hmac, HMAC key", session->key_hmac,
sizeof (session->key_hmac));
#endif
sha1_hmac ( session->key_hmac, sizeof (session->key_hmac),
buf->ptr, buf->len, auth_hmac);
#ifdef DEBUG_LOGIN
hexdump8x32 ("auth_generate_auth_hmac, HMAC digest", auth_hmac,
mac_len);
#endif
buf_free(buf);
}
开发者ID:alt-,项目名称:bada-spotify,代码行数:34,代码来源:auth.c
示例3: duplicate_mark
EXPORTED void duplicate_mark(const duplicate_key_t *dkey, time_t mark, unsigned long uid)
{
struct buf key = BUF_INITIALIZER;
char data[100];
int r;
if (!duplicate_dbopen) return;
r = make_key(&key, dkey);
if (r) return;
memcpy(data, &mark, sizeof(mark));
memcpy(data + sizeof(mark), &uid, sizeof(uid));
do {
r = cyrusdb_store(dupdb, key.s, key.len,
data, sizeof(mark)+sizeof(uid), NULL);
} while (r == CYRUSDB_AGAIN);
#if DEBUG
syslog(LOG_DEBUG, "duplicate_mark: %-40s %-20s %-40s %ld %lu",
dkey->id, dkey->to, dkey->date, mark, uid);
#endif
buf_free(&key);
}
开发者ID:sebmichel,项目名称:cyrus-imapd,代码行数:25,代码来源:duplicate.c
示例4: target_read
//-----------------------------------------------------------------------------
static void target_read(char *name)
{
uint32_t flash_size = device->flash_size * device->n_planes;
uint32_t size = flash_size;
uint32_t addr = device->flash_start;
uint32_t offs = 0;
uint8_t *buf;
buf = buf_alloc(flash_size);
verbose("Reading...");
while (size)
{
dap_read_block(addr, &buf[offs], device->page_size);
addr += device->page_size;
offs += device->page_size;
size -= device->page_size;
verbose(".");
}
save_file(name, buf, flash_size);
buf_free(buf);
verbose(" done.\n");
}
开发者ID:arv3,项目名称:edbg,代码行数:30,代码来源:target_atmel_cm3.c
示例5: tac_mem
static int
tac_mem ()
{
Buf x;
Line_ptr bol;
char eol_byte = '\n';
int fail;
fail = buf_init_from_stdin (&x, eol_byte);
if (fail)
{
buf_free (&x);
return 1;
}
/* Special case the empty file. */
if (EMPTY (&x))
return 0;
/* Initially, point at one past the last byte of the file. */
bol.i = x.n_bufs - 1;
bol.ptr = ONE_PAST_END (&x, bol.i);
while (1)
{
Line_ptr new_bol;
int found = find_bol (&x, &bol, &new_bol, eol_byte);
if (!found)
break;
print_line (stdout, &x, &new_bol, &bol);
bol = new_bol;
}
return 0;
}
开发者ID:Faith4444,项目名称:backdoor_rootkit,代码行数:34,代码来源:tac-pipe.c
示例6: tnfa_toString
char* tnfa_toString(TNFA* tnfa){
StringBuffer* sb = buf_createDefault();
char* result;
int i;
IntEnumeration* ie;
buf_printf(sb,"\nStart state s%d\nFinish state s%d",tnfa->start,tnfa->finish);
for(i=0;i<tnfa->laststate;i++){
if(ihtab_contains(tnfa->states,i)){
TFATrans* t;
buf_printf(sb,"\ns%d in: %d out: ",i,itoi_get(tnfa->inputOrder,i));
t= ihtab_get(tnfa->states, i);
while(t!=NULL){
if (t->c==0)
buf_printf(sb,"<s%d,'\\0',%d,%c> ",t->to,t->tag,t->priority);
else
buf_printf(sb,"<s%d,'%c',%d,%c> ",t->to,t->c,t->tag,t->priority);
t=t->next;
}
}
}
buf_printf(sb,"\n#Tags = %d #Minimized = %d Minimized Tags ={",tnfa->tagcount,iset_size(tnfa->minimized));
ie = iset_elements(tnfa->minimized);
while(ienum_hasNext(ie)){
buf_printf(sb,"%d",ienum_next(ie));
if(ienum_hasNext(ie)) buf_putc(sb,',');
}
buf_putc(sb,'}');
result= buf_toString(sb);
buf_free(sb);
return(result);
}
开发者ID:berkus,项目名称:moto,代码行数:33,代码来源:tnfa.c
示例7: osfy_image_callback
static int osfy_image_callback(CHANNEL *ch, unsigned char *payload, unsigned short len) {
struct image_ctx *image_ctx = (struct image_ctx *)ch->private;
switch(ch->state) {
case CHANNEL_DATA:
buf_append_data(image_ctx->image->data, payload, len);
break;
case CHANNEL_ERROR:
DSFYDEBUG("Got a channel ERROR, retrying within %d seconds\n", IMAGE_RETRY_TIMEOUT);
buf_free(image_ctx->image->data);
image_ctx->image->data = NULL;
/* Reset timeout so the request can be retried */
image_ctx->req->next_timeout = get_millisecs() + IMAGE_RETRY_TIMEOUT*1000;
break;
case CHANNEL_END:
/* We simply assume we're always getting a JPEG image back */
image_ctx->image->format = SP_IMAGE_FORMAT_JPEG;
image_ctx->image->is_loaded = 1;
image_ctx->image->error = SP_ERROR_OK;
request_set_result(image_ctx->session, image_ctx->req, SP_ERROR_OK, image_ctx->image);
free(image_ctx);
break;
default:
break;
}
return 0;
}
开发者ID:noahwilliamsson,项目名称:openspotify,代码行数:35,代码来源:sp_image.c
示例8: readhostkey
/* returns success or failure, and the keytype in *type. If we want
* to restrict the type, type can contain a type to return */
int readhostkey(const char * filename, sign_key * hostkey, int *type) {
int ret = DROPBEAR_FAILURE;
buffer *buf;
buf = buf_new(MAX_PRIVKEY_SIZE);
if (buf_readfile(buf, filename) == DROPBEAR_FAILURE) {
goto out;
}
buf_setpos(buf, 0);
addrandom(buf_getptr(buf, buf->len), buf->len);
if (buf_get_priv_key(buf, hostkey, type) == DROPBEAR_FAILURE) {
goto out;
}
ret = DROPBEAR_SUCCESS;
out:
buf_burn(buf);
buf_free(buf);
return ret;
}
开发者ID:BBBSnowball,项目名称:mehari,代码行数:27,代码来源:common-runopts.c
示例9: test_task
void test_task ()
{
buf_t *p;
for (;;) {
/* Check received data. */
p = netif_input (ð.netif);
if (p) {
if (memcmp (p->payload, data_pattern, packet_size) != 0)
printf (&debug, "\npacket #%ld: data error\n",
eth.netif.in_packets);
buf_free (p);
continue;
}
/* Send packets - make transmit queue full. */
if (run_test_flag) {
p = buf_alloc (&pool, packet_size, 16);
if (p) {
memcpy (p->payload, data_pattern, packet_size);
netif_output (ð.netif, p, 0, 0);
}
}
k5600bg1_poll (ð);
}
}
开发者ID:Kvasshtain,项目名称:uos-embedded,代码行数:25,代码来源:test-eth.c
示例10: test_proto_control0
static void
test_proto_control0(void *arg)
{
(void)arg;
buf_t *buf = buf_new();
/* The only remaining function for the v0 control protocol is the function
that detects whether the user has stumbled across an old controller
that's using it. The format was:
u16 length;
u16 command;
u8 body[length];
*/
/* Empty buffer -- nothing to do. */
tt_int_op(0, OP_EQ, peek_buf_has_control0_command(buf));
/* 3 chars in buf -- can't tell */
buf_add(buf, "AUT", 3);
tt_int_op(0, OP_EQ, peek_buf_has_control0_command(buf));
/* command in buf -- easy to tell */
buf_add(buf, "HENTICATE ", 10);
tt_int_op(0, OP_EQ, peek_buf_has_control0_command(buf));
/* Control0 command header in buf: make sure we detect it. */
buf_clear(buf);
buf_add(buf, "\x09\x05" "\x00\x05" "blah", 8);
tt_int_op(1, OP_EQ, peek_buf_has_control0_command(buf));
done:
buf_free(buf);
}
开发者ID:jfrazelle,项目名称:tor,代码行数:31,代码来源:test_proto_misc.c
示例11: config_getstring
static Xapian::Stopper *get_stopper()
{
Xapian::Stopper *stopper = NULL;
const char *swpath = config_getstring(IMAPOPT_SEARCH_STOPWORD_PATH);
if (swpath) {
// Set path to stopword file
struct buf buf = BUF_INITIALIZER;
buf_setcstr(&buf, swpath);
// XXX doesn't play nice with WIN32 paths
buf_appendcstr(&buf, "/english.list");
// Open the stopword file
errno = 0;
std::ifstream inFile (buf_cstring(&buf));
if (inFile.fail()) {
syslog(LOG_ERR, "Xapian: could not open stopword file %s: %s",
buf_cstring(&buf), errno ? strerror(errno) : "unknown error");
exit(1);
}
// Create the Xapian stopper
stopper = new Xapian::SimpleStopper(
std::istream_iterator<std::string>(inFile),
std::istream_iterator<std::string>());
// Clean up
buf_free(&buf);
}
return stopper;
}
开发者ID:rsto,项目名称:cyrus-imapd,代码行数:31,代码来源:xapian_wrap.cpp
示例12: http_reply_need_auth
static int http_reply_need_auth (RESTSESSION * r)
{
struct buf *b;
int ret;
char buf[256];
b = buf_new();
strcpy (buf, "HTTP/1.1 401\r\n");
buf_append_data (b, buf, strlen (buf));
strcpy (buf, "WWW-Authenticate: Basic realm=\"Spotify\"\r\n");
buf_append_data (b, buf, strlen (buf));
buf_append_data (b, content_type, strlen (content_type));
buf_append_data (b, connection_close, strlen (connection_close));
strcpy (buf, "Content-Length: 0\r\n");
buf_append_data (b, buf, strlen (buf));
buf_append_data (b, "\r\n", 2);
ret = 0;
if (send (r->socket, b->ptr, b->len, 0) != b->len)
ret = -1;
buf_free (b);
http_cleanup (r);
return ret;
}
开发者ID:Voxar,项目名称:spot,代码行数:26,代码来源:gw-http.c
示例13: receive_hdlc
buf_t *
receive_hdlc (hdlc_t *c, buf_t *p)
{
debug_printf ("serial: received %d bytes\n", p->tot_len);
buf_free (p);
return 0;
}
开发者ID:Kvasshtain,项目名称:uos-embedded,代码行数:7,代码来源:test_telnetd.c
示例14: buf_alloc
static struct oc_text_buf *get_qs(char **str)
{
struct oc_text_buf *res;
int escaped = 0;
char *p = *str;
if (*p != '\"')
return NULL;
res = buf_alloc();
while (*++p) {
if (!escaped && *p == '\"') {
*str = p+1;
if (buf_error(res))
break;
return res;
}
if (escaped)
escaped = 0;
else if (*p == '\\')
escaped = 1;
buf_append_bytes(res, p, 1);
}
buf_free(res);
return NULL;
}
开发者ID:atyndall,项目名称:openconnect,代码行数:27,代码来源:digest.c
示例15: emulator_clear
void emulator_clear(struct emulator *emu)
{
mem_prog_clear(&emu->mem);
buf_free(&emu->infd);
free(emu->backup_text.data);
free(emu->backup_data.data);
}
开发者ID:DSMan195276,项目名称:cmips,代码行数:7,代码来源:mips.c
示例16: buf_load
/*
* buf_load()
*
* Open the file specified by <path> and load all of its contents into a
* buffer.
* Returns the loaded buffer on success.
*/
BUF *
buf_load(const char *path, u_int flags)
{
int fd;
ssize_t ret;
size_t len;
u_char *bp;
struct stat st;
BUF *buf;
if ((fd = open(path, O_RDONLY, 0600)) == -1) {
warn("%s", path);
return (NULL);
}
if (fstat(fd, &st) == -1)
err(1, "%s", path);
buf = buf_alloc((size_t)st.st_size, flags);
for (bp = buf->cb_cur; ; bp += (size_t)ret) {
len = SIZE_LEFT(buf);
ret = read(fd, bp, len);
if (ret == -1) {
buf_free(buf);
err(1, "buf_load");
} else if (ret == 0)
break;
buf->cb_len += (size_t)ret;
}
(void)close(fd);
return (buf);
}
开发者ID:jpouellet,项目名称:Unworkable,代码行数:42,代码来源:buf.c
示例17: case_buf_len
void
case_buf_len()
{
struct buf *buf = buf("abcdef");
assert(buf_len(buf) == 6);
buf_free(buf);
}
开发者ID:codemaniac,项目名称:Daily-C-Snip,代码行数:7,代码来源:buf_test.c
示例18: readhostkey
/* returns success or failure */
static int readhostkey(const char * filename, sign_key * hostkey, int type) {
int ret = DROPBEAR_FAILURE;
int i;
buffer *buf;
buf = buf_new(2000);
if (buf_readfile(buf, filename) == DROPBEAR_FAILURE) {
goto out;
}
buf_setpos(buf, 0);
if (buf_get_priv_key(buf, hostkey, type) == DROPBEAR_FAILURE) {
goto out;
}
ret = DROPBEAR_SUCCESS;
out:
if (ret == DROPBEAR_FAILURE) {
for (i = 0; sshhostkey[i].name != NULL; i++) {
if (sshhostkey[i].val == type) {
sshhostkey[i].usable = 0;
break;
}
}
fprintf(stderr, "Failed reading '%s', disabling %s\n", filename,
type == DROPBEAR_SIGNKEY_DSS ? "DSS" : "RSA");
}
buf_burn(buf);
buf_free(buf);
return ret;
}
开发者ID:zipangotes,项目名称:DSL-G624T_GPL_code,代码行数:34,代码来源:runopts.c
示例19: import_get_rcsdiff
static BUF *
import_get_rcsdiff(struct cvs_file *cf, RCSNUM *rev)
{
char *p1, *p2;
BUF *b1, *b2;
int fd1, fd2;
b2 = buf_alloc(128);
b1 = buf_load_fd(cf->fd);
(void)xasprintf(&p1, "%s/diff1.XXXXXXXXXX", cvs_tmpdir);
fd1 = buf_write_stmp(b1, p1, NULL);
buf_free(b1);
(void)xasprintf(&p2, "%s/diff2.XXXXXXXXXX", cvs_tmpdir);
fd2 = rcs_rev_write_stmp(cf->file_rcs, rev, p2, RCS_KWEXP_NONE);
diff_format = D_RCSDIFF;
if (diffreg(p2, p1, fd2, fd1, b2, D_FORCEASCII) == D_ERROR)
fatal("import_get_rcsdiff: failed to get RCS patch");
close(fd1);
close(fd2);
(void)unlink(p1);
(void)unlink(p2);
xfree(p1);
xfree(p2);
return (b2);
}
开发者ID:UNGLinux,项目名称:Obase,代码行数:33,代码来源:import.c
示例20: pgp_rkeylist
int pgp_rkeylist(REMAILER remailer[], int keyid[], int n)
/* Step through all remailers and get keyid */
{
BUFFER *userid;
BUFFER *id;
int i, err;
userid = buf_new();
id = buf_new();
for (i = 1; i < n; i++) {
buf_clear(userid);
buf_setf(userid, "<%s>", remailer[i].addr);
keyid[i]=0;
if (remailer[i].flags.pgp) {
buf_clear(id);
err = pgpdb_getkey(PK_VERIFY, PGP_ANY, NULL, NULL, NULL, NULL, userid, NULL, id, NULL, NULL);
if (id->length == 8) {
/* printf("%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x %s\n",
id->data[0], id->data[1], id->data[2], id->data[3], id->data[4], id->data[5], id->data[6], id->data[7], id->data[8], remailer[i].addr); */
keyid[i] = (((((id->data[4] << 8) + id->data[5]) << 8) + id->data[6]) << 8) + id->data[7];
}
}
}
buf_free(userid);
return (0);
}
开发者ID:merkinmuffley,项目名称:mixmaster4096,代码行数:29,代码来源:pgpdb.c
注:本文中的buf_free函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论