mirror of https://github.com/getdnsapi/getdns.git
Restrict transport list to 1 entry for each valid transport
This commit is contained in:
parent
cb1dff1ac7
commit
dbad8a9003
|
@ -1217,16 +1217,20 @@ getdns_set_base_dns_transports(
|
||||||
if (!context || transport_count == 0 || transports == NULL)
|
if (!context || transport_count == 0 || transports == NULL)
|
||||||
return GETDNS_RETURN_INVALID_PARAMETER;
|
return GETDNS_RETURN_INVALID_PARAMETER;
|
||||||
|
|
||||||
/* TODO: restrict the use of each transport to once ->
|
/* Check for valid transports and that they are used only once*/
|
||||||
sane list and correct max size for array*/
|
int u=0,t=0,l=0,s=0;
|
||||||
for(i=0; i<transport_count; i++)
|
for(i=0; i<transport_count; i++)
|
||||||
{
|
{
|
||||||
if( transports[i] != GETDNS_TRANSPORT_UDP
|
switch (transports[i]) {
|
||||||
&& transports[i] != GETDNS_TRANSPORT_TCP
|
case GETDNS_TRANSPORT_UDP: u++; break;
|
||||||
&& transports[i] != GETDNS_TRANSPORT_TLS
|
case GETDNS_TRANSPORT_TCP: t++; break;
|
||||||
&& transports[i] != GETDNS_TRANSPORT_STARTTLS)
|
case GETDNS_TRANSPORT_TLS: l++; break;
|
||||||
return GETDNS_RETURN_INVALID_PARAMETER;
|
case GETDNS_TRANSPORT_STARTTLS: s++; break;
|
||||||
|
default: return GETDNS_RETURN_INVALID_PARAMETER;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if ( u>1 || t>1 || l>1 || s>1)
|
||||||
|
return GETDNS_RETURN_INVALID_PARAMETER;
|
||||||
|
|
||||||
if (!(new_transports = GETDNS_XMALLOC(context->my_mf,
|
if (!(new_transports = GETDNS_XMALLOC(context->my_mf,
|
||||||
getdns_transport_list_t, transport_count)))
|
getdns_transport_list_t, transport_count)))
|
||||||
|
|
Loading…
Reference in New Issue