| | |
| | | }
|
| | |
|
| | | evpHeader = (EVPHeader*)headerBuff;
|
| | | evpHeader->ntoh();
|
| | |
|
| | | // check header
|
| | | if (evpHeader->proto <= EVPProto::EVPP__FIRST || evpHeader->proto >= EVPProto::EVPP__LAST ||
|
| | |
| | | do
|
| | | {
|
| | | readSize = bufferevent_read(bufev, client->recvbuff + client->recvbuff_end, client->recvbuff_max - client->recvbuff_end);
|
| | | client->read_times++;
|
| | | if (readSize == 0)
|
| | | break;
|
| | | else
|
| | | client->read_times++;
|
| | |
|
| | | client->recvbuff_end += readSize;
|
| | | } while (readSize > 0);
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | LOG_WARN << "recvbuff incomplete, evpHeader.size=" << evpHeader->size |
| | | << ", recvbuff_end=" << client->recvbuff_end |
| | | << ", read_times=" << client->read_times |
| | | << LOG_ENDL;
|
| | | //LOG_WARN << "recvbuff incomplete, evpHeader.size=" << evpHeader->size |
| | | // << ", recvbuff_end=" << client->recvbuff_end |
| | | // << ", read_times=" << client->read_times |
| | | // << LOG_ENDL;
|
| | | }
|
| | |
|
| | | // check read times
|
| | |
| | | EVPHeader* evpHeader = new (client.sendBuff) EVPHeader;
|
| | | evpHeader->cmd = EVPCommand::EVPC_STATUS;
|
| | | evpHeader->size = client.sendBuffSize;
|
| | | evpHeader->hton();
|
| | |
|
| | | EVP_Status* evpStatus = new (client.sendBuff + sizeof(EVPHeader)) EVP_Status;
|
| | | evpStatus->status = status;
|
| | | evpHeader->hton();
|
| | | }
|