{"schema":"libjg2-1",
"vpath":"/git/",
"avatar":"/git/avatar/",
"alang":"",
"gen_ut":1752720371,
"reponame":"libwebsockets",
"desc":"libwebsockets lightweight C networking library",
"owner": { "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },"url":"https://libwebsockets.org/repo/libwebsockets",
"f":3,
"items": [
{"schema":"libjg2-1",
"cid":"f5184cd0c59722650c6b1a9a3ff3bbde",
"oid":{ "oid": "8dcb4ca753efe08adfd94ce0348bde2f01a53cb4", "alias": []},"blobname": "plugins/server-status.html", "blob": "\u003c!DOCTYPE html\u003e\n\u003chtml lang\u003d\u0022en\u0022\u003e\n\u003chead\u003e\n \u003cmeta charset\u003dutf-8 http-equiv\u003d\u0022Content-Language\u0022 content\u003d\u0022en\u0022/\u003e\n \u003cscript src\u003d\u0022/lws-common.js\u0022\u003e\u003c/script\u003e\n \u003ctitle\u003eLWS Server Status\u003c/title\u003e\n\u003cstyle type\u003d\u0022text/css\u0022\u003e\n\tspan.title { font-size:18pt; font-family: Arial; font-weight:normal;\n\t\t\ttext-align:center; color:#000000; }\n\tspan.mount { font-size:10pt; font-family: Arial; font-weight:normal;\n\t\t\ttext-align:center; color:#000000; }\n\tspan.mountname { font-size:14pt; font-family: Arial; font-weight:bold;\n\t\t\ttext-align:center; color:#404010; }\n\tspan.n { font-size:12pt; font-family: Arial; font-weight:normal;\n\t\t\ttext-align:center; color:#808020; }\n\tspan.v { font-size:12pt; font-family: Arial; font-weight:bold;\n\t\t\ttext-align:center; color:#202020; }\n\tspan.m1 { font-size:12pt; font-family: Arial; font-weight:bold;\n\t\t\ttext-align:center; color:#202020; }\n\tspan.m2 { font-size:12pt; font-family: Arial; font-weight:normal;\n\t\t\ttext-align:center; color:#202020; }\n\t.browser { font-size:18pt; font-family: Arial; font-weight:normal; text-align:center; color:#ffff00; vertical-align:middle; text-align:center; background:#d0b070; padding:12px; -webkit-border-radius:10px; border-radius:10px;}\n\t.group2 { vertical-align:middle;\n\t\ttext-align:center;\n\t\tbackground:#f0f0e0; \n\t\tpadding:12px; \n\t\t-webkit-border-radius:10px; \n\t\tborder-radius:10px; }\n\t.explain { vertical-align:middle;\n\t\ttext-align:center;\n\t\tbackground:#f0f0c0; padding:12px;\n\t\t-webkit-border-radius:10px;\n\t\tborder-radius:10px;\n\t\tcolor:#404000; }\n\ttd.wsstatus { vertical-align:middle; width:200px; height:50px;\n\t\ttext-align:center;\n\t\tbackground:#f0f0c0; padding:6px;\n\t\t-webkit-border-radius:8px;\n\t\tborder-radius:8px;\n\t\tcolor:#404000; }\n\ttd.l { vertical-align:middle;\n\t\ttext-align:center;\n\t\tbackground:#d0d0b0; \n\t\tpadding:3px; \n\t\t-webkit-border-radius:3px; \n\t\tborder-radius:3px; }\n\ttd.dl { vertical-align:middle;\n\t\ttext-align:center;\n\t\tbackground:#c0c0c0; \n\t\tpadding:3px; \n\t\t-webkit-border-radius:3px; \n\t\tborder-radius:3px; }\n\ttd.c { vertical-align:middle;\n\t\ttext-align:center;\n\t\tbackground:#c0c0a0; \n\t\tpadding:3px; \n\t\t-webkit-border-radius:3px; \n\t\tborder-radius:3px; }\n\ttd.c0 { vertical-align:middle;\n\t\ttext-align:center;\n\t\tbackground:#b0b090; \n\t\tpadding:3px; \n\t\t-webkit-border-radius:3px; \n\t\tborder-radius:3px; }\n\ttd.dc0 { vertical-align:middle;\n\t\ttext-align:center;\n\t\tbackground:#a0a0a0; \n\t\tpadding:3px; \n\t\t-webkit-border-radius:3px; \n\t\tborder-radius:3px; }\n\ttd.c1 { vertical-align:middle;\n\t\ttext-align:center;\n\t\tbackground:#c0c0c0; \n\t\tpadding:3px; \n\t\t-webkit-border-radius:3px; \n\t\tborder-radius:3px; }\n\ttd.t { vertical-align:middle;\n\t\ttext-align:center;\n\t\tbackground:#e0e0c0; \n\t\tpadding:3px; \n\t\t-webkit-border-radius:3px; \n\t\tborder-radius:3px; }\n\t.content { vertical-align:top; text-align:center; background:#fffff0; padding:12px; -webkit-border-radius:10px; border-radius:10px; }\n\t.canvas { vertical-align:top; text-align:center; background:#efefd0; padding:12px; -webkit-border-radius:10px; border-radius:10px; }\n.tabs {\n position: relative; \n min-height: 750px; /* This part sucks */\n clear: both;\n margin: 25px 0;\n}\n.tab {\n float: left;\n}\n.tab label {\n background: #eee; \n padding: 10px; \n border: 1px solid #ccc; \n margin-left: -1px; \n position: relative;\n left: 1px; \n}\n.tab [type\u003dradio] {\n display: none; \n}\n.content {\n position: absolute;\n top: 28px;\n left: 0;\n background: white;\n right: 0;\n bottom: 0;\n padding: 20px;\n border: 1px solid #ccc; \n}\n[type\u003dradio]:checked ~ label {\n background: white;\n border-bottom: 1px solid white;\n z-index: 2;\n}\n[type\u003dradio]:checked ~ label ~ .content {\n z-index: 1;\n}\n\u003c/style\u003e\n\u003c/head\u003e\n\n\u003cbody\u003e\n\u003cheader\u003e\u003c/header\u003e\n\u003carticle\u003e\n\n\u003ctable\u003e\n\u003ctr\u003e\u003ctd\u003e\u003cimg src\u003d\u0022./lwsws-logo.png\u0022\u003e\u003c/td\u003e\u003ctd\u003e\u003cspan id\u003dtitle class\u003dtitle\u003eServer status\u003c/span\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd align\u003dcenter colspan\u003d2\u003e\n\u003cdiv id\u003d\u0022conninfo\u0022\u003e...\u003c/div\u003e\n\u003cdiv id\u003d\u0022json\u0022\u003e\u003c/div\u003e\n\u003c/td\u003e\u003c/tr\u003e\n\n\n\u003c/table\u003e\n\n\u003c/article\u003e\n\n\u003cscript nonce\u003d\u0022lwscaro\u0022\u003e\n\nlws_gray_out(true,{'zindex':'499'});\n\n/*\n * We display untrusted stuff in html context... reject anything\n * that has HTML stuff in it\n */\n\nfunction san(s)\n{\n\tif (s.search(\u0022\u003c\u0022) !\u003d -1)\n\t\treturn \u0022invalid string\u0022;\n\t\n\treturn s;\n}\n\nfunction humanize(s)\n{\n\ti \u003d parseInt(s);\n\t\n\tif (i \u003e 1000000000)\n\t\treturn (i / 1000000000).toFixed(3) + \u0022G\u0022;\n\t\n\tif (i \u003e 1000000)\n\t\treturn (i / 1000000).toFixed(3) + \u0022M\u0022;\n\t\n\tif (i \u003e 1000)\n\t\treturn (i / 1000).toFixed(3) + \u0022K\u0022;\n\t\n\treturn s;\n}\n\n\tvar pos \u003d 0;\n\nfunction get_appropriate_ws_url()\n{\n\tvar pcol;\n\tvar u \u003d document.URL;\n\n\t/*\n\t * We open the websocket encrypted if this page came on an\n\t * https:// url itself, otherwise unencrypted\n\t */\n\n\tif (u.substring(0, 5) \u003d\u003d \u0022https\u0022) {\n\t\tpcol \u003d \u0022wss://\u0022;\n\t\tu \u003d u.substr(8);\n\t} else {\n\t\tpcol \u003d \u0022ws://\u0022;\n\t\tif (u.substring(0, 4) \u003d\u003d \u0022http\u0022)\n\t\t\tu \u003d u.substr(7);\n\t}\n\n\tu \u003d u.split('/');\n\n\t/* + \u0022/xxx\u0022 bit is for IE10 workaround */\n\n\treturn pcol + u[0] + \u0022/xxx\u0022;\n}\n\n\n\tvar socket_status, jso, s;\n\n\tif (typeof MozWebSocket !\u003d \u0022undefined\u0022) {\n\t\tsocket_status \u003d new MozWebSocket(get_appropriate_ws_url(),\n\t\t\t\t \u0022lws-server-status\u0022);\n\t} else {\n\t\tsocket_status \u003d new WebSocket(get_appropriate_ws_url(),\n\t\t\t\t \u0022lws-server-status\u0022);\n\t}\n\n\n\ttry {\n\t\tsocket_status.onopen \u003d function() {\n\t\t\tdocument.getElementById(\u0022title\u0022).innerHTML \u003d \u0022Server Status (Active)\u0022;\n\t\t\tlws_gray_out(false);\n\t\t}\n\n\t\tsocket_status.onmessage \u003dfunction got_packet(msg) {\n\t\t\tvar u, ci, n;\n\t\t\t//document.getElementById(\u0022json\u0022).innerHTML \u003d \u0022\u003cpre\u003e\u0022+msg.data+\u0022\u003c/pre\u003e\u0022;\n\t\t\tjso \u003d JSON.parse(msg.data);\n\t\t\tu \u003d parseInt(san(jso.i.uptime));\n\n\t\t\tif (parseInt(jso.i.contexts[0].deprecated) \u003d\u003d 0)\n\t\t\t\ts \u003d \u0022\u003ctable\u003e\u003ctr\u003e\u003ctd\u003e\u003c/td\u003e\u003ctd class\u003d\u005c\u0022c0\u005c\u0022\u003e\u0022;\n\t\t\telse\n\t\t\t\ts \u003d \u0022\u003ctable\u003e\u003ctr\u003e\u003ctd\u003e\u003c/td\u003e\u003ctd class\u003d\u005c\u0022dc0\u005c\u0022\u003e\u0022;\n\t\t\ts +\u003d\n\t\t\t \u0022Server\u003c/td\u003e\u003ctd\u003e\u0022 +\n\t\t\t \u0022\u003cspan class\u003dn\u003eVersion:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 +\n\t\t\t san(jso.i.version) + \u0022\u003c/span\u003e\u003cbr\u003e\u0022 +\n\t\t\t \u0022\u003cspan class\u003dn\u003eUptime:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 +\n\t\t\t ((u / (24 * 3600)) | 0) + \u0022d \u0022 +\n\t\t\t (((u % (24 * 3600)) / 3600) | 0) + \u0022h \u0022 +\n\t\t\t (((u % 3600) / 60) | 0) + \u0022m\u003c/span\u003e\u0022;\n\t\t\tif (jso.i.l1)\n\t\t\t\ts \u003d s + \u0022, \u003cspan class\u003dn\u003eLoad:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.l1) + \u0022 \u0022;\n\t\t\tif (jso.i.l2)\n\t\t\t\ts \u003d s + san(jso.i.l2) + \u0022 \u0022;\n\t\t\tif (jso.i.l3)\n\t\t\t\ts \u003d s + san(jso.i.l3);\n\t\t\tif (jso.i.l1)\n\t\t\t\ts \u003ds + \u0022\u003cspan\u003e\u0022;\n\t\t\t\t\n\t\t\tfor (n \u003d 0; n \u003c jso.files.length; n++) {\n\t\t\t\ts +\u003d \u0022\u003cbr\u003e\u003cspan class\u003dn\u003e\u0022 + san(jso.files[n].path) + \u0022:\u003c/span\u003e\u003cbr\u003e \u0022 + san(jso.files[n].val);\n\t\t\t}\n\t\t\ts +\u003d \u0022\u003c/td\u003e\u003c/tr\u003e\u0022;\n\n\t\t\tfor (ci \u003d 0; ci \u003c jso.i.contexts.length; ci++) {\n\n\t\t\t\tif (parseInt(jso.i.contexts[ci].deprecated) \u003d\u003d 0)\n\t\t\t\t\ts +\u003d \u0022\u003ctr\u003e\u003ctd\u003e\u003c/td\u003e\u003ctd class\u003d\u005c\u0022c\u005c\u0022\u003e\u0022 +\n\t\t\t\t\t \u0022Active Context\u003c/td\u003e\u003ctd\u003e\u0022;\n\t\t\t\telse\n\t\t\t\t\ts +\u003d \u0022\u003ctr\u003e\u003ctd\u003e\u003c/td\u003e\u003ctd class\u003d\u005c\u0022c1\u005c\u0022\u003e\u0022 +\n\t\t\t\t\t \u0022Deprecated Context \u0022 + ci + \u0022\u003c/td\u003e\u003ctd\u003e\u0022;\n\n\t\t\t\t u \u003d parseInt(san(jso.i.contexts[ci].context_uptime));\n\t \t\t\t s +\u003d \u0022\u003cspan class\u003dn\u003eUptime:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 +\n\t\t\t\t ((u / (24 * 3600)) | 0) + \u0022d \u0022 +\n\t\t\t\t (((u % (24 * 3600)) / 3600) | 0) + \u0022h \u0022 +\n\t\t\t\t (((u % 3600) / 60) | 0) + \u0022m\u003c/span\u003e\u0022;\n\n\t\t\t\ts \u003d s +\n\t\t\t\t \u0022\u003cbr\u003e\u0022 +\n\t\t\t\t \u0022\u003cspan class\u003dn\u003eListening wsi:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].listen_wsi) + \u0022\u003c/span\u003e, \u0022 +\n\t\t\t\t \u0022\u003cspan class\u003dn\u003eCurrent wsi alive:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + (parseInt(san(jso.i.contexts[ci].wsi_alive)) -\n\t\t\t\t \t\t\t\t\t\t\t parseInt(san(jso.i.contexts[ci].listen_wsi))) + \u0022\u003c/span\u003e\u003cbr\u003e\u0022 +\n\t\t\t \t \u0022\u003cspan class\u003dn\u003eTotal Rx:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + humanize(san(jso.i.contexts[ci].rx)) +\u0022\u003c/span\u003e, \u0022 +\n\t\t\t \t \u0022\u003cspan class\u003dn\u003eTotal Tx:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + humanize(san(jso.i.contexts[ci].tx)) +\u0022\u003c/span\u003e\u003cbr\u003e\u0022 +\n\t\t\t \t \n\t\t\t \t \u0022\u003cspan class\u003dn\u003eCONNECTIONS: HTTP/1.x:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].h1_conn) +\u0022\u003c/span\u003e, \u0022 +\n\t\t\t \t \u0022\u003cspan class\u003dn\u003eWebsocket:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].ws_upg) +\u0022\u003c/span\u003e, \u0022 +\n\t\t\t \t \u0022\u003cspan class\u003dn\u003eH2 upgrade:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].h2_upg) +\u0022\u003c/span\u003e, \u0022 +\n\t\t\t \t \u0022\u003cspan class\u003dn\u003eH2 ALPN:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].h2_alpn) +\u0022\u003c/span\u003e, \u0022 +\n\t\t\t \t \u0022\u003cspan class\u003dn\u003eRejected:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].rejected) +\u0022\u003c/span\u003e\u003cbr\u003e\u0022 +\n\n\t\t\t \t \u0022\u003cspan class\u003dn\u003eTRANSACTIONS: HTTP/1.x:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].h1_trans) + \u0022\u003c/span\u003e, \u0022 +\n\t\t\t \t \u0022\u003cspan class\u003dn\u003eH2:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].h2_trans) +\u0022\u003c/span\u003e, \u0022 +\n\t\t\t \t \u0022\u003cspan class\u003dn\u003eTotal H2 substreams:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].h2_subs) +\u0022\u003c/span\u003e\u003cbr\u003e\u0022 +\n\n\t\t\t\t \u0022\u003cspan class\u003dn\u003eCGI: alive:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].cgi_alive) + \u0022\u003c/span\u003e, \u0022 +\n\t\t\t\t \u0022\u003cspan class\u003dn\u003espawned:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].cgi_spawned) +\n\t\t\t\t \u0022\u003c/span\u003e\u003ctable\u003e\u0022;\n\t\t\t\t\n\t\t\t\tfor (n \u003d 0; n \u003c jso.i.contexts[ci].pt.length; n++) {\n\n\t\t\t\t\tif (parseInt(jso.i.contexts[ci].deprecated) \u003d\u003d 0)\n\t\t\t\t\t\ts +\u003d \u0022\u003ctr\u003e\u003ctd\u003e\u0026nbsp;\u0026nbsp;\u003c/td\u003e\u003ctd class\u003d\u005c\u0022l\u005c\u0022\u003eservice thread \u0022 + (n + 1);\n\t\t\t\t\telse\n\t\t\t\t\t\ts +\u003d \u0022\u003ctr\u003e\u003ctd\u003e\u0026nbsp;\u0026nbsp;\u003c/td\u003e\u003ctd class\u003d\u005c\u0022dl\u005c\u0022\u003eservice thread \u0022 + (n + 1);\n\t\t\t\t\ts +\u003d \u0022\u003c/td\u003e\u003ctd\u003e\u0022 +\n\t\t\t\t\t\u0022\u003cspan class\u003dn\u003efds:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].pt[n].fds_count) + \u0022 / \u0022 +\n\t\t\t\t\t\t san(jso.i.contexts[ci].pt_fd_max) + \u0022\u003c/span\u003e, \u0022;\n\t\t\t\t\ts \u003d s + \u0022\u003cspan class\u003dn\u003eah pool:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].pt[n].ah_pool_inuse) + \u0022 / \u0022 +\n\t\t\t\t\t\t san(jso.i.contexts[ci].ah_pool_max) + \u0022\u003c/span\u003e, \u0022 +\n\t\t\t\t\t\u0022\u003cspan class\u003dn\u003eah waiting list:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].pt[n].ah_wait_list);\n\t\n\t\t\t\t\ts \u003d s + \u0022\u003c/span\u003e\u003c/td\u003e\u003c/tr\u003e\u0022;\n\t\n\t\t\t\t}\n\t\t\t\tfor (n \u003d 0; n \u003c jso.i.contexts[ci].vhosts.length; n++) {\n\t\t\t\t\tif (parseInt(jso.i.contexts[ci].deprecated) \u003d\u003d 0)\n\t\t\t\t\t\ts +\u003d \u0022\u003ctr\u003e\u003ctd\u003e\u0026nbsp;\u0026nbsp;\u003c/td\u003e\u003ctd class\u003d\u005c\u0022l\u005c\u0022\u003evhost \u0022 + (n + 1);\n\t\t\t\t\telse\n\t\t\t\t\t\ts +\u003d \u0022\u003ctr\u003e\u003ctd\u003e\u0026nbsp;\u0026nbsp;\u003c/td\u003e\u003ctd class\u003d\u005c\u0022dl\u005c\u0022\u003evhost \u0022 + (n + 1);\n\t\t\t\t\ts +\u003d \u0022\u003c/td\u003e\u003ctd\u003e\u003cspan class\u003d\u005c\u0022mountname\u005c\u0022\u003e\u0022;\n\t\t\t\t\tif (jso.i.contexts[ci].vhosts[n].use_ssl \u003d\u003d '1')\n\t\t\t\t\t\ts \u003d s + \u0022https://\u0022;\n\t\t\t\t\telse\n\t\t\t\t\t\ts \u003d s + \u0022http://\u0022;\n\t\t\t\t\ts \u003d s + san(jso.i.contexts[ci].vhosts[n].name) + \u0022:\u0022 +\n\t\t\t\t\t\tsan(jso.i.contexts[ci].vhosts[n].port) + \u0022\u003c/span\u003e\u0022;\n\t\t\t\t\tif (jso.i.contexts[ci].vhosts[n].sts \u003d\u003d '1')\n\t\t\t\t\t\ts \u003d s + \u0022 (STS)\u0022;\n\t\t\t\t\ts \u003d s +\u0022\u003cbr\u003e\u0022 +\n\t\t\t\t\t\n\t\t\t\t\t \u0022\u003cspan class\u003dn\u003eTotal Rx:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + humanize(san(jso.i.contexts[ci].vhosts[n].rx)) +\u0022\u003c/span\u003e, \u0022 +\n\t\t\t\t\t \u0022\u003cspan class\u003dn\u003eTotal Tx:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + humanize(san(jso.i.contexts[ci].vhosts[n].tx)) +\u0022\u003c/span\u003e\u003cbr\u003e\u0022 +\n\t\t\t\t\t \n\t\t\t\t\t \u0022\u003cspan class\u003dn\u003eCONNECTIONS: HTTP/1.x:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].vhosts[n].h1_conn) +\u0022\u003c/span\u003e, \u0022 +\n\t\t\t\t\t \u0022\u003cspan class\u003dn\u003eWebsocket:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].vhosts[n].ws_upg) +\u0022\u003c/span\u003e, \u0022 +\n\t\t\t\t\t \u0022\u003cspan class\u003dn\u003eH2 upgrade:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].vhosts[n].h2_upg) +\u0022\u003c/span\u003e, \u0022 +\n\t\t\t\t\t \u0022\u003cspan class\u003dn\u003eH2 ALPN:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].vhosts[n].h2_alpn) +\u0022\u003c/span\u003e, \u0022 +\n\t\t\t\t\t \u0022\u003cspan class\u003dn\u003eRejected:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].vhosts[n].rejected) +\u0022\u003c/span\u003e\u003cbr\u003e\u0022 +\n\t\t\t\t\t\n\t\t\t\t\t \u0022\u003cspan class\u003dn\u003eTRANSACTIONS: HTTP/1.x:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].vhosts[n].h1_trans) + \u0022\u003c/span\u003e, \u0022 +\n\t\t\t\t\t \u0022\u003cspan class\u003dn\u003eH2:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].vhosts[n].h2_trans) +\u0022\u003c/span\u003e, \u0022 +\n\t\t\t\t\t \u0022\u003cspan class\u003dn\u003eTotal H2 substreams:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 + san(jso.i.contexts[ci].vhosts[n].h2_subs) +\u0022\u003c/span\u003e\u003cbr\u003e\u0022 +\n\t\t\t\t\t\n\t\t\t\t\t\u0022\u003ctable style\u003d\u005c\u0022margin-left:16px\u005c\u0022\u003e\u003ctr\u003e\u003ctd class\u003dt\u003eMountpoint\u003c/td\u003e\u003ctd class\u003dt\u003eOrigin\u003c/td\u003e\u003ctd class\u003dt\u003eCache Policy\u003c/td\u003e\u003c/tr\u003e\u0022;\n\n\t\t\t\t\tvar m;\n\t\t\t\t\tfor (m \u003d 0; m \u003c jso.i.contexts[ci].vhosts[n].mounts.length; m++) {\n\t\t\t\t\t\ts \u003d s + \u0022\u003ctr\u003e\u003ctd\u003e\u0022;\n\t\t\t\t\t\ts \u003d s + \u0022\u003cspan class\u003d\u005c\u0022m1\u005c\u0022\u003e\u0022 + san(jso.i.contexts[ci].vhosts[n].mounts[m].mountpoint) +\n\t\t\t\t\t\t\t\u0022\u003c/span\u003e\u003c/td\u003e\u003ctd\u003e\u003cspan class\u003d\u005c\u0022m2\u005c\u0022\u003e\u0022 +\n\t\t\t\t\t\t\tsan(jso.i.contexts[ci].vhosts[n].mounts[m].origin) +\n\t\t\t\t\t\t\t\u0022\u003c/span\u003e\u003c/td\u003e\u003ctd\u003e\u0022;\n\t\t\t\t\t\tif (parseInt(san(jso.i.contexts[ci].vhosts[n].mounts[m].cache_max_age)))\n\t\t\t\t\t\t\ts \u003d s + \u0022\u003cspan class\u003dn\u003emax-age:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 +\n\t\t\t\t\t\t\tsan(jso.i.contexts[ci].vhosts[n].mounts[m].cache_max_age) +\n\t\t\t\t\t\t\t\u0022\u003c/span\u003e, \u003cspan class\u003dn\u003ereuse:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 +\n\t\t\t\t\t\t\tsan(jso.i.contexts[ci].vhosts[n].mounts[m].cache_reuse) +\n\t\t\t\t\t\t\t\u0022\u003c/span\u003e, \u003cspan class\u003dn\u003ereval:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 +\n\t\t\t\t\t\t\tsan(jso.i.contexts[ci].vhosts[n].mounts[m].cache_revalidate) +\n\t\t\t\t\t\t\t\u0022\u003c/span\u003e, \u003cspan class\u003dn\u003einter:\u003c/span\u003e \u003cspan class\u003dv\u003e\u0022 +\n\t\t\t\t\t\t\tsan(jso.i.contexts[ci].vhosts[n].mounts[m].cache_intermediaries);\n\t\t\t\t\t\ts \u003d s + \u0022\u003c/span\u003e\u003c/td\u003e\u003c/tr\u003e\u0022\n\t\t\t\t\t}\n\t\t\t\t\ts \u003d s + \u0022\u003c/table\u003e\u0022;\n\t\t\t\t\ts \u003d s + \u0022\u003c/td\u003e\u003c/tr\u003e\u0022;\n\t\t\t\t}\n\n\t\t\t\ts +\u003d \u0022\u003c/table\u003e\u003c/td\u003e\u003c/tr\u003e\u0022;\n\t\t\t\t\n\t\t\t} // context\n\t\t\ts \u003d s + \u0022\u003c/table\u003e\u0022;\n\t\t\t\n\t\t\tdocument.getElementById(\u0022conninfo\u0022).innerHTML \u003d s;\n\t\t} \n\n\t\tsocket_status.onclose \u003d function(){\n\t\t\tdocument.getElementById(\u0022title\u0022).innerHTML \u003d \u0022Server Status (Disconnected)\u0022;\n\t\t\tlws_gray_out(true,{'zindex':'499'});\n\t\t}\n\t} catch(exception) {\n\t\talert('\u003cp\u003eError' + exception); \n\t}\n\u003c/script\u003e\n\n\u003c/body\u003e\n\u003c/html\u003e\n","s":{"c":1752720371,"u": 1162}}
],"g": 5938,"chitpc": 0,"ehitpc": 0,"indexed":0
,
"ab": 1, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}