示例#1
0
文件: test-bind.c 项目: zsx/ossbuild
/** Too big socket address test */
static void big_srv_addr (void)
{
  uint8_t buf[sizeof (struct sockaddr_storage) + 16];
  struct sockaddr dummy;
  int fd, val;


  memset (buf, 0, sizeof (buf));
  val = stun_usage_bind_run ((struct sockaddr *)buf, sizeof (buf),
                       &dummy, &(socklen_t){ sizeof (dummy) });
  assert (val == STUN_USAGE_BIND_RETURN_ERROR);
}
示例#2
0
文件: test-bind.c 项目: zsx/ossbuild
/** Too small socket address test */
static void small_srv_addr (void)
{
  struct sockaddr addr, dummy;
  int val;

  memset (&addr, 0, sizeof (addr));
  addr.sa_family = AF_INET;
#ifdef HAVE_SA_LEN
  addr.sa_len = sizeof (addr);
#endif

  val = stun_usage_bind_run (&addr, 1,
                       &dummy, &(socklen_t){ sizeof (dummy) });
  assert (val == STUN_USAGE_BIND_RETURN_ERROR);
}
示例#3
0
文件: test-bind.c 项目: zsx/ossbuild
/** Incorrect socket family test */
static void bad_family (void)
{
  struct sockaddr addr, dummy;
  int val;

  memset (&addr, 0, sizeof (addr));
  addr.sa_family = AF_UNSPEC;
#ifdef HAVE_SA_LEN
  addr.sa_len = sizeof (addr);
#endif

  val = stun_usage_bind_run (&addr, sizeof (addr),
                       &dummy, &(socklen_t){ sizeof (dummy) });
  assert (val != 0);
}
/** Timeout test */
static void timeout (void)
{
  struct sockaddr_storage srv, dummy;
  socklen_t srvlen = sizeof (srv);
  socklen_t dummylen = sizeof(dummy);
  int val;

  /* Allocate a local UDP port, so we are 100% sure nobody responds there */
  int servfd = listen_dgram ();
  assert (servfd != -1);

  val = getsockname (servfd, (struct sockaddr *)&srv, &srvlen);
  assert (val == 0);

  val = stun_usage_bind_run ((struct sockaddr *)&srv, srvlen,
                       &dummy, &dummylen);
  assert (val == STUN_USAGE_BIND_RETURN_TIMEOUT);

  close (servfd);
}