• Home
  • Raw
  • Download

Lines Matching refs:spa

56 typedef int (*lws_urldecode_stateful_cb)(struct lws_spa *spa,
98 lws_urldecode_s_create(struct lws_spa *spa, struct lws *wsi, char *out, in lws_urldecode_s_create() argument
105 if (spa->i.ac) in lws_urldecode_s_create()
106 s = lwsac_use_zero(spa->i.ac, sizeof(*s), spa->i.ac_chunk_size); in lws_urldecode_s_create()
121 s->data = spa; in lws_urldecode_s_create()
454 lws_urldecode_s_destroy(struct lws_spa *spa, struct lws_urldecode_stateful *s) in lws_urldecode_s_destroy() argument
469 if (!spa->i.ac) in lws_urldecode_s_destroy()
476 lws_urldecode_spa_lookup(struct lws_spa *spa, const char *name) in lws_urldecode_spa_lookup() argument
478 const char * const *pp = spa->i.param_names; in lws_urldecode_spa_lookup()
481 for (n = 0; n < spa->i.count_params; n++) { in lws_urldecode_spa_lookup()
485 if (spa->i.param_names_stride) in lws_urldecode_spa_lookup()
486 pp = (const char * const *)(((char *)pp) + spa->i.param_names_stride); in lws_urldecode_spa_lookup()
495 lws_urldecode_spa_cb(struct lws_spa *spa, const char *name, char **buf, int len, in lws_urldecode_spa_cb() argument
500 if (final == LWS_UFS_CLOSE || spa->s->content_disp_filename[0]) { in lws_urldecode_spa_cb()
501 if (spa->i.opt_cb) { in lws_urldecode_spa_cb()
502 n = spa->i.opt_cb(spa->i.opt_data, name, in lws_urldecode_spa_cb()
503 spa->s->content_disp_filename, in lws_urldecode_spa_cb()
511 n = lws_urldecode_spa_lookup(spa, name); in lws_urldecode_spa_cb()
515 if (!spa->i.ac) { in lws_urldecode_spa_cb()
516 if (!spa->params[n]) in lws_urldecode_spa_cb()
517 spa->params[n] = *buf; in lws_urldecode_spa_cb()
519 if ((*buf) + len >= spa->end) { in lws_urldecode_spa_cb()
528 spa->s->out_len -= len + 1; in lws_urldecode_spa_cb()
530 spa->params[n] = lwsac_use(spa->i.ac, len + 1, in lws_urldecode_spa_cb()
531 spa->i.ac_chunk_size); in lws_urldecode_spa_cb()
532 if (!spa->params[n]) in lws_urldecode_spa_cb()
535 memcpy(spa->params[n], *buf, len); in lws_urldecode_spa_cb()
536 spa->params[n][len] = '\0'; in lws_urldecode_spa_cb()
539 spa->param_length[n] += len; in lws_urldecode_spa_cb()
547 struct lws_spa *spa; in lws_spa_create_via_info() local
550 spa = lwsac_use_zero(i->ac, sizeof(*spa), i->ac_chunk_size); in lws_spa_create_via_info()
552 spa = lws_zalloc(sizeof(*spa), "spa"); in lws_spa_create_via_info()
554 if (!spa) in lws_spa_create_via_info()
557 spa->i = *i; in lws_spa_create_via_info()
558 if (!spa->i.max_storage) in lws_spa_create_via_info()
559 spa->i.max_storage = 512; in lws_spa_create_via_info()
562 spa->storage = lwsac_use(i->ac, spa->i.max_storage, in lws_spa_create_via_info()
565 spa->storage = lws_malloc(spa->i.max_storage, "spa"); in lws_spa_create_via_info()
567 if (!spa->storage) in lws_spa_create_via_info()
570 spa->end = spa->storage + i->max_storage - 1; in lws_spa_create_via_info()
574 spa->params = lwsac_use_zero(i->ac, in lws_spa_create_via_info()
577 spa->params = lws_zalloc(sizeof(char *) * i->count_params, in lws_spa_create_via_info()
579 if (!spa->params) in lws_spa_create_via_info()
583 spa->s = lws_urldecode_s_create(spa, wsi, spa->storage, i->max_storage, in lws_spa_create_via_info()
585 if (!spa->s) in lws_spa_create_via_info()
590 spa->param_length = lwsac_use_zero(i->ac, in lws_spa_create_via_info()
593 spa->param_length = lws_zalloc(sizeof(int) * i->count_params, in lws_spa_create_via_info()
595 if (!spa->param_length) in lws_spa_create_via_info()
599 lwsl_notice("%s: Created SPA %p\n", __func__, spa); in lws_spa_create_via_info()
601 return spa; in lws_spa_create_via_info()
604 lws_urldecode_s_destroy(spa, spa->s); in lws_spa_create_via_info()
607 lws_free(spa->params); in lws_spa_create_via_info()
610 lws_free(spa->storage); in lws_spa_create_via_info()
613 lws_free(spa); in lws_spa_create_via_info()
639 lws_spa_process(struct lws_spa *spa, const char *in, int len) in lws_spa_process() argument
641 if (!spa) { in lws_spa_process()
646 if (spa->finalized) in lws_spa_process()
649 return lws_urldecode_s_process(spa->s, in, len); in lws_spa_process()
653 lws_spa_get_length(struct lws_spa *spa, int n) in lws_spa_get_length() argument
655 if (n >= spa->i.count_params) in lws_spa_get_length()
658 return spa->param_length[n]; in lws_spa_get_length()
662 lws_spa_get_string(struct lws_spa *spa, int n) in lws_spa_get_string() argument
664 if (n >= spa->i.count_params) in lws_spa_get_string()
667 return spa->params[n]; in lws_spa_get_string()
671 lws_spa_finalize(struct lws_spa *spa) in lws_spa_finalize() argument
673 if (!spa) in lws_spa_finalize()
676 if (spa->s) { in lws_spa_finalize()
677 lws_urldecode_s_destroy(spa, spa->s); in lws_spa_finalize()
678 spa->s = NULL; in lws_spa_finalize()
681 spa->finalized = 1; in lws_spa_finalize()
687 lws_spa_destroy(struct lws_spa *spa) in lws_spa_destroy() argument
691 lwsl_info("%s: destroy spa %p\n", __func__, spa); in lws_spa_destroy()
693 if (spa->s) in lws_spa_destroy()
694 lws_urldecode_s_destroy(spa, spa->s); in lws_spa_destroy()
696 if (spa->i.ac) in lws_spa_destroy()
697 lwsac_free(spa->i.ac); in lws_spa_destroy()
699 lws_free(spa->param_length); in lws_spa_destroy()
700 lws_free(spa->params); in lws_spa_destroy()
701 lws_free(spa->storage); in lws_spa_destroy()
702 lws_free(spa); in lws_spa_destroy()