Esempio n. 1
0
httppacket *httppacket_new()
{
	httppacket *p = calloc(1,sizeof(*p));
	cast(packet*,p)->type = HTTPPACKET;
	p->method     = -1;
	cast(packet*,p)->dctor = httppacket_dctor;
	INIT_CONSTROUCTOR(p);
	return p;		
}
Esempio n. 2
0
static packet *rawpacket_clone(packet *p)
{
	rawpacket *raw = calloc(1,sizeof(*raw));
	cast(packet*,raw)->type = RAWPACKET;
	cast(packet*,raw)->head = p->head;
	cast(packet*,raw)->spos = p->spos;
	refobj_inc(cast(refobj*,p->head));
	cast(packet*,raw)->len_packet = p->len_packet;
	INIT_CONSTROUCTOR(raw);
	return cast(packet*,raw);	
}
Esempio n. 3
0
//will add reference count of b
rawpacket *rawpacket_new_by_buffer(bytebuffer *b,uint32_t spos)
{
	rawpacket *raw = calloc(1,sizeof(*raw));
	cast(packet*,raw)->type = RAWPACKET;
	cast(packet*,raw)->head = b;
	cast(packet*,raw)->spos = spos;
	refobj_inc(cast(refobj*,b));
	cast(packet*,raw)->len_packet = b->size - spos;
	buffer_writer_init(&raw->writer,b,b->size);
	INIT_CONSTROUCTOR(raw);
	return raw;		
}
Esempio n. 4
0
static packet*
rawpacket_clone(packet *p)
{
	rawpacket *raw = (rawpacket*)CALLOC(g_rawpk_allocator,1,sizeof(*raw));
	((packet*)raw)->type = RAWPACKET;
	((packet*)raw)->head = p->head;
	((packet*)raw)->spos = p->spos;
	refobj_inc((refobj*)p->head);
	((packet*)raw)->len_packet = p->len_packet;
	//buffer_writer_init(&raw->writer,p->head,p->len_packet);
	INIT_CONSTROUCTOR(raw);
	return (packet*)raw;	
}
Esempio n. 5
0
//will add reference count of b
rawpacket*
rawpacket_new_by_buffer(bytebuffer *b,uint32_t spos)
{
	rawpacket *raw = (rawpacket*)CALLOC(g_rawpk_allocator,1,sizeof(*raw));
	((packet*)raw)->type = RAWPACKET;
	((packet*)raw)->head = b;
	((packet*)raw)->spos = spos;
	refobj_inc((refobj*)b);
	((packet*)raw)->len_packet = b->size - spos;
	buffer_writer_init(&raw->writer,b,b->size);
	INIT_CONSTROUCTOR(raw);
	return raw;		
}
Esempio n. 6
0
rawpacket*
rawpacket_new(uint32_t size)
{
	size = size_of_pow2(size);
    if(size < MIN_BUFFER_SIZE) size = MIN_BUFFER_SIZE;
    bytebuffer *b = bytebuffer_new(size);
	rawpacket *raw = (rawpacket*)CALLOC(g_rawpk_allocator,1,sizeof(*raw));
	((packet*)raw)->type = RAWPACKET;
	((packet*)raw)->head = b;
	buffer_writer_init(&raw->writer,b,0);
	INIT_CONSTROUCTOR(raw);
	return raw;
}
Esempio n. 7
0
rawpacket *rawpacket_new(uint32_t size)
{
	bytebuffer *b;
	rawpacket  *raw;
	size = size_of_pow2(size);
    if(size < MIN_BUFFER_SIZE) size = MIN_BUFFER_SIZE;
    b = bytebuffer_new(size);
	raw = calloc(1,sizeof(*raw));
	cast(packet*,raw)->type = RAWPACKET;
	cast(packet*,raw)->head = b;
	buffer_writer_init(&raw->writer,b,0);
	INIT_CONSTROUCTOR(raw);
	return raw;
}
Esempio n. 8
0
packet*
rpacket_makewrite(packet *p)
{
	if(p->type == RPACKET){
		wpacket *w = (wpacket*)CALLOC(g_wpk_allocator,1,sizeof(*w));	
		((packet*)w)->type = WPACKET;
		((packet*)w)->head = p->head;
		refobj_inc((refobj*)p->head);		
		((packet*)w)->spos = p->spos;
		((packet*)w)->len_packet = p->len_packet;		
		INIT_CONSTROUCTOR(w);		
		return (packet*)w;		
	}else
		return NULL;
}
Esempio n. 9
0
packet*
wpacket_makeread(packet *p)
{
	if(p->type == WPACKET){
		rpacket *r = rpacket_new(NULL,0);
		((packet*)r)->head = p->head;
		refobj_inc((refobj*)p->head);
		((packet*)r)->spos = p->spos;
		buffer_reader_init(&r->reader,p->head,p->spos + SIZE_HEAD);
		((packet*)r)->len_packet = p->len_packet;
		r->data_remain = p->len_packet - SIZE_HEAD;
		INIT_CONSTROUCTOR(r);		
		return (packet*)r;		
	}
	return NULL;
}
Esempio n. 10
0
rpacket*
rpacket_new(bytebuffer *b,uint32_t start_pos)
{
	rpacket *r = (rpacket*)CALLOC(g_rpk_allocator,1,sizeof(*r));
	((packet*)r)->type = RPACKET;
	if(b){
		((packet*)r)->head = b;
		((packet*)r)->spos = start_pos;
		refobj_inc((refobj*)b);
		buffer_reader_init(&r->reader,b,start_pos);
		buffer_read(&r->reader,&r->data_remain,sizeof(r->data_remain));		
		((packet*)r)->len_packet = r->data_remain + SIZE_HEAD;
	}
	INIT_CONSTROUCTOR(r);
	return r;
}
Esempio n. 11
0
wpacket*
wpacket_new(uint16_t size)
{
	size = size_of_pow2(size);
    if(size < MIN_BUFFER_SIZE) size = MIN_BUFFER_SIZE;
    bytebuffer *b = bytebuffer_new(size);

	wpacket *w = (wpacket*)CALLOC(g_wpk_allocator,1,sizeof(*w));
	((packet*)w)->type = WPACKET;
	((packet*)w)->head = b;
	buffer_writer_init(&w->writer,b,sizeof(*w->len));
	w->len = (TYPE_HEAD*)b->data;
	((packet*)w)->len_packet = SIZE_HEAD;
	((packet*)w)->head->size = SIZE_HEAD;
	INIT_CONSTROUCTOR(w);	
	return w;
}
Esempio n. 12
0
static packet*
rpacket_clone(packet *p)
{
	rpacket *ori = (rpacket*)p;
	if(p->type == RPACKET){
		rpacket *r = rpacket_new(NULL,0);
		((packet*)r)->head = p->head;
		refobj_inc((refobj*)p->head);
		((packet*)r)->spos = p->spos;
		buffer_reader_init(&r->reader,ori->reader.cur,ori->reader.pos);
		((packet*)r)->len_packet =  p->len_packet;
		r->data_remain = p->len_packet - SIZE_HEAD;
		INIT_CONSTROUCTOR(r);	
		return (packet*)r;
	}
	return NULL;
}
Esempio n. 13
0
static packet *httppacket_clone(packet *_){
	st_header *h,*hh;
	listnode  *cur,*end;
	httppacket *o = cast(httppacket*,_);
	httppacket *p = calloc(1,sizeof(*p));
	cast(packet*,p)->type = HTTPPACKET;
	cast(packet*,p)->dctor = httppacket_dctor;
	p->method              = o->method;
	p->url                 = string_retain(o->url);
	p->status              = string_retain(o->status);
	p->body                = string_retain(o->body);
	cur  = list_begin(&o->headers);
	end  = list_end(&o->headers);
	for(; cur != end;cur = cur->next){
		h    = cast(st_header*,cur);
		hh   = calloc(1,sizeof(*hh));
		hh->field = string_retain(h->field);
		hh->value = string_retain(h->value);
		list_pushback(&p->headers,cast(listnode*,hh));
	}
	INIT_CONSTROUCTOR(p);
	return cast(packet*,p);	
}