Commit graph

24 commits

Author SHA1 Message Date
Dominik Riebeling
ba34b0fac3 rbutil: Modernize HttpGet implementation.
- Change signal-slot connections to new style, and fix renamed signal
  for Qt6.
- Make more use of RAII.

Change-Id: I14e52eb6bfdbb89bccafb33e4988af25b5d82713
2020-11-07 12:50:33 +01:00
Dominik Riebeling
feb028ac37 rbutil: Fix deprecation warnings.
Change-Id: Ia7e24a5fee2b6e858abcec318d13775ad23b4469
2020-08-06 20:50:52 +02:00
Dominik Riebeling
1015088d90 Fix building with Qt 4.7.
QUrl::isLocalFile() is available starting with Qt 4.8. We can safely check for
a file:// url instead.

Qt 4.8 dropped support for OS X 10.4 / 10.5. Since we're still supporting those
we need to keep using Qt 4.7 on OS X. We might want to consider requiring at
least 10.6 on OS X with the next major release of Rockbox Utility.

Change-Id: I18998fe3c7a38773479bc7a1c32ca6e4966359e9
2016-01-17 20:47:08 +01:00
Dominik Riebeling
79d513dd7e Add documentation to HttpGet and remove unnecessary return value.
HttpGet::getFile() always returns the same value. Remove the return value since
it isn't necessary. Add some missing function documentation comments.

Change-Id: I1cee242211272a996437b10dbc8de791b3fc3d67
2015-12-18 23:42:18 +01:00
Dominik Riebeling
d24a9ea3b2 Add support file:// URLs in HttpGet.
QNetworkAccessManager can handle file:// URLs without additional work. Make
HttpGet aware of that so you can now also use it to retrieve file:// URLs. Add
a unit test for it as well.

Change-Id: If64b57453460b70bca9e5b0c725bb78344617bcd
2015-12-18 23:42:17 +01:00
Dominik Riebeling
4d2ce949b3 Use cutelogger for Rockbox Utility internal trace.
Change tracing from qDebug() to use cutelogger, which is available under the
LGPL2.1. This allows to automatically add filename and line number to the log,
and also provides multiple log levels.

Change-Id: I5dbdaf902ba54ea99f07ae10a07467c52fdac910
2013-11-04 23:32:52 +01:00
Dominik Riebeling
3144c2c74c Rewrite HttpGet based on QNetworkAccessManager.
HttpGet used to use QHttp which has been deprecated since a while and has been
removed from Qt5. Rewrite the class based on QNetworkAccessManager which is the
recommended way these days.

Change-Id: I4902309c433a85ec18e157ef3a9f5e60fd0f4b1f
2013-01-27 20:11:17 +01:00
Dominik Riebeling
1789b717ba Remove support for RFC850 timestamps.
RFC850 timeformat isn't y2k compliant. Furthermore, parsing turned out to be
broken and it doesn't seem supporting the format is necessary anyway.

Change-Id: I062e636a9e016ff1ac49d2a55f00adb1af182576
2013-01-22 22:27:16 +01:00
Dominik Riebeling
554ee364b0 Avoid unnecessary HEAD request on uncached file.
If a file is not available in the cache immediately sent a GET request. Using a
HEAD request to retrieve the file timestamp on the server is not necessary and
only creates an unnecessary network request.

Change-Id: I358507dcc0c6b837ff47e5fd710b5262d03cb7b0
2013-01-22 20:39:40 +01:00
Dominik Riebeling
1f1826e39c Remove Rockbox Utility Offline Mode.
Offline Mode was intended to allow performing an installation without network
access. However, to get the required files cached the same installation has to
be performed with network access, which is a rather strange prerequisite. A
better way would be a way to direct Rockbox Utility to some local "repository"
that holds the required files.

Furthermore, Offline Mode hasn't been tested since long and is likely to be
broken since the caching mechanism has been extended.

For now remove this functionality. As far as I know it's been rarely used (if
at all) anyway.

Change-Id: Ib2af4892708e0440bd0a7940c131f04182ddb39a
2013-01-13 19:45:29 +01:00
Dominik Riebeling
d608fd604b Remove HttpGet::error() function.
This function returns an internal enum value of QHttp (which is also
deprecated). It was only used for showing an error to the user / showing it in
the system trace. Since it is an enum value it doesn't have much value. Log /
show the error string instead.

Change-Id: I54b9b6026969f8108f779b02a04477f0ad9201ab
2013-01-13 18:48:28 +01:00
Dominik Riebeling
7263ccb105 Remove svn keyword lines from sources.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30806 a1c6a512-1295-4272-9138-f99709370657
2011-10-19 20:51:16 +00:00
Dominik Riebeling
f18b9d9d78 Make parsing the server date locale independent also for asctime and RFC850 representation.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24302 a1c6a512-1295-4272-9138-f99709370657
2010-01-20 22:48:11 +00:00
Dominik Riebeling
b283967ebd Use QLocale::toDateTime() for parsing the date instead of QDateTime::fromString(). Fixes server timestamps not parsed correctly on systems with a non-english locale.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24017 a1c6a512-1295-4272-9138-f99709370657
2009-12-15 21:58:07 +00:00
Dominik Riebeling
0fcc84f463 Add cache index file to HttpGet class to maintain a list of hash - file origin mappings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23174 a1c6a512-1295-4272-9138-f99709370657
2009-10-14 20:21:23 +00:00
Dominik Wenger
d0b048e82d rbutil: dont output a error if rbutil follows a http redirect.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22739 a1c6a512-1295-4272-9138-f99709370657
2009-09-19 21:00:07 +00:00
Dominik Riebeling
132176e120 RFC2616 requires requests made to proxies to use the absoluteURI form while HTTP/1.1 clients shall only create it when sending a request to a proxy. Fixes proxy support not working correctly (most noticably on theme installation).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20992 a1c6a512-1295-4272-9138-f99709370657
2009-05-19 22:46:57 +00:00
Dominik Riebeling
b388200519 Simplify a debug output case and fix a gcc warning (as reported in FS#10124, only appears on new gcc versions).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20725 a1c6a512-1295-4272-9138-f99709370657
2009-04-17 22:09:39 +00:00
Dominik Riebeling
ba830e4cfe Don't connect the headerFinished slot during each get. Fixes the header result getting evaluated more than once if a HttpGet object is reused.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20447 a1c6a512-1295-4272-9138-f99709370657
2009-03-22 08:50:55 +00:00
Dominik Riebeling
6a76ebbab1 Cleanup HttpGet debugging output: make it somewhat more silent and streamline the messages in general.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20438 a1c6a512-1295-4272-9138-f99709370657
2009-03-21 23:18:57 +00:00
Dominik Riebeling
e8f25d91e8 Don't ignore errors when finishing a HTTP request for cached request as that is already done. Fixes a wrong status reported when an error occured.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20435 a1c6a512-1295-4272-9138-f99709370657
2009-03-21 21:04:24 +00:00
Dominik Riebeling
8037fed8d5 HttpGet: if downloaded data should be written to output buffer make sure the buffer empty. This prevents old data available to the caller if a HttpGet object is reused and the new request fails.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20432 a1c6a512-1295-4272-9138-f99709370657
2009-03-21 18:01:59 +00:00
Dominik Riebeling
e05e7932f3 Some HttpGet cleanup: use references when setting options.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20232 a1c6a512-1295-4272-9138-f99709370657
2009-03-08 09:06:05 +00:00
Dominik Riebeling
f958717d43 Separate basic functionality from GUI parts by moving it into a separate folder. Some files still need to get cleaned up prior moving them too.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18788 a1c6a512-1295-4272-9138-f99709370657
2008-10-12 19:21:58 +00:00
Renamed from rbutil/rbutilqt/httpget.cpp (Browse further)