bb2d391712fb0208347ffc0b88abe146df14dc0a
galt
  Fri Jun 21 18:21:50 2019 -0700
Adding Support for CIDR specification of subnets, e.g. 192.168.1.255/31. It still supports the older subnet format too, e.g. 192.168

diff --git src/parasol/paraHub/sockSuck.c src/parasol/paraHub/sockSuck.c
index cf2e222..cfc19f8 100644
--- src/parasol/paraHub/sockSuck.c
+++ src/parasol/paraHub/sockSuck.c
@@ -1,54 +1,54 @@
 /* SockSuck - A process that sucks messages from a socket
  * and puts them in the hub queue. */
 #include "paraCommon.h"
 #include "paraHub.h"
+#include "net.h"
 
 static pthread_t sockSuckThread;
-unsigned char localHost[4] = {127,0,0,1};   /* Address for local host in network order */
 
-boolean ipAddressOk(in_addr_t packed, unsigned char *spec)
+boolean ipAddressOk(in_addr_t packed, struct cidr *spec)
 /* Return TRUE if packed IP address matches spec. */
 {
 unsigned char unpacked[4];
 internetUnpackIp(packed, unpacked);
-return internetIpInSubnet(unpacked, spec);
+return internetIpInSubnetCidr(unpacked, spec);
 }
 
 static void *sockSuckDaemon(void *vptr)
 /* Shovel messages from short socket queue to our
  * larger hub message queue. */
 {
 struct paraMessage *pm;
 struct rudp *ru = vptr;
 for (;;)
     {
     AllocVar(pm);
     if (pmReceive(pm, ru))
 	{
 	if (ipAddressOk(ntohl(pm->ipAddress.sin_addr.s_addr), hubSubnet) || 
-	    ipAddressOk(ntohl(pm->ipAddress.sin_addr.s_addr), localHost))
+	    ipAddressOk(ntohl(pm->ipAddress.sin_addr.s_addr), localHostSubnet))
 	    {
 	    hubMessagePut(pm);
 	    }
 	else
 	    {
 	    char dottedQuad[17];
 	    internetIpToDottedQuad(ntohl(pm->ipAddress.sin_addr.s_addr), dottedQuad);
 	    warn("unauthorized access by %s", dottedQuad);
 	    freez(&pm);
 	    }
 	}
     else
 	freez(&pm);
     }
 return NULL;  // avoid compiler warning
 }
 
 
 void sockSuckStart(struct rudp *ru)
 /* Start socket sucker deamon.  */
 {
 int err = pthread_create(&sockSuckThread, NULL, sockSuckDaemon, ru);
 if (err < 0)
     errAbort("Couldn't create sockSuckThread %s", strerror(err));
 }