2 * PROJECT: ReactOS API Tests
3 * LICENSE: LGPL-2.1+ (https://spdx.org/licenses/LGPL-2.1+)
4 * PURPOSE: Test for IOCTL_AFD_SEND/IOCTL_AFD_SEND_DATAGRAM
5 * COPYRIGHT: Copyright 2015 Thomas Faber (thomas.faber@reactos.org)
17 struct sockaddr_in addr
;
19 RtlZeroMemory(Buffer
, sizeof(Buffer
));
21 Status
= AfdCreateSocket(&SocketHandle
, AF_INET
, SOCK_STREAM
, IPPROTO_TCP
);
22 ok(Status
== STATUS_SUCCESS
, "AfdCreateSocket failed with %lx\n", Status
);
24 Status
= AfdSend(SocketHandle
, NULL
, 0);
25 ok(Status
== STATUS_INVALID_CONNECTION
, "AfdSend failed with %lx\n", Status
);
27 Status
= AfdSend(SocketHandle
, Buffer
, sizeof(Buffer
));
28 ok(Status
== STATUS_INVALID_CONNECTION
, "AfdSend failed with %lx\n", Status
);
30 memset(&addr
, 0, sizeof(addr
));
31 addr
.sin_family
= AF_INET
;
32 addr
.sin_addr
.s_addr
= inet_addr("0.0.0.0");
33 addr
.sin_port
= htons(0);
35 Status
= AfdBind(SocketHandle
, (const struct sockaddr
*)&addr
, sizeof(addr
));
36 ok(Status
== STATUS_SUCCESS
, "AfdBind failed with %lx\n", Status
);
38 memset(&addr
, 0, sizeof(addr
));
39 addr
.sin_family
= AF_INET
;
40 addr
.sin_addr
.s_addr
= inet_addr("8.8.8.8");
41 addr
.sin_port
= htons(53);
43 Status
= AfdConnect(SocketHandle
, (const struct sockaddr
*)&addr
, sizeof(addr
));
44 ok(Status
== STATUS_SUCCESS
, "AfdConnect failed with %lx\n", Status
);
46 Status
= AfdSend(SocketHandle
, NULL
, 0);
47 ok(Status
== STATUS_SUCCESS
, "AfdSend failed with %lx\n", Status
);
49 Status
= AfdSend(SocketHandle
, Buffer
, sizeof(Buffer
));
50 ok(Status
== STATUS_SUCCESS
, "AfdSend failed with %lx\n", Status
);
52 NtClose(SocketHandle
);
62 struct sockaddr_in addr
;
64 RtlZeroMemory(Buffer
, sizeof(Buffer
));
66 Status
= AfdCreateSocket(&SocketHandle
, AF_INET
, SOCK_DGRAM
, IPPROTO_UDP
);
67 ok(Status
== STATUS_SUCCESS
, "AfdCreateSocket failed with %lx\n", Status
);
69 memset(&addr
, 0, sizeof(addr
));
70 addr
.sin_family
= AF_INET
;
71 addr
.sin_addr
.s_addr
= inet_addr("0.0.0.0");
72 addr
.sin_port
= htons(0);
74 Status
= AfdBind(SocketHandle
, (const struct sockaddr
*)&addr
, sizeof(addr
));
75 ok(Status
== STATUS_SUCCESS
, "AfdBind failed with %lx\n", Status
);
77 memset(&addr
, 0, sizeof(addr
));
78 addr
.sin_family
= AF_INET
;
79 addr
.sin_addr
.s_addr
= inet_addr("8.8.8.8");
80 addr
.sin_port
= htons(53);
82 Status
= AfdSendTo(SocketHandle
, NULL
, 0, (const struct sockaddr
*)&addr
, sizeof(addr
));
83 ok(Status
== STATUS_SUCCESS
, "AfdSendTo failed with %lx\n", Status
);
85 Status
= AfdSendTo(SocketHandle
, Buffer
, sizeof(Buffer
), (const struct sockaddr
*)&addr
, sizeof(addr
));
86 ok(Status
== STATUS_SUCCESS
, "AfdSendTo failed with %lx\n", Status
);
88 NtClose(SocketHandle
);