Lines Matching refs:pss
108 struct pss {
249 lws_metrics_om_ac_stash(struct pss *pss, const char *buf, size_t len)
253 q = lwsac_use(&pss->ac, LWS_PRE + len + 2, LWS_PRE + len + 2);
255 lwsac_free(&pss->ac);
262 pss->tot += len;
273 lws_metrics_om_format(struct pss *pss, lws_metric_pub_t *pub, const char *nm)
294 lws_metrics_om_ac_stash(pss, buf,
324 return lws_metrics_om_ac_stash(pss, buf, lws_ptr_diff_size_t(p, buf));
330 struct pss *pss = (struct pss *)user;
347 return lws_metrics_om_format(pss, pub, nm);
387 ome_prepare(struct lws_context *ctx, struct pss *pss)
393 pss->tot = 0;
414 if (lws_metrics_om_ac_stash(pss, (const char *)buf + LWS_PRE,
425 if (lws_metrics_om_ac_stash(pss, (const char *)buf + LWS_PRE,
439 if (lws_metrics_om_ac_stash(pss,
448 if (lws_metrics_foreach(ctx, pss, append_om_metric))
454 if (lws_metrics_om_ac_stash(pss, (char *)buf + LWS_PRE,
458 pss->walk = pss->ac;
475 struct pss *pss = (struct pss *)user;
481 ome_prepare(cx, pss);
487 pss->tot, &p, end) ||
496 lwsac_free(&pss->ac);
500 if (!pss->walk)
504 ip = (uint8_t *)pss->walk +
505 lwsac_sizeof(pss->walk == pss->ac) + LWS_PRE;
509 if (m > lwsac_get_tail_pos(pss->walk) -
510 lwsac_sizeof(pss->walk == pss->ac))
519 pss->walk = lwsac_get_next(pss->walk);
520 } while (pss->walk);
527 wm = pss->walk ? LWS_WRITE_HTTP : LWS_WRITE_HTTP_FINAL;
533 if (!pss->walk) {
548 static struct pss *
549 omc_lws_om_get_other_side_pss_client(struct vhd *vhd, struct pss *pss)
557 struct pss *apss = lws_container_of(d, struct pss, list);
559 if (!strcmp(pss->proxy_path, apss->proxy_path))
579 struct pss *pss = (struct pss *)user, *partner_pss;
649 lws_strnncpy(pss->proxy_path, (const char *)in, len,
650 sizeof(pss->proxy_path));
652 if (pss->list.owner) {
657 pss->wsi = wsi;
661 struct pss *apss = lws_container_of(d, struct pss, list);
669 lws_dll2_add_tail(&pss->list, &vhd->clients);
678 lwsac_free(&pss->ac);
679 lws_dll2_remove(&pss->list);
684 if (!pss->walk)
689 partner_pss = omc_lws_om_get_other_side_pss_client(vhd, pss);
694 ip = (uint8_t *)pss->walk +
695 lwsac_sizeof(pss->walk == partner_pss->ac) + LWS_PRE;
699 if (m > lwsac_get_tail_pos(pss->walk) -
700 lwsac_sizeof(pss->walk == partner_pss->ac))
709 pss->walk = lwsac_get_next(pss->walk);
710 } while (pss->walk);
717 wm = pss->walk ? LWS_WRITE_HTTP : LWS_WRITE_HTTP_FINAL;
723 if (!pss->walk) {
725 lws_dll2_remove(&pss->list);
754 struct pss *pss = (struct pss *)user, *partner_pss;
815 * a client has joined... we need to add his pss to our list
820 pss->greet = 1;
821 pss->wsi = wsi;
830 lws_dll2_remove(&pss->list);
832 pss->proxy_path,
834 lwsac_free(&pss->ac);
837 partner_pss = omc_lws_om_get_other_side_pss_client(vhd, pss);
843 if (pss->greet) {
844 pss->greet = 0;
845 lws_strnncpy(pss->proxy_path, (const char *)in, len,
846 sizeof(pss->proxy_path));
850 pss->proxy_path);
852 * we need to add his pss to our list of configured,
855 lws_dll2_add_tail(&pss->list, &vhd->clients);
861 * pss lwsac before worrying about anything else
865 pss->tot = 0;
867 lws_metrics_om_ac_stash(pss, (const char *)in, len);
870 struct pss *partner_pss;
876 pss->walk = pss->ac;
877 partner_pss = omc_lws_om_get_other_side_pss_client(vhd, pss);
889 pss->tot, &p, end) ||
896 partner_pss->walk = pss->ac;
904 if (!pss->trigger)
907 pss->trigger = 0;
909 partner_pss = omc_lws_om_get_other_side_pss_client(vhd, pss);
948 struct pss *pss = (struct pss *)user;
1038 pss->greet = 1;
1045 lwsac_free(&pss->ac);
1053 ome_prepare(cx, pss);
1054 pss->walk = pss->ac;
1060 if (pss->greet) {
1078 pss->greet = 0;
1082 if (!pss->walk)
1091 first = pss->walk == pss->ac;
1094 ip = (uint8_t *)pss->walk +
1095 lwsac_sizeof(pss->walk == pss->ac) + LWS_PRE;
1099 if (m > lwsac_get_tail_pos(pss->walk) -
1100 lwsac_sizeof(pss->walk == pss->ac)) {
1111 pss->walk = lwsac_get_next(pss->walk);
1112 } while (pss->walk);
1120 !pss->walk);
1131 if (!pss->walk) {
1133 lwsac_free(&pss->ac);
1164 sizeof(struct pss),
1170 sizeof(struct pss),
1176 sizeof(struct pss),
1184 sizeof(struct pss),