GThreadedResolver: set an error if no records could be found

It is possible that the upstream servers return something, but
we then filter all results because they are of the wrong type.
In that case the API and subsequent GTask calls expect a GError
to be set.

https://bugzilla.gnome.org/show_bug.cgi?id=696857
This commit is contained in:
Giovanni Campagna
2013-03-29 15:39:26 +01:00
committed by Matthias Clasen
parent 36284c5d59
commit 03d3a53876

View File

@@ -472,6 +472,14 @@ g_resolver_records_from_res_query (const gchar *rrname,
records = g_list_prepend (records, record); records = g_list_prepend (records, record);
} }
if (records == NULL)
{
g_set_error (error, G_RESOLVER_ERROR, G_RESOLVER_ERROR_NOT_FOUND,
_("No DNS record of the requested type for '%s'"), rrname);
return NULL;
}
else
return records; return records;
} }
@@ -616,7 +624,15 @@ g_resolver_records_from_DnsQuery (const gchar *rrname,
records = g_list_prepend (records, g_variant_ref_sink (record)); records = g_list_prepend (records, g_variant_ref_sink (record));
} }
return records; if (records == NULL)
{
g_set_error (error, G_RESOLVER_ERROR, G_RESOLVER_ERROR_NOT_FOUND,
_("No DNS record of the requested type for '%s'"), rrname);
return NULL;
}
else
return records;
} }
#endif #endif