WIP: capture the full raw response for Reply/Notificaiton #63
No reviewers
Labels
No labels
breaking-change
bug
dependencies
duplicate
enhancement
go
good first issue
help wanted
invalid
investigation
proposal
proposal-accepted
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nemith/netconf!63
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "nemith/full_msg"
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?
While working with an internal netconf service I discovered that OKResp and other structs were not being parsed properly. This is because xml (and thus
encoding/xml) is document focused. An XML document has single root. This means the "defered" parsing of the<rpc-reply>body doesn't work as you need a proper root node (not just a value) as well you cannot support multiple nodes.To fix this, begrudgingly, this change changes the API to to not just expose the
Bodyto the call but the entire<rpc-reply>to be parsed. The same goes for<notification>.This could mean slightly larger allocations, but really.... it doesn't matter. The majority of the data would be inside the
Bodyvalue anyway so adding the wrapping<rpc-reply>doesn't add much.I think there is room in a v2 to explore a full stream based solution here, but not needed for this. It does make the full io.Reader/io.Writer of RFC6242 kinda.. worthless now, but perhaps this will make things like netconf over QUIC possible. We will see.
Closes: #62
Breaking changes
Raw()andString()methods on both structs to return the raw data and a string representation.I think there is future work to make a
<rpc-reply>drop in for structs to enforce the root node, but this works for now.I have a "working" streaming version. Streaming isn't important but allocations do and this allocates a lot.
Pull request closed