示例#1
0
static size_t
write_mem_cb(void *contents, size_t size, size_t nmemb, void *userp)
{
	size_t		realsize = size * nmemb;
	struct		memdesc *mem = (struct memdesc *)userp;

	mem->memory = e_realloc(mem->memory, mem->size + realsize + 1);
	memcpy(&(mem->memory[mem->size]), contents, realsize);
	mem->size += realsize;
	mem->memory[mem->size] = 0;

	return (realsize);
}
示例#2
0
static void
add_to_buf( request *reqP, char* str, size_t len )
{ 
  char** bufP = &(reqP->buf);
  size_t* bufsizeP = &(reqP->buf_size);
  size_t* buflenP = &(reqP->buf_len);
  
  if ( *bufsizeP == 0 )
  {
    *bufsizeP = len + 100;
    *buflenP = 0;
    *bufP = (char*) e_malloc( *bufsizeP );
  }
  else if ( *buflenP + len >= *bufsizeP )
  {
    *bufsizeP = *buflenP + len + 100;
    *bufP = (char*) e_realloc( (void*) *bufP, *bufsizeP );
  }
  (void) memmove( &((*bufP)[*buflenP]), str, len );
  *buflenP += len;
  (*bufP)[*buflenP] = '\0';
}