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