* nwfilter_driver.c: core driver for network filter APIs
* (based on storage_driver.c)
*
- * Copyright (C) 2006-2011 Red Hat, Inc.
+ * Copyright (C) 2006-2011, 2014 Red Hat, Inc.
* Copyright (C) 2006-2008 Daniel P. Berrange
* Copyright (C) 2010 IBM Corporation
* Copyright (C) 2010 Stefan Berger
* Shutdown the nwfilter driver, it will stop all active nwfilters
*/
static int
-nwfilterStateCleanup(void) {
+nwfilterStateCleanup(void)
+{
if (!driverState)
return -1;
static virNWFilterPtr
nwfilterLookupByUUID(virConnectPtr conn,
- const unsigned char *uuid) {
+ const unsigned char *uuid)
+{
virNWFilterDriverStatePtr driver = conn->nwfilterPrivateData;
virNWFilterObjPtr nwfilter;
virNWFilterPtr ret = NULL;
static virNWFilterPtr
nwfilterLookupByName(virConnectPtr conn,
- const char *name) {
+ const char *name)
+{
virNWFilterDriverStatePtr driver = conn->nwfilterPrivateData;
virNWFilterObjPtr nwfilter;
virNWFilterPtr ret = NULL;
static int
-nwfilterClose(virConnectPtr conn) {
+nwfilterClose(virConnectPtr conn)
+{
conn->nwfilterPrivateData = NULL;
return 0;
}
static int
-nwfilterConnectNumOfNWFilters(virConnectPtr conn) {
+nwfilterConnectNumOfNWFilters(virConnectPtr conn)
+{
virNWFilterDriverStatePtr driver = conn->nwfilterPrivateData;
size_t i;
int n;
static int
nwfilterConnectListNWFilters(virConnectPtr conn,
char **const names,
- int nnames) {
+ int nnames)
+{
virNWFilterDriverStatePtr driver = conn->nwfilterPrivateData;
int got = 0;
size_t i;
static int
nwfilterConnectListAllNWFilters(virConnectPtr conn,
virNWFilterPtr **filters,
- unsigned int flags) {
+ unsigned int flags)
+{
virNWFilterDriverStatePtr driver = conn->nwfilterPrivateData;
virNWFilterPtr *tmp_filters = NULL;
int nfilters = 0;
static int
-nwfilterUndefine(virNWFilterPtr obj) {
+nwfilterUndefine(virNWFilterPtr obj)
+{
virNWFilterDriverStatePtr driver = obj->conn->nwfilterPrivateData;
virNWFilterObjPtr nwfilter;
int ret = -1;
static void
-nwfilterTeardownFilter(virDomainNetDefPtr net) {
+nwfilterTeardownFilter(virDomainNetDefPtr net)
+{
if ((net->ifname) && (net->filter))
virNWFilterTeardownFilter(net);
}
};
-int nwfilterRegister(void) {
+int nwfilterRegister(void)
+{
if (virRegisterNWFilterDriver(&nwfilterDriver) < 0)
return -1;
if (virRegisterStateDriver(&stateDriver) < 0)
* nwfilter_learnipaddr.c: support for learning IP address used by a VM
* on an interface
*
- * Copyright (C) 2011, 2013 Red Hat, Inc.
+ * Copyright (C) 2011, 2013, 2014 Red Hat, Inc.
* Copyright (C) 2010 IBM Corp.
* Copyright (C) 2010 Stefan Berger
*
int
-virNWFilterLockIface(const char *ifname) {
+virNWFilterLockIface(const char *ifname)
+{
virNWFilterIfaceLockPtr ifaceLock;
virMutexLock(&ifaceMapLock);
static void
-freeIfaceLock(void *payload, const void *name ATTRIBUTE_UNUSED) {
+freeIfaceLock(void *payload, const void *name ATTRIBUTE_UNUSED)
+{
VIR_FREE(payload);
}
void
-virNWFilterUnlockIface(const char *ifname) {
+virNWFilterUnlockIface(const char *ifname)
+{
virNWFilterIfaceLockPtr ifaceLock;
virMutexLock(&ifaceMapLock);
static void
-virNWFilterIPAddrLearnReqFree(virNWFilterIPAddrLearnReqPtr req) {
+virNWFilterIPAddrLearnReqFree(virNWFilterIPAddrLearnReqPtr req)
+{
if (!req)
return;
#if HAVE_LIBPCAP
static int
-virNWFilterRegisterLearnReq(virNWFilterIPAddrLearnReqPtr req) {
+virNWFilterRegisterLearnReq(virNWFilterIPAddrLearnReqPtr req)
+{
int res = -1;
IFINDEX2STR(ifindex_str, req->ifindex);
#endif
int
-virNWFilterTerminateLearnReq(const char *ifname) {
+virNWFilterTerminateLearnReq(const char *ifname)
+{
int rc = -1;
int ifindex;
virNWFilterIPAddrLearnReqPtr req;
virNWFilterIPAddrLearnReqPtr
-virNWFilterLookupLearnReq(int ifindex) {
+virNWFilterLookupLearnReq(int ifindex)
+{
void *res;
IFINDEX2STR(ifindex_str, ifindex);
static void
-freeLearnReqEntry(void *payload, const void *name ATTRIBUTE_UNUSED) {
+freeLearnReqEntry(void *payload, const void *name ATTRIBUTE_UNUSED)
+{
virNWFilterIPAddrLearnReqFree(payload);
}
#ifdef HAVE_LIBPCAP
static virNWFilterIPAddrLearnReqPtr
-virNWFilterDeregisterLearnReq(int ifindex) {
+virNWFilterDeregisterLearnReq(int ifindex)
+{
virNWFilterIPAddrLearnReqPtr res;
IFINDEX2STR(ifindex_str, ifindex);
static void
procDHCPOpts(struct dhcp *dhcp, int dhcp_opts_len,
uint32_t *vmaddr, uint32_t *bcastaddr,
- enum howDetect *howDetected) {
+ enum howDetect *howDetected)
+{
struct dhcp_option *dhcpopt = &dhcp->options[0];
while (dhcp_opts_len >= 2) {
const char *filtername,
virNWFilterHashTablePtr filterparams,
virNWFilterDriverStatePtr driver,
- enum howDetect howDetect) {
+ enum howDetect howDetect)
+{
int rc;
virNWFilterIPAddrLearnReqPtr req = NULL;
virNWFilterHashTablePtr ht = NULL;
* Initialization of this layer
*/
int
-virNWFilterLearnInit(void) {
+virNWFilterLearnInit(void)
+{
if (pendingLearnReq)
return 0;
void
-virNWFilterLearnThreadsTerminate(bool allowNewThreads) {
+virNWFilterLearnThreadsTerminate(bool allowNewThreads)
+{
threadsTerminate = true;
while (virHashSize(pendingLearnReq) != 0)