Exemplo n.º 1
0
void PacketCreator::addBytes(const char *hex) {
	size_t x = 0;
	for (size_t i = 0; i < strlen(hex) / 2; i++) {
		x = i * 2;
		unsigned char byte1 = getHexByte(hex[x]);
		unsigned char byte2 = getHexByte(hex[x + 1]);
		unsigned char byte = byte1 * 0x10 + byte2;
		add<uint8_t>(byte);
	}
}
Exemplo n.º 2
0
FLStatus readBytes(
	struct Buffer *buffer, const char *hexDigits, const char **error)
{
	FLStatus retVal = FL_SUCCESS;
	uint32 length = (uint32)strlen(hexDigits);
	uint8 *p = buffer->data;
	BufferStatus bStatus;
	CHECK_STATUS(
		length & 1, FL_SVF_PARSE_ERR, cleanup,
		"readBytes(): I need an even number of hex digits");
	bufZeroLength(buffer);
	length >>= 1;  // Number of bytes
	bStatus = bufAppendConst(buffer, 0x00, length, error);
	CHECK_STATUS(bStatus, FL_BUF_APPEND_ERR, cleanup, "readBytes()");
	while ( length-- ) {
		CHECK_STATUS(getHexByte(hexDigits, p++), FL_SVF_PARSE_ERR, cleanup, "readBytes()");
		hexDigits += 2;
	}
cleanup:
	return retVal;
}