Resolved: GET request works, HEAD request fails, closes #13

master
Marc Wäckerlin 14 years ago
parent 8213c80dde
commit 3f9bfde245
  1. 61
      configure.in
  2. 15
      examples/makefile.am
  3. 6
      proxyface/autoproxy.hxx
  4. 9
      proxyface/makefile.am
  5. 7
      proxyface/proxy.hxx

@ -39,38 +39,55 @@ AC_SUBST(MINOR)
AC_SUBST(LEAST) AC_SUBST(LEAST)
# Qt Environment # Qt Environment
CPPFLAGS+=" -DUNICODE -DQT_NO_DEBUG" AC_MSG_CHECKING(QT4 directory)
CPPFLAGS+=" -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_WEBKIT_LIB -DQT_CORE_LIB" QTDIR="no"
AC_CHECK_HEADER(QtCore/QString, [found="yes"], [found="no"]) AC_ARG_WITH([qt-dir],
if test "$found" == "no"; then AC_HELP_STRING([--with-qt-dir=/path/to/Qt4],
AC_MSG_CHECKING([looking for qt headers]) [to specify the path to the Qt4 directory.]),
for file in /usr/include/qt4 /usr/local/include/qt4 /opt/include/qt4 \ [QTPATHS="$withval"],
/opt/local/include/qt4 /opt/local/libexec/qt4-mac/include \ [QTPATHS="/usr/include/qt4 /usr/local/include/qt4 /opt/include/qt4 /opt/local/include/qt4 /opt/local/libexec/qt4-mac/include /usr/include /usr/local/include /opt/include /opt/local/include"])
/usr/include /usr/local/include \ for x in $QTPATHS; do
/opt/include /opt/local/include; do if test -d $x/QtCore ; then
if test -d ${file}/QtCore; then QTINCDIR=$x
CPPFLAGS+=" -I$file" QTDIR=${x%/include*}
found=$file if test -d $QTDIR/lib; then
break; QTLIBDIR=$QTDIR/lib
break
fi
fi fi
done done
AC_MSG_RESULT([$found]) AC_MSG_RESULT($QTDIR)
fi AM_CONDITIONAL(USE_QT, test -n "$QTLIBDIR")
if test "$found" == "no"; then if test -z "$QTLIBDIR"; then
AC_MSG_WARN(Could not locate QT 4.1)
case $host in case $host in
*darwin*) *darwin*)
PROXYLIB="" LDFLAGS+=" -lproxy"
;; ;;
*mingw*|*win*) *mingw*|*win*)
PROXYLIB="-lwinhttp" LDFLAGS+=" -lwinhttp"
;; ;;
*) *)
PROXYLIB="-lproxy" LDFLAGS+=" -lproxy"
;; ;;
esac esac
AC_SUBST(PROXYLIB)
AC_MSG_WARN([Qt Headers not found])
else else
# by now, Linux/Unix always uses libproxy
case $host in
*darwin*)
LDFLAGS+=" -L$QTLIBDIR -lQtCore -lQtNetwork -lQtGui"
;;
*mingw*|*win*)
LDFLAGS+=" -L$QTLIBDIR -lQtCore4 -lQtNetwork4 -lQtGui4"
;;
*)
LDFLAGS+=" -L$QTLIBDIR -lQtCore -lQtNetwork -lQtGui"
LDFLAGS+=" -lproxy"
;;
esac
CPPFLAGS+=" -DUNICODE -DQT_NO_DEBUG"
CPPFLAGS+=" -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_WEBKIT_LIB -DQT_CORE_LIB"
CPPFLAGS+=" -I$QTINCDIR"
AC_CHECK_PROGS([MOC], [moc-qt4 moc-mac moc]) AC_CHECK_PROGS([MOC], [moc-qt4 moc-mac moc])
test -n "$MOC" || AC_MSG_ERROR([moc for Qt 4 not found!]) test -n "$MOC" || AC_MSG_ERROR([moc for Qt 4 not found!])
AC_SUBST(MOC) AC_SUBST(MOC)

@ -3,13 +3,16 @@
## 1 2 3 4 5 6 7 8 ## 1 2 3 4 5 6 7 8
## 45678901234567890123456789012345678901234567890123456789012345678901234567890 ## 45678901234567890123456789012345678901234567890123456789012345678901234567890
noinst_PROGRAMS = getproxylist simplegui
AM_CPPFLAGS = -I${top_srcdir} AM_CPPFLAGS = -I${top_srcdir}
LDFLAGS = -L${top_builddir}/proxyface/.libs AM_LDFLAGS = -L${top_builddir}/proxyface/.libs
LDADD = -lQtCore -lQtNetwork -lQtGui -lproxy -lproxyface LDADD = -lproxyface
getproxylist_SOURCES = getproxylist.cxx noinst_PROGRAMS = getproxylist
if USE_QT
noinst_PROGRAMS += simplegui
simplegui_SOURCES = simplegui.cxx simplegui_SOURCES = simplegui.cxx
endif
getproxylist_SOURCES = getproxylist.cxx
MAINTAINERCLEANFILES = makefile.in MAINTAINERCLEANFILES = makefile.in

@ -130,7 +130,7 @@ namespace proxy {
// networkmanager // networkmanager
"Interface::setupProxyCheck" -> "QNetworkAccessManager" [label="new"]; "Interface::setupProxyCheck" -> "QNetworkAccessManager" [label="new"];
"QNetworkAccessManager" -> "«network loop»" [label="QNetworkReply* QNetworkAccessManager::head()"]; "QNetworkAccessManager" -> "«network loop»" [label="QNetworkReply* QNetworkAccessManager::get()"];
// slot interactions // slot interactions
"Interface::timeout" -> "Interface::run" [label="first time\n(own thread)"]; "Interface::timeout" -> "Interface::run" [label="first time\n(own thread)"];
@ -169,7 +169,7 @@ namespace proxy {
|||; |||;
--- [label="for each proxy"]; --- [label="for each proxy"];
Interface -> QNetworkAccessManager [label="new"]; Interface -> QNetworkAccessManager [label="new"];
QNetworkAccessManager -> QNetworkReply [label="head(url)"]; QNetworkAccessManager -> QNetworkReply [label="get(url)"];
Interface -> Interface [label="_timeout2.start()"]; Interface -> Interface [label="_timeout2.start()"];
--- [label=""]; --- [label=""];
|||; |||;
@ -410,7 +410,7 @@ namespace proxy {
qFatal("connect failed"); qFatal("connect failed");
QNetworkReply* reply(0); QNetworkReply* reply(0);
_requests.insert _requests.insert
(std::make_pair(reply=manager->head (std::make_pair(reply=manager->get
(QNetworkRequest (QNetworkRequest
(QUrl(QString::fromStdString(url)))), (QUrl(QString::fromStdString(url)))),
std::make_pair(manager, prxy))); std::make_pair(manager, prxy)));

@ -1,16 +1,18 @@
if USE_QT
UISOURCES = proxy.ui proxyauth.ui UISOURCES = proxy.ui proxyauth.ui
RESOURCES = resources.cxx RESOURCES = resources.cxx
MOCHEADER = proxy.hxx autoproxy.hxx proxyauth.hxx MOCHEADER = proxy.hxx autoproxy.hxx proxyauth.hxx
LANGUAGES = proxy_de.qm proxy_en.qm proxy_fr.qm proxy_it.qm LANGUAGES = proxy_de.qm proxy_en.qm proxy_fr.qm proxy_it.qm
LANG_TS = proxy_de.ts proxy_en.ts proxy_fr.ts proxy_it.ts LANG_TS = proxy_de.ts proxy_en.ts proxy_fr.ts proxy_it.ts
UIHEADER = ui_proxy.hxx ui_proxyauth.hxx
MOCSOURCES = moc_proxy.cxx moc_autoproxy.cxx moc_proxyauth.cxx
endif
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libproxyface.pc pkgconfig_DATA = libproxyface.pc
pkgconfig2dir = $(datarootdir)/pkgconfig pkgconfig2dir = $(datarootdir)/pkgconfig
pkgconfig2_DATA = libproxyface.pc pkgconfig2_DATA = libproxyface.pc
UIHEADER = ui_proxy.hxx ui_proxyauth.hxx
MOCSOURCES = moc_proxy.cxx moc_autoproxy.cxx moc_proxyauth.cxx
EXTRA_DIST = ${UISOURCES} $(pkgconfig_DATA).in version.cxx.in EXTRA_DIST = ${UISOURCES} $(pkgconfig_DATA).in version.cxx.in
@ -23,7 +25,6 @@ proxyface_HEADERS = unix.hxx windoze.hxx qtproxy.hxx \
lib_LTLIBRARIES = libproxyface.la lib_LTLIBRARIES = libproxyface.la
libproxyface_la_SOURCES = ${MOCSOURCES} ${LANGUAGES} ${RESOURCES} version.cxx libproxyface_la_SOURCES = ${MOCSOURCES} ${LANGUAGES} ${RESOURCES} version.cxx
libproxyface_la_LIBADD = ${PROXYLIB}
libproxyface_la_LDFLAGS = -version-info ${LIB_VERSION} libproxyface_la_LDFLAGS = -version-info ${LIB_VERSION}
AM_CPPFLAGS = -I${top_srcdir} -I${top_builddir} AM_CPPFLAGS = -I${top_srcdir} -I${top_builddir}

@ -137,17 +137,14 @@ namespace gui {
void proxyAuthenticationRequired(const QNetworkProxy& p, void proxyAuthenticationRequired(const QNetworkProxy& p,
QAuthenticator* auth) { QAuthenticator* auth) {
static ProxyAuth proxyAuth(this); qDebug()<<"proxyAuthenticationRequired";
ProxyAuth proxyAuth(this);
proxyAuth._realm->setText(auth->realm()); proxyAuth._realm->setText(auth->realm());
_auto.pause(); _auto.pause();
qDebug()<<"---> proxyAuthenticationRequired";
if (proxyAuth.exec()==QDialog::Accepted) { if (proxyAuth.exec()==QDialog::Accepted) {
auth->setUser(proxyAuth._username->text()); auth->setUser(proxyAuth._username->text());
auth->setPassword(proxyAuth._password->text()); auth->setPassword(proxyAuth._password->text());
qDebug()<<"Setting authentication to:"
<<auth->user()<<auth->password();
} }
qDebug()<<"---> done: proxyAuthenticationRequired";
_auto.restart(); _auto.restart();
} }

Loading…
Cancel
Save