From be956cd27353a4bb585b1a648e8469cf7adb5edf Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 14 Jan 2022 16:03:48 +0100 Subject: Adding upstream version 0.2.0. Signed-off-by: Daniel Baumann --- examples/README.md | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 examples/README.md (limited to 'examples/README.md') diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 0000000..33d5309 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,114 @@ +# Examples + +- `reader`: Example of reading DNSTAP from a file and printing it's content, using `dnswire_reader` (unidirectional mode) +- `writer`: Example of constructing a DNSTAP message and writing it to a file, using `dnswire_writer` (unidirectional mode) +- `receiver`: Example of receiving a DNSTAP message over a TCP connection and printing it's content, using `dnswire_reader` (bidirectional mode) +- `sender`: Example of constructing a DNSTAP message and sending it over a TCP connection, using `dnswire_writer` (bidirectional mode) +- `daemon_sender_uv`: Example of a daemon that will continuously send DNSTAP messages to connected clients (unidirectional mode), using the event engine `libuv` and `dnstap_encode_protobuf` along with `tinyframe` to encode once and send to many +- `client_receiver_uv`: Example of a client that will receive DNSTAP message from the daemon (unidirectional mode), using the event engine `libuv` and `dnswire_reader` with the buffer push interface +- `reader_sender`: Example of a reader that read DNSTAP from a file (unidirectional mode) and then sends the DNSTAP messages over a TCP connection (bidirectional mode) + +## receiver and sender + +These examples uses the way of connecting as implemented in the `fstrm` +library, the receiver listens for connections by the sender and the sender +connects to the receiver. + +``` +$ ./receiver 127.0.0.1 5353 +socket +bind +listen +accept +receiving... +---- dnstap +identity: sender +version: 0.1.0 +message: + type: MESSAGE + query_time: 1574765731.199945162 + response_time: 1574765731.199945362 + socket_family: INET + socket_protocol: UDP + query_address: 127.0.0.1 + query_port: 12345 + response_address: 127.0.0.1 + response_port: 53 + query_message_length: 27 + query_message: dns_wire_format_placeholder + response_message_length: 27 + response_message: dns_wire_format_placeholder +---- +stopped +``` + +``` +$ ./sender 127.0.0.1 5353 +socket +connect +sending... +sent, stopping... +stopped +``` + +## daemon_sender_uv and client_receiver_uv + +These examples works in the reverse way compared to `receiver` and `sender`, +and maybe a more traditional way, the daemon listens and accepts connections +from new clients, and will continuously send messages to established clients +that are ready to receive them. + +``` +$ ./daemon_sender_uv 127.0.0.1 5353 +client 1 connected +client 1: sending control start and content type +client 1: sending DNSTAP +client 1: sending DNSTAP +client 1 disconnected +``` + +``` +$ ./client_receiver_uv 127.0.0.1 5353 +received 42 bytes +got control start +got content type DNSTAP +received 133 bytes +---- dnstap +identity: daemon_sender_uv +version: 0.1.0 +message: + type: MESSAGE + query_time: 1574257180.95619354 + response_time: 1574257180.95619490 + socket_family: INET + socket_protocol: UDP + query_address: 127.0.0.1 + query_port: 12345 + response_address: 127.0.0.1 + response_port: 53 + query_message_length: 27 + query_message: dns_wire_format_placeholder + response_message_length: 27 + response_message: dns_wire_format_placeholder +---- +received 133 bytes +---- dnstap +identity: daemon_sender_uv +version: 0.1.0 +message: + type: MESSAGE + query_time: 1574257181.96381443 + response_time: 1574257181.96381557 + socket_family: INET + socket_protocol: UDP + query_address: 127.0.0.1 + query_port: 12345 + response_address: 127.0.0.1 + response_port: 53 + query_message_length: 27 + query_message: dns_wire_format_placeholder + response_message_length: 27 + response_message: dns_wire_format_placeholder +---- +^C +``` -- cgit v1.2.3