From 2d86ee4a2573127bed03ce4970c195b91fe94f1e Mon Sep 17 00:00:00 2001 From: Gregg Date: Fri, 12 Jan 2024 21:21:42 -0600 Subject: [PATCH] Truncate all STRING-based Characteristics to 64 characters when adding to JSON HAP default max length of STRING Characteristics is 64 characters --- src/HomeSpan.h | 4 ++-- src/src.ino | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/HomeSpan.h b/src/HomeSpan.h index 64f7ec0..e90cc8d 100644 --- a/src/HomeSpan.h +++ b/src/HomeSpan.h @@ -492,7 +492,7 @@ class SpanCharacteristic{ StatusCode loadUpdate(char *val, char *ev); // load updated val/ev from PUT /characteristic JSON request. Return intitial HAP status code (checks to see if characteristic is found, is writable, etc.) String uvPrint(UVal &u){ - char c[64]; + char c[67]; // space for 64 characters + surrounding quotes + terminating null switch(format){ case FORMAT::BOOL: return(String(u.BOOL)); @@ -512,7 +512,7 @@ class SpanCharacteristic{ return(String(c)); case FORMAT::STRING: case FORMAT::DATA: - sprintf(c,"\"%.61s\"",u.STRING); // Truncating string to 61 chars. + sprintf(c,"\"%.64s\"",u.STRING); // Truncating string to 64 chars return(String(c)); } // switch return(String()); // included to prevent compiler warnings diff --git a/src/src.ino b/src/src.ino index f669275..156286a 100644 --- a/src/src.ino +++ b/src/src.ino @@ -48,7 +48,7 @@ void setup() { new SpanAccessory(); new Service::AccessoryInformation(); new Characteristic::Identify(); - char c[30]; + char c[100]; sprintf(c,"Light-%d",i); new Characteristic::Name(c); new Service::LightBulb();