Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) Microsoft Corporation
//
// SYNOPSIS
//
// Declares the class CPorts.
//
///////////////////////////////////////////////////////////////////////////////
#ifndef PORTS_H
#define PORTS_H
#pragma once
// Manages the ports that the RADIUS server accepts requests on.
class CPorts { public: CPorts() throw (); ~CPorts() throw ();
// Sets the ports configuration.
HRESULT SetConfig(const wchar_t* config) throw ();
// Open/close sockets for the configured ports.
HRESULT OpenSockets() throw (); void CloseSockets() throw ();
void GetSocketSet(fd_set& sockets) const throw ();
// Close all sockets and reset the configuration.
void Clear() throw ();
private: void InsertPort(DWORD ipAddress, WORD ipPort) throw ();
struct Port { DWORD ipAddress; WORD ipPort; SOCKET socket; };
Port* ports; size_t numPorts; fd_set fdSet;
// Not implemented.
CPorts(const CPorts&); CPorts& operator=(const CPorts&); };
inline void CPorts::GetSocketSet(fd_set& sockets) const throw () { sockets = fdSet; }
#endif //PORTS_H
|