mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	preen
This commit is contained in:
		| @@ -294,9 +294,7 @@ uint16_t APIConnection::encode_message_to_buffer(ProtoMessage &msg, uint8_t mess | |||||||
|  |  | ||||||
|   if (is_single || conn->flags_.batch_first_message) { |   if (is_single || conn->flags_.batch_first_message) { | ||||||
|     // Single message or first batch message |     // Single message or first batch message | ||||||
|     shared_buf.clear(); |     conn->prepare_first_message_buffer(shared_buf, header_padding, total_size); | ||||||
|     shared_buf.reserve(total_size); |  | ||||||
|     shared_buf.resize(header_padding); |  | ||||||
|     if (conn->flags_.batch_first_message) { |     if (conn->flags_.batch_first_message) { | ||||||
|       conn->flags_.batch_first_message = false; |       conn->flags_.batch_first_message = false; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -252,17 +252,21 @@ class APIConnection : public APIServerConnection { | |||||||
|  |  | ||||||
|     // Get header padding size - used for both reserve and insert |     // Get header padding size - used for both reserve and insert | ||||||
|     uint8_t header_padding = this->helper_->frame_header_padding(); |     uint8_t header_padding = this->helper_->frame_header_padding(); | ||||||
|  |  | ||||||
|     // Get shared buffer from parent server |     // Get shared buffer from parent server | ||||||
|     std::vector<uint8_t> &shared_buf = this->parent_->get_shared_buffer_ref(); |     std::vector<uint8_t> &shared_buf = this->parent_->get_shared_buffer_ref(); | ||||||
|  |     this->prepare_first_message_buffer(shared_buf, header_padding, | ||||||
|  |                                        reserve_size + header_padding + this->helper_->frame_footer_size()); | ||||||
|  |     return {&shared_buf}; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   void prepare_first_message_buffer(std::vector<uint8_t> &shared_buf, size_t header_padding, size_t total_size) { | ||||||
|     shared_buf.clear(); |     shared_buf.clear(); | ||||||
|     // Reserve space for header padding + message + footer |     // Reserve space for header padding + message + footer | ||||||
|     // - Header padding: space for protocol headers (7 bytes for Noise, 6 for Plaintext) |     // - Header padding: space for protocol headers (7 bytes for Noise, 6 for Plaintext) | ||||||
|     // - Footer: space for MAC (16 bytes for Noise, 0 for Plaintext) |     // - Footer: space for MAC (16 bytes for Noise, 0 for Plaintext) | ||||||
|     shared_buf.reserve(reserve_size + header_padding + this->helper_->frame_footer_size()); |     shared_buf.reserve(total_size); | ||||||
|     // Resize to add header padding so message encoding starts at the correct position |     // Resize to add header padding so message encoding starts at the correct position | ||||||
|     shared_buf.resize(header_padding); |     shared_buf.resize(header_padding); | ||||||
|     return {&shared_buf}; |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   bool try_to_clear_buffer(bool log_out_of_space); |   bool try_to_clear_buffer(bool log_out_of_space); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user