Typo - NfQeueue #41
Labels
No labels
Bug
BuildIssue
Claude-fixed
Enhancement
In Progress
Low priority
On Hold
Rejected
Security
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
keyop-go/nfq_forwarder#41
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Somehow Claude has managed to introduce 'NfQeueue' as a typo in a few comments in ./internal/nfq_forwarder/nfq_forwarder.go
This is a spelling mistake.
This only appears to be in these comments and in CLAUDE.md, but should be rectified.
changed the description
mentioned in merge request !73
Rechecked with both spellings - this isn't actually a typo of mine.
NfQeueueis the real, exported verdict constant name in the third-partygithub.com/florianl/go-nfqueue@v1.3.2library itself - a typo in that library, not something I introduced. Evidence, straight from the vendored module source on disk (~/go/pkg/mod/github.com/florianl/go-nfqueue@v1.3.2/types.go:158-165):There is no
NfQueueverdict constant exported by this library at all - code that tried to callnfqueue.NfQueueas a verdict simply wouldn't compile. Confirmed no newer version fixes this either:go list -m -versions github.com/florianl/go-nfqueueshows v1.3.2 (our pinned version) is the latest available.What does exist, spelled correctly, is a completely different identifier in the same package:
nfqueue.Config.NfQueue(auint16struct field - "which queue number to bind this listener to", used once ininitNfqueue:NfQueue: uint16(conn.QueueNumber)). The two look almost identical at a glance (NfQueuethe correctly-spelled config field for a queue number, vsNfQeueuethe genuinely-misspelled-upstream verdict constant) - exactly why this is easy to mistake for a Claude-introduced error.I grepped every
.goand.mdfile in the repo for both spellings to be sure:NfQeueueoccurrence (innfq_forwarder.gocode/comments andCLAUDE.md) correctly refers to the verdict constant, matching the library's real (if misspelled) exported name.NfQueueoccurrence (nfq_forwarder.go:632) correctly refers to the unrelatedConfig.NfQueuefield.No inconsistency or genuine typo found either direction. I don't think there's a code or doc change needed here - happy to add an explicit comment calling out the "these look alike but are different identifiers" trap if that would help future readers, but wanted to confirm this finding with you first, given #41's premise turned out to be a very understandable but mistaken reading.
mentioned in commit 893bb8b79046f7cbf8db8e147112a4a28beb5fbb
mentioned in merge request !74
Added a clarifying comment at the one
NfQueue(config field) usage ininitNfqueueexplaining it's a different identifier from the verdict constantNfQeueueused elsewhere. MR up for review: !74 (branchissue41_clarify_nfqueue_vs_nfqeueue).mentioned in commit
3d67c563bcmentioned in commit
b534e34d53Merged via !74 (merge commit
b534e34). No release for this one - a comment-only clarification, per Danny.For reference, Issue https://github.com/florianl/go-nfqueue/issues/112 has been raised on the upstream project to notify the author of the original minor error.
Upstream issue https://github.com/florianl/go-nfqueue/issues/112 and I provided a PR to resolve the typo. This should be resolved in the main branch now but may not make it to a release for a while.
Re-opening this issue in order to remember to check for the updated upstream, and adjust our code to use it when available.
Checked upstream just now:
NfQeueuetypo, noNfQueuealias. So the fix hasn't made it into a release yet, confirming what you said.mainbranch does have your fix: correctly-spelledNfQueueas the real constant, plusNfQeueuekept as a deprecated alias (// Deprecated: Please migrate to NfQueue.) for compatibility.v2module line (github.com/florianl/go-nfqueue/v2, currently at v2.1.0) - unrelated pre-existing major version bump, not connected to this fix. It still has the typo too (noNfQueuealias there either), so it's not a shortcut to the fix.Nothing to upgrade to yet - leaving this open as a reminder per your comment. Will pick it back up once a v1.3.4+ (or later) release actually ships with the fix, then swap our
NfQeueueusages over toNfQueueand bump thego.modpin.Putting this on hold for now. Summary of what's needed to close it out, for whoever picks it back up:
Next action: periodically check https://github.com/florianl/go-nfqueue/releases (or run
go list -m -versions github.com/florianl/go-nfqueue) for a new v1.x tag beyond the current v1.3.3. As of 2026-07-10, v1.3.3 does not contain Danny's upstream fix - only the unreleased v1.xmainbranch does.Once a release with the fix ships:
github.com/florianl/go-nfqueuepin ingo.mod/go.sumto that version.nfqueue.NfQeueuein this codebase over to the now-correctly-spellednfqueue.NfQueue(the old spelling will remain available as a deprecated alias upstream, but we should migrate off it, not just keep building against the deprecated name).internal/nfq_forwarder/nfq_forwarder.goandCLAUDE.mdthat currently explain theNfQeueue/NfQueueconfusion (seesetVerdict's doc comment andinitNfqueue'sNfQueueconfig-field comment) - once the constant itself is spelled correctly, those comments explaining the confusion become unnecessary/stale and should be simplified or removed.v2module line (github.com/florianl/go-nfqueue/v2) - do not confuse this with the fix; as of v2.1.0 it still has the typo and has no connection to Danny's patch.No code changes needed right now - just re-check upstream periodically.