Tree @debian/2.2.0-1 (Download .tar.gz)
- ..
- bhyveargv2xmldata
- bhyvexml2argvdata
- bhyvexml2xmloutdata
- capabilityschemadata
- commanddata
- cputestdata
- domaincapsschemadata
- domainconfdata
- domainschemadata
- domainsnapshotxml2xmlin
- domainsnapshotxml2xmlout
- fchostdata
- genericxml2xmlindata
- genericxml2xmloutdata
- interfaceschemadata
- lxcconf2xmldata
- lxcxml2xmldata
- lxcxml2xmloutdata
- networkxml2confdata
- networkxml2firewalldata
- networkxml2xmlin
- networkxml2xmlout
- networkxml2xmlupdatein
- networkxml2xmlupdateout
- nodedevschemadata
- nssdata
- nwfilterxml2firewalldata
- nwfilterxml2xmlin
- nwfilterxml2xmlout
- qemuagentdata
- qemuargv2xmldata
- qemucapabilitiesdata
- qemucaps2xmldata
- qemuhelpdata
- qemuhotplugtestdevices
- qemuhotplugtestdomains
- qemumonitorjsondata
- qemuxml2argvdata
- qemuxml2xmloutdata
- secretxml2xmlin
- securityselinuxhelperdata
- securityselinuxlabeldata
- sexpr2xmldata
- storagepoolschemadata
- storagepoolxml2xmlin
- storagepoolxml2xmlout
- storagevolschemadata
- storagevolxml2argvdata
- storagevolxml2xmlin
- storagevolxml2xmlout
- sysinfodata
- vboxsnapshotxmldata
- vircaps2xmldata
- vircgroupdata
- virconfdata
- virfiledata
- virhostcpudata
- virnetdaemondata
- virnetdevtestdata
- virpcitestdata
- virscsidata
- virusbtestdata
- vmwareverdata
- vmx2xmldata
- xencapsdata
- xlconfigdata
- xmconfigdata
- xml2sexprdata
- xml2vmxdata
- .valgrind.supp
- bhyveargv2xmlmock.c
- bhyveargv2xmltest.c
- bhyvexml2argvmock.c
- bhyvexml2argvtest.c
- bhyvexml2xmltest.c
- check-file-access.pl
- commandhelper.c
- commandtest.c
- cputest.c
- domaincapsmock.c
- domaincapstest.c
- domainconftest.c
- domainsnapshotxml2xmltest.c
- esxutilstest.c
- eventtest.c
- fchosttest.c
- fdstreamtest.c
- file_access_whitelist.txt
- genericxml2xmltest.c
- interfacexml2xmltest.c
- jsontest.c
- libvirtd-fail
- libvirtd-pool
- lxcconf2xmltest.c
- lxcxml2xmltest.c
- Makefile.am
- Makefile.in
- metadatatest.c
- networkxml2conftest.c
- networkxml2firewalltest.c
- networkxml2xmltest.c
- networkxml2xmlupdatetest.c
- nodedevxml2xmltest.c
- nsslinktest.c
- nssmock.c
- nsstest.c
- nwfilterebiptablestest.c
- nwfilterxml2firewalltest.c
- nwfilterxml2xmltest.c
- objecteventtest.c
- objectlocking.ml
- oomtrace.pl
- openvzutilstest.c
- openvzutilstest.conf
- pkix_asn1_tab.c
- qemuagenttest.c
- qemuargv2xmltest.c
- qemucapabilitiestest.c
- qemucaps2xmlmock.c
- qemucaps2xmltest.c
- qemucapsprobe.c
- qemucapsprobemock.c
- qemucommandutiltest.c
- qemuhelptest.c
- qemuhotplugtest.c
- qemumonitorjsontest.c
- qemumonitortest.c
- qemumonitortestutils.c
- qemumonitortestutils.h
- qemuxml2argvmock.c
- qemuxml2argvtest.c
- qemuxml2xmltest.c
- scsihosttest.c
- seclabeltest.c
- secretxml2xmltest.c
- securityselinuxhelper.c
- securityselinuxlabeltest.c
- securityselinuxtest.c
- sexpr2xmltest.c
- shunloadhelper.c
- shunloadtest.c
- sockettest.c
- ssh.c
- storagebackendsheepdogtest.c
- storagepoolxml2xmltest.c
- storagevolxml2argvtest.c
- storagevolxml2xmltest.c
- sysinfotest.c
- test-lib.sh
- testutils.c
- testutils.h
- testutilslxc.c
- testutilslxc.h
- testutilsqemu.c
- testutilsqemu.h
- testutilsxen.c
- testutilsxen.h
- utiltest.c
- vboxsnapshotxmltest.c
- viralloctest.c
- viratomictest.c
- virauthconfigtest.c
- virbitmaptest.c
- virbuftest.c
- vircaps2xmltest.c
- vircapstest.c
- vircgroupmock.c
- vircgrouptest.c
- virconftest.c
- vircryptotest.c
- virdbusmock.c
- virdbustest.c
- virdrivermoduletest.c
- virendiantest.c
- virfiletest.c
- virfirewalltest.c
- virhashdata.h
- virhashtest.c
- virhostcpumock.c
- virhostcputest.c
- virhostdevtest.c
- viridentitytest.c
- viriscsitest.c
- virkeycodetest.c
- virkeyfiletest.c
- virkmodtest.c
- virlockspacetest.c
- virlogtest.c
- virmock.h
- virnetdaemonmock.c
- virnetdaemontest.c
- virnetdevbandwidthmock.c
- virnetdevbandwidthtest.c
- virnetdevmock.c
- virnetdevtest.c
- virnetmessagetest.c
- virnetserverclientmock.c
- virnetserverclienttest.c
- virnetsockettest.c
- virnettlscontexttest.c
- virnettlshelpers.c
- virnettlshelpers.h
- virnettlssessiontest.c
- virpcimock.c
- virpcitest.c
- virpolkittest.c
- virportallocatormock.c
- virportallocatortest.c
- virrandommock.c
- virrotatingfiletest.c
- virschematest.c
- virscsitest.c
- virsh-cpuset
- virsh-define-dev-segfault
- virsh-int-overflow
- virsh-optparse
- virsh-read-bufsiz
- virsh-read-non-seekable
- virsh-schedinfo
- virsh-self-test
- virsh-start
- virsh-undefine
- virsh-uriprecedence
- virsh-vcpupin
- virshtest.c
- virstoragetest.c
- virstringtest.c
- virsystemdtest.c
- virt-aa-helper-test
- virtestmock.c
- virtimetest.c
- virtypedparamtest.c
- viruritest.c
- virusbmock.c
- virusbtest.c
- vmwarevertest.c
- vmx2xmltest.c
- xencapstest.c
- xlconfigtest.c
- xmconfigtest.c
- xml2sexprtest.c
- xml2vmxtest.c
virportallocatormock.c @debian/2.2.0-1 — raw · history · blame
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | /* * Copyright (C) 2013-2014 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see * <http://www.gnu.org/licenses/>. * * Author: Daniel P. Berrange <berrange@redhat.com> */ #include <config.h> #include <stdlib.h> #if HAVE_DLFCN_H # include <dlfcn.h> #endif #if defined(__linux__) && defined(RTLD_NEXT) # include "internal.h" # include <sys/socket.h> # include <errno.h> # include <arpa/inet.h> # include <netinet/in.h> # include <stdio.h> # include <unistd.h> static bool host_has_ipv6; static int (*realsocket)(int domain, int type, int protocol); static void init_syms(void) { int fd; if (realsocket) return; realsocket = dlsym(RTLD_NEXT, "socket"); if (!realsocket) { fprintf(stderr, "Unable to find 'socket' symbol\n"); abort(); } fd = realsocket(AF_INET6, SOCK_STREAM, 0); if (fd < 0) return; host_has_ipv6 = true; close(fd); } int socket(int domain, int type, int protocol) { init_syms(); if (getenv("LIBVIRT_TEST_IPV4ONLY") && domain == AF_INET6) { errno = EAFNOSUPPORT; return -1; } return realsocket(domain, type, protocol); } int bind(int sockfd ATTRIBUTE_UNUSED, const struct sockaddr *addr, socklen_t addrlen ATTRIBUTE_UNUSED) { struct sockaddr_in saddr; memcpy(&saddr, addr, sizeof(saddr)); if (host_has_ipv6 && !getenv("LIBVIRT_TEST_IPV4ONLY")) { if (saddr.sin_port == htons(5900) || (saddr.sin_family == AF_INET && saddr.sin_port == htons(5904)) || (saddr.sin_family == AF_INET6 && (saddr.sin_port == htons(5905) || saddr.sin_port == htons(5906)))) { errno = EADDRINUSE; return -1; } return 0; } if (saddr.sin_port == htons(5900) || saddr.sin_port == htons(5904) || saddr.sin_port == htons(5905) || saddr.sin_port == htons(5906)) { errno = EADDRINUSE; return -1; } return 0; } #else /* defined(__linux__) && defined(RTLD_NEXT) */ /* Nothing to override on other platforms. */ #endif |