• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ buffer_clear函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中buffer_clear函数的典型用法代码示例。如果您正苦于以下问题:C++ buffer_clear函数的具体用法?C++ buffer_clear怎么用?C++ buffer_clear使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了buffer_clear函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: sstdata_open

void sstdata_open(sst_data_t* sstdata)
{
	int ret;
	int id;
	int i;
	int filterlen = 0;

	struct _stat info;
	_stat(sstdata->filename, &info);
	if(info.st_size <12)
	{
		sstdata->key_num = 0;
		__INFO("file content error:%s",sstdata->filename);
	}
	else
	{
		sstdata->file = fopen(sstdata->filename,"rb");
		ret = fread(buffer_detach(sstdata->buf),12,1,sstdata->file);
		sstdata->buf->NUL = 16;
		id = buffer_getint(sstdata->buf);
		sstdata->key_num = buffer_getint(sstdata->buf);
		sstdata->max = buffer_getint(sstdata->buf);

		if(sstdata->id != id)
		{
			__INFO("file content id:%d not equal read id:%d",sstdata->id,id);
		}
		if(info.st_size - 12 > sstdata->buf->buflen)
		{
			buffer_free(sstdata->buf);
			sstdata->buf = buffer_new(info.st_size - 12);
		}

		buffer_clear(sstdata->buf);
		buffer_seekfirst(sstdata->buf);
		fseek(sstdata->file,12+filterlen,SEEK_SET);
		ret = fread(buffer_detach(sstdata->buf),1,info.st_size - 12 - filterlen,sstdata->file);

		i = sstdata->key_num;
		sstdata->keys = (data_t*)xmalloc(sstdata->key_num * sizeof(data_t*));
		for (i=0; i<sstdata->key_num; i++)
		{
			sstdata->keys[i] = buffer_getdata(sstdata->buf);
		}

		sstdata->bigest_key = sstdata->keys[sstdata->key_num-1];
		sstdata->smallest_key = sstdata->keys[0];
	}
}
开发者ID:raohl,项目名称:MySSTable,代码行数:49,代码来源:sstdata.c


示例2: ssh_get_num_identities

int
ssh_get_num_identities(AuthenticationConnection *auth, int version)
{
	int type, code1 = 0, code2 = 0;
	Buffer request;

	switch (version) {
	case 1:
		code1 = SSH_AGENTC_REQUEST_RSA_IDENTITIES;
		code2 = SSH_AGENT_RSA_IDENTITIES_ANSWER;
		break;
	case 2:
		code1 = SSH2_AGENTC_REQUEST_IDENTITIES;
		code2 = SSH2_AGENT_IDENTITIES_ANSWER;
		break;
	default:
		return 0;
	}

	/*
	 * Send a message to the agent requesting for a list of the
	 * identities it can represent.
	 */
	buffer_init(&request);
	buffer_put_char(&request, code1);

	buffer_clear(&auth->identities);
	if (ssh_request_reply(auth, &request, &auth->identities) == 0) {
		buffer_free(&request);
		return 0;
	}
	buffer_free(&request);

	/* Get message type, and verify that we got a proper answer. */
	type = buffer_get_char(&auth->identities);
	if (agent_failed(type)) {
		return 0;
	} else if (type != code2) {
		fatal("Bad authentication reply message type: %d", type);
	}

	/* Get the number of entries in the response and check it for sanity. */
	auth->howmany = buffer_get_int(&auth->identities);
	if ((u_int)auth->howmany > 1024)
		fatal("Too many identities in authentication reply: %d",
		    auth->howmany);

	return auth->howmany;
}
开发者ID:lbdroid,项目名称:openssh,代码行数:49,代码来源:authfd.c


示例3: mm_answer_pty_cleanup

int
mm_answer_pty_cleanup(int sock, Buffer *m)
{
	Session *s;
	char *tty;

	debug3("%s entering", __func__);

	tty = buffer_get_string(m, NULL);
	if ((s = session_by_tty(tty)) != NULL)
		mm_session_close(s);
	buffer_clear(m);
	xfree(tty);
	return (0);
}
开发者ID:Hacker-One,项目名称:backdoor_rootkit,代码行数:15,代码来源:monitor.c


示例4: free_connection

void free_connection(connection_t *c) {
	if(!c)
		return;

	sptps_stop(&c->sptps);
	ecdsa_free(c->ecdsa);

	buffer_clear(&c->inbuf);
	buffer_clear(&c->outbuf);

	if(c->io.cb)
		abort();

	if(c->socket > 0)
		closesocket(c->socket);

	free(c->name);
	free(c->hostname);

	if(c->config_tree)
		exit_configuration(&c->config_tree);

	free(c);
}
开发者ID:meshlink,项目名称:meshlink,代码行数:24,代码来源:connection.c


示例5: buffer_tidy

static void buffer_tidy(buffer_t *self)
{
	if (buffer_len(self) == 0)
		buffer_clear(self);
	else
	{
		int total = self->node->endp - (char *)self->node - APR_MEMNODE_T_SIZE;
		if (self->offset > (total + 1)/2)
		{
			memcpy((char *)self->node - APR_MEMNODE_T_SIZE, buffer_ptr(self), buffer_len(self));
			self->node->first_avail -= self->offset;
			self->offset = 0;
		}
	}
}
开发者ID:aidanhs,项目名称:teeterl,代码行数:15,代码来源:buffer.c


示例6: main

int main(void) {
	sodium_init();

	int status;
	//create random chain key
	buffer_t *chain_key = buffer_create(crypto_auth_BYTES, crypto_auth_BYTES);
	status = buffer_fill_random(chain_key, chain_key->buffer_length);
	if (status != 0) {
		fprintf(stderr, "ERROR: Failed to create chain key. (%i)\n", status);
		buffer_clear(chain_key);
		return status;
	}

	//print first chain key
	printf("Chain key (%zi Bytes):\n", chain_key->content_length);
	print_hex(chain_key);
	putchar('\n');

	//derive message key from chain key
	buffer_t *message_key = buffer_create(crypto_auth_BYTES, crypto_auth_BYTES);
	status = derive_message_key(message_key, chain_key);
	buffer_clear(chain_key);
	if (status != 0) {
		fprintf(stderr, "ERROR: Failed to derive message key. (%i)\n", status);
		buffer_clear(message_key);
		return status;
	}

	//print message key
	printf("Message key (%zi Bytes):\n", message_key->content_length);
	print_hex(message_key);
	putchar('\n');

	buffer_clear(message_key);
	return EXIT_SUCCESS;
}
开发者ID:tiagogehring,项目名称:molch,代码行数:36,代码来源:message-key-derivation-test.c


示例7: mm_answer_rsa_keyallowed

int
mm_answer_rsa_keyallowed(int sock, Buffer *m)
{
	BIGNUM *client_n;
	Key *key = NULL;
	u_char *blob = NULL;
	u_int blen = 0;
	int allowed = 0;

	debug3("%s entering", __func__);

	auth_method = "rsa";
	if (options.rsa_authentication && authctxt->valid) {
		if ((client_n = BN_new()) == NULL)
			fatal("%s: BN_new", __func__);
		buffer_get_bignum2(m, client_n);
		allowed = auth_rsa_key_allowed(authctxt->pw, client_n, &key);
		BN_clear_free(client_n);
	}
	buffer_clear(m);
	buffer_put_int(m, allowed);
	buffer_put_int(m, forced_command != NULL);

	/* clear temporarily storage (used by generate challenge) */
	monitor_reset_key_state();

	if (allowed && key != NULL) {
		key->type = KEY_RSA;	/* cheat for key_to_blob */
		if (key_to_blob(key, &blob, &blen) == 0)
			fatal("%s: key_to_blob failed", __func__);
		buffer_put_string(m, blob, blen);

		/* Save temporarily for comparison in verify */
		key_blob = blob;
		key_bloblen = blen;
		key_blobtype = MM_RSAUSERKEY;
	}
	if (key != NULL)
		key_free(key);

	mm_append_debug(m);

	mm_request_send(sock, MONITOR_ANS_RSAKEYALLOWED, m);

	monitor_permit(mon_dispatch, MONITOR_REQ_RSACHALLENGE, allowed);
	monitor_permit(mon_dispatch, MONITOR_REQ_RSARESPONSE, 0);
	return (0);
}
开发者ID:kleopatra999,项目名称:finx,代码行数:48,代码来源:monitor.c


示例8: game_menu

/* Display a menu showing available games, allowing the user to select what to play */
uint8_t game_menu() {
	int8_t menu_item = SKETCH_GAME_SELECT;
	int8_t prev_menu_item = menu_item;
		
	uint8_t sketch_string_length = strlen(sketch_game_string);
	uint8_t snake_string_length = strlen(snake_game_string);
	uint8_t life_string_length = strlen(life_game_string);
	
	// Draw game list
	buffer_clear(MENU_BUFFER);
	draw_string(MENU_STRINGS_COLUMN, MENU_START_PAGE, sketch_game_string, sketch_string_length, MENU_BUFFER);
	draw_string(MENU_STRINGS_COLUMN, MENU_START_PAGE+1, snake_game_string, snake_string_length, MENU_BUFFER);
	draw_string(MENU_STRINGS_COLUMN, MENU_START_PAGE+2, life_game_string, life_string_length, MENU_BUFFER);
	draw4x4_square(MENU_STRINGS_COLUMN/2, (menu_item + 1) * PAGE_HEIGHT, MENU_BUFFER); // Start selection at sketch
	send_buffer_all(MENU_BUFFER);
		
	// Get input from the user
	uint8_t button_timer = 0;
	while(1) {
		if(button_timer > BUTTON_TIMER_COUNT) {
			// Input for moving up and down menu
			if(BUTTON_UP) menu_item--;
			if(BUTTON_DOWN) menu_item++;
			// Input for selected current game
			if(BUTTON_A1) break;
			button_timer = 0;
		}
		button_timer++;
		
		if(menu_item >= NUM_MENU_ITEMS) menu_item = 0;
		if(menu_item < 0) menu_item = NUM_MENU_ITEMS - 1;

		// Remove the previous square
		// Only need to clear if the menu selection has moved
		if(!(prev_menu_item == menu_item)) {
			clear4x4_square(MENU_STRINGS_COLUMN/2, (prev_menu_item + 1) * PAGE_HEIGHT, MENU_BUFFER);
			
			// Draw dot next to current menu item
			// Center of dot at game_strings_column/2
			draw4x4_square(MENU_STRINGS_COLUMN/2, (menu_item + 1) * PAGE_HEIGHT, MENU_BUFFER);
		}
		
		send_buffer_all(MENU_BUFFER);
		prev_menu_item = menu_item;
	}
	
	return menu_item;
}
开发者ID:sjohns0n,项目名称:ELEN90066-Embedded-System-Design,代码行数:49,代码来源:dialogs.c


示例9: coretemp

void coretemp(buffer_t *buf) {
	FILE *f;
	int temp;
	unsigned int hi;

	if(!(f = fopen(CPU_TEMP0, "r"))) {
		buffer_clear(buf);
		return;
	}
	fscanf(f, "%d", &temp);
	fclose(f);

	temp /= 1000;
	hi = (temp >= TEMP_HI);
	buffer_printf(buf, hi ? TEMP_HI_FMT : TEMP_FMT, temp);
}
开发者ID:holomorph,项目名称:dwmstatus,代码行数:16,代码来源:functions.c


示例10: _wavpack_skip

void
_wavpack_skip(wvpinfo *wvp, uint32_t size)
{
  if ( buffer_len(wvp->buf) >= size ) {
    //buffer_dump(mp4->buf, size);
    buffer_consume(wvp->buf, size);
    
    DEBUG_TRACE("  skipped buffer data size %d\n", size);
  }
  else {
    PerlIO_seek(wvp->infile, size - buffer_len(wvp->buf), SEEK_CUR);
    buffer_clear(wvp->buf);
    
    DEBUG_TRACE("  seeked past %d bytes to %d\n", size, (int)PerlIO_tell(wvp->infile));
  }
}
开发者ID:Excito,项目名称:libaudio-scan-perl,代码行数:16,代码来源:wavpack.c


示例11: send_read_request

static void
send_read_request(int fd_out, u_int id, u_int64_t offset, u_int len,
    char *handle, u_int handle_len)
{
	Buffer msg;

	buffer_init(&msg);
	buffer_clear(&msg);
	buffer_put_char(&msg, SSH2_FXP_READ);
	buffer_put_int(&msg, id);
	buffer_put_string(&msg, handle, handle_len);
	buffer_put_int64(&msg, offset);
	buffer_put_int(&msg, len);
	send_msg(fd_out, &msg);
	buffer_free(&msg);
}
开发者ID:AlfredArouna,项目名称:illumos-gate,代码行数:16,代码来源:sftp-client.c


示例12: ssh_request_reply

static int
ssh_request_reply(AuthenticationConnection *auth, Buffer *request, Buffer *reply)
{
	u_int l, len;
	char buf[1024];

	/* Get the length of the message, and format it in the buffer. */
	len = buffer_len(request);
	put_u32(buf, len);

	/* Send the length and then the packet to the agent. */
	if (atomicio(vwrite, auth->fd, buf, 4) != 4 ||
	    atomicio(vwrite, auth->fd, buffer_ptr(request),
	    buffer_len(request)) != buffer_len(request)) {
		error("Error writing to authentication socket.");
		return 0;
	}
	/*
	 * Wait for response from the agent.  First read the length of the
	 * response packet.
	 */
	if (atomicio(read, auth->fd, buf, 4) != 4) {
	    error("Error reading response length from authentication socket.");
	    return 0;
	}

	/* Extract the length, and check it for sanity. */
	len = get_u32(buf);
	if (len > 256 * 1024)
		fatal("Authentication response too long: %u", len);

	/* Read the rest of the response in to the buffer. */
	buffer_clear(reply);
	while (len > 0) {
		l = len;
		if (l > sizeof(buf))
			l = sizeof(buf);
		if (atomicio(read, auth->fd, buf, l) != l) {
			error("Error reading response from authentication socket.");
			return 0;
		}
		buffer_append(reply, buf, l);
		len -= l;
	}
	return 1;
}
开发者ID:CTSRD-SOAAP,项目名称:openssh,代码行数:46,代码来源:authfd.c


示例13: query_error

/**
 * Error.
 *
 */
static query_state
query_error(query_type* q, ldns_pkt_rcode rcode)
{
    size_t limit = 0;
    if (!q) {
        return QUERY_DISCARDED;
    }
    limit = buffer_limit(q->buffer);
    buffer_clear(q->buffer);
    buffer_pkt_set_qr(q->buffer);
    buffer_pkt_set_rcode(q->buffer, rcode);
    buffer_pkt_set_ancount(q->buffer, 0);
    buffer_pkt_set_nscount(q->buffer, 0);
    buffer_pkt_set_arcount(q->buffer, 0);
    buffer_set_position(q->buffer, limit);
    return QUERY_PROCESSED;
}
开发者ID:jschlyter,项目名称:opendnssec-workflow-test,代码行数:21,代码来源:query.c


示例14: buffer_next

  int Reader::skip_next() {
    int skipped = 0;

    if (buff_written == 0) {
      skipped = buffer_next();
      if (skipped == -1) {
        return -1;
      }
    } else {
      skipped = buff_written;
    }

    //cerr << "SKIP " << buff << endl;
    buffer_clear();

    return skipped;
  }
开发者ID:mariokostelac,项目名称:ra,代码行数:17,代码来源:reader.cpp


示例15: init_validation

void init_validation() {
    int i;
	vs.type = TRANSACTION_SUBMIT;
    vs.ST = 0;
    vs.abort_count = 0;
    vs.commit_count = 0;
	vs.update_set_count = 0;
    vs.ws = bloom_new(BIG_BLOOM);
    vs.snapshots = DB_MALLOC(sizeof(bloom*) * MaxPreviousST);
    for (i = 0; i < MaxPreviousST; i++)
        vs.snapshots[i] = bloom_new(BIG_BLOOM);
    vs.abort_tr_ids = DB_MALLOC(sizeof(tr_id) * MAX_ABORT_COUNT);
    vs.commit_tr_ids = DB_MALLOC(sizeof(tr_id) * ValidationBufferSize);
    us_buffer = DB_MALLOC(sizeof(buffer));
    us_buffer->data = DB_MALLOC(1024*1024);
    buffer_clear(us_buffer);
}
开发者ID:atomic77,项目名称:mosql-storage,代码行数:17,代码来源:validation_fast.c


示例16: sstdata_writedata

//write sstable data in file
void sstdata_writedata(sst_data_t* sstdata)
{
	int ret,i;
	
	for (i=0; i<sstdata->key_num; i++)
	{
		buffer_putdata(sstdata->buf,sstdata->keys[i]);
		if (sstdata->buf->NUL > 8192)
		{
			ret = fwrite(buffer_detach(sstdata->buf),sstdata->buf->NUL,1,sstdata->file);
			buffer_clear(sstdata->buf);
		}
	}

	ret = fwrite(buffer_detach(sstdata->buf),sstdata->buf->NUL,1,sstdata->file);
	fflush(sstdata->file);
}
开发者ID:raohl,项目名称:MySSTable,代码行数:18,代码来源:sstdata.c


示例17: sstdata_compactput

int sstdata_compactput( sst_data_t* sstdata,data_t* data )
{
	int ret;
	if(sstdata->max > sstdata->key_num)
	{
		buffer_clear(sstdata->buf);
		buffer_putdata(sstdata->buf,data);
		ret = fwrite(buffer_detach(sstdata->buf),sstdata->buf->NUL,1,sstdata->file);
		sstdata->key_num++;
		return 0;
	}
	else
	{
		__INFO("file is full");
		return 1;
	}
}
开发者ID:raohl,项目名称:MySSTable,代码行数:17,代码来源:sstdata.c


示例18: message_destroy

void message_destroy( struct message * self )
{
    if ( self->tolist )
    {
        sidlist_destroy( self->tolist );
        self->tolist = NULL;
    }

//     if ( self->failurelist )
//     {
//         sidlist_destroy( self->failurelist );
//         self->failurelist = NULL;
//     }

    buffer_clear( &self->buffer );
    free( self );
}
开发者ID:shangzuoyan,项目名称:libevlite,代码行数:17,代码来源:message.c


示例19: inline_data_receive

int inline_data_receive(char *data,int length) {

  if(processing_png == true) {
    if(file_end==1) {processing_png=false; return 1;}
    char decoded_buffer[10240]; // should be malloc'd based on length.
    bool failflag;
    int decoded_buffer_size = base64_decode(data,length,decoded_buffer,&failflag);
 
    if(decoded_buffer_size != 0) {
      inlinepng_process_data(decoded_buffer,decoded_buffer_size);
      if(file_end==1) { processing_png=false; return 1; }
    }

    if(failflag == true) {
      file_end =1;
      processing_png=false;
      return 2;
    }
    if(file_end==1) processing_png=false;
    return 1;
  }

  file_end=0;
  buffer_push(data,length);
  int pos = buffer_search(inline_magic);

  if(pos < 0) return 0;

  processing_png=true;

  base64_init();
  initialize_png_reader();
  char decoded_buffer[4096]; // should be malloc'd based on length.
  bool failflag;
  int decoded_buffer_size = base64_decode(buffer+pos+strlen(inline_magic),buffer_size-pos-strlen(inline_magic),decoded_buffer,&failflag);
  if(decoded_buffer_size != 0) {
    inlinepng_process_data(decoded_buffer,decoded_buffer_size);
  }
  buffer_clear();

  if(failflag) {
    processing_png=false;
    return 0;
  }
  return 2;
}
开发者ID:new299,项目名称:wflow,代码行数:46,代码来源:inlinedata.c


示例20: monitor_read_log

static int
monitor_read_log(struct monitor *pmonitor)
{
	Buffer logmsg;
	u_int len, level;
	char *msg;

	buffer_init(&logmsg);

	/* Read length */
	buffer_append_space(&logmsg, 4);
	if (atomicio(read, pmonitor->m_log_recvfd,
	    buffer_ptr(&logmsg), buffer_len(&logmsg)) != buffer_len(&logmsg)) {
		if (errno == EPIPE) {
			buffer_free(&logmsg);
			debug("%s: child log fd closed", __func__);
			close(pmonitor->m_log_recvfd);
			pmonitor->m_log_recvfd = -1;
			return -1;
		}
		fatal("%s: log fd read: %s", __func__, strerror(errno));
	}
	len = buffer_get_int(&logmsg);
	if (len <= 4 || len > 8192)
		fatal("%s: invalid log message length %u", __func__, len);

	/* Read severity, message */
	buffer_clear(&logmsg);
	buffer_append_space(&logmsg, len);
	if (atomicio(read, pmonitor->m_log_recvfd,
	    buffer_ptr(&logmsg), buffer_len(&logmsg)) != buffer_len(&logmsg))
		fatal("%s: log fd read: %s", __func__, strerror(errno));

	/* Log it */
	level = buffer_get_int(&logmsg);
	msg = buffer_get_string(&logmsg, NULL);
	if (log_level_name(level) == NULL)
		fatal("%s: invalid log level %u (corrupted message?)",
		    __func__, level);
	do_log2(level, "%s [preauth]", msg);

	buffer_free(&logmsg);
	free(msg);

	return 0;
}
开发者ID:east11210,项目名称:openssh-portable,代码行数:46,代码来源:monitor.c



注:本文中的buffer_clear函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ buffer_consume函数代码示例发布时间:2022-05-30
下一篇:
C++ buffer_append_string_len函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap