mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 15:12:06 +00:00 
			
		
		
		
	cleaner
This commit is contained in:
		| @@ -79,14 +79,16 @@ APIConnection::APIConnection(std::unique_ptr<socket::Socket> sock, APIServer *pa | ||||
| #if defined(USE_API_PLAINTEXT) && defined(USE_API_NOISE) | ||||
|   auto noise_ctx = parent->get_noise_ctx(); | ||||
|   if (noise_ctx->has_psk()) { | ||||
|     this->helper_ = std::unique_ptr<APIFrameHelper>{new APINoiseFrameHelper(std::move(sock), noise_ctx)}; | ||||
|     this->helper_ = | ||||
|         std::unique_ptr<APIFrameHelper>{new APINoiseFrameHelper(std::move(sock), noise_ctx, &this->client_info_)}; | ||||
|   } else { | ||||
|     this->helper_ = std::unique_ptr<APIFrameHelper>{new APIPlaintextFrameHelper(std::move(sock))}; | ||||
|     this->helper_ = std::unique_ptr<APIFrameHelper>{new APIPlaintextFrameHelper(std::move(sock), &this->client_info_)}; | ||||
|   } | ||||
| #elif defined(USE_API_PLAINTEXT) | ||||
|   this->helper_ = std::unique_ptr<APIFrameHelper>{new APIPlaintextFrameHelper(std::move(sock))}; | ||||
|   this->helper_ = std::unique_ptr<APIFrameHelper>{new APIPlaintextFrameHelper(std::move(sock), &this->client_info_)}; | ||||
| #elif defined(USE_API_NOISE) | ||||
|   this->helper_ = std::unique_ptr<APIFrameHelper>{new APINoiseFrameHelper(std::move(sock), parent->get_noise_ctx())}; | ||||
|   this->helper_ = std::unique_ptr<APIFrameHelper>{ | ||||
|       new APINoiseFrameHelper(std::move(sock), parent->get_noise_ctx(), &this->client_info_)}; | ||||
| #else | ||||
| #error "No frame helper defined" | ||||
| #endif | ||||
| @@ -111,7 +113,6 @@ void APIConnection::start() { | ||||
|   } | ||||
|   this->client_info_.peername = helper_->getpeername(); | ||||
|   this->client_info_.name = this->client_info_.peername; | ||||
|   this->helper_->set_client_info(&this->client_info_); | ||||
| } | ||||
|  | ||||
| APIConnection::~APIConnection() { | ||||
|   | ||||
| @@ -71,7 +71,8 @@ const char *api_error_to_str(APIError err); | ||||
| class APIFrameHelper { | ||||
|  public: | ||||
|   APIFrameHelper() = default; | ||||
|   explicit APIFrameHelper(std::unique_ptr<socket::Socket> socket) : socket_owned_(std::move(socket)) { | ||||
|   explicit APIFrameHelper(std::unique_ptr<socket::Socket> socket, const ClientInfo *client_info) | ||||
|       : socket_owned_(std::move(socket)), client_info_(client_info) { | ||||
|     socket_ = socket_owned_.get(); | ||||
|   } | ||||
|   virtual ~APIFrameHelper() = default; | ||||
| @@ -97,8 +98,6 @@ class APIFrameHelper { | ||||
|     } | ||||
|     return APIError::OK; | ||||
|   } | ||||
|   // Set client info for logging | ||||
|   void set_client_info(const ClientInfo *client_info) { client_info_ = client_info; } | ||||
|   virtual APIError write_protobuf_packet(uint8_t type, ProtoWriteBuffer buffer) = 0; | ||||
|   // Write multiple protobuf packets in a single operation | ||||
|   // packets contains (message_type, offset, length) for each message in the buffer | ||||
| @@ -187,8 +186,9 @@ class APIFrameHelper { | ||||
| #ifdef USE_API_NOISE | ||||
| class APINoiseFrameHelper : public APIFrameHelper { | ||||
|  public: | ||||
|   APINoiseFrameHelper(std::unique_ptr<socket::Socket> socket, std::shared_ptr<APINoiseContext> ctx) | ||||
|       : APIFrameHelper(std::move(socket)), ctx_(std::move(ctx)) { | ||||
|   APINoiseFrameHelper(std::unique_ptr<socket::Socket> socket, std::shared_ptr<APINoiseContext> ctx, | ||||
|                       const ClientInfo *client_info) | ||||
|       : APIFrameHelper(std::move(socket), client_info), ctx_(std::move(ctx)) { | ||||
|     // Noise header structure: | ||||
|     // Pos 0: indicator (0x01) | ||||
|     // Pos 1-2: encrypted payload size (16-bit big-endian) | ||||
| @@ -242,7 +242,8 @@ class APINoiseFrameHelper : public APIFrameHelper { | ||||
| #ifdef USE_API_PLAINTEXT | ||||
| class APIPlaintextFrameHelper : public APIFrameHelper { | ||||
|  public: | ||||
|   APIPlaintextFrameHelper(std::unique_ptr<socket::Socket> socket) : APIFrameHelper(std::move(socket)) { | ||||
|   APIPlaintextFrameHelper(std::unique_ptr<socket::Socket> socket, const ClientInfo *client_info) | ||||
|       : APIFrameHelper(std::move(socket), client_info) { | ||||
|     // Plaintext header structure (worst case): | ||||
|     // Pos 0: indicator (0x00) | ||||
|     // Pos 1-3: payload size varint (up to 3 bytes) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user