diff --git a/usr/local/pkg/miniupnpd.inc b/usr/local/pkg/miniupnpd.inc
index 7f37d72ddf..c0760d6294 100644
--- a/usr/local/pkg/miniupnpd.inc
+++ b/usr/local/pkg/miniupnpd.inc
@@ -156,9 +156,13 @@
/* above function returns iface if fail */
if($if!=$iface) {
$addr = find_interface_ip($if);
+ $bits = find_interface_subnet($if);
/* check that the interface has an ip address before adding parameters */
if (is_ipaddr($addr)) {
- $config_text .= "listening_ip={$if}\n";
+ if ($upnp_config['listen_on_iface'])
+ $config_text .= "listening_ip={$if}\n";
+ else
+ $config_text .= "listening_ip={$addr}/{$bits}\n";
if(!$ifaces_active) {
$webgui_ip = $addr;
$ifaces_active = $iface;
diff --git a/usr/local/pkg/miniupnpd.xml b/usr/local/pkg/miniupnpd.xml
index 6fc054f06a..65fd76f4d8 100644
--- a/usr/local/pkg/miniupnpd.xml
+++ b/usr/local/pkg/miniupnpd.xml
@@ -35,7 +35,7 @@
UPnP & NAT-PMP Settings
listtopic
- enable_upnp,enable_natpmp,iface_array,overridewanip,upnpqueue,logpackets,sysuptime,permdefault,permuser1,permuser2,permuser3,permuser4
+ enable_upnp,enable_natpmp,listen_on_iface,iface_array,overridewanip,upnpqueue,logpackets,sysuptime,permdefault,permuser1,permuser2,permuser3,permuser4
Enable UPnP & NAT-PMP
@@ -80,6 +80,11 @@
You can use the CTRL or COMMAND key to select multiple interfaces.
+
+ Listen on interface instead of interface's IPv4 address
+ listen_on_iface
+ checkbox
+
Maximum Download Speed (Kbits/second)
download