if (portStr) port = atoi(portStr); else port = gpioCfg.socketPort;
server.sin_family = AF_INET;
- server.sin_addr.s_addr = INADDR_ANY;
+ if (gpioCfg.ifFlags & PI_LOCALHOST_SOCK_IF)
+ {
+ server.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+ }
+ else
+ {
+ server.sin_addr.s_addr = htonl(INADDR_ANY);
+ }
server.sin_port = htons(port);
if (bind(fdSock,(struct sockaddr *)&server , sizeof(server)) < 0)
CHECK_NOT_INITED;
- if (ifFlags > 3)
+ if (ifFlags > 7)
SOFT_ERROR(PI_BAD_IF_FLAGS, "bad ifFlags (%X)", ifFlags);
gpioCfg.ifFlags = ifFlags;
/* ifFlags: */
-#define PI_DISABLE_FIFO_IF 1
-#define PI_DISABLE_SOCK_IF 2
+#define PI_DISABLE_FIFO_IF 1
+#define PI_DISABLE_SOCK_IF 2
+#define PI_LOCALHOST_SOCK_IF 4
/* memAllocMode */
" -e value, secondary DMA channel, 0-6, default 5\n" \
" -f, disable fifo interface, default enabled\n" \
" -k, disable socket interface, default enabled\n" \
+ " -l, localhost socket only default all interfaces\n" \
" -p value, socket port, 1024-32000, default 8888\n" \
" -s value, sample rate, 1, 2, 4, 5, 8, or 10, default 5\n" \
" -t value, clock peripheral, 0=PWM 1=PCM, default PCM\n" \
int opt, err, i;
int64_t mask;
- while ((opt = getopt(argc, argv, "a:b:c:d:e:fkp:s:t:x:")) != -1)
+ while ((opt = getopt(argc, argv, "a:b:c:d:e:fklp:s:t:x:")) != -1)
{
switch (opt)
{
ifFlags |= PI_DISABLE_SOCK_IF;
break;
+ case 'l':
+ ifFlags |= PI_LOCALHOST_SOCK_IF;
+ break;
+
case 'p':
i = getNum(optarg, &err);
if ((i >= PI_MIN_SOCKET_PORT) && (i <= PI_MAX_SOCKET_PORT))