Lines Matching refs:parser

379 ucl_parser_get_object (struct ucl_parser *parser)  argument
381 if (parser->state != UCL_STATE_ERROR && parser->top_obj != NULL) {
382 return ucl_object_ref (parser->top_obj);
389 ucl_parser_free (struct ucl_parser *parser) argument
397 if (parser == NULL) {
401 if (parser->top_obj != NULL) {
402 ucl_object_unref (parser->top_obj);
405 LL_FOREACH_SAFE (parser->stack, stack, stmp) {
408 HASH_ITER (hh, parser->macroes, macro, mtmp) {
410 HASH_DEL (parser->macroes, macro);
413 LL_FOREACH_SAFE (parser->chunks, chunk, ctmp) {
416 LL_FOREACH_SAFE (parser->keys, key, ktmp) {
419 LL_FOREACH_SAFE (parser->variables, var, vtmp) {
425 if (parser->err != NULL) {
426 utstring_free(parser->err);
429 UCL_FREE (sizeof (struct ucl_parser), parser);
433 ucl_parser_get_error(struct ucl_parser *parser) argument
435 if (parser == NULL) {
439 if (parser->err == NULL)
442 return utstring_body(parser->err);
446 ucl_pubkey_add (struct ucl_parser *parser, const unsigned char *key, size_t len) argument
449 ucl_create_err (&parser->err, "cannot check signatures without openssl");
453 ucl_create_err (&parser->err, "cannot check signatures, openssl version is unsupported");
462 ucl_create_err (&parser->err, "cannot allocate memory for key");
469 ucl_create_err (&parser->err, "%s",
473 LL_PREPEND (parser->keys, nkey);
649 const unsigned char *sig, size_t siglen, struct ucl_parser *parser) argument
659 LL_FOREACH (parser->keys, key) {
704 struct ucl_parser *parser, bool check_signature, bool must_exist) argument
716 if (!ucl_fetch_url (urlbuf, &buf, &buflen, &parser->err, must_exist)) {
726 if (!ucl_fetch_url (urlbuf, &sigbuf, &siglen, &parser->err, true)) {
729 if (!ucl_sig_check (buf, buflen, sigbuf, siglen, parser)) {
730 ucl_create_err (&parser->err, "cannot verify url %s: %s",
744 prev_state = parser->state;
745 parser->state = UCL_STATE_INIT;
747 res = ucl_parser_add_chunk (parser, buf, buflen);
750 chunk = parser->chunks;
752 parser->chunks = chunk->next;
757 parser->state = prev_state;
773 struct ucl_parser *parser, bool check_signature, bool must_exist) argument
787 ucl_create_err (&parser->err, "cannot open file %s: %s",
793 if (!ucl_fetch_file (realbuf, &buf, &buflen, &parser->err, must_exist)) {
803 if (!ucl_fetch_file (filebuf, &sigbuf, &siglen, &parser->err, true)) {
806 if (!ucl_sig_check (buf, buflen, sigbuf, siglen, parser)) {
807 ucl_create_err (&parser->err, "cannot verify file %s: %s",
821 ucl_parser_set_filevars (parser, realbuf, false);
823 prev_state = parser->state;
824 parser->state = UCL_STATE_INIT;
826 res = ucl_parser_add_chunk (parser, buf, buflen);
829 chunk = parser->chunks;
831 parser->chunks = chunk->next;
836 parser->state = prev_state;
856 struct ucl_parser *parser = ud; local
860 return ucl_include_file (data, len, parser, false, true);
863 return ucl_include_url (data, len, parser, false, true);
877 struct ucl_parser *parser = ud; local
881 return ucl_include_file (data, len, parser, true, true);
884 return ucl_include_url (data, len, parser, true, true);
891 struct ucl_parser *parser = ud; local
895 return ucl_include_file (data, len, parser, false, false);
898 return ucl_include_url (data, len, parser, false, false);
902 ucl_parser_set_filevars (struct ucl_parser *parser, const char *filename, bool need_expand) argument
917 ucl_parser_register_variable (parser, "FILENAME", realbuf);
919 ucl_parser_register_variable (parser, "CURDIR", curdir);
924 ucl_parser_register_variable (parser, "FILENAME", "undef");
925 ucl_parser_register_variable (parser, "CURDIR", curdir);
932 ucl_parser_add_file (struct ucl_parser *parser, const char *filename) argument
940 ucl_create_err (&parser->err, "cannot open file %s: %s",
946 if (!ucl_fetch_file (realbuf, &buf, &len, &parser->err, true)) {
950 ucl_parser_set_filevars (parser, realbuf, false);
951 ret = ucl_parser_add_chunk (parser, buf, len);