mirror of
https://github.com/samba-team/samba.git
synced 2025-02-03 13:47:25 +03:00
s4 dns: More work on updates
This commit is contained in:
parent
fb181752c5
commit
cebce2b9a4
@ -160,7 +160,7 @@ interface dns
|
||||
dns_qtype rr_type;
|
||||
dns_qclass rr_class;
|
||||
uint32 ttl;
|
||||
uint16 length;
|
||||
uint16 length; /* Should be set to either UINT16_MAX or 0 */
|
||||
[switch_is(rr_type)] dns_rdata rdata;
|
||||
DATA_BLOB unexpected;
|
||||
} dns_res_rec;
|
||||
|
@ -286,6 +286,8 @@ static NTSTATUS handle_question(struct dns_server *dns,
|
||||
continue;
|
||||
}
|
||||
|
||||
/* TODO: if the record actually is a DNS_QTYPE_A */
|
||||
|
||||
ZERO_STRUCT(ans[ai]);
|
||||
ans[ai].name = talloc_strdup(ans, question->name);
|
||||
ans[ai].rr_type = DNS_QTYPE_A;
|
||||
@ -425,15 +427,37 @@ static NTSTATUS dns_server_process_update(struct dns_server *dns,
|
||||
struct dns_res_rec **additional, uint16_t *arcount)
|
||||
{
|
||||
struct dns_name_question *zone;
|
||||
const struct dns_server_zone *z;
|
||||
size_t host_part_len = 0;
|
||||
|
||||
if (in->qdcount != 1) {
|
||||
return NT_STATUS_NOT_IMPLEMENTED;
|
||||
return NT_STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
zone = in->questions;
|
||||
|
||||
if (zone->question_type != DNS_QTYPE_SOA) {
|
||||
return NT_STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
DEBUG(0, ("Got a dns update request.\n"));
|
||||
|
||||
for (z = dns->zones; z != NULL; z = z->next) {
|
||||
bool match;
|
||||
|
||||
match = dns_name_match(z->name, zone->name, &host_part_len);
|
||||
if (match) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (z == NULL) {
|
||||
return NT_STATUS_FOOBAR;
|
||||
}
|
||||
|
||||
if (host_part_len != 0) {
|
||||
return NT_STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
return NT_STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user