+#ifdef PUP
+ /*
+ * Curious, we convert PUP address format to internet
+ * to allow us to verify we're asking for an Ethernet
+ * interface. This is wrong, but things are heavily
+ * oriented towards the internet addressing scheme, and
+ * converting internet to PUP would be very expensive.
+ */
+ case AF_PUP: {
+ struct sockaddr_pup *spup = (struct sockaddr_pup *)addr;
+ struct sockaddr_in inpup;
+
+ bzero((caddr_t)&inpup, sizeof(inpup));
+ inpup.sin_family = AF_INET;
+ inpup.sin_addr.s_net = spup->sp_net;
+ inpup.sin_addr.s_impno = spup->sp_host;
+ if (inpup.sin_addr.s_addr &&
+ if_ifwithaddr((struct sockaddr *)&inpup) == 0)
+ return (EADDRNOTAVAIL);