ReactOS  0.4.14-dev-49-gfb4591c
helpers.c
Go to the documentation of this file.
1 /*
2  * PROJECT: ws2_32.dll API tests
3  * LICENSE: GPLv2 or any later version
4  * FILE: apitests/ws2_32/helpers.c
5  * PURPOSE: Helper functions for the socket tests
6  * COPYRIGHT: Copyright 2008 Colin Finck <mail@colinfinck.de>
7  */
8 
9 #include "ws2_32.h"
10 
11 int CreateSocket(SOCKET* psck)
12 {
13  /* Create the socket */
15  ok(*psck != INVALID_SOCKET, "*psck = %d\n", *psck);
16 
17  if(*psck == INVALID_SOCKET)
18  {
19  printf("Winsock error code is %u\n", WSAGetLastError());
20  WSACleanup();
21  return 0;
22  }
23 
24  return 1;
25 }
26 
28 {
29  int iResult;
30  struct hostent* host;
31  struct sockaddr_in sa;
32 
33  /* Connect to "www.reactos.org" */
34  host = gethostbyname("test.winehq.org");
35 
36  sa.sin_family = AF_INET;
37  sa.sin_addr.s_addr = *(u_long*)host->h_addr_list[0];
38  sa.sin_port = htons(80);
39 
40  SCKTEST(connect(sck, (struct sockaddr *)&sa, sizeof(sa)));
41 
42  return 1;
43 }
44 
46 {
47  const char szGetRequest[] = "GET / HTTP/1.0\r\n\r\n";
48  int iResult;
49  struct fd_set readable;
50 
51  /* Send the GET request */
52  SCKTEST(send(sck, szGetRequest, strlen(szGetRequest), 0));
53  ok(iResult == strlen(szGetRequest), "iResult = %d\n", iResult);
54 #if 0 /* breaks windows too */
55  /* Shutdown the SEND connection */
56  SCKTEST(shutdown(sck, SD_SEND));
57 #endif
58  /* Wait until we're ready to read */
59  FD_ZERO(&readable);
60  FD_SET(sck, &readable);
61 
62  SCKTEST(select(0, &readable, NULL, NULL, NULL));
63 
64  return 1;
65 }
Definition: winsock.h:66
int ConnectToReactOSWebsite(SOCKET sck)
Definition: helpers.c:27
SOCKET WSAAPI socket(IN INT af, IN INT type, IN INT protocol)
Definition: socklife.c:143
unsigned long u_long
Definition: linux.h:269
#define SCKTEST(_cmd_)
Definition: ws2_32.h:25
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
char * host
Definition: whois.c:55
INT WSAAPI WSACleanup(VOID)
Definition: startup.c:60
#define FD_ZERO(set)
Definition: winsock.h:96
#define FD_SET(fd, set)
Definition: winsock.h:89
INT WSAAPI connect(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: sockctrl.c:23
int CreateSocket(SOCKET *psck)
Definition: helpers.c:11
INT WSAAPI select(IN INT s, IN OUT LPFD_SET readfds, IN OUT LPFD_SET writefds, IN OUT LPFD_SET exceptfds, IN CONST struct timeval *timeout)
Definition: select.c:41
smooth NULL
Definition: ftsmooth.c:416
PHOSTENT WSAAPI gethostbyname(IN const char FAR *name)
Definition: getxbyxx.c:221
INT WSAAPI WSAGetLastError(VOID)
Definition: dllmain.c:112
#define INVALID_SOCKET
Definition: winsock.h:332
INT WSAAPI shutdown(IN SOCKET s, IN INT how)
Definition: sockctrl.c:506
INT WSAAPI send(IN SOCKET s, IN CONST CHAR FAR *buf, IN INT len, IN INT flags)
Definition: send.c:23
#define SD_SEND
Definition: winsock.h:55
#define ok(value,...)
Definition: atltest.h:57
int GetRequestAndWait(SOCKET sck)
Definition: helpers.c:45
#define AF_INET
Definition: tcpip.h:117
UINT_PTR SOCKET
Definition: winsock.h:47
#define SOCK_STREAM
Definition: tcpip.h:118
#define htons(x)
Definition: module.h:213
static struct sockaddr_in sa
Definition: adnsresfilter.c:69
#define printf
Definition: config.h:203