From: Stefan Schantl Date: Wed, 2 Oct 2019 17:07:52 +0000 (+0200) Subject: perl: Fix lookup if given address is invalid or not in DB. X-Git-Tag: 0.9.0~50^2~3 X-Git-Url: http://git.ipfire.org/?p=people%2Fms%2Flibloc.git;a=commitdiff_plain;h=6aa97cacb626c43f6855b727557dbf029cbcb771 perl: Fix lookup if given address is invalid or not in DB. In this case now undef will be returned. Signed-off-by: Stefan Schantl Signed-off-by: Michael Tremer --- diff --git a/src/perl/Location.xs b/src/perl/Location.xs index ab27f0b..cdbc7e7 100644 --- a/src/perl/Location.xs +++ b/src/perl/Location.xs @@ -92,27 +92,23 @@ get_license(db) # # Lookup functions # -char* +SV* lookup_country_code(db, address) struct loc_database* db; char* address; CODE: + RETVAL = &PL_sv_undef; + // Lookup network struct loc_network *network; int err = loc_database_lookup_from_string(db, address, &network); - if (err) { - croak("Could not look up for %s\n", address); - } - - // Extract the country code - const char* country_code = loc_network_get_country_code(network); - loc_network_unref(network); + if (!err) { + // Extract the country code + const char* country_code = loc_network_get_country_code(network); + RETVAL = newSVpv(country_code, strlen(country_code)); - if (country_code) { - RETVAL = strdup(country_code); - } else { - RETVAL = NULL; + loc_network_unref(network); } OUTPUT: RETVAL