コード例 #1
0
ファイル: http-parser.c プロジェクト: azalpy/sdk
void* http_parser_create(enum HTTP_PARSER_MODE mode)
{
	struct http_context *ctx;
	ctx = (struct http_context*)malloc(sizeof(struct http_context));
	if(!ctx)
		return NULL;

	memset(ctx, 0, sizeof(struct http_context));
	ctx->server_mode = mode;
	http_parser_clear(ctx);
	return ctx;
}
コード例 #2
0
ファイル: http-session.c プロジェクト: zousenming/sdk
static void http_session_onsend(void* param, int code, size_t bytes)
{
	int r = 0;
	struct http_session_t *session;
	session = (struct http_session_t*)param;
	session->vec_count = 0;
	session->vec = NULL;
	if (session->onsend)
	{
		r = session->onsend(session->onsendparam, code, bytes);
		if (0 == r && 0 == code)
		{
			http_parser_clear(session->parser); // reset parser
			if (session->remain > 0)
				http_session_onrecv(session, 0, session->remain); // next round
			else
				r = aio_tcp_transport_recv(session->transport, session->data, HTTP_RECV_BUFFER);
		}
	}

	if (0 != code || 0 != r)
		code = aio_tcp_transport_destroy(session->transport);
}