#include "NyLPC_cMiMicEnv.h"\r
#include "../uip/NyLPC_cUipService_protected.h"\r
\r
-const static char* VERSION="MiMic/1.5.7";\r
+const static char* VERSION="MiMic/1.5.8";\r
\r
#if NyLPC_MCU==NyLPC_MCU_LPC4088\r
const static char* MCU="LPC4088";\r
void NyLPC_cModWebSocket_update(NyLPC_TcModWebSocket_t* i_inst,NyLPC_TUInt32 i_time_out)\r
{\r
const NyLPC_TUInt8* rx;\r
- NyLPC_TInt32 rs;\r
+ NyLPC_TInt32 rs,rt;\r
NyLPC_TUInt16 header_size;\r
NyLPC_TUInt8 w8[2];\r
if(i_inst->_payload_st==NyLPC_TcModWebSocket_ST_CLOSED){\r
memcpy(i_inst->_frame_mask,(rx+header_size-4),4);\r
NyLPC_TUInt8_setBit(i_inst->_frame_flags_bits,FLAGS_MASK_BIT);\r
}\r
+ //ペイロードポインターのリセット\r
i_inst->payload_ptr=0;\r
\r
//パケットサイズの確定(基本ヘッダ+マスク)\r
//Timeout\r
goto Timeout;\r
}\r
- //読み込みサイズを決定\r
+ //読出し可能なサイズを決定\r
+ rt=i_inst->payload_size-i_inst->payload_ptr;\r
+ if(rs>rt){\r
+ rs=rt;\r
+ }\r
+ //パケットを破棄\r
NyLPC_iHttpPtrStream_write(NyLPC_cHttpdConnection_refStream(i_inst->_ref_connection),rx,rs);\r
NyLPC_iHttpPtrStream_rseek(NyLPC_cHttpdConnection_refStream(i_inst->_ref_connection),rs);\r
i_inst->payload_ptr+=rs;\r
//Timeout\r
goto Timeout;\r
}\r
- //読み込みサイズを決定\r
+ //読出し可能なサイズを決定\r
+ rt=i_inst->payload_size-i_inst->payload_ptr;\r
+ if(rs>rt){\r
+ rs=rt;\r
+ }\r
+ //パケットを破棄\r
NyLPC_iHttpPtrStream_rseek(NyLPC_cHttpdConnection_refStream(i_inst->_ref_connection),rs);\r
i_inst->payload_ptr+=rs;\r
}\r
//Timeout\r
goto Timeout;\r
}\r
- rd=0;//読みだしたバイト数\r
+ //読出し可能な残りサイズを計算して上書き\r
+ rd=i_inst->payload_size-i_inst->payload_ptr;\r
+ if(rs>rd){\r
+ rs=rd;\r
+ }\r
+ //読みだしたバイト数をリセット\r
+ rd=0;\r
//アンマスク\r
if(NyLPC_TUInt8_isBitOn(i_inst->_frame_flags_bits,FLAGS_MASK_BIT)){\r
//マスク有の時\r