Пример #1
0
INTERPOSE (recvfrom, ssize_t, int sockfd, void *buf, size_t len,
           int flags, struct sockaddr * src_addr, socklen_t * addrlen)
{
  ssize_t ret;
  v4v_addr_t peer = { 0 };

  CHECK_INTERPOSE (recvfrom);

  if (!is_our_fd (sockfd))
    return orig_recvfrom (sockfd, buf, len, flags, src_addr, addrlen);

  ret = v4v_recvfrom (sockfd, buf, len, flags, &peer);

  if (is_our_af (sockfd))
    {
      v4v_map_v4va_to_sxenv4v (src_addr, addrlen, &peer);
    }
  else
    {
      v4v_map_v4va_to_sin (src_addr, addrlen, &peer);
    }

  return ret;
}
Пример #2
0
/* Overload recvfrom */
ssize_t recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen)
{
	printf("Called recvfrom\n");
	return orig_recvfrom(s, buf, len, flags, from, fromlen);
}