本文整理汇总了C++中buf_free函数的典型用法代码示例。如果您正苦于以下问题:C++ buf_free函数的具体用法?C++ buf_free怎么用?C++ buf_free使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了buf_free函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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);
}
示例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);
}
示例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);
}
示例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");
}
示例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;
}
示例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);
}
示例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;
}
示例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;
}
示例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 (ð);
}
}
示例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);
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例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);
}