mirror of
https://github.com/espressif/esp-protocols.git
synced 2025-07-30 02:37:31 +02:00
Merge pull request #717 from david-cermak/feat/asio_sync_upstream
[asio]: Drop esp-asio patches in favor of sock-utils
This commit is contained in:
@ -13,7 +13,7 @@ jobs:
|
|||||||
name: Build
|
name: Build
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
idf_ver: ["latest", "release-v5.0", "release-v5.1", "release-v5.2", "release-v5.3"]
|
idf_ver: ["latest", "release-v5.0", "release-v5.1", "release-v5.2", "release-v5.3", "release-v5.4"]
|
||||||
idf_target: ["esp32", "esp32s2"]
|
idf_target: ["esp32", "esp32s2"]
|
||||||
example: ["asio_chat", "async_request", "socks4", "ssl_client_server", "tcp_echo_server", "udp_echo_server"]
|
example: ["asio_chat", "async_request", "socks4", "ssl_client_server", "tcp_echo_server", "udp_echo_server"]
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
@ -64,7 +64,7 @@ jobs:
|
|||||||
name: Target tests
|
name: Target tests
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
idf_ver: ["latest", "release-v5.0", "release-v5.2", "release-v5.3"]
|
idf_ver: ["latest", "release-v5.1", "release-v5.2", "release-v5.3", "release-v5.4"]
|
||||||
idf_target: ["esp32"]
|
idf_target: ["esp32"]
|
||||||
example: ["asio_chat", "tcp_echo_server", "udp_echo_server", "ssl_client_server"]
|
example: ["asio_chat", "tcp_echo_server", "udp_echo_server", "ssl_client_server"]
|
||||||
needs: build_asio
|
needs: build_asio
|
||||||
|
2
.gitmodules
vendored
2
.gitmodules
vendored
@ -1,6 +1,6 @@
|
|||||||
[submodule "components/asio/asio"]
|
[submodule "components/asio/asio"]
|
||||||
path = components/asio/asio
|
path = components/asio/asio
|
||||||
url = https://github.com/espressif/asio
|
url = https://github.com/chriskohlhoff/asio
|
||||||
[submodule "components/mosquitto/mosquitto"]
|
[submodule "components/mosquitto/mosquitto"]
|
||||||
path = components/mosquitto/mosquitto
|
path = components/mosquitto/mosquitto
|
||||||
url = https://github.com/eclipse/mosquitto
|
url = https://github.com/eclipse/mosquitto
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
|
---
|
||||||
commitizen:
|
commitizen:
|
||||||
bump_message: 'bump(asio): $current_version -> $new_version'
|
bump_message: 'bump(asio): $current_version -> $new_version'
|
||||||
pre_bump_hooks: python ../../ci/changelog.py asio
|
pre_bump_hooks: python ../../ci/changelog.py asio
|
||||||
tag_format: asio-v$version
|
tag_format: asio-v$version
|
||||||
version: 1.28.0~0
|
version: 1.32.0
|
||||||
version_files:
|
version_files:
|
||||||
- idf_component.yml
|
- idf_component.yml
|
||||||
|
@ -1,5 +1,26 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [1.32.0](https://github.com/espressif/esp-protocols/commits/asio-v1.32.0)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- Upgrade asio to 1.32 ([9bdd429c](https://github.com/espressif/esp-protocols/commit/9bdd429c))
|
||||||
|
- Drop esp/asio patches in favor of sock-utils ([27435b7f](https://github.com/espressif/esp-protocols/commit/27435b7f))
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- Fix chat example to print only the message body ([76aaea08](https://github.com/espressif/esp-protocols/commit/76aaea08))
|
||||||
|
- Make asio enable if_nametoindex to fix linking ([5db32cce](https://github.com/espressif/esp-protocols/commit/5db32cce))
|
||||||
|
- Re-applie refs to common comps idf_component.yml ([9fe44a45](https://github.com/espressif/esp-protocols/commit/9fe44a45))
|
||||||
|
- Reference common component from IDF ([74fc228c](https://github.com/espressif/esp-protocols/commit/74fc228c))
|
||||||
|
- Revert referencing protocol_examples_common from IDF ([f9e0281a](https://github.com/espressif/esp-protocols/commit/f9e0281a))
|
||||||
|
- reference protocol_examples_common from IDF ([09abb18b](https://github.com/espressif/esp-protocols/commit/09abb18b))
|
||||||
|
- specify override_path in example manifest files ([1d8923cf](https://github.com/espressif/esp-protocols/commit/1d8923cf))
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- docs(asio): Updates asio docs ([ce9337d3](https://github.com/espressif/esp-protocols/commit/ce9337d3))
|
||||||
|
|
||||||
## [1.28.2~0](https://github.com/espressif/esp-protocols/commits/asio-1.28.2_0)
|
## [1.28.2~0](https://github.com/espressif/esp-protocols/commits/asio-1.28.2_0)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
@ -6,8 +6,8 @@ if(NOT CONFIG_LWIP_IPV6 AND NOT CMAKE_BUILD_EARLY_EXPANSION)
|
|||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(asio_sources "asio/asio/src/asio.cpp")
|
set(asio_sources "asio/asio/src/asio.cpp" "port/src/asio_stub.cpp")
|
||||||
set(asio_requires lwip)
|
set(asio_requires lwip sock_utils)
|
||||||
|
|
||||||
if(CONFIG_ASIO_SSL_SUPPORT)
|
if(CONFIG_ASIO_SSL_SUPPORT)
|
||||||
list(APPEND asio_sources
|
list(APPEND asio_sources
|
||||||
@ -18,7 +18,7 @@ if(CONFIG_ASIO_SSL_SUPPORT)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
idf_component_register(SRCS ${asio_sources}
|
idf_component_register(SRCS ${asio_sources}
|
||||||
INCLUDE_DIRS "asio/asio/include" "port/include"
|
INCLUDE_DIRS "port/include" "asio/asio/include"
|
||||||
PRIV_INCLUDE_DIRS ${asio_priv_includes}
|
PRIV_INCLUDE_DIRS ${asio_priv_includes}
|
||||||
PRIV_REQUIRES ${asio_requires})
|
PRIV_REQUIRES ${asio_requires})
|
||||||
|
|
||||||
@ -30,6 +30,7 @@ target_compile_definitions(${COMPONENT_LIB} PUBLIC SA_RESTART=0x01
|
|||||||
ASIO_STANDALONE
|
ASIO_STANDALONE
|
||||||
ASIO_HAS_PTHREADS
|
ASIO_HAS_PTHREADS
|
||||||
OPENSSL_NO_ENGINE
|
OPENSSL_NO_ENGINE
|
||||||
|
ASIO_DETAIL_IMPL_POSIX_EVENT_IPP # this replaces asio's posix_event constructor
|
||||||
)
|
)
|
||||||
|
|
||||||
if(NOT CONFIG_COMPILER_CXX_EXCEPTIONS)
|
if(NOT CONFIG_COMPILER_CXX_EXCEPTIONS)
|
||||||
|
@ -1,6 +1,15 @@
|
|||||||
menu "ESP-ASIO"
|
menu "ESP-ASIO"
|
||||||
visible if LWIP_IPV6
|
visible if LWIP_IPV6
|
||||||
|
|
||||||
|
config ASIO_IS_ENABLED
|
||||||
|
# Invisible option that is enabled if ASIO is added to the IDF components.
|
||||||
|
# This is used to "select" LWIP_NETIF_API option
|
||||||
|
# which enables if_indextoname() and if_nametoindex() functions
|
||||||
|
# (these are optionally used in asio)
|
||||||
|
bool
|
||||||
|
default "y"
|
||||||
|
select LWIP_NETIF_API
|
||||||
|
|
||||||
config ASIO_SSL_SUPPORT
|
config ASIO_SSL_SUPPORT
|
||||||
bool "Enable SSL/TLS support of ASIO"
|
bool "Enable SSL/TLS support of ASIO"
|
||||||
default n
|
default n
|
||||||
|
Submodule components/asio/asio updated: a2e0f70d61...03ae834edb
@ -120,7 +120,7 @@ private:
|
|||||||
asio::buffer(read_msg_.body(), read_msg_.body_length()),
|
asio::buffer(read_msg_.body(), read_msg_.body_length()),
|
||||||
[this, self](std::error_code ec, std::size_t /*length*/) {
|
[this, self](std::error_code ec, std::size_t /*length*/) {
|
||||||
if (!ec) {
|
if (!ec) {
|
||||||
ESP_LOGD("asio-chat:", "%s", read_msg_.body());
|
ESP_LOGD("asio-chat", "%.*s", read_msg_.body_length(), read_msg_.body());
|
||||||
room_.deliver(read_msg_);
|
room_.deliver(read_msg_);
|
||||||
do_read_header();
|
do_read_header();
|
||||||
} else {
|
} else {
|
||||||
|
@ -7,3 +7,5 @@ repository: https://github.com/espressif/esp-protocols.git
|
|||||||
dependencies:
|
dependencies:
|
||||||
idf:
|
idf:
|
||||||
version: ">=5.0"
|
version: ">=5.0"
|
||||||
|
espressif/sock_utils:
|
||||||
|
version: "^0.1"
|
||||||
|
11
components/asio/port/include/asio/detail/config.hpp
Normal file
11
components/asio/port/include/asio/detail/config.hpp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
//
|
||||||
|
// SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: BSL-1.0
|
||||||
|
//
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "sys/socket.h"
|
||||||
|
#include "socketpair.h"
|
||||||
|
|
||||||
|
#include_next "asio/detail/config.hpp"
|
@ -1,12 +0,0 @@
|
|||||||
/*
|
|
||||||
* SPDX-FileCopyrightText: 2018-2023 Espressif Systems (Shanghai) CO LTD
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
#ifndef _ESP_ASIO_CONFIG_H_
|
|
||||||
#define _ESP_ASIO_CONFIG_H_
|
|
||||||
|
|
||||||
#define ASIO_SSL_DETAIL_OPENSSL_TYPES_HPP
|
|
||||||
#include "openssl_stub.hpp"
|
|
||||||
|
|
||||||
#endif // _ESP_ASIO_CONFIG_H_
|
|
@ -8,7 +8,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#include "asio/detail/config.hpp"
|
#include "asio/detail/config.hpp"
|
||||||
#include "openssl_stub.hpp"
|
#include "asio/ssl/detail/openssl_types.hpp"
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include "asio/detail/throw_error.hpp"
|
#include "asio/detail/throw_error.hpp"
|
||||||
#include "asio/error.hpp"
|
#include "asio/error.hpp"
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#include "asio/detail/config.hpp"
|
#include "asio/detail/config.hpp"
|
||||||
#include "openssl_stub.hpp"
|
#include "asio/ssl/detail/openssl_types.hpp"
|
||||||
#include "asio/detail/throw_error.hpp"
|
#include "asio/detail/throw_error.hpp"
|
||||||
#include "asio/error.hpp"
|
#include "asio/error.hpp"
|
||||||
#include "asio/ssl/detail/engine.hpp"
|
#include "asio/ssl/detail/engine.hpp"
|
||||||
|
36
components/asio/port/src/asio_stub.cpp
Normal file
36
components/asio/port/src/asio_stub.cpp
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
//
|
||||||
|
// SPDX-FileCopyrightText: 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: BSL-1.0
|
||||||
|
//
|
||||||
|
// SPDX-FileContributor: 2024 Espressif Systems (Shanghai) CO LTD
|
||||||
|
//
|
||||||
|
#include "asio/detail/posix_event.hpp"
|
||||||
|
#include "asio/detail/throw_error.hpp"
|
||||||
|
#include "asio/error.hpp"
|
||||||
|
#include "asio/detail/push_options.hpp"
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <climits>
|
||||||
|
|
||||||
|
namespace asio::detail {
|
||||||
|
// This replaces asio's posix_event constructor
|
||||||
|
// since the default POSIX version uses pthread_condattr_t operations (init, setclock, destroy),
|
||||||
|
// which are not available on all IDF versions (some are defined in compilers' headers, others in
|
||||||
|
// pthread library, but they typically return `ENOSYS` which causes trouble in the event wrapper)
|
||||||
|
// IMPORTANT: Check implementation of posix_event() when upgrading upstream asio in order not to
|
||||||
|
// miss any initialization step.
|
||||||
|
posix_event::posix_event()
|
||||||
|
: state_(0)
|
||||||
|
{
|
||||||
|
int error = ::pthread_cond_init(&cond_, nullptr);
|
||||||
|
asio::error_code ec(error, asio::error::get_system_category());
|
||||||
|
asio::detail::throw_error(ec, "event");
|
||||||
|
}
|
||||||
|
} // namespace asio::detail
|
||||||
|
|
||||||
|
extern "C" int pause (void)
|
||||||
|
{
|
||||||
|
while (true) {
|
||||||
|
::sleep(UINT_MAX);
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user