}
#ifdef VCL_TEST
- client_fd = vppcom_session_accept (ssm->listen_fd, &conn->endpt,
+ client_fd = vppcom_session_accept (ssm->listen_fd, &conn->endpt, 0,
-1.0 /* wait forever */ );
if (client_fd < 0)
errno = -client_fd;
+#elif HAVE_ACCEPT4
+ client_fd = accept4 (ssm->listen_fd, (struct sockaddr *) NULL, NULL, NULL);
#else
client_fd = accept (ssm->listen_fd, (struct sockaddr *) NULL, NULL);
#endif
errno_val = errno;
perror ("ERROR in new_client()");
fprintf (stderr, "ERROR: accept failed (errno = %d)!\n", errno_val);
+ return;
}
printf ("SERVER: Got a connection -- fd = %d (0x%08x)!\n",
if (vppcom_session_attr (ssm->listen_fd, VPPCOM_ATTR_GET_FLAGS,
buffer, &buflen) != VPPCOM_OK)
printf ("\nGET_FLAGS2:Oh no, Mr. Biiiiiiiiiiiilllllll ! ! ! !\n");
-
- buflen = BUFLEN;
- if (vppcom_session_attr (ssm->listen_fd, VPPCOM_ATTR_GET_PEER_ADDR,
- buffer, &buflen) != VPPCOM_OK)
- printf ("\nGET_PEER_ADDR: Oh no, Mr. Biiiiiiiiiiiilllllll ! ! ! !\n");
- buflen = BUFLEN;
- if (vppcom_session_attr (ssm->listen_fd, VPPCOM_ATTR_GET_LCL_ADDR,
- buffer, &buflen) != VPPCOM_OK)
- printf ("\nGET_LCL_ADDR: Oh no, Mr. Biiiiiiiiiiiilllllll ! ! ! !\n");
#endif
#else
rv =
{
#ifdef VCL_TEST
#if VPPCOM_SESSION_ATTR_UNIT_TEST
- buflen = BUFLEN;
- if (vppcom_session_attr (client_fd, VPPCOM_ATTR_GET_NREAD,
- buffer, &buflen) < VPPCOM_OK)
- printf ("\nNREAD: Oh no, Mr. Biiiiiiiiiiiilllllll ! ! ! !\n");
- if (vppcom_session_attr (client_fd,
- VPPCOM_ATTR_GET_PEER_ADDR,
- buffer, &buflen) != VPPCOM_OK)
- printf ("\nGET_PEER_ADDR: Oh no, Mr. "
- "Biiiiiiiiiiiilllllll ! ! ! !\n");
- buflen = BUFLEN;
- if (vppcom_session_attr (client_fd, VPPCOM_ATTR_GET_LCL_ADDR,
- buffer, &buflen) != VPPCOM_OK)
- printf ("\nGET_LCL_ADDR: Oh no, Mr. "
- "Biiiiiiiiiiiilllllll ! ! ! !\n");
+ {
+ vppcom_endpt_t ep;
+ uint8_t addr[16];
+
+ ep.ip = addr;
+ buflen = BUFLEN;
+ if (vppcom_session_attr (client_fd, VPPCOM_ATTR_GET_NREAD,
+ buffer, &buflen) < VPPCOM_OK)
+ printf ("\nNREAD: Oh no, Mr. "
+ "Biiiiiiiiiiiilllllll ! ! ! !\n");
+ buflen = sizeof (ep);
+ if (vppcom_session_attr (client_fd,
+ VPPCOM_ATTR_GET_PEER_ADDR,
+ &ep, &buflen) != VPPCOM_OK)
+ printf ("\nGET_PEER_ADDR: Oh no, Mr. "
+ "Biiiiiiiiiiiilllllll ! ! ! !\n");
+ buflen = sizeof (ep);
+ if (vppcom_session_attr (client_fd, VPPCOM_ATTR_GET_LCL_ADDR,
+ &ep, &buflen) != VPPCOM_OK)
+ printf ("\nGET_LCL_ADDR: Oh no, Mr. "
+ "Biiiiiiiiiiiilllllll ! ! ! !\n");
+ }
#endif
#endif
rx_bytes = sock_test_read (client_fd, conn->buf,
close (client_fd);
#endif
conn_pool_free (conn);
+ printf ("SERVER: Closed client fd %d\n", client_fd);
#if ! SOCK_SERVER_USE_EPOLL
if (ssm->nfds == (ssm->listen_fd + 1))
#else