Return -EAFNOSUPPORT for invalid sockets

Previously NetworkTest#testBindSocketOfLocalSocketThrows would fail when
selinux is disabled because netd does not check for local sockets.

Bug: b/78484123
Test: NetworkTest#testBindSocketOfLocalSocketThrows passes w/o selinux
Change-Id: Ia696bb9f25df46177303bac5127ed2f6ada56e7d
diff --git a/server/FwmarkServer.cpp b/server/FwmarkServer.cpp
index 32b856a..0c22f26 100644
--- a/server/FwmarkServer.cpp
+++ b/server/FwmarkServer.cpp
@@ -156,6 +156,15 @@
         return -EBADF;
     }
 
+    int family;
+    socklen_t familyLen = sizeof(family);
+    if (getsockopt(*socketFd, SOL_SOCKET, SO_DOMAIN, &family, &familyLen) == -1) {
+        return -errno;
+    }
+    if (!FwmarkCommand::isSupportedFamily(family)) {
+        return -EAFNOSUPPORT;
+    }
+
     Fwmark fwmark;
     socklen_t fwmarkLen = sizeof(fwmark.intValue);
     if (getsockopt(*socketFd, SOL_SOCKET, SO_MARK, &fwmark.intValue, &fwmarkLen) == -1) {