Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

core.object.dns #39

Open
8 of 10 tasks
jelu opened this issue Apr 12, 2018 · 0 comments
Open
8 of 10 tasks

core.object.dns #39

jelu opened this issue Apr 12, 2018 · 0 comments

Comments

@jelu
Copy link
Member

jelu commented Apr 12, 2018

  • Remove private struct
  • Pull in omg-dns parse code
  • Remove omg-dns dependency
  • Add support for core.object.udp
  • Add support for core.object.tcp
  • Add support for core.object.payload
  • Add class, type, opcode, rcode etc to constants in module
  • Add class, type, opcode, rcode etc to string mapping
  • Add RR data interface
  • Mock RR type objects
jelu added a commit to jelu/dnsjit that referenced this issue May 10, 2018
- `README`/`examples/readme.lua`: Update example to use `filter.coro`
- `examples/dumpdns-qr.lua`: Use `core.objects`, `filter.coro` and local variables
- `examples/dumpdns.lua`: Use `core.objects`, `filter.coro` and `core.object.dns:print()`
- `examples/filter_rcode.lua`: Use `core.objects` and `filter.coro`
- `examples/playqr.lua`: Add example of replaying DNS queries and showing the original response vs received response
- `examples/replay.lua`:
  - Add `-t` to use `output.tcpcli`
  - Add `-u` to use `output.udpcli`
  - Use `core.object.dns:print()`
- `core.compat`: Add documentation
- `core.object`:
  - Add `core.object.payload`
  - `core_object_copy()`: Disable copying of `core.object.udp`
- `core.object.dns`:
  - Issue DNS-OARC#39: Parse `core.object.payload` instead of `core.object.udp`
  - Add `rr_reset()` to reset the walking of resource records
  - Add `print()` to print the DNS message
- `core.object.ip`:
  - Remove payload attributes in favor of `core.object.payload`
  - Add `source()` and `destination()` to get a string representation of the IP addresses
- `core.object.ip6`:
  - Remove payload attributes in favor of `core.object.payload`
  - Add `source(pretty)` and `destination(pretty)` to get a string representation of the IP addresses, if `pretty` is true then return easier to read addresses (RFC 5952)
- `core.object.payload`: Add new object to hold the payload of any other object with the option to have padding
- `core.object.tcp`: Remove payload attributes in favor of `core.object.payload`
- `core.object.udp`: Remove payload attributes in favor of `core.object.payload`
- `core.objects`: Add new module to easier `require()` all objects
- `filter.coro`: Handle error on resume
- `filter.layer`: Use `core.object.payload` for all payloads
- `core.output.tcpcli`:
  - Use `core.object.payload` on receive instead of `core.object.tcp` or `core.object.udp`
  - Issue DNS-OARC#47: Add producer to receive responses
  - Use non-blocking mode as default
- `core.output.udpcli`:
  - Use `core.object.payload` on receive instead of `core.object.tcp` or `core.object.udp`
  - Issue DNS-OARC#46: Add producer to receive responses
  - Use non-blocking mode as default
jelu added a commit to jelu/dnsjit that referenced this issue Jun 22, 2018
- `core.object.dns`:
  - Issue DNS-OARC#39: Remove private struct and pull in `omg-dns` code
  - Issue DNS-OARC#39: Add constants and strings for class, type, opcode, rcode etc
  - Add new objects `core.object.dns.label`, `core.object.dns.q` and `core.object.dns.rr`
  - Make it possible to reuse a `core.object.dns` for parsing another payload
  - Rework the way parsing more then just the header is done:
    - Remove functions `rr_reset()`, `rr_ok()`, `rr_label()`, `rr_type()`, `rr_class()` and `rr_ttl()`
    - Remove attributes `questions`, `answers`, `authorities` and `additionals`
    - Add function `parse_q()` and `parse_rr()`
    - Payload object is now optional for `new()`
    - Change `parse()`, see documentation
  - Remove old (non-working) functions `src()` and `dst()`
  - Remove old (unused) attributes `src_id`, `qr_id`, `dst_id`, `sport` and `dport`
  - `print()` now displays textual representation of types and codes
- `core.object`: Remove prefix for constants
- `examples/*`:
  - Add `respdiff.lua`, based on `playqr.lua` but only uses `output.respdiff`
  - Remove `playqr.lua`
  - Update all examples with changes made to `core.object` and `core.object.dns`
- `README.md`/Makefiles: Remove `omg-dns` dependency
- `filter.layer`: Update parsing to use `memcpy()` and `bswap_nn()` for possible assembler optimization
- `input.fpcap`: Update parsing to use `bswap_nn()` for possible assembler optimization
- `input.mmpcap`: Update parsing to use `bswap_nn()` for possible assembler optimization
jelu added a commit to jelu/dnsjit that referenced this issue Jun 22, 2018
- `core.object.dns`:
  - Issue DNS-OARC#39: Remove private struct and pull in `omg-dns` code
  - Issue DNS-OARC#39: Add constants and strings for class, type, opcode, rcode etc
  - Add new objects `core.object.dns.label`, `core.object.dns.q` and `core.object.dns.rr`
  - Make it possible to reuse a `core.object.dns` for parsing another payload
  - Rework the way parsing more then just the header is done:
    - Remove functions `rr_reset()`, `rr_ok()`, `rr_label()`, `rr_type()`, `rr_class()` and `rr_ttl()`
    - Remove attributes `questions`, `answers`, `authorities` and `additionals`
    - Add function `parse_q()` and `parse_rr()`
    - Payload object is now optional for `new()`
    - Change `parse()`, see documentation
  - Remove old (non-working) functions `src()` and `dst()`
  - Remove old (unused) attributes `src_id`, `qr_id`, `dst_id`, `sport` and `dport`
  - `print()` now displays textual representation of types and codes
- `core.object`: Remove prefix for constants
- `examples/*`:
  - Add `respdiff.lua`, based on `playqr.lua` but only uses `output.respdiff`
  - Remove `playqr.lua`
  - Update all examples with changes made to `core.object` and `core.object.dns`
- `README.md`/Makefiles: Remove `omg-dns` dependency
- `filter.layer`: Update parsing to use `memcpy()` and `bswap_nn()` for possible assembler optimization
- `input.fpcap`: Update parsing to use `bswap_nn()` for possible assembler optimization
- `input.mmpcap`: Update parsing to use `bswap_nn()` for possible assembler optimization
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant