3 * Copyright (C) 2005 ReactOS Team
5 * LICENCE: GPL - See COPYING in the top level directory
6 * PROJECT: ReactOS simple TCP/IP services
7 * FILE: apps/utils/net/tcpsvcs/discard.c
8 * PURPOSE: Provide CharGen, Daytime, Discard, Echo, and Qotd services
9 * PROGRAMMERS: Ged Murphy (gedmurphy@gmail.com)
17 extern BOOL bShutDown
;
19 DWORD WINAPI
DiscardHandler(VOID
* Sock_
)
22 SOCKET Sock
= (SOCKET
)Sock_
;
24 if (!RecieveIncomingPackets(Sock
))
26 LogEvent(_T("Discard: RecieveIncomingPackets failed\n"), 0, FALSE
);
30 LogEvent(_T("Discard: Shutting connection down...\n"), 0, FALSE
);
31 if (ShutdownConnection(Sock
, TRUE
))
32 LogEvent(_T("Discard: Connection is down.\n"), 0, FALSE
);
35 LogEvent(_T("Discard: Connection shutdown failed\n"), 0, FALSE
);
39 LogEvent(_T("Discard: Terminating thread\n"), 0, FALSE
);
45 BOOL
RecieveIncomingPackets(SOCKET Sock
)
47 TCHAR ReadBuffer
[BUF
];
53 ReadBytes
= recv(Sock
, ReadBuffer
, BUF
, 0);
56 _stprintf(buf
, _T("Received %d bytes from client\n"), ReadBytes
);
57 LogEvent(buf
, 0, FALSE
);
59 else if (ReadBytes
== SOCKET_ERROR
)
61 _stprintf(buf
, ("Socket Error: %d\n"), WSAGetLastError());
62 LogEvent(buf
, 0, TRUE
);
65 } while ((ReadBytes
> 0) && (! bShutDown
));
68 LogEvent(_T("Discard: Connection closed by peer.\n"), 0, FALSE
);