summaryrefslogtreecommitdiff
path: root/lang/modula-3-socks/files/recvfrom.c
blob: d4a346b3d86ddcdfe5543005f1495ed7857ed4ff (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "wrap.h"
#include <sys/types.h>
#include <sys/socket.h>

ssize_t
m3_recvfrom(int s, void *buf, size_t len, int flags,
  struct sockaddr *from, int *fromlen)
{
  int result;

  ENTER_CRITICAL;
  MAKE_WRITABLE(buf);
  MAKE_WRITABLE(from);
  MAKE_WRITABLE(fromlen);
  result = recvfrom(s, buf, len, flags, from, fromlen);
  EXIT_CRITICAL;
  return result;
}