3 *****************************************************************************
4 * Copyright (C) 2010 - 2011 Klagenfurt University
6 * Created on: Aug 10, 2010
7 * Authors: Christopher Mueller <christopher.mueller@itec.uni-klu.ac.at>
8 * Christian Timmerer <christian.timmerer@itec.uni-klu.ac.at>
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU Lesser General Public License as published
12 * by the Free Software Foundation; either version 2.1 of the License, or
13 * (at your option) any later version.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License for more details.
20 * You should have received a copy of the GNU Lesser General Public License
21 * along with this program; if not, write to the Free Software Foundation,
22 * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
23 *****************************************************************************/
28 #include "HTTPConnection.h"
33 using namespace dash::http;
35 HTTPConnection::HTTPConnection (stream_t *stream, Chunk *chunk_) :
36 IHTTPConnection (stream)
43 std::string HTTPConnection::buildRequestHeader(const std::string &path) const
45 std::string req = IHTTPConnection::buildRequestHeader(path);
46 return req.append("Connection: close\r\n");
49 void HTTPConnection::bindChunk(Chunk *chunk_)
54 chunk_->setConnection(this);
58 void HTTPConnection::releaseChunk()
62 chunk->setConnection(NULL);
67 void HTTPConnection::onHeader(const std::string &key,
68 const std::string &value)
70 if(key == "Content-Length")
72 std::istringstream ss(value);
75 chunk->setLength(length);
80 std::string HTTPConnection::extraRequestHeaders() const
83 if(chunk->usesByteRange())
85 ss << "Range: bytes=" << chunk->getStartByte() << "-";
86 if(chunk->getEndByte())
87 ss << chunk->getEndByte();
93 bool HTTPConnection::isAvailable() const
98 void HTTPConnection::disconnect()