|
@@ -105,24 +105,16 @@ EXPORT_SYMBOL_GPL(nf_nat_proto_nlattr_to_range);
|
|
|
int nf_nat_proto_nlattr_to_range(struct nlattr *tb[],
|
|
|
struct nf_nat_range *range)
|
|
|
{
|
|
|
- int ret = 0;
|
|
|
-
|
|
|
- /* we have to return whether we actually parsed something or not */
|
|
|
-
|
|
|
if (tb[CTA_PROTONAT_PORT_MIN]) {
|
|
|
- ret = 1;
|
|
|
range->min.all = nla_get_be16(tb[CTA_PROTONAT_PORT_MIN]);
|
|
|
+ range->max.all = range->min.tcp.port;
|
|
|
+ range->flags |= IP_NAT_RANGE_PROTO_SPECIFIED;
|
|
|
}
|
|
|
-
|
|
|
- if (!tb[CTA_PROTONAT_PORT_MAX]) {
|
|
|
- if (ret)
|
|
|
- range->max.all = range->min.all;
|
|
|
- } else {
|
|
|
- ret = 1;
|
|
|
+ if (tb[CTA_PROTONAT_PORT_MAX]) {
|
|
|
range->max.all = nla_get_be16(tb[CTA_PROTONAT_PORT_MAX]);
|
|
|
+ range->flags |= IP_NAT_RANGE_PROTO_SPECIFIED;
|
|
|
}
|
|
|
-
|
|
|
- return ret;
|
|
|
+ return 0;
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(nf_nat_proto_range_to_nlattr);
|
|
|
#endif
|