#include <arpa/inet.h>#include <sys/param.h>#include <sys/socket.h>#include <sys/time.h>#include <netatalk/at.h>#include <atalk/ddp.h>#include <atalk/netddp.h>#include <atalk/rtmp.h>#include <atalk/util.h>#include <inttypes.h>#include <stdbool.h>#include <stdint.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>Functions | |
| int | setup_ddp_socket (const struct at_addr *local_addr, struct at_addr **remote_addr) |
| Set up a DDP socket ready for sending RTMP packets. | |
| void | do_rtmp_rdr (int sockfd, const struct sockaddr_at *sa_remote, bool get_all, int secs_timeout) |
| Send an RTMP Route Data Request (RDR) and wait for a reply. | |
| void | print_rtmp_data_packet (const uint8_t *buf, size_t len) |
| void | do_rtmp_request (int sockfd, struct sockaddr_at *sa_remote) |
| Send an RTMP Request and wait for a reply. | |
| static void | usage (char *s) |
| int | main (int argc, char **argv) |
| const uint8_t * | print_rtmp_tuple (const uint8_t *buf, const uint8_t *cursor, size_t len, uint16_t router_net, uint8_t router_node) |
| Print an RTMP tuple pointed to by 'cursor' within the buffer 'buf' with length 'len'. | |
| void do_rtmp_rdr | ( | int | sockfd, |
| const struct sockaddr_at * | sa_remote, | ||
| bool | get_all, | ||
| int | secs_timeout ) |
Send an RTMP Route Data Request (RDR) and wait for a reply.
An RTMP RDR solicits RTMP data packets - generally, these are sent out broadcast on a timer, but one can specifically ask for them to be sent to a non-standard socket by means of an RDR. An RDR can also specify whether or not for the router to do split horizon processing (or whether to return all routes).
| void do_rtmp_request | ( | int | sockfd, |
| struct sockaddr_at * | sa_remote ) |
Send an RTMP Request and wait for a reply.
An RTMP request just requests details of the network this node is connected to; in general, these aren't used on extended networks (instead, a ZIP GetNetInfo is used) but they should be supported anyway.
| int main | ( | int | argc, |
| char ** | argv ) |
| void print_rtmp_data_packet | ( | const uint8_t * | buf, |
| size_t | len ) |
| const uint8_t * print_rtmp_tuple | ( | const uint8_t * | buf, |
| const uint8_t * | cursor, | ||
| size_t | len, | ||
| uint16_t | router_net, | ||
| uint8_t | router_node ) |
Print an RTMP tuple pointed to by 'cursor' within the buffer 'buf' with length 'len'.
Set up a DDP socket ready for sending RTMP packets.
The remote_addr is a pointer to a pointer so that if it's null we can fill it in with the address the kernel provides, as we do in libatalk/nbp/nbp_lkup.c for example.
|
static |