This file is indexed.

/usr/include/gnash/StreamProvider.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
// 
//   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_STREAMPROVIDER_H
#define GNASH_STREAMPROVIDER_H

#include "NetworkAdapter.h"
#include "dsodefs.h" // for DSOEXPORT
#include "NamingPolicy.h"

#include <string>
#include <memory>

// Forward declarations
namespace gnash {
	class URL;
	class IOChannel;
}


namespace gnash {

/// A StreamProvider makes IOChannels available to the core on request.
//
/// The current functions of this class are:
/// 1. Inform users whether a connection to a certain URL is allowed.
/// 2. Make a connection and return an IOChannel (this performs a separate
///    access check).
///
/// The class should in future also:
/// 3. Take relative URLs and resolve them against the base URL.
//
/// TODO: this class should become an abstract interface.
class DSOEXPORT StreamProvider
{
public:

    /// Construct a StreamProvider
    //
    /// @param original     The original URL, used to decide whether to allow
    ///                     connections.
    /// @param base         The base URL, used to resolve URLs.
    /// @param np           A policy to decide the name of cached files.
	StreamProvider(URL original, URL base,
            std::unique_ptr<NamingPolicy> np =
            std::unique_ptr<NamingPolicy>(new NamingPolicy));

	virtual ~StreamProvider() {}

	/// Returned stream ownership is transferred to caller.
	//
	/// On error NULL is returned
	/// Derive from this for a CachingStreamProvider
	virtual std::unique_ptr<IOChannel> getStream(const URL& url,
            bool namedCacheFile = false) const;

	/// Get a stream from the response of a POST operation
	//
	/// Returned stream ownership is transferred to caller.
	///
	/// On error NULL is returned
	/// Derive from this for a CachingStreamProvider
	///
	/// @param url      The url to post to.
	/// @param postdata Post data in url-encoded form.
	virtual std::unique_ptr<IOChannel> getStream(const URL& url,
            const std::string& postdata, bool namedCacheFile = false) const;
	
	virtual std::unique_ptr<IOChannel> getStream(const URL& url,
            const std::string& postdata,
            const NetworkAdapter::RequestHeaders& headers,
            bool namedCacheFile = false) const;
	
    /// Set the NamingPolicy for cache files
    //
    /// This is only used when cache file naming is requested in getStream()
    /// This StreamProvider owns the NamingPolicy instance.
    void setNamingPolicy(std::unique_ptr<NamingPolicy> np) {
        _namingPolicy = std::move(np);
    }

    /// Return the currently selected policy for converting URL to filename
    const NamingPolicy& namingPolicy() const {
        assert(_namingPolicy.get());
        return *_namingPolicy;
    }

    /// Check whether access to a URL is allowed
    //
    /// This is used by the core to check whether a connection can be
    /// made before trying to make it. It's useful currently for
    /// some functions to decide what to return.
    //
    /// @param url      The url to check
    /// @return         true if allowed, false if not.
    bool allow(const URL& url) const;

    /// The base URL that should be used to resolve all relative URLs.
    //
    /// TODO: drop this if possible and handle all resolution in
    /// this class.
    const URL& baseURL() const {
        return _base;
    }

private:

    /// The current naming policy for cache files.
    std::unique_ptr<NamingPolicy> _namingPolicy;

    const URL _base;

    const URL _original;

};

} // namespace gnash

#endif 


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