This file is indexed.

/usr/include/gnash/Socket.h is in gnash-dev 0.8.11~git20160109-1build1.

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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
// Socket.h - a virtual IO channel, for Gnash
// 
//   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
//   Free Software Foundation, Inc
// 
// 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 3 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA


#ifndef GNASH_SOCKET_H
#define GNASH_SOCKET_H

#include "dsodefs.h"
#include <cstdint>
#include "IOChannel.h"

namespace gnash {
    class URL;
}

namespace gnash {

/// A simple IOChannel subclass for reading and writing sockets.
//
/// The Socket class will give you years of satisfaction provided you observe
/// the following points:
/// 1. A socket is active only when both connected() and not bad().
/// 2. The only accurate way of determining an error is to check bad().
/// 3. read() and write() should not be called until connected() is true.
class DSOEXPORT Socket : public IOChannel
{
public:

    /// Create a non-connected socket.
    Socket();

    virtual ~Socket() {}

    /// Initiate a connection
    //
    /// A return of true does not mean the connection has succeeded, only that
    /// it did not fail. The connection attempt is only complete when
    /// connected() returns true.
    //
    /// @return         false if the connection fails. In this case, the
    ///                 Socket is still in a closed state and is ready for
    ///                 a new connection attempt. Otherwise true.
    bool connect(const std::string& hostname, std::uint16_t port);

    /// Close the Socket.
    //
    /// A closed Socket is in a state where another connection attempt can
    /// be made. Any errors are reset.
    void close();

    /// Whether a connection attempt is complete.
    //
    /// This is true as soon as the socket is ready for reading and writing.
    /// But beware! This function may still return true if the Socket is
    /// in error condition. Always check bad() if you care about this.
    bool connected() const;
    
    /// True if the Socket is in an error condition.
    //
    /// An error condition is fatal and can only be reset when the Socket
    /// is closed. Any read or write failure other than EAGAIN or EWOULDBLOCK
    /// causes a fatal error.
    virtual bool bad() const {
        return _error;
    }

    /// Read exactly the given number of bytes from the Socket or none at all.
    //
    virtual std::streamsize read(void* dst, std::streamsize num);

    /// Read up to the given number of bytes from the Socket.
    virtual std::streamsize readNonBlocking(void* dst, std::streamsize num);

    /// Write the given number of bytes to the stream
    //
    /// If you call write() before connected() is true, it may put the Socket
    /// into an error condition.
    //
    /// Calling write() when the Socket is bad has no effect.
    virtual std::streamsize write(const void* src, std::streamsize num);
    
    /// Return current stream position
    //
    /// Meaningless for a Socket.
    virtual std::streampos tell() const;

    /// Seek to the specified position
    //
    /// Meaningless for a Socket.
    virtual bool seek(std::streampos p);

    /// Seek to the end of the stream
    //
    /// Not Socket.
    virtual void go_to_end();

    /// Return true if the end of the stream has been reached.
    //
    /// EOF is when remote end closed the connection and
    /// we have no more cached data to read
    ///
    virtual bool eof() const;

private:

    /// Fill the cache.
    void fillCache();

    mutable bool _connected;

    /// A cache for received data.
    char _cache[16384];

    /// The socket ID.
    int _socket;

    /// Unprocessed bytes.
    int _size;

    /// Current read position in cache.
    size_t _pos;

    mutable bool _error;
};

} // namespace gnash

#endif // GNASH_IOCHANNEL_H

// Local Variables:
// mode: C++
// indent-tabs-mode: nil
// End: