🐶
This commit is contained in:
		| @@ -31,6 +31,8 @@ namespace netprot { | ||||
| 		PACKET_TYPE type = PACKET_TYPE::ERR; | ||||
| 	}; | ||||
|  | ||||
| 	inline const char Footer[sizeof(uint32_t)] = { '\0', '\r', '\0', '\n' }; | ||||
|  | ||||
| 	struct Keys { | ||||
| 		bool forward,  | ||||
| 			 backward,  | ||||
| @@ -165,39 +167,37 @@ namespace netprot { | ||||
| 	template <class T> | ||||
| 	void sendPack(SOCKET sock, T* pack, char** buf, uint32_t* buflen) { | ||||
| 		netprot::Serialize(pack, buf, buflen); | ||||
| 		memset(&buf[*buflen], '\0', sizeof(uint64_t) + sizeof(uint8_t)); | ||||
| 		buflen += (sizeof(uint64_t) + sizeof(uint8_t)); | ||||
| 		memcpy(*buf + *buflen, Footer, sizeof(uint32_t)); | ||||
| 		*buflen += sizeof(Footer); | ||||
| 		send(sock, *buf, *buflen, 0); | ||||
| 		*buflen = BUFFER_LENGTH; | ||||
| 	} | ||||
|  | ||||
| 	template <class T> | ||||
| 	void sendPackTo(SOCKET sock, T* pack, char** buf, uint32_t* buflen, sockaddr_in* sockad) { | ||||
| 		sockaddr_in addr = *sockad; | ||||
| 		const sockaddr_in addr = *sockad; | ||||
| 		netprot::Serialize(pack, buf, buflen); | ||||
| 		memset(&buf[*buflen], '\0', sizeof(uint64_t) + sizeof(uint8_t)); | ||||
| 		buflen += (sizeof(uint64_t) + sizeof(uint8_t)); | ||||
| 		memcpy(*buf + *buflen, Footer, sizeof(uint32_t)); | ||||
| 		*buflen += sizeof(Footer); | ||||
| 		sendto(sock, *buf, *buflen, 0, (sockaddr*)&addr, sizeof(addr)); | ||||
| 		*buflen = BUFFER_LENGTH; | ||||
| 	} | ||||
|  | ||||
| 	template <class T> | ||||
| 	void sendPack(SOCKET sock, T* pack, Buffer* buf) { | ||||
| 		const char footer[sizeof(uint32_t)] = { '\0', '\r', '\0', '\n' }; | ||||
| 		netprot::Serialize(pack, &buf->ptr, &buf->len); | ||||
| 		memcpy(&buf->ptr[buf->len], footer, sizeof(uint32_t)); | ||||
| 		buf->len += sizeof(uint32_t); | ||||
| 		memcpy(&buf->ptr[buf->len], Footer, sizeof(uint32_t)); | ||||
| 		buf->len += sizeof(Footer); | ||||
| 		send(sock, buf->ptr, buf->len, 0); | ||||
| 		buf->rstLen(); | ||||
| 	} | ||||
|  | ||||
| 	template <class T> | ||||
| 	void sendPackTo(SOCKET sock, T* pack, Buffer* buf, sockaddr_in* sockad) { | ||||
| 		const char footer[sizeof(uint32_t)] = { '\0', '\r', '\0', '\n' }; | ||||
| 		sockaddr_in addr = *sockad; | ||||
| 		const sockaddr_in addr = *sockad; | ||||
| 		netprot::Serialize(pack, &buf->ptr, &buf->len); | ||||
| 		memcpy(&buf->ptr[buf->len], footer, sizeof(uint32_t)); | ||||
| 		buf->len += sizeof(uint32_t); | ||||
| 		memcpy(&buf->ptr[buf->len], Footer, sizeof(uint32_t)); | ||||
| 		buf->len += sizeof(Footer); | ||||
| 		sendto(sock, buf->ptr, buf->len, 0, (sockaddr*)&addr, sizeof(addr)); | ||||
| 		buf->rstLen(); | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user