aboutsummaryrefslogtreecommitdiff
path: root/src/testing/bindfail.c
blob: 7ff7c61387ecf3846ddeb6a8956bb4a55a3d98e0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "platform.h"
#include "gnunet_util_lib.h"

int main()
{
  uint16_t port = 12035;
  struct GNUNET_NETWORK_Handle *sock1;
  struct GNUNET_NETWORK_Handle *sock2;
  struct sockaddr_in addr;

  (void) memset (&addr, 0, sizeof (struct sockaddr_in));
  sock1 = GNUNET_NETWORK_socket_create (AF_INET, SOCK_DGRAM, 0);
  sock2 = GNUNET_NETWORK_socket_create (AF_INET, SOCK_DGRAM, 0);
  
  addr.sin_port = htons (port);
  addr.sin_addr.s_addr = INADDR_ANY;
  
  if (GNUNET_SYSERR == 
      GNUNET_NETWORK_socket_bind (sock1, (const struct sockaddr *) &addr,
                                  sizeof (addr), 0))
  {
    fprintf (stderr, "first bind failed. check port\n");
    return 1;
  }
  if (GNUNET_SYSERR == 
      GNUNET_NETWORK_socket_bind (sock2, (const struct sockaddr *) &addr, 
                                  sizeof (addr), 0))
  {
    printf ("All OK\n");
    return 0;
  }
  fprintf (stderr, "Second bind succeeded! WTF!!\n");
  fgetc (stdin);
  return 1;
}