ReactOS
0.4.15-dev-4874-g57c84dd
daytime.c
Go to the documentation of this file.
1
/*
2
* PROJECT: ReactOS simple TCP/IP services
3
* LICENSE: GPL - See COPYING in the top level directory
4
* FILE: base/services/tcpsvcs/daytime.c
5
* PURPOSE: Sends the current date and time to the client
6
* COPYRIGHT: Copyright 2005 - 2008 Ged Murphy <gedmurphy@reactos.org>
7
*
8
*/
9
10
#include "
tcpsvcs.h
"
11
12
#include <time.h>
13
14
static
BOOL
15
SendTime
(
SOCKET
sock
,
CHAR
*
time
)
16
{
17
SIZE_T
stringSize =
strlen
(
time
) + 1;
18
if
(
send
(
sock
,
time
, stringSize, 0) ==
SOCKET_ERROR
)
19
{
20
LogEvent
(
L
"DayTime: Error sending data"
,
WSAGetLastError
(), 0,
LOG_ERROR
);
21
return
FALSE
;
22
}
23
24
return
TRUE
;
25
}
26
27
28
DWORD
WINAPI
29
DaytimeHandler
(
VOID
* Sock_)
30
{
31
struct
tm
*localTime;
32
time_t
aclock;
33
CHAR
*pszTime;
34
DWORD
retVal = 0;
35
SOCKET
Sock = (
SOCKET
)Sock_;
36
37
time
(&aclock);
38
localTime =
localtime
(&aclock);
39
if
(localTime)
40
{
41
pszTime =
asctime
(localTime);
42
if
(!
SendTime
(Sock, pszTime))
43
retVal = 1;
44
}
45
46
LogEvent
(
L
"DayTime: Shutting connection down"
, 0, 0,
LOG_FILE
);
47
if
(
ShutdownConnection
(Sock,
FALSE
))
48
LogEvent
(
L
"DayTime: Connection is down"
, 0, 0,
LOG_FILE
);
49
else
50
{
51
LogEvent
(
L
"DayTime: Connection shutdown failed"
, 0, 0,
LOG_FILE
);
52
retVal = 1;
53
}
54
55
LogEvent
(
L
"DayTime: Terminating thread"
, 0, 0,
LOG_FILE
);
56
ExitThread
(retVal);
57
}
SOCKET_ERROR
#define SOCKET_ERROR
Definition:
winsock.h:333
strlen
ACPI_SIZE strlen(const char *String)
Definition:
utclib.c:269
TRUE
#define TRUE
Definition:
types.h:120
CHAR
char CHAR
Definition:
xmlstorage.h:175
time
__u16 time
Definition:
mkdosfs.c:366
tcpsvcs.h
asctime
_Check_return_ _CRTIMP char *__cdecl asctime(_In_ const struct tm *_Tm)
L
#define L(x)
Definition:
ntvdm.h:50
FALSE
#define FALSE
Definition:
types.h:117
BOOL
unsigned int BOOL
Definition:
ntddk_ex.h:94
LOG_ERROR
#define LOG_ERROR
Definition:
tcpsvcs.h:16
ExitThread
VOID WINAPI ExitThread(IN DWORD uExitCode)
Definition:
thread.c:365
WSAGetLastError
INT WSAAPI WSAGetLastError(VOID)
Definition:
dllmain.c:112
send
INT WSAAPI send(IN SOCKET s, IN CONST CHAR FAR *buf, IN INT len, IN INT flags)
Definition:
send.c:23
WINAPI
#define WINAPI
Definition:
msvc.h:6
DWORD
unsigned long DWORD
Definition:
ntddk_ex.h:95
ShutdownConnection
BOOL ShutdownConnection(SOCKET sock, BOOL bRec)
Definition:
skelserver.c:126
tm
Definition:
time.h:68
localtime
_CRTIMP struct tm *__cdecl localtime(const time_t *_Time)
Definition:
time.h:416
SIZE_T
ULONG_PTR SIZE_T
Definition:
typedefs.h:80
LogEvent
VOID LogEvent(LPCWSTR lpMsg, DWORD errNum, DWORD exitCode, UINT flags)
Definition:
log.c:196
time_t
__kernel_time_t time_t
Definition:
linux.h:252
_LOG_FILE
Definition:
winstation.c:22
DaytimeHandler
DWORD WINAPI DaytimeHandler(VOID *Sock_)
Definition:
daytime.c:29
SendTime
static BOOL SendTime(SOCKET sock, CHAR *time)
Definition:
daytime.c:15
sock
Definition:
tcpcore.h:1455
SOCKET
UINT_PTR SOCKET
Definition:
winsock.h:47
void
Definition:
nsiface.idl:2306
base
services
tcpsvcs
daytime.c
Generated on Mon Jul 4 2022 06:03:25 for ReactOS by
1.8.15