Prevent multicast addresses in static Wifi config.

Change-Id: I1961b10d67d322fb863620813fe9039b63bb7895
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index 54bd3d0..ee6b503 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -682,7 +682,7 @@
         if (TextUtils.isEmpty(ipAddr)) return R.string.wifi_ip_settings_invalid_ip_address;
 
         Inet4Address inetAddr = getIPv4Address(ipAddr);
-        if (inetAddr == null) {
+        if (inetAddr == null || inetAddr.equals(Inet4Address.ANY)) {
             return R.string.wifi_ip_settings_invalid_ip_address;
         }
 
@@ -697,6 +697,8 @@
             // Set the hint as default after user types in ip address
             mNetworkPrefixLengthView.setText(mConfigUi.getContext().getString(
                     R.string.wifi_network_prefix_length_hint));
+        } catch (IllegalArgumentException e) {
+            return R.string.wifi_ip_settings_invalid_ip_address;
         }
 
         String gateway = mGatewayView.getText().toString();
@@ -715,6 +717,9 @@
             if (gatewayAddr == null) {
                 return R.string.wifi_ip_settings_invalid_gateway;
             }
+            if (gatewayAddr.isMulticastAddress()) {
+                return R.string.wifi_ip_settings_invalid_gateway;
+            }
             staticIpConfiguration.gateway = gatewayAddr;
         }