1
0
mirror of https://github.com/stefanocasazza/ULib.git synced 2025-09-28 19:05:55 +08:00
This commit is contained in:
stefanocasazza 2018-06-22 17:08:11 +02:00
parent cc9ba072d8
commit d5d2f5f391
7 changed files with 64 additions and 58 deletions

View File

@ -9,6 +9,8 @@
#include <ulib/base/zip/pushback.h>
#include <ulib/base/zip/compress.h>
#include <zlib.h>
static z_stream zs;
int init_compression(void)

View File

@ -51,36 +51,36 @@ if (UOrmDriver::isAsyncPipelineModeAvaliable() == false)
}
World::endResult();
return;
}
(void) World::pstmt_query->asyncPipelineMode(World::handlerResult);
pquery = query + U_CONSTANT_SIZE("UPDATE World SET randomNumber = v.randomNumber FROM (VALUES");
for (i = 0; i < num_queries; ++i)
else
{
*pquery++ = '(';
(void) World::pstmt_query->asyncPipelineMode(World::handlerResult);
pquery = u_num2str32(World::pworld_query->id = World::rnumber[i], pquery);
pquery = query + U_CONSTANT_SIZE("UPDATE World SET randomNumber = v.randomNumber FROM (VALUES");
(void) World::pstmt_query->asyncPipelineSendQueryPrepared(i);
for (i = 0; i < num_queries; ++i)
{
*pquery++ = '(';
*pquery++ = ',';
pquery = u_num2str32(World::pworld_query->id = World::rnumber[i], pquery);
pquery = u_num2str32(World::pworld_query->randomNumber = u_get_num_random(10000-1), pquery);
(void) World::pstmt_query->asyncPipelineSendQueryPrepared(i);
u_put_unalignedp16(pquery, U_MULTICHAR_CONSTANT16(')',','));
pquery += 2;
*pquery++ = ',';
World::handlerResultSql(i);
pquery = u_num2str32(World::pworld_query->randomNumber = u_get_num_random(10000-1), pquery);
u_put_unalignedp16(pquery, U_MULTICHAR_CONSTANT16(')',','));
pquery += 2;
World::handlerResultSql(i);
}
World::endResult();
(void) memcpy(pquery-1, ") AS v (id,randomNumber) WHERE World.id = v.id;",
U_CONSTANT_SIZE(") AS v (id,randomNumber) WHERE World.id = v.id;")+1);
(void) World::pstmt_query->asyncPipelineSendQuery(query, pquery+U_CONSTANT_SIZE(") AS v (id,randomNumber) WHERE World.id = v.id;")-1-query, num_queries);
}
World::endResult();
(void) memcpy(pquery-1, ") AS v (id,randomNumber) WHERE World.id = v.id;",
U_CONSTANT_SIZE(") AS v (id,randomNumber) WHERE World.id = v.id;")+1);
(void) World::pstmt_query->asyncPipelineSendQuery(query, pquery+U_CONSTANT_SIZE(") AS v (id,randomNumber) WHERE World.id = v.id;")-1-query, num_queries);
-->

View File

@ -482,10 +482,9 @@ public:
(void) http_header.reserve(200U + encoded.size());
(void) http_header.snprintf(U_CONSTANT_TO_PARAM("\n\tU_ASSERT_EQUALS(UClientImage_Base::wbuffer->findEndHeader(),false)"
"\n\tU_http_info.endHeader = %u;%.*s"
"\n\t(void) UClientImage_Base::wbuffer->insert(0, U_CONSTANT_TO_PARAM(%v));\n\t\n"), n,
(bheader ? U_CONSTANT_SIZE("\n\tU_http_usp_flag = 1;\n\t\n") : 0), "\n\tU_http_usp_flag = 1;\n\t\n",
encoded.rep);
"\n\tU_http_info.endHeader = %.*s%u;"
"\n\t(void) UClientImage_Base::wbuffer->insert(0, U_CONSTANT_TO_PARAM(%v));\n\t\n"),
bheader ? U_CONSTANT_SIZE("(uint32_t)-") : 0, "(uint32_t)-", n, encoded.rep);
}
else if (strncmp(directive, U_CONSTANT_TO_PARAM("number")) == 0)
{

View File

@ -509,7 +509,7 @@ bool USqliteStatement::setBindResult(UOrmDriver* pdrv)
}
if (sz > 0) (void) result->pstr->replace(ptr, sz);
else result->pstr->size_adjust(0);
else result->pstr->size_adjust(0U);
}
break;
}

View File

@ -7334,14 +7334,15 @@ void UHTTP::setDynamicResponse()
{
U_TRACE_NO_PARAM(1, "UHTTP::setDynamicResponse()")
U_INTERNAL_DUMP("U_http_info.endHeader = %u U_http_content_type_len = %u mime_index(%d) = %C UClientImage_Base::wbuffer(%u) = %V",
U_http_info.endHeader, U_http_content_type_len, mime_index, mime_index, UClientImage_Base::wbuffer->size(), UClientImage_Base::wbuffer->rep)
U_INTERNAL_DUMP("U_http_info.endHeader = %u U_http_content_type_len = %u mime_index(%d) = %C U_http_usp_flag = %u UClientImage_Base::wbuffer(%u) = %V",
U_http_info.endHeader, U_http_content_type_len, mime_index, mime_index, U_http_usp_flag, UClientImage_Base::wbuffer->size(), UClientImage_Base::wbuffer->rep)
U_INTERNAL_ASSERT_MAJOR(U_http_info.nResponseCode, 0)
char* ptr;
const char* pEndHeader;
uint32_t clength = UClientImage_Base::wbuffer->size();
bool bcontent_type = ((int32_t)U_http_info.endHeader < 0); // NB: if false we assume that we don't have a HTTP content-type header...
#if !defined(USE_LIBZ) && !defined(USE_LIBBROTLI)
bool bcompress = false;
@ -7353,6 +7354,8 @@ void UHTTP::setDynamicResponse()
if (U_http_info.endHeader)
{
if (bcontent_type) U_http_info.endHeader = -U_http_info.endHeader;
U_INTERNAL_ASSERT(clength >= U_http_info.endHeader)
clength -= U_http_info.endHeader;
@ -7363,7 +7366,7 @@ void UHTTP::setDynamicResponse()
# if defined(DEBUG) && defined(USE_LIBMAGIC)
if (clength > 4 &&
U_http_usp_flag == 0) // NB: we assume that we don't have a HTTP content-type header...
bcontent_type == false) // NB: we assume that we don't have a HTTP content-type header...
{
const char* p = pEndHeader + U_http_info.endHeader;
@ -7421,7 +7424,7 @@ no_response:
next:
ptr = ext->pend();
if (U_http_usp_flag == 0)
if (bcontent_type == false)
{
// NB: we assume that we don't have a HTTP content-type header...
@ -10173,9 +10176,9 @@ bool UHTTP::processCGIOutput(bool cgi_sh_script, bool bheaders)
const char* ptr;
const char* ptr1;
const char* base;
bool http_response;
const char* endptr;
uint32_t pos, sz, diff;
bool http_response, bcontent_type = false; // NB: if false we assume that we don't have a HTTP content-type header...
if (UClientImage_Base::wbuffer->empty() ||
UClientImage_Base::wbuffer->isWhiteSpace())
@ -10504,7 +10507,7 @@ loop:
if (u_get_unalignedp64(ptr) == U_MULTICHAR_CONSTANT64('e','n','t','-','T','y','p','e'))
{
U_http_usp_flag = 1;
bcontent_type = true;
ptr += U_CONSTANT_SIZE("ent-Type: ");
@ -10600,6 +10603,8 @@ noparse:
if (u_isHTML(endptr)) mime_index = U_html;
end:
if (bcontent_type) U_http_info.endHeader = -U_http_info.endHeader;
setDynamicResponse();
U_RETURN(true);

View File

@ -1 +1 @@
0118
0126

View File

@ -51,36 +51,36 @@ if (UOrmDriver::isAsyncPipelineModeAvaliable() == false)
}
World::endResult();
return;
}
(void) World::pstmt_query->asyncPipelineMode(World::handlerResult);
pquery = query + U_CONSTANT_SIZE("UPDATE World SET randomNumber = v.randomNumber FROM (VALUES");
for (i = 0; i < num_queries; ++i)
else
{
*pquery++ = '(';
(void) World::pstmt_query->asyncPipelineMode(World::handlerResult);
pquery = u_num2str32(World::pworld_query->id = World::rnumber[i], pquery);
pquery = query + U_CONSTANT_SIZE("UPDATE World SET randomNumber = v.randomNumber FROM (VALUES");
(void) World::pstmt_query->asyncPipelineSendQueryPrepared(i);
for (i = 0; i < num_queries; ++i)
{
*pquery++ = '(';
*pquery++ = ',';
pquery = u_num2str32(World::pworld_query->id = World::rnumber[i], pquery);
pquery = u_num2str32(World::pworld_query->randomNumber = u_get_num_random(10000-1), pquery);
(void) World::pstmt_query->asyncPipelineSendQueryPrepared(i);
u_put_unalignedp16(pquery, U_MULTICHAR_CONSTANT16(')',','));
pquery += 2;
*pquery++ = ',';
World::handlerResultSql(i);
pquery = u_num2str32(World::pworld_query->randomNumber = u_get_num_random(10000-1), pquery);
u_put_unalignedp16(pquery, U_MULTICHAR_CONSTANT16(')',','));
pquery += 2;
World::handlerResultSql(i);
}
World::endResult();
(void) memcpy(pquery-1, ") AS v (id,randomNumber) WHERE World.id = v.id;",
U_CONSTANT_SIZE(") AS v (id,randomNumber) WHERE World.id = v.id;")+1);
(void) World::pstmt_query->asyncPipelineSendQuery(query, pquery+U_CONSTANT_SIZE(") AS v (id,randomNumber) WHERE World.id = v.id;")-1-query, num_queries);
}
World::endResult();
(void) memcpy(pquery-1, ") AS v (id,randomNumber) WHERE World.id = v.id;",
U_CONSTANT_SIZE(") AS v (id,randomNumber) WHERE World.id = v.id;")+1);
(void) World::pstmt_query->asyncPipelineSendQuery(query, pquery+U_CONSTANT_SIZE(") AS v (id,randomNumber) WHERE World.id = v.id;")-1-query, num_queries);
-->