REMOVE
};
-static bool deletePrivate = true;
-
typedef struct {
const char *parent;
const char *child;
}
-void
-iptablesSetDeletePrivate(bool pvt)
-{
- deletePrivate = pvt;
-}
-
-
static void
iptablesInput(virFirewall *fw,
virFirewallLayer layer,
- bool pvt,
const char *iface,
int port,
int action,
virFirewallAddRule(fw, layer,
"--table", "filter",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_INP" : "INPUT",
+ "LIBVIRT_INP",
"--in-interface", iface,
"--protocol", tcp ? "tcp" : "udp",
"--destination-port", portstr,
static void
iptablesOutput(virFirewall *fw,
virFirewallLayer layer,
- bool pvt,
const char *iface,
int port,
int action,
virFirewallAddRule(fw, layer,
"--table", "filter",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_OUT" : "OUTPUT",
+ "LIBVIRT_OUT",
"--out-interface", iface,
"--protocol", tcp ? "tcp" : "udp",
"--destination-port", portstr,
const char *iface,
int port)
{
- iptablesInput(fw, layer, true, iface, port, ADD, 1);
+ iptablesInput(fw, layer, iface, port, ADD, 1);
}
/**
const char *iface,
int port)
{
- iptablesInput(fw, layer, deletePrivate, iface, port, REMOVE, 1);
+ iptablesInput(fw, layer, iface, port, REMOVE, 1);
}
/**
const char *iface,
int port)
{
- iptablesInput(fw, layer, true, iface, port, ADD, 0);
+ iptablesInput(fw, layer, iface, port, ADD, 0);
}
/**
const char *iface,
int port)
{
- iptablesInput(fw, layer, deletePrivate, iface, port, REMOVE, 0);
+ iptablesInput(fw, layer, iface, port, REMOVE, 0);
}
/**
const char *iface,
int port)
{
- iptablesOutput(fw, layer, true, iface, port, ADD, 1);
+ iptablesOutput(fw, layer, iface, port, ADD, 1);
}
/**
const char *iface,
int port)
{
- iptablesOutput(fw, layer, deletePrivate, iface, port, REMOVE, 1);
+ iptablesOutput(fw, layer, iface, port, REMOVE, 1);
}
/**
const char *iface,
int port)
{
- iptablesOutput(fw, layer, true, iface, port, ADD, 0);
+ iptablesOutput(fw, layer, iface, port, ADD, 0);
}
/**
const char *iface,
int port)
{
- iptablesOutput(fw, layer, deletePrivate, iface, port, REMOVE, 0);
+ iptablesOutput(fw, layer, iface, port, REMOVE, 0);
}
*/
static int
iptablesForwardAllowOut(virFirewall *fw,
- bool pvt,
virSocketAddr *netaddr,
unsigned int prefix,
const char *iface,
virFirewallAddRule(fw, layer,
"--table", "filter",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_FWO" : "FORWARD",
+ "LIBVIRT_FWO",
"--source", networkstr,
"--in-interface", iface,
"--out-interface", physdev,
virFirewallAddRule(fw, layer,
"--table", "filter",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_FWO" : "FORWARD",
+ "LIBVIRT_FWO",
"--source", networkstr,
"--in-interface", iface,
"--jump", "ACCEPT",
const char *iface,
const char *physdev)
{
- return iptablesForwardAllowOut(fw, true, netaddr, prefix, iface, physdev, ADD);
+ return iptablesForwardAllowOut(fw, netaddr, prefix, iface, physdev, ADD);
}
/**
const char *iface,
const char *physdev)
{
- return iptablesForwardAllowOut(fw, deletePrivate, netaddr, prefix, iface, physdev, REMOVE);
+ return iptablesForwardAllowOut(fw, netaddr, prefix, iface, physdev, REMOVE);
}
*/
static int
iptablesForwardAllowRelatedIn(virFirewall *fw,
- bool pvt,
virSocketAddr *netaddr,
unsigned int prefix,
const char *iface,
virFirewallAddRule(fw, layer,
"--table", "filter",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_FWI" : "FORWARD",
+ "LIBVIRT_FWI",
"--destination", networkstr,
"--in-interface", physdev,
"--out-interface", iface,
virFirewallAddRule(fw, layer,
"--table", "filter",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_FWI" : "FORWARD",
+ "LIBVIRT_FWI",
"--destination", networkstr,
"--out-interface", iface,
"--match", "conntrack",
const char *iface,
const char *physdev)
{
- return iptablesForwardAllowRelatedIn(fw, true, netaddr, prefix, iface, physdev, ADD);
+ return iptablesForwardAllowRelatedIn(fw, netaddr, prefix, iface, physdev, ADD);
}
/**
const char *iface,
const char *physdev)
{
- return iptablesForwardAllowRelatedIn(fw, deletePrivate, netaddr, prefix, iface, physdev, REMOVE);
+ return iptablesForwardAllowRelatedIn(fw, netaddr, prefix, iface, physdev, REMOVE);
}
/* Allow all traffic destined to the bridge, with a valid network address
*/
static int
iptablesForwardAllowIn(virFirewall *fw,
- bool pvt,
virSocketAddr *netaddr,
unsigned int prefix,
const char *iface,
virFirewallAddRule(fw, layer,
"--table", "filter",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_FWI" : "FORWARD",
+ "LIBVIRT_FWI",
"--destination", networkstr,
"--in-interface", physdev,
"--out-interface", iface,
virFirewallAddRule(fw, layer,
"--table", "filter",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_FWI" : "FORWARD",
+ "LIBVIRT_FWI",
"--destination", networkstr,
"--out-interface", iface,
"--jump", "ACCEPT",
const char *iface,
const char *physdev)
{
- return iptablesForwardAllowIn(fw, true, netaddr, prefix, iface, physdev, ADD);
+ return iptablesForwardAllowIn(fw, netaddr, prefix, iface, physdev, ADD);
}
/**
const char *iface,
const char *physdev)
{
- return iptablesForwardAllowIn(fw, deletePrivate, netaddr, prefix, iface, physdev, REMOVE);
+ return iptablesForwardAllowIn(fw, netaddr, prefix, iface, physdev, REMOVE);
}
static void
iptablesForwardAllowCross(virFirewall *fw,
virFirewallLayer layer,
- bool pvt,
const char *iface,
int action)
{
virFirewallAddRule(fw, layer,
"--table", "filter",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_FWX" : "FORWARD",
+ "LIBVIRT_FWX",
"--in-interface", iface,
"--out-interface", iface,
"--jump", "ACCEPT",
virFirewallLayer layer,
const char *iface)
{
- iptablesForwardAllowCross(fw, layer, true, iface, ADD);
+ iptablesForwardAllowCross(fw, layer, iface, ADD);
}
/**
virFirewallLayer layer,
const char *iface)
{
- iptablesForwardAllowCross(fw, layer, deletePrivate, iface, REMOVE);
+ iptablesForwardAllowCross(fw, layer, iface, REMOVE);
}
static void
iptablesForwardRejectOut(virFirewall *fw,
virFirewallLayer layer,
- bool pvt,
const char *iface,
int action)
{
virFirewallAddRule(fw, layer,
"--table", "filter",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_FWO" : "FORWARD",
+ "LIBVIRT_FWO",
"--in-interface", iface,
"--jump", "REJECT",
NULL);
virFirewallLayer layer,
const char *iface)
{
- iptablesForwardRejectOut(fw, layer, true, iface, ADD);
+ iptablesForwardRejectOut(fw, layer, iface, ADD);
}
/**
virFirewallLayer layer,
const char *iface)
{
- iptablesForwardRejectOut(fw, layer, deletePrivate, iface, REMOVE);
+ iptablesForwardRejectOut(fw, layer, iface, REMOVE);
}
static void
iptablesForwardRejectIn(virFirewall *fw,
virFirewallLayer layer,
- bool pvt,
const char *iface,
int action)
{
virFirewallAddRule(fw, layer,
"--table", "filter",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_FWI" : "FORWARD",
+ "LIBVIRT_FWI",
"--out-interface", iface,
"--jump", "REJECT",
NULL);
virFirewallLayer layer,
const char *iface)
{
- iptablesForwardRejectIn(fw, layer, true, iface, ADD);
+ iptablesForwardRejectIn(fw, layer, iface, ADD);
}
/**
virFirewallLayer layer,
const char *iface)
{
- iptablesForwardRejectIn(fw, layer, deletePrivate, iface, REMOVE);
+ iptablesForwardRejectIn(fw, layer, iface, REMOVE);
}
*/
static int
iptablesForwardMasquerade(virFirewall *fw,
- bool pvt,
virSocketAddr *netaddr,
unsigned int prefix,
const char *physdev,
rule = virFirewallAddRule(fw, layer,
"--table", "nat",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_PRT" : "POSTROUTING",
+ "LIBVIRT_PRT",
"--source", networkstr,
"-p", protocol,
"!", "--destination", networkstr,
rule = virFirewallAddRule(fw, layer,
"--table", "nat",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_PRT" : "POSTROUTING",
+ "LIBVIRT_PRT",
"--source", networkstr,
"!", "--destination", networkstr,
NULL);
virPortRange *port,
const char *protocol)
{
- return iptablesForwardMasquerade(fw, true, netaddr, prefix,
+ return iptablesForwardMasquerade(fw, netaddr, prefix,
physdev, addr, port, protocol, ADD);
}
virPortRange *port,
const char *protocol)
{
- return iptablesForwardMasquerade(fw, deletePrivate, netaddr, prefix,
+ return iptablesForwardMasquerade(fw, netaddr, prefix,
physdev, addr, port, protocol, REMOVE);
}
*/
static int
iptablesForwardDontMasquerade(virFirewall *fw,
- bool pvt,
virSocketAddr *netaddr,
unsigned int prefix,
const char *physdev,
virFirewallAddRule(fw, layer,
"--table", "nat",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_PRT" : "POSTROUTING",
+ "LIBVIRT_PRT",
"--out-interface", physdev,
"--source", networkstr,
"--destination", destaddr,
virFirewallAddRule(fw, layer,
"--table", "nat",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_PRT" : "POSTROUTING",
+ "LIBVIRT_PRT",
"--source", networkstr,
"--destination", destaddr,
"--jump", "RETURN",
const char *physdev,
const char *destaddr)
{
- return iptablesForwardDontMasquerade(fw, true, netaddr, prefix,
+ return iptablesForwardDontMasquerade(fw, netaddr, prefix,
physdev, destaddr, ADD);
}
const char *physdev,
const char *destaddr)
{
- return iptablesForwardDontMasquerade(fw, deletePrivate, netaddr, prefix,
+ return iptablesForwardDontMasquerade(fw, netaddr, prefix,
physdev, destaddr, REMOVE);
}
static void
iptablesOutputFixUdpChecksum(virFirewall *fw,
- bool pvt,
const char *iface,
int port,
int action)
virFirewallAddRule(fw, VIR_FIREWALL_LAYER_IPV4,
"--table", "mangle",
action == ADD ? "--insert" : "--delete",
- pvt ? "LIBVIRT_PRT" : "POSTROUTING",
+ "LIBVIRT_PRT",
"--out-interface", iface,
"--protocol", "udp",
"--destination-port", portstr,
const char *iface,
int port)
{
- iptablesOutputFixUdpChecksum(fw, true, iface, port, ADD);
+ iptablesOutputFixUdpChecksum(fw, iface, port, ADD);
}
/**
const char *iface,
int port)
{
- iptablesOutputFixUdpChecksum(fw, deletePrivate, iface, port, REMOVE);
+ iptablesOutputFixUdpChecksum(fw, iface, port, REMOVE);
}