/* Starshatter: The Open Source Project Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors Copyright (c) 1997-2006, Destroyer Studios LLC. AUTHOR: John DiCamillo OVERVIEW ======== Wrapper for WinSock Library */ #include #include "NetLayer.h" #include #include // +-------------------------------------------------------------------+ static DWORD baseTime = timeGetTime(); // +-------------------------------------------------------------------+ NetLayer::NetLayer() { fail = false; WSADATA info; WORD ver = MAKEWORD(2,2); int err = WSAStartup(ver, &info); if (err) fail = true; } NetLayer::~NetLayer() { WSACleanup(); } bool NetLayer::OK() const { return !fail; } int NetLayer::GetLastError() { return WSAGetLastError(); } DWORD NetLayer::GetTime() { DWORD msec = timeGetTime(); if (msec >= baseTime) { return msec - baseTime; } else { DWORD extra = 0xffffffff; return msec + extra - baseTime; } } long NetLayer::GetUTC() { return (long) time(0); } Text NetLayer::GetHostName() { char hostname[256]; ZeroMemory(hostname, sizeof(hostname)); ::gethostname(hostname, sizeof(hostname)); return hostname; }