19b589ffbSDaniel P. Berrange /* 29b589ffbSDaniel P. Berrange * Helper functions for tests using sockets 39b589ffbSDaniel P. Berrange * 49b589ffbSDaniel P. Berrange * Copyright 2015-2018 Red Hat, Inc. 59b589ffbSDaniel P. Berrange * 69b589ffbSDaniel P. Berrange * This program is free software; you can redistribute it and/or 79b589ffbSDaniel P. Berrange * modify it under the terms of the GNU General Public License as 89b589ffbSDaniel P. Berrange * published by the Free Software Foundation; either version 2 or 99b589ffbSDaniel P. Berrange * (at your option) version 3 of the License. 109b589ffbSDaniel P. Berrange * 119b589ffbSDaniel P. Berrange * This program is distributed in the hope that it will be useful, 129b589ffbSDaniel P. Berrange * but WITHOUT ANY WARRANTY; without even the implied warranty of 139b589ffbSDaniel P. Berrange * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 149b589ffbSDaniel P. Berrange * GNU General Public License for more details. 159b589ffbSDaniel P. Berrange * 169b589ffbSDaniel P. Berrange * You should have received a copy of the GNU General Public License 179b589ffbSDaniel P. Berrange * along with this program; if not, see <http://www.gnu.org/licenses/>. 189b589ffbSDaniel P. Berrange */ 199b589ffbSDaniel P. Berrange 20*f91005e1SMarkus Armbruster #ifndef TESTS_SOCKET_HELPERS_H 21*f91005e1SMarkus Armbruster #define TESTS_SOCKET_HELPERS_H 22*f91005e1SMarkus Armbruster 239b589ffbSDaniel P. Berrange /* 249b589ffbSDaniel P. Berrange * @hostname: a DNS name or numeric IP address 259b589ffbSDaniel P. Berrange * 26abd983c0SDaniel P. Berrange * Check whether it is possible to bind & connect to ports 279b589ffbSDaniel P. Berrange * on the DNS name or IP address @hostname. If an IP address 289b589ffbSDaniel P. Berrange * is used, it must not be a wildcard address. 299b589ffbSDaniel P. Berrange * 309b589ffbSDaniel P. Berrange * Returns 0 on success, -1 on error with errno set 319b589ffbSDaniel P. Berrange */ 32abd983c0SDaniel P. Berrange int socket_can_bind_connect(const char *hostname); 339b589ffbSDaniel P. Berrange 349b589ffbSDaniel P. Berrange /* 359b589ffbSDaniel P. Berrange * @has_ipv4: set to true on return if IPv4 is available 369b589ffbSDaniel P. Berrange * @has_ipv6: set to true on return if IPv6 is available 379b589ffbSDaniel P. Berrange * 389b589ffbSDaniel P. Berrange * Check whether IPv4 and/or IPv6 are available for use. 399b589ffbSDaniel P. Berrange * On success, @has_ipv4 and @has_ipv6 will be set to 409b589ffbSDaniel P. Berrange * indicate whether the respective protocols are available. 419b589ffbSDaniel P. Berrange * 429b589ffbSDaniel P. Berrange * Returns 0 on success, -1 on fatal error 439b589ffbSDaniel P. Berrange */ 449b589ffbSDaniel P. Berrange int socket_check_protocol_support(bool *has_ipv4, bool *has_ipv6); 45*f91005e1SMarkus Armbruster 46*f91005e1SMarkus Armbruster #endif 47