From 91bcfe2c50c8732c1ccf792ca1f8964966808352 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期二, 10 一月 2017 17:25:40 +0800 Subject: [PATCH] add face daemon --- RtspFace/ev_server.cpp | 23 ++++++++++++++++++----- 1 files changed, 18 insertions(+), 5 deletions(-) diff --git a/RtspFace/ev_server.cpp b/RtspFace/ev_server.cpp index 4baa6b2..a6367c1 100644 --- a/RtspFace/ev_server.cpp +++ b/RtspFace/ev_server.cpp @@ -157,16 +157,15 @@ bool closeClient = true; if (client->proc != nullptr) { - EVClientStub cs; + EVClientStub cs(client->recvbuff, client->recvbuff_end); cs.id = client->fd; - cs.recvBuff = client->recvbuff; - cs.recvBuffSize = client->recvbuff_end; closeClient = !(client->proc(cs)); if (cs.sendBuff != nullptr && cs.sendBuffSize > 0) { - - //#todo bufferevent_write + size_t writeSize = bufferevent_write(bufev, cs.sendBuff, cs.sendBuffSize); + if (writeSize != cs.sendBuffSize) + LOG_WARN << "server send truncate " << (cs.sendBuffSize - writeSize) << " bytes"; if (cs.deleteSendBuff) delete[] cs.sendBuff; @@ -283,3 +282,17 @@ return EXIT_SUCCESS; } + +void ev_send_status_packet(EVClientStub& client, EVPStatus::EVPS status) +{ + client.sendBuffSize = sizeof(EVPHeader)+sizeof(EVP_Status); + client.sendBuff = new uint8_t[client.sendBuffSize]; + client.deleteSendBuff = true; + + EVPHeader* evpHeader = new (client.sendBuff) EVPHeader; + evpHeader->cmd = EVPCommand::EVPC_STATUS; + evpHeader->size = client.sendBuffSize; + + EVP_Status* evpStatus = new (client.sendBuff + sizeof(EVPHeader)) EVP_Status; + evpStatus->status = status; +} -- Gitblit v1.8.0