eucanetd_edge.c (eucalyptus-4.4.1) | : | eucanetd_edge.c (eucalyptus-4.4.2) | ||
---|---|---|---|---|
skipping to change at line 852 | skipping to change at line 852 | |||
ips_set_add_net(edge->config->ips, "EUCA_NCPRIVATE", "127.0.0.1", 32); | ips_set_add_net(edge->config->ips, "EUCA_NCPRIVATE", "127.0.0.1", 32); | |||
} | } | |||
// Forward packets generated by instances hosted by this NC and not destined | // Forward packets generated by instances hosted by this NC and not destined | |||
// to instances hosted by this NC (this should go out of this NC). Packets | // to instances hosted by this NC (this should go out of this NC). Packets | |||
// destined to instances hosted by this NC are subject to SG chains | // destined to instances hosted by this NC are subject to SG chains | |||
snprintf(rule, MAX_RULE_LEN, "-A EUCA_FILTER_FWD -m physdev --physdev-in vn_ i+ " | snprintf(rule, MAX_RULE_LEN, "-A EUCA_FILTER_FWD -m physdev --physdev-in vn_ i+ " | |||
"-m set ! --match-set EUCA_NCPRIVATE dst -j ACCEPT"); | "-m set ! --match-set EUCA_NCPRIVATE dst -j ACCEPT"); | |||
ipt_chain_add_rule(edge->config->ipt, "filter", "EUCA_FILTER_FWD", rule); | ipt_chain_add_rule(edge->config->ipt, "filter", "EUCA_FILTER_FWD", rule); | |||
vmgwip = hex2dot(edge->config->vmGatewayIP); | ||||
// add referenced SG ipsets | // add referenced SG ipsets | |||
for (i = 0; i < edge->max_ref_sgs; i++) { | for (i = 0; i < edge->max_ref_sgs; i++) { | |||
secgroup = edge->ref_sgs[i]; | secgroup = edge->ref_sgs[i]; | |||
chainname = strdup(secgroup->name); | chainname = strdup(secgroup->name); | |||
ips_handler_add_set(edge->config->ips, chainname); | ips_handler_add_set(edge->config->ips, chainname); | |||
ips_set_flush(edge->config->ips, chainname); | ips_set_flush(edge->config->ips, chainname); | |||
ips_set_add_ip(edge->config->ips, chainname, vmgwip); | ips_set_add_ip(edge->config->ips, chainname, vmgwip); | |||
max_instances = 0; | max_instances = 0; | |||
skipping to change at line 2256 | skipping to change at line 2258 | |||
abmatch = 0; | abmatch = 0; | |||
} | } | |||
} | } | |||
} | } | |||
} else { | } else { | |||
abmatch = 0; | abmatch = 0; | |||
} | } | |||
if (!abmatch && sgs_diff) { | if (!abmatch && sgs_diff) { | |||
*sgs_diff = 1; | *sgs_diff = 1; | |||
} | } | |||
// Compare referenced security groups, flag as a "security group change" if | ||||
sgs_diff was set | ||||
if (abmatch && a->ref_sgs && b->ref_sgs) { | ||||
if (a->max_ref_sgs != b->max_ref_sgs) { | ||||
abmatch = 0; | ||||
} else { | ||||
for (int i=0; i < a->max_ref_sgs && abmatch; i++) { | ||||
if (cmp_gni_secgroup(a->ref_sgs[i], b->ref_sgs[i], NULL, NULL, N | ||||
ULL)) { | ||||
abmatch = 0; | ||||
} | ||||
} | ||||
} | ||||
} else { | ||||
abmatch = 0; | ||||
} | ||||
if (!abmatch && sgs_diff) { | ||||
*sgs_diff = 1; | ||||
} | ||||
// Compare all instances | // Compare all instances | |||
if (abmatch && a->gni && b->gni) { | if (abmatch && a->gni && b->gni) { | |||
if (a->gni->max_instances != b->gni->max_instances) { | if (a->gni->max_instances != b->gni->max_instances) { | |||
abmatch = 0; | abmatch = 0; | |||
} else { | } else { | |||
for (int i = 0; i < a->gni->max_instances && abmatch; i++) { | for (int i = 0; i < a->gni->max_instances && abmatch; i++) { | |||
if (cmp_gni_instance(a->gni->instances[i], b->gni->instances[i]) ) { | if (cmp_gni_instance(a->gni->instances[i], b->gni->instances[i]) ) { | |||
abmatch = 0; | abmatch = 0; | |||
} | } | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 22 lines changed or added |