nostrdb: bolt11: move utf8_check into local function.

It isn't actually in the CCAN module (though it probably should be!).
So it breaks when we update.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
Rusty Russell
2024-08-17 14:57:06 +09:30
committed by Daniel D’Aquino
parent b326f007f2
commit 0ac25b7aa3
3 changed files with 18 additions and 3 deletions

View File

@@ -178,6 +178,24 @@ static void decode_p(struct bolt11 *b11,
*have_p = true;
}
/* Check for valid UTF-8 */
static bool utf8_check(const void *vbuf, size_t buflen)
{
const u8 *buf = vbuf;
struct utf8_state utf8_state = UTF8_STATE_INIT;
bool need_more = false;
for (size_t i = 0; i < buflen; i++) {
if (!utf8_decode(&utf8_state, buf[i])) {
need_more = true;
continue;
}
need_more = false;
if (errno != 0)
return false;
}
return !need_more;
}
static char *utf8_str(const tal_t *ctx, const u8 *buf TAKES, size_t buflen)
{

View File

@@ -52,6 +52,4 @@ bool utf8_decode(struct utf8_state *utf8_state, char c);
*/
size_t utf8_encode(uint32_t point, char dest[UTF8_MAX_LEN]);
/* Check for valid UTF-8 */
bool utf8_check(const void *vbuf, size_t buflen);
#endif /* CCAN_UTF8_H */

View File

@@ -28,6 +28,5 @@ static inline char *strdupn(const char *src, size_t size) {
dest[size] = '\0';
return dest;
}
#endif // NDB_UTIL_H