ReactOS 0.4.15-dev-7846-g8ba6c66
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
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, lstrlenA(szGetRequest), 0));
53 ok(iResult == strlen(szGetRequest), "iResult = %d\n", iResult);
54#if 0 /* breaks windows too */
55 /* Shutdown the SEND connection */
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}
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
static struct sockaddr_in sa
Definition: adnsresfilter.c:69
#define ok(value,...)
Definition: atltest.h:57
#define NULL
Definition: types.h:112
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
INT WSAAPI send(IN SOCKET s, IN CONST CHAR FAR *buf, IN INT len, IN INT flags)
Definition: send.c:23
#define IPPROTO_TCP
Definition: ip.h:196
unsigned long u_long
Definition: linux.h:269
#define SOCK_STREAM
Definition: tcpip.h:118
#define AF_INET
Definition: tcpip.h:117
#define printf
Definition: freeldr.h:93
PHOSTENT WSAAPI gethostbyname(IN const char FAR *name)
Definition: getxbyxx.c:221
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
#define htons(x)
Definition: module.h:215
int GetRequestAndWait(SOCKET sck)
Definition: helpers.c:45
int ConnectToReactOSWebsite(SOCKET sck)
Definition: helpers.c:27
#define SCKTEST(_cmd_)
Definition: ws2_32.h:25
INT WSAAPI shutdown(IN SOCKET s, IN INT how)
Definition: sockctrl.c:506
SOCKET WSAAPI socket(IN INT af, IN INT type, IN INT protocol)
Definition: socklife.c:143
Definition: winsock.h:66
static void CreateSocket(void)
Definition: telnetd.c:102
char * host
Definition: whois.c:55
int PASCAL FAR WSAGetLastError(void)
Definition: dllmain.c:112
#define FD_ZERO(set)
Definition: winsock.h:96
int PASCAL FAR WSACleanup(void)
Definition: startup.c:60
#define INVALID_SOCKET
Definition: winsock.h:332
UINT_PTR SOCKET
Definition: winsock.h:47
#define SD_SEND
Definition: winsock.h:55
#define FD_SET(fd, set)
Definition: winsock.h:89