Read/write new 32 bit ints from packets.
This commit is contained in:
parent
a127a28f6a
commit
48f096bc1c
@ -252,6 +252,34 @@ void packet__write_uint16(struct mosquitto__packet *packet, uint16_t word)
|
||||
}
|
||||
|
||||
|
||||
int packet__read_uint32(struct mosquitto__packet *packet, uint32_t *word)
|
||||
{
|
||||
uint32_t val = 0;
|
||||
int i;
|
||||
|
||||
assert(packet);
|
||||
if(packet->pos+4 > packet->remaining_length) return MOSQ_ERR_PROTOCOL;
|
||||
|
||||
for(i=0; i<4; i++){
|
||||
val = (val << 8) + packet->payload[packet->pos];
|
||||
packet->pos++;
|
||||
}
|
||||
|
||||
*word = val;
|
||||
|
||||
return MOSQ_ERR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
void packet__write_uint32(struct mosquitto__packet *packet, uint32_t word)
|
||||
{
|
||||
packet__write_byte(packet, (word & 0xFF000000) >> 24);
|
||||
packet__write_byte(packet, (word & 0x00FF0000) >> 16);
|
||||
packet__write_byte(packet, (word & 0x0000FF00) >> 8);
|
||||
packet__write_byte(packet, (word & 0x000000FF));
|
||||
}
|
||||
|
||||
|
||||
int packet__write(struct mosquitto *mosq)
|
||||
{
|
||||
ssize_t write_length;
|
||||
|
@ -31,11 +31,13 @@ int packet__read_byte(struct mosquitto__packet *packet, uint8_t *byte);
|
||||
int packet__read_bytes(struct mosquitto__packet *packet, void *bytes, uint32_t count);
|
||||
int packet__read_string(struct mosquitto__packet *packet, char **str, int *length);
|
||||
int packet__read_uint16(struct mosquitto__packet *packet, uint16_t *word);
|
||||
int packet__read_uint32(struct mosquitto__packet *packet, uint32_t *word);
|
||||
|
||||
void packet__write_byte(struct mosquitto__packet *packet, uint8_t byte);
|
||||
void packet__write_bytes(struct mosquitto__packet *packet, const void *bytes, uint32_t count);
|
||||
void packet__write_string(struct mosquitto__packet *packet, const char *str, uint16_t length);
|
||||
void packet__write_uint16(struct mosquitto__packet *packet, uint16_t word);
|
||||
void packet__write_uint32(struct mosquitto__packet *packet, uint32_t word);
|
||||
|
||||
int packet__write(struct mosquitto *mosq);
|
||||
#ifdef WITH_BROKER
|
||||
|
Loading…
Reference in New Issue
Block a user