mdns 0 to nullptr
This commit is contained in:
parent
efb26207cf
commit
65cb10ffe2
1 changed files with 19 additions and 19 deletions
|
@ -731,7 +731,7 @@ mdns_string_find(const char* str, size_t length, char c, size_t offset) {
|
||||||
static inline void*
|
static inline void*
|
||||||
mdns_string_make_ref(void* data, size_t capacity, size_t ref_offset) {
|
mdns_string_make_ref(void* data, size_t capacity, size_t ref_offset) {
|
||||||
if (capacity < 2)
|
if (capacity < 2)
|
||||||
return 0;
|
return nullptr;
|
||||||
return mdns_htons(data, 0xC000 | (uint16_t)ref_offset);
|
return mdns_htons(data, 0xC000 | (uint16_t)ref_offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -755,7 +755,7 @@ mdns_string_make(void* buffer, size_t capacity, void* data, const char* name, si
|
||||||
return mdns_string_make_ref(data, remain, ref_offset);
|
return mdns_string_make_ref(data, remain, ref_offset);
|
||||||
|
|
||||||
if (remain <= (sub_length + 1))
|
if (remain <= (sub_length + 1))
|
||||||
return 0;
|
return nullptr;
|
||||||
|
|
||||||
*(unsigned char*)data = (unsigned char)sub_length;
|
*(unsigned char*)data = (unsigned char)sub_length;
|
||||||
memcpy(MDNS_POINTER_OFFSET(data, 1), name + last_pos, sub_length);
|
memcpy(MDNS_POINTER_OFFSET(data, 1), name + last_pos, sub_length);
|
||||||
|
@ -767,7 +767,7 @@ mdns_string_make(void* buffer, size_t capacity, void* data, const char* name, si
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!remain)
|
if (!remain)
|
||||||
return 0;
|
return nullptr;
|
||||||
|
|
||||||
*(unsigned char*)data = 0;
|
*(unsigned char*)data = 0;
|
||||||
return MDNS_POINTER_OFFSET(data, 1);
|
return MDNS_POINTER_OFFSET(data, 1);
|
||||||
|
@ -1107,7 +1107,7 @@ mdns_multiquery_send(int sock, const mdns_query_t* query, size_t count, void* bu
|
||||||
void* data = MDNS_POINTER_OFFSET(buffer, sizeof(struct mdns_header_t));
|
void* data = MDNS_POINTER_OFFSET(buffer, sizeof(struct mdns_header_t));
|
||||||
for (size_t iq = 0; iq < count; ++iq) {
|
for (size_t iq = 0; iq < count; ++iq) {
|
||||||
// Name string
|
// Name string
|
||||||
data = mdns_string_make(buffer, capacity, data, query[iq].name, query[iq].length, 0);
|
data = mdns_string_make(buffer, capacity, data, query[iq].name, query[iq].length, nullptr);
|
||||||
if (!data)
|
if (!data)
|
||||||
return -1;
|
return -1;
|
||||||
// Record type
|
// Record type
|
||||||
|
@ -1195,10 +1195,10 @@ mdns_answer_add_question_unicast(void* buffer, size_t capacity, void* data,
|
||||||
size_t name_length, mdns_string_table_t* string_table) {
|
size_t name_length, mdns_string_table_t* string_table) {
|
||||||
data = mdns_string_make(buffer, capacity, data, name, name_length, string_table);
|
data = mdns_string_make(buffer, capacity, data, name, name_length, string_table);
|
||||||
if (!data)
|
if (!data)
|
||||||
return 0;
|
return nullptr;
|
||||||
size_t remain = capacity - MDNS_POINTER_DIFF(data, buffer);
|
size_t remain = capacity - MDNS_POINTER_DIFF(data, buffer);
|
||||||
if (remain < 4)
|
if (remain < 4)
|
||||||
return 0;
|
return nullptr;
|
||||||
|
|
||||||
data = mdns_htons(data, record_type);
|
data = mdns_htons(data, record_type);
|
||||||
data = mdns_htons(data, MDNS_UNICAST_RESPONSE | MDNS_CLASS_IN);
|
data = mdns_htons(data, MDNS_UNICAST_RESPONSE | MDNS_CLASS_IN);
|
||||||
|
@ -1211,10 +1211,10 @@ mdns_answer_add_record_header(void* buffer, size_t capacity, void* data, mdns_re
|
||||||
mdns_string_table_t* string_table) {
|
mdns_string_table_t* string_table) {
|
||||||
data = mdns_string_make(buffer, capacity, data, record.name.str, record.name.length, string_table);
|
data = mdns_string_make(buffer, capacity, data, record.name.str, record.name.length, string_table);
|
||||||
if (!data)
|
if (!data)
|
||||||
return 0;
|
return nullptr;
|
||||||
size_t remain = capacity - MDNS_POINTER_DIFF(data, buffer);
|
size_t remain = capacity - MDNS_POINTER_DIFF(data, buffer);
|
||||||
if (remain < 10)
|
if (remain < 10)
|
||||||
return 0;
|
return nullptr;
|
||||||
|
|
||||||
data = mdns_htons(data, record.type);
|
data = mdns_htons(data, record.type);
|
||||||
data = mdns_htons(data, record.rclass);
|
data = mdns_htons(data, record.rclass);
|
||||||
|
@ -1232,7 +1232,7 @@ mdns_answer_add_record(void* buffer, size_t capacity, void* data, mdns_record_t
|
||||||
|
|
||||||
data = mdns_answer_add_record_header(buffer, capacity, data, record, string_table);
|
data = mdns_answer_add_record_header(buffer, capacity, data, record, string_table);
|
||||||
if (!data)
|
if (!data)
|
||||||
return 0;
|
return nullptr;
|
||||||
|
|
||||||
// Pointer to length of record to be filled at end
|
// Pointer to length of record to be filled at end
|
||||||
void* record_length = MDNS_POINTER_OFFSET(data, -2);
|
void* record_length = MDNS_POINTER_OFFSET(data, -2);
|
||||||
|
@ -1247,7 +1247,7 @@ mdns_answer_add_record(void* buffer, size_t capacity, void* data, mdns_record_t
|
||||||
|
|
||||||
case MDNS_RECORDTYPE_SRV:
|
case MDNS_RECORDTYPE_SRV:
|
||||||
if (remain <= 6)
|
if (remain <= 6)
|
||||||
return 0;
|
return nullptr;
|
||||||
data = mdns_htons(data, record.data.srv.priority);
|
data = mdns_htons(data, record.data.srv.priority);
|
||||||
data = mdns_htons(data, record.data.srv.weight);
|
data = mdns_htons(data, record.data.srv.weight);
|
||||||
data = mdns_htons(data, record.data.srv.port);
|
data = mdns_htons(data, record.data.srv.port);
|
||||||
|
@ -1257,14 +1257,14 @@ mdns_answer_add_record(void* buffer, size_t capacity, void* data, mdns_record_t
|
||||||
|
|
||||||
case MDNS_RECORDTYPE_A:
|
case MDNS_RECORDTYPE_A:
|
||||||
if (remain < 4)
|
if (remain < 4)
|
||||||
return 0;
|
return nullptr;
|
||||||
memcpy(data, &record.data.a.addr.sin_addr.s_addr, 4);
|
memcpy(data, &record.data.a.addr.sin_addr.s_addr, 4);
|
||||||
data = MDNS_POINTER_OFFSET(data, 4);
|
data = MDNS_POINTER_OFFSET(data, 4);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MDNS_RECORDTYPE_AAAA:
|
case MDNS_RECORDTYPE_AAAA:
|
||||||
if (remain < 16)
|
if (remain < 16)
|
||||||
return 0;
|
return nullptr;
|
||||||
memcpy(data, &record.data.aaaa.addr.sin6_addr, 16); // ipv6 address
|
memcpy(data, &record.data.aaaa.addr.sin6_addr, 16); // ipv6 address
|
||||||
data = MDNS_POINTER_OFFSET(data, 16);
|
data = MDNS_POINTER_OFFSET(data, 16);
|
||||||
break;
|
break;
|
||||||
|
@ -1274,7 +1274,7 @@ mdns_answer_add_record(void* buffer, size_t capacity, void* data, mdns_record_t
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!data)
|
if (!data)
|
||||||
return 0;
|
return nullptr;
|
||||||
|
|
||||||
// Fill record length
|
// Fill record length
|
||||||
mdns_htons(record_length, (uint16_t)MDNS_POINTER_DIFF(data, record_data));
|
mdns_htons(record_length, (uint16_t)MDNS_POINTER_DIFF(data, record_data));
|
||||||
|
@ -1298,8 +1298,8 @@ mdns_answer_add_txt_record(void* buffer, size_t capacity, void* data, const mdns
|
||||||
size_t record_count, uint16_t rclass, uint32_t ttl,
|
size_t record_count, uint16_t rclass, uint32_t ttl,
|
||||||
mdns_string_table_t* string_table) {
|
mdns_string_table_t* string_table) {
|
||||||
// Pointer to length of record to be filled at end
|
// Pointer to length of record to be filled at end
|
||||||
void* record_length = 0;
|
void* record_length = nullptr;
|
||||||
void* record_data = 0;
|
void* record_data = nullptr;
|
||||||
|
|
||||||
size_t remain = 0;
|
size_t remain = 0;
|
||||||
for (size_t irec = 0; data && (irec < record_count); ++irec) {
|
for (size_t irec = 0; data && (irec < record_count); ++irec) {
|
||||||
|
@ -1320,10 +1320,10 @@ mdns_answer_add_txt_record(void* buffer, size_t capacity, void* data, const mdns
|
||||||
// termination, thus the <= check
|
// termination, thus the <= check
|
||||||
size_t string_length = record.data.txt.key.length + record.data.txt.value.length + 1;
|
size_t string_length = record.data.txt.key.length + record.data.txt.value.length + 1;
|
||||||
if (!data)
|
if (!data)
|
||||||
return 0;
|
return nullptr;
|
||||||
remain = capacity - MDNS_POINTER_DIFF(data, buffer);
|
remain = capacity - MDNS_POINTER_DIFF(data, buffer);
|
||||||
if ((remain <= string_length) || (string_length > 0x3FFF))
|
if ((remain <= string_length) || (string_length > 0x3FFF))
|
||||||
return 0;
|
return nullptr;
|
||||||
|
|
||||||
unsigned char* strdata = (unsigned char*)data;
|
unsigned char* strdata = (unsigned char*)data;
|
||||||
*strdata++ = (unsigned char)string_length;
|
*strdata++ = (unsigned char)string_length;
|
||||||
|
@ -1504,7 +1504,7 @@ mdns_record_parse_ptr(const void* buffer, size_t size, size_t offset, size_t len
|
||||||
// PTR record is just a string
|
// PTR record is just a string
|
||||||
if ((size >= offset + length) && (length >= 2))
|
if ((size >= offset + length) && (length >= 2))
|
||||||
return mdns_string_extract(buffer, size, &offset, strbuffer, capacity);
|
return mdns_string_extract(buffer, size, &offset, strbuffer, capacity);
|
||||||
mdns_string_t empty = {0, 0};
|
mdns_string_t empty = {nullptr, 0};
|
||||||
return empty;
|
return empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1600,7 +1600,7 @@ mdns_record_parse_txt(const void* buffer, size_t size, size_t offset, size_t len
|
||||||
} else {
|
} else {
|
||||||
records[parsed].key.str = strdata;
|
records[parsed].key.str = strdata;
|
||||||
records[parsed].key.length = sublength;
|
records[parsed].key.length = sublength;
|
||||||
records[parsed].value.str = 0;
|
records[parsed].value.str = nullptr;
|
||||||
records[parsed].value.length = 0;
|
records[parsed].value.length = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue