question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Extension names become case insensitive in binary encoding

See original GitHub issue

Extensions are not defined to have case-insensitive names, but the binary encoding puts the extension name in a header. Since header names are case insensitive, their case may be changed by middleware. This makes extensions fairly fragile.

I suggest we either:

  1. Define extensions to be case insensitive in spec.md
  2. Change the way extensions are encoded in HTTP binary encoding.

I personally prefer (2). I’d recommend

CE-X: <key>: <value>

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Reactions:1
  • Comments:17 (4 by maintainers)

github_iconTop GitHub Comments

2reactions
timbraycommented, Sep 20, 2018

Does the spec say (don’t recall seeing this) that properties (built-in or extensions) be English words? If not, the base64 idea is worth serious consideration, specifically for HTTP headers, which are a lossy encoding. Case-folding is a can of worms, and should be avoided wherever possible in the interests of sanity and diversity. E.g., if ASCII case-folding rules are applied mechanically, they are apt to break anyone who uses a Turkish word to name a property. Case has no place in Internet protocols.

1reaction
deissnerkcommented, Sep 21, 2018

I think it should be a requirement that the different transport bindings can be chained. If I get an event via webhook in binary format and need to publish it on an MQTT 3.1 topic (-> JSON representation), I have no way to determine the case of the extension attributes. SDKs should decide how to represent extensions, but this representation should not lose information.

Read more comments on GitHub >

github_iconTop Results From Across the Web

RFC 4343 - Domain Name System (DNS) Case Insensitivity ...
Abstract Domain Name System (DNS) names are "case insensitive". ... whose name is to be output, converting it to a typographically encoded ASCII...
Read more >
Case insensitive text search inside binary data on macOS
I am trying to implement the ability to find text in files that cannot be loaded into an NSString. This applies to generic...
Read more >
Naming and Referencing Containers, Blobs, and Metadata
Blob names are case-sensitive. Reserved URL characters must be properly escaped. The number of path segments comprising the blob name cannot ...
Read more >
Simple Binary Encoding (SBE) Online - FIX Trading Community
FIX Simple Binary Encoding (SBE) targets high performance trading systems. ... that matching of type names should be case insensitive in schema parsers....
Read more >
RFC 2045: Multipurpose Internet Mail Extensions (MIME) Part ...
All media type values, subtype values, and parameter names as defined are case-insensitive. However, parameter values are case-sensitive unless otherwise ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found