1*9b589ffbSDaniel P. Berrange /* 2*9b589ffbSDaniel P. Berrange * Helper functions for tests using sockets 3*9b589ffbSDaniel P. Berrange * 4*9b589ffbSDaniel P. Berrange * Copyright 2015-2018 Red Hat, Inc. 5*9b589ffbSDaniel P. Berrange * 6*9b589ffbSDaniel P. Berrange * This program is free software; you can redistribute it and/or 7*9b589ffbSDaniel P. Berrange * modify it under the terms of the GNU General Public License as 8*9b589ffbSDaniel P. Berrange * published by the Free Software Foundation; either version 2 or 9*9b589ffbSDaniel P. Berrange * (at your option) version 3 of the License. 10*9b589ffbSDaniel P. Berrange * 11*9b589ffbSDaniel P. Berrange * This program is distributed in the hope that it will be useful, 12*9b589ffbSDaniel P. Berrange * but WITHOUT ANY WARRANTY; without even the implied warranty of 13*9b589ffbSDaniel P. Berrange * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*9b589ffbSDaniel P. Berrange * GNU General Public License for more details. 15*9b589ffbSDaniel P. Berrange * 16*9b589ffbSDaniel P. Berrange * You should have received a copy of the GNU General Public License 17*9b589ffbSDaniel P. Berrange * along with this program; if not, see <http://www.gnu.org/licenses/>. 18*9b589ffbSDaniel P. Berrange * 19*9b589ffbSDaniel P. Berrange */ 20*9b589ffbSDaniel P. Berrange 21*9b589ffbSDaniel P. Berrange /* 22*9b589ffbSDaniel P. Berrange * @hostname: a DNS name or numeric IP address 23*9b589ffbSDaniel P. Berrange * 24*9b589ffbSDaniel P. Berrange * Check whether it is possible to bind to ports 25*9b589ffbSDaniel P. Berrange * on the DNS name or IP address @hostname. If an IP address 26*9b589ffbSDaniel P. Berrange * is used, it must not be a wildcard address. 27*9b589ffbSDaniel P. Berrange * 28*9b589ffbSDaniel P. Berrange * Returns 0 on success, -1 on error with errno set 29*9b589ffbSDaniel P. Berrange */ 30*9b589ffbSDaniel P. Berrange int socket_can_bind(const char *hostname); 31*9b589ffbSDaniel P. Berrange 32*9b589ffbSDaniel P. Berrange /* 33*9b589ffbSDaniel P. Berrange * @has_ipv4: set to true on return if IPv4 is available 34*9b589ffbSDaniel P. Berrange * @has_ipv6: set to true on return if IPv6 is available 35*9b589ffbSDaniel P. Berrange * 36*9b589ffbSDaniel P. Berrange * Check whether IPv4 and/or IPv6 are available for use. 37*9b589ffbSDaniel P. Berrange * On success, @has_ipv4 and @has_ipv6 will be set to 38*9b589ffbSDaniel P. Berrange * indicate whether the respective protocols are available. 39*9b589ffbSDaniel P. Berrange * 40*9b589ffbSDaniel P. Berrange * Returns 0 on success, -1 on fatal error 41*9b589ffbSDaniel P. Berrange */ 42*9b589ffbSDaniel P. Berrange int socket_check_protocol_support(bool *has_ipv4, bool *has_ipv6); 43