This issue is seen by at least gcc 11.4.0
samples/net/sockets/http_get/src/http_get.c:44:40: warning:
format ‘%d’ expects argument of type ‘int’, but argument 2
has type ‘ssize_t’ {aka ‘long int’} [-Wformat=]
44 | #define CHECK(r) { if (r < 0) {
| printf("Error: %d\n", r); exit(1); } }
| ^~~~~~~~~~~~~
samples/net/sockets/http_get/src/http_get.c:44:49: note: format string is
defined here
44 | #define CHECK(r) { if (r < 0) {
printf("Error: %d\n", r); exit(1); } }
| ~^
| |
| int
| %ld
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
This sample is expected to hit google.com so that the reply
(a redirect) is minimal and can easily be visualized. This is also
what sample.yaml expects to see (checks for "The document has
moved").
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Change the sample applications that use network socket API to
use the POSIX_API config because the NET_SOCKETS_POSIX_NAMES is
deprecated. Convert also the zsock_ API calls to plain BSD
socket API calls when applicable.
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
As both C and C++ standards require applications running under an OS to
return 'int', adapt that for Zephyr to align with those standard. This also
eliminates errors when building with clang when not using -ffreestanding,
and reduces the need for compiler flags to silence warnings for both clang
and gcc.
Most of these changes were automated using coccinelle with the following
script:
@@
@@
- void
+ int
main(...) {
...
- return;
+ return 0;
...
}
Approximately 40 files had to be edited by hand as coccinelle was unable to
fix them.
Signed-off-by: Keith Packard <keithp@keithp.com>
In order to bring consistency in-tree, migrate all samples to the use
the new prefix <zephyr/...>. Note that the conversion has been scripted:
```python
from pathlib import Path
import re
EXTENSIONS = ("c", "h", "cpp", "rst")
for p in Path(".").glob("samples/**/*"):
if not p.is_file() or p.suffix and p.suffix[1:] not in EXTENSIONS:
continue
content = ""
with open(p) as f:
for line in f:
m = re.match(r"^(.*)#include <(.*)>(.*)$", line)
if (m and
not m.group(2).startswith("zephyr/") and
(Path(".") / "include" / "zephyr" / m.group(2)).exists()):
content += (
m.group(1) +
"#include <zephyr/" + m.group(2) +">" +
m.group(3) + "\n"
)
else:
content += line
with open(p, "w") as f:
f.write(content)
```
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
The root CA used so far (GlobalSign R2) is about to expire soon
(December 2021) and Google have switched to a new certificate, signed by
GlobalSign R1 (valid until 2028). Therefore we need to replace the
root CA used by the sample to the new one, in order to establish secure
connection to with google.com.
Additionally, the new certificate chain sent by Google is larger again,
so it's needed to increase mbed TLS max content length parameter in
order to process it correctly. This also implies an increase in heap
usage, so increase the heap size as well.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
The application main() in Zephyr is defined as having a prototype:
void main(void), as expected by the kernel init (bg_thread_main).
So, correct the different samples and tests that were defined
otherwise.
Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
With CONFIG_POSIX_API enabled, these samples now build under Zephyr
with exactly the same source as e.g. Linux (or in general, other POSIX
systems). However, building without CONFIG_POSIX_API (i.e. with
CONFIG_NET_SOCKETS_POSIX_NAMES aux option) is retained for now.
Add testcase definitions to build these samples with CONFIG_POSIX_API
in CI.
Fixes: #17353
Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
As example of echo_async_select added recently shows, we no longer
need to define a logger unconditionally in each source file. These
samples are intended to show Zephyr compatibility with POSIX sockets
API, so the less there're differences between Zephyr vs POSIX
ifdefs, the better.
Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
Don't include net_app.h and net_buf.h, the first is deprecated, the
latter is low-level header, both shouldn't be used for socket apps.
Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
Remove network specific default and max log level setting
and start to use the zephyr logging values for those.
Remove LOG_MODULE_REGISTER() from net_core.h and place the
calls into .c files. This is done in order to avoid weird
compiler errors in some cases and to make the code look similar
as other subsystems.
Fixes#11343Fixes#11659
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Update the http_get sockets sample to enable association of secure
tags with certificate filenames.
This allows certificates and keys to be provisioned to the file
system on secure flash, without having to include the actual
certificates in the application.
Validated on the cc3220sf_launchxl board.
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
Add CA certificates to http_get and big_http_download samples. Use
socket options to configure TLS connection - TLS certificates are now
validated.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Add config file that enables to run http_get and big_http_download
samples with TLS enabled and receive the data through HTTPS.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
In samples, using CHECK() helper macro, make it exist in case of
error. This makes sure that negative value (error indicator) can't
be passed as argument to other function and fixes Coverity reports.
Coverity-CID: 183062
Fixes: #6101
Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
The Host header is even mandatory in HTTP 1.1, and indeed without
it, many virtual hosting setups don't work (which are many), so to
be faithful to what README says: "You can edit the source code to
issue a request to any other site on the Internet", let's
complicate the sample by including it.
Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
Make it easy to override HTTP host/port/path. Print URL which we
request and make few other adjustment to the output for clarity.
Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>