diff --git a/src/lib/ares_init.c b/src/lib/ares_init.c index 7f92ef67..738fc2aa 100644 --- a/src/lib/ares_init.c +++ b/src/lib/ares_init.c @@ -2000,7 +2000,7 @@ static int set_search(ares_channel channel, const char *str) channel->ndomains = -1; } /* LCOV_EXCL_STOP */ - channel->domains = ares_strsplit(str, ", ", 1, &cnt); + channel->domains = ares_strsplit(str, ", ", &cnt); channel->ndomains = (int)cnt; if (channel->domains == NULL || channel->ndomains == 0) { channel->domains = NULL; diff --git a/src/lib/ares_strsplit.c b/src/lib/ares_strsplit.c index 97b4e5d5..db1f66a4 100644 --- a/src/lib/ares_strsplit.c +++ b/src/lib/ares_strsplit.c @@ -22,46 +22,6 @@ #include "ares.h" #include "ares_private.h" -static int list_contains(char * const *list, size_t num_elem, const char *str, int insensitive) -{ - size_t len; - size_t i; - - len = strlen(str); - for (i=0; i inputs; + vector delimiters; + vector> expected; + } data = { + { + "", + " ", + " ", + "example.com, example.co", + " a, b, A,c, d, e,,,D,e,e,E", + }, + { ", ", ", ", ", ", ", ", ", " }, + { + {}, {}, {}, + { "example.com", "example.co" }, + { "a", "b", "c", "d", "e" }, + }, + }; + for(size_t i = 0; i < data.inputs.size(); i++) { + char **out = ares_strsplit(data.inputs.at(i).c_str(), + data.delimiters.at(i).c_str(), &n); + if(data.expected.at(i).size() == 0) { + EXPECT_EQ(out, nullptr); + } + else { + EXPECT_EQ(n, data.expected.at(i).size()); + for(size_t j = 0; j < n && j < data.expected.at(i).size(); j++) { + EXPECT_STREQ(out[j], data.expected.at(i).at(j).c_str()); + } + } + ares_strsplit_free(out, n); + } +} +#endif + TEST_F(LibraryTest, InetPtoN) { struct in_addr a4; struct in6_addr a6;