MCPcopy Create free account
hub / github.com/ElementsProject/lightning / rune_altern_from_json

Function rune_altern_from_json

plugins/commando.c:758–783  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

756}
757
758static struct rune_altern *rune_altern_from_json(const tal_t *ctx,
759 const char *buffer,
760 const jsmntok_t *tok)
761{
762 struct rune_altern *alt;
763 size_t condoff;
764 /* We still need to unescape here, for \\ -> \. JSON doesn't
765 * allow unnecessary \ */
766 const char *unescape;
767 struct json_escape *e = json_escape_string_(tmpctx,
768 buffer + tok->start,
769 tok->end - tok->start);
770 unescape = json_escape_unescape(tmpctx, e);
771 if (!unescape)
772 return NULL;
773
774 condoff = rune_altern_fieldname_len(unescape, strlen(unescape));
775 if (!rune_condition_is_valid(unescape[condoff]))
776 return NULL;
777
778 alt = tal(ctx, struct rune_altern);
779 alt->fieldname = tal_strndup(alt, unescape, condoff);
780 alt->condition = unescape[condoff];
781 alt->value = tal_strdup(alt, unescape + condoff + 1);
782 return alt;
783}
784
785static struct rune_restr *rune_restr_from_json(const tal_t *ctx,
786 const char *buffer,

Callers 1

rune_restr_from_jsonFunction · 0.85

Calls 4

json_escape_string_Function · 0.85
json_escape_unescapeFunction · 0.85
rune_condition_is_validFunction · 0.85

Tested by

no test coverage detected