Adriaan de Groot
35998066c2
libcalamares: re-do singleton-ness of NetworkAccessManager
...
The Calamares Manager should not be a singleton; it is needed
in multiple threads (e.g. from QML). It can have a singleton
Private manager that caches and shares things, though.
2023-10-24 02:01:19 +02:00
Adriaan de Groot
a9ef587705
libcalamares: use namespace Calamares::Network consistently
2023-09-10 22:32:49 +02:00
Adriaan de Groot
27329a497a
libcalamares: deal with QMutexLocker
...
- Add a compat/ directory with support for Calamares-named
variations of Qt classes where there are relevant differences
between Qt5 and Qt6
2023-09-03 22:58:33 +02:00
Adriaan de Groot
3757fcf0bf
libcalamares: drop useless variable
2023-08-28 22:33:56 +02:00
Adriaan de Groot
396746acc1
[libcalamares] Warnings-- for renamed enum value
...
Remove the before-Qt 5.15 ifdeffery and just keep the current
flags for NetworkManager.
2021-09-16 11:12:57 +02:00
Adriaan de Groot
0aa2603a23
[libcalamares] Fix network-connectivity check on old Qt
...
With old Qt, Calamares could only run one check on a thread,
because the NAM would be switched to NotAccessible --
subsequent checks would fail because the NAM is already
hard-set to NotAccessible, so it could never be turned back
on by Calamares code.
Reset the accessible flag for the NAM while checking if
the internet is there.
2021-09-06 14:44:52 +02:00
Adriaan de Groot
0538881447
[libcalamares] Handle multiple invalid URLs at once
...
- expand tests with example where more than one URL is invalid
- fix the call to the wrong overload of QVector::erase()
2021-08-26 14:32:57 +02:00
Adriaan de Groot
653359d815
[libcalamares] Fix up multiple URLs for checkinternet
...
- was filtering out the wrong URLs
- was not actually removing the invalid URLs
- extend API to make it possible to count / confirm the settings
- extend tests to demonstrate that API and the issues
2021-08-26 12:57:40 +02:00
Adriaan de Groot
c79fc2e6d9
[libcalamares] Add urls only if valid, add tests to check that
2021-08-24 10:00:42 +02:00
Adriaan de Groot
81fe8b1488
[libcalamares] Expand API for setting URLs to check
2021-08-01 22:37:13 +02:00
Adriaan de Groot
b8583a1e59
[libcalamares] Expand the number of URLs to check for connectivity
...
- introduce a list of URLs instead of just one
- ping each of them, in turn, until one responds
2021-08-01 22:07:51 +02:00
Adriaan de Groot
6ee0da41c8
[libcalamares] Avoid deprecation warning in network attributes
2021-06-15 11:45:29 +02:00
Adriaan de Groot
3b14e354b0
[libcalamares] Log more HTTP errors during requests
2020-10-16 13:07:57 +02:00
Adriaan de Groot
2878c474c5
Warnings-- (~T() override)
...
Change all the places that had
virtual ~T() override
to the less redundant form without override.
2020-09-22 22:49:30 +02:00
Adriaan de Groot
2126be6d6d
Warnings-- (~T() override)
...
Consistently use
~T() override;
in class declarations (so no virtual in front, and avoid
warnings due to the missing override in back).
2020-09-22 22:40:52 +02:00
Asif Mahmud Shimon
c6a3e9b816
Internet accessibility checking done by ping method
2020-08-27 11:36:55 +06:00
Adriaan de Groot
1cd9b93a22
REUSE: Giant boilerplate cleanup
...
- point to main Calamares site in the 'part of' headers instead
of to github (this is the "this file is part of Calamares"
opening line for most files).
- remove boilerplate from all source files, CMake modules and completions,
this is the 3-paragraph summary of the GPL-3.0-or-later, which has
a meaning entirely covered by the SPDX tag.
2020-08-26 02:28:38 +02:00
Adriaan de Groot
36fb1124be
[libcalamares] Export network status as Q_PROPERTY and to QML
2020-07-23 12:57:01 +02:00
Callum Farmer
0c4dc71d5c
[libcalamares] Update SPDX identifiers.
...
Update CppJob.h
Update CalamaresConfig.h.in
Update DllMacro.h
Update GlobalStorage.cpp
Update GlobalStorage.h
Update Job.cpp
Update Job.h
Update JobExample.cpp
Update JobExample.h
Update JobQueue.cpp
Update CalamaresConfig.h.in
Update CppJob.cpp
Update CppJob.h
Update DllMacro.h
Update GlobalStorage.cpp
Update GlobalStorage.h
Update Job.cpp
Update Job.h
Update JobExample.cpp
Update JobExample.h
Update JobQueue.h
Update ProcessJob.cpp
Update ProcessJob.h
Update PythonHelper.cpp
Update PythonJob.cpp
Update PythonJob.h
Update PythonHelper.h
Update PythonJobApi.cpp
Update PythonJobApi.h
Update Settings.cpp
Update Settings.h
Update GeoIPJSON.cpp
Update GeoIPJSON.h
Update GeoIPTests.cpp
Update GeoIPTests.h
Update GeoIPXML.cpp
Update GeoIPXML.h
Update Handler.cpp
Update Handler.h
Update Interface.cpp
Update Interface.h
Update test_geoip.cpp
Update CountryData_p.cpp
Update Label.cpp
Update Label.h
Update LabelModel.cpp
Update LabelModel.h
Update CountryData_p.cpp
Update CountryData_p.cpp
Update Lookup.cpp
Update Lookup.h
Update Tests.cpp
Update Tests.h
Update TimeZone.cpp
Update TimeZone.h
Update TranslatableConfiguration.cpp
Update TranslatableConfiguration.h
Update ZoneData_p.cxxtr
Update cldr-extractor.py
Update zone-extractor.py
Update Actions.h
Update Actions.h
Update Descriptor.h
Update InstanceKey.cpp
Update Module.cpp
Update Module.h
Update Requirement.cpp
Update RequirementsChecker.h
Update RequirementsModel.cpp
Update RequirementsModel.h
Update Tests.cpp
Update Manager.cpp
Update Manager.h
Update Tests.cpp
Update FileSystem.cpp
Update FileSystem.h
Update KPMManager.cpp
Update KPMManager.h
Update KPMTests.cpp
Update FileSystem.cpp
Update FileSystem.cpp
Update FileSystem.h
Update KPMManager.cpp
Update KPMManager.h
Update Mount.cpp
Update Mount.h
Update PartitionIterator.cpp
Update PartitionIterator.h
Update PartitionIterator.h
Update PartitionQuery.cpp
Update PartitionQuery.h
Update PartitionSize.cpp
Update PartitionSize.h
Update Sync.cpp
Update Sync.h
Update Tests.cpp
Update Tests.h
Update BoostPython.h
Update CalamaresUtilsSystem.cpp
Update CalamaresUtilsSystem.h
Update CommandList.cpp
Update CommandList.h
Update Dirs.cpp
Update Dirs.h
Update Entropy.cpp
Update Entropy.h
Update Entropy.cpp
Update Logger.cpp
Update Logger.h
Update NamedEnum.h
Update NamedSuffix.h
Update PluginFactory.cpp
Update PluginFactory.h
Update RAII.h
Update RAII.h
Update Retranslator.cpp
Update Retranslator.h
Update String.cpp
Update String.h
Update TestPaths.cpp
Update Tests.cpp
Update Tests.h
Update UMask.cpp
Update UMask.h
Update Units.h
Update Variant.cpp
Update Variant.h
Update Yaml.cpp
Update Yaml.h
Update moc-warnings.h
2020-06-03 12:52:53 +01:00
Adriaan de Groot
401a34fcbd
[libcalamares] Fix tests on FreeBSD
...
- https requests can fail if ca_nss isn't installed; ping something
else then.
2020-05-06 18:06:17 +02:00
Adriaan de Groot
7277d52828
[libcalamares] Expand range of errors for network requests
...
- All failures were being reported as Timeout, which is confusing
when they are not. Introduce HttpError for the not-timeout
other kinds of errors.
- Add operator<< for RequestStatus for nicer error logging.
2020-05-06 17:50:34 +02:00
Adriaan de Groot
d8ecd302e1
[libcalamares] Apply coding style
...
- minor space issues
- drop a blank line after moc-warnings.h to avoid if being sorted
downwards, after the MOC file it's protecting
2020-03-31 23:19:51 +02:00
Adriaan de Groot
1eec1a9fe7
[libcalamares] Fix typo in API
...
- "asynchronouse" is not a thing
2020-03-24 13:43:19 +01:00
Adriaan de Groot
781322ab41
[libcalamares] Use more descriptive variable name
...
- If the test failed, you'd get a cryptic message like
FAIL! : NetworkTests::testPing() 'r' returned FALSE. ()
So rename the variable so the failure mode is more obvious.
(Could have used QVERIFY2() instead, this is simpler)
2020-02-14 13:23:19 +01:00
Adriaan de Groot
24c2c435a0
[libcalamares] Try repairing tests
...
- Fail on FreeBSD with an instant timeout
2020-02-05 17:08:47 +01:00
Adriaan de Groot
bb9cca643f
[libcalamares] Avoid warnings from MOC-generated code
...
- Moc generates Q_UNUSED(_a); which in turn (with clang) issues
a superfluous-semicolon warning. Existing code with automoc
uses utils/moc-warnings.h to turn off warnings that are issued
on moc code. Include it explicitly here because automoc isn't
applied.
2019-09-23 11:50:06 +02:00
Adriaan de Groot
3c387a11c9
[libcalamares] class/struct mismatch
...
- Manager::Private is a class, not just a struct. Needed for
hypothetical MSVC compatibility.
2019-09-23 11:26:53 +02:00
Adriaan de Groot
57a942d155
[libcalamares] Make a NAM per thread
...
- To avoid warnings about creating requests and replies, parented
by the NAM but from another thread, make a NAM per thread.
2019-09-14 07:21:24 -04:00
Adriaan de Groot
ca351ff7b6
[libcalamares] Apply (some) options to request earlier
2019-09-10 14:26:46 +02:00
Adriaan de Groot
badbdf59ee
[libcalamares] Build synchronous get w/ async-get
2019-09-02 13:43:10 +02:00
Adriaan de Groot
f8356a6dcc
[libcalamares] Add an async get method
...
- Mostly a "cheap" wrapper for a half-dozen boilerplate lines
of Qt NAM code.
2019-09-02 12:21:33 +02:00
Adriaan de Groot
eb21c90861
[libcalamares] Avoid implicit 0-to-flags conversion
...
- clang complains about using 0 as a Flags value, so make the
default (empty) initialization explicit.
2019-08-26 21:42:27 +02:00
Adriaan de Groot
a1b0049bbf
[libcalamares] Use more readable names
2019-08-26 15:41:30 +02:00
Adriaan de Groot
e2c6591a77
[libcalamares] Refactor request internals
...
- distinguish timeouts from other failures
- git synchronousPing() a more detailed result, which is
still bool-compatible.
2019-08-26 15:24:58 +02:00
Adriaan de Groot
f0be7fd4aa
[libcalamares] Make failures in the internal methods obvious
...
- internally, timeout and error will return nullptr
2019-08-26 14:43:41 +02:00
Adriaan de Groot
ededebbc6c
[libcalamares] Return reply early if the request is bad
2019-08-24 15:23:07 +02:00
Adriaan de Groot
85f0d38698
[libcalamares] Refactor synchronous get
...
- Add timeout support
- Refactor into a static helper method
2019-08-23 14:59:35 +02:00
Adriaan de Groot
1f2b3b734d
[libcalamares] Extend synchronous API with options
2019-08-23 12:18:59 +02:00
Adriaan de Groot
af1aa701bc
[libcalamares] Shuffle namespace lines around
...
- put all the definitions inside namespace {} to avoid
needlessly long source lines.
2019-08-23 12:09:30 +02:00
Adriaan de Groot
8ea1ea6662
[libcalamares] Add synchronousGet() to network service
...
- Synchronous download of a given URL; not something to
do from the GUI thread.
- Use it from the GeoIP service, which downloads in a
separate thread to do GeoIP lookups.
- Drop now-unused headers.
- Adjust tests for GeoIP to use network service
2019-08-22 16:11:26 +02:00
Adriaan de Groot
eae931f2ed
[libcalamares] Ping only when accessibility is unknown
...
- Restores exact functionality of previous version
(noted by Kevin Kofler)
- Short-circuit ping if the URL is bad.
2019-08-21 03:43:51 -04:00
Adriaan de Groot
4389c254df
[libcalamares] Rely directly on QNAM's networkAccessible()
2019-08-20 10:57:34 -04:00
Adriaan de Groot
11d52df04c
[libcalamares] Add API docs to network service
2019-08-20 10:57:34 -04:00
Adriaan de Groot
8d3530154f
[libcalamares] Expand network service test
...
- Do an actual ping (also to check for memory leaks)
2019-08-20 09:57:04 -04:00
Adriaan de Groot
b8d56bb4a6
[libcalamares] Add tests for network service
2019-08-20 09:52:11 -04:00
Adriaan de Groot
d7602df51e
[libcalamares] Introduce networking service
...
- The networking service is intended to wrap up use of
QNetworkAccessManager and others for consumption within
Calamares, and to provide some convenience functions
for internet access.
- Medium term, it may also monitor network access, so that
we can respond to changes in network availability during
installation.
Currently very minimal and undocumented.
2019-08-20 09:52:11 -04:00