-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdefaultfilter.cpp
executable file
·64 lines (49 loc) · 1.62 KB
/
defaultfilter.cpp
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
/******************************************************************************
**
** Copyright 2009 Jocelyn Turcotte
**
** This file is part of GoofyProxy.
**
** GoofyProxy 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.
**
** GoofyProxy 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 GoofyProxy. If not, see http://www.gnu.org/licenses/.
**
******************************************************************************/
#include "defaultfilter.h"
#include <QBuffer>
#include <QDebug>
#include <QHttpResponseHeader>
DefaultFilter::DefaultFilter(QObject* parent, QBuffer* src, QIODevice* dst)
: AHttpFilter(parent)
, src_(src)
, dst_(dst)
{
}
void DefaultFilter::handleResponse(const QHttpResponseHeader& resp)
{
dst_->write(resp.toString().toAscii());
connect(src_, SIGNAL(aboutToClose()), this, SLOT(onSrcAboutToClose()));
connect(src_, SIGNAL(readyRead()), this, SLOT(onSrcReadyRead()));
// Catch up on any readyRead() signal we may have missed
onSrcReadyRead();
}
void DefaultFilter::onSrcAboutToClose()
{
finished();
}
void DefaultFilter::onSrcReadyRead()
{
src_->seek(0);
dst_->write(src_->readAll());
src_->buffer().resize(0);
src_->seek(0);
}