/usr/include/skstream-0.3/skstream/sksocket.h is in libskstream-0.3-dev 0.3.9-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | /**************************************************************************
FreeSockets - Portable C++ classes for IP(sockets) applications. (v0.3)
Copyright (C) 2000-2001 Rafael Guterres Jeffman
(C) 2003-2006 Alistair Riddoch
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**************************************************************************/
/**
* This software package has been extensively modified by members of the
* Worldforge Project. See the file ChangeLog for details.
*
* $Id$
*
*/
#ifndef RGJ_FREE_SOCKET_H_
#define RGJ_FREE_SOCKET_H_
#include <skstream/skstreamconfig.h>
// This constant is defined in windows, but not in most other systems
#ifndef SOCKET_ERROR
static const int SOCKET_ERROR = -1;
#endif
// This constant is defined in windows, but not in most other systems
#ifndef INVALID_SOCKET
#define INVALID_SOCKET (SOCKET_TYPE)~0
#endif // INVALID_SOCKET
// All systems should define this, but it is here just in case
#ifndef INADDR_NONE
#warning System headers do not define INADDR_NONE
#define INADDR_NONE 0xFFFFFFFF
#endif // INADDR_NONE
/////////////////////////////////////////////////////////////////////////////
// Enumerations
/////////////////////////////////////////////////////////////////////////////
// Supported Protocols
namespace FreeSockets {
enum IP_Protocol {
proto_IP = IPPROTO_IP,
proto_ICMP = IPPROTO_ICMP,
#ifndef _WIN32
proto_IGMP = IPPROTO_IGMP,
#else
proto_IGMP = IPPROTO_GGP,
#endif
proto_TCP = IPPROTO_TCP,
proto_PUP = IPPROTO_PUP,
proto_UDP = IPPROTO_UDP,
proto_IDP = IPPROTO_IDP,
#ifdef IPPROTO_SCTP
proto_SCTP = IPPROTO_SCTP,
#endif
proto_RAW = IPPROTO_RAW
};
};
/////////////////////////////////////////////////////////////////////////////
// class basic_socket, a virtual base class for use in polling
/////////////////////////////////////////////////////////////////////////////
/// \brief Base class for anything that encapsulates a socket.
class basic_socket {
private:
static int startup_count;
protected:
mutable int LastError;
void setLastError() const;
basic_socket();
public:
virtual ~basic_socket();
virtual SOCKET_TYPE getSocket() const = 0;
int getLastError() const {
return LastError;
}
void copyLastError(const basic_socket & other) {
LastError = other.getLastError();
}
bool is_open() const {
return (getSocket() != INVALID_SOCKET);
}
static bool startup();
};
#endif // RGJ_FREE_SOCKET_H_
|