Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Http11Probe.sln.DotSettings.user
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARequestSemantics_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fce26b175055a49b19cdd19b6aedc82447200_003F6f_003F500b3600_003FRequestSemantics_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
</wpf:ResourceDictionary>
4 changes: 4 additions & 0 deletions docs/content/probe-results/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ HTTP/1.1 compliance comparison across frameworks. Each test sends a specific mal
These results are from CI runs (`ubuntu-latest`). Click on the **Compliance**, **Smuggling**, or **Malformed Input** tabs above for detailed results per category.
{{< /callout >}}

{{< callout type="warning" >}}
**Glyph11** is an HTTP/1.1 parsing library currently in development and is included here only as a reference implementation. Its results should not be compared directly with production-grade servers.
{{< /callout >}}

<script src="/Http11Probe/probe/data.js"></script>
<script src="/Http11Probe/probe/render.js"></script>
<script>
Expand Down
26 changes: 20 additions & 6 deletions docs/static/probe/render.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ window.ProbeRender = (function () {
var EXPECT_BG = '#444c56';
var pillCss = 'text-align:center;padding:2px 4px;font-size:11px;font-weight:600;color:#fff;border-radius:3px;min-width:28px;display:inline-block;line-height:18px;';

// Servers temporarily hidden from results (undergoing major changes)
var BLACKLISTED_SERVERS = ['GenHTTP', 'SimpleW'];
function filterBlacklisted(servers) {
return servers.filter(function (sv) {
return BLACKLISTED_SERVERS.indexOf(sv.name) === -1;
});
}

// ── Scrollbar styling (injected once) ──────────────────────────
var scrollStyleInjected = false;
function injectScrollStyle() {
Expand Down Expand Up @@ -201,6 +209,7 @@ window.ProbeRender = (function () {
}

function buildLookups(servers) {
servers = filterBlacklisted(servers);
var names = servers.map(function (sv) { return sv.name; }).sort();
var lookup = {};
servers.forEach(function (sv) {
Expand All @@ -215,8 +224,8 @@ window.ProbeRender = (function () {
function renderSummary(targetId, data) {
var el = document.getElementById(targetId);
if (!el) return;
var servers = data.servers;
if (!servers || servers.length === 0) {
var servers = filterBlacklisted(data.servers || []);
if (servers.length === 0) {
el.innerHTML = '<p><em>No server results found.</em></p>';
return;
}
Expand Down Expand Up @@ -262,6 +271,7 @@ window.ProbeRender = (function () {
var passPct = (scoredPass / total) * 100;
var warnPct = (scoredWarn / total) * 100;
var failPct = (scoredFail / total) * 100;
var unscoredPct = (unscored / total) * 100;
var rank = i + 1;

html += '<div style="display:flex;align-items:center;gap:10px;">';
Expand All @@ -278,6 +288,9 @@ window.ProbeRender = (function () {
if (scoredFail > 0) {
html += '<div style="height:100%;width:' + failPct + '%;background:' + FAIL_BG + ';transition:width 0.3s;"></div>';
}
if (unscored > 0) {
html += '<div style="height:100%;width:' + unscoredPct + '%;background:' + SKIP_BG + ';transition:width 0.3s;"></div>';
}
html += '</div>';
// Score: pass + warn [fail] [unscored] / total
html += '<div style="min-width:200px;text-align:right;font-size:13px;">';
Expand Down Expand Up @@ -445,10 +458,11 @@ window.ProbeRender = (function () {
// ── Language filter ────────────────────────────────────────────
function renderLanguageFilter(targetId, data, onChange) {
var el = document.getElementById(targetId);
if (!el || !data.servers || data.servers.length === 0) return;
var allServers = filterBlacklisted(data.servers || []);
if (!el || allServers.length === 0) return;

var langs = {};
data.servers.forEach(function (sv) {
allServers.forEach(function (sv) {
if (sv.language) langs[sv.language] = true;
});
var langList = Object.keys(langs).sort();
Expand Down Expand Up @@ -492,11 +506,11 @@ window.ProbeRender = (function () {
}
});
if (!lang) {
onChange(data);
onChange({ commit: data.commit, servers: allServers });
} else {
var filtered = {
commit: data.commit,
servers: data.servers.filter(function (sv) { return sv.language === lang; })
servers: allServers.filter(function (sv) { return sv.language === lang; })
};
onChange(filtered);
}
Expand Down
1 change: 0 additions & 1 deletion src/Servers/GlyphServer/GlyphServer.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
<!-- Local project reference during development; switch back to NuGet for release -->
<!-- NuGet for CI; project reference for local dev -->
<PackageReference Include="Glyph11" Version="0.3.1" />
<!--<ProjectReference Include="../../../../Glyph11/src/Glyph11/Glyph11.csproj" />-->
</ItemGroup>

</Project>
1 change: 1 addition & 0 deletions src/Servers/GlyphServer/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ static async Task HandleClientAsync(TcpClient client, CancellationToken ct)
int headerByteCount;
while (true)
{
request.Clear();
var result = await reader.ReadAsync(ct);
var buffer = result.Buffer;

Expand Down
Loading