void incoming_packet_handler( us_rawnet_multi_t *self, int ethernet_port, void *context, uint8_t *buf, uint16_t len )
{
    bool was_log=false;
    char text[4096] = "";
    struct timeval tv;
    us_gettimeofday( &tv );
    struct jdksavdecc_printer print;

    (void)ethernet_port;
    (void)context;
    jdksavdecc_printer_init( &print, text, sizeof( text ) );

    if ( option_jdkslog == 1 && buf[JDKSAVDECC_FRAME_HEADER_LEN + 0] == 0x80 + JDKSAVDECC_SUBTYPE_AECP )
    {
        was_log = jdksavdecc_logger_print_jdkslog_frame( &print, &tv, buf, len );
    }
    else if ( option_acmp == 1 && buf[JDKSAVDECC_FRAME_HEADER_LEN + 0] == 0x80 + JDKSAVDECC_SUBTYPE_ACMP )
    {
        jdksavdecc_logger_print_acmp_frame( &print, &tv, buf, len );
    }
    else if ( option_adp == 1 && buf[JDKSAVDECC_FRAME_HEADER_LEN + 0] == 0x80 + JDKSAVDECC_SUBTYPE_ADP )
    {
        jdksavdecc_logger_print_adp_frame( &print, &tv, buf, len );
    }
    if ( !was_log && option_aecp == 1 && buf[JDKSAVDECC_FRAME_HEADER_LEN + 0] == 0x80 + JDKSAVDECC_SUBTYPE_AECP )
    {
        jdksavdecc_logger_print_aecp_frame( &print, &tv, buf, len );
    }
    if ( *text != 0 )
    {
        fprintf( stdout, "%d.%06d:%s\n", (int)tv.tv_sec, (int)tv.tv_usec, text );
    }
}
Exemple #2
0
inline std::ostream &operator<<( std::ostream &o, jdksavdecc_eui64 const &v )
{
    jdksavdecc_printer p;
    char buf[128];
    jdksavdecc_printer_init( &p, buf, sizeof( buf ) );
    jdksavdecc_printer_print_eui64( &p, v );
    o << buf;
    return o;
}
Exemple #3
0
void adp_print( FILE *s, const struct jdksavdecc_frame *frame, const struct jdksavdecc_adpdu *adpdu )
{
    struct jdksavdecc_printer p;
    char buf[10240];
    jdksavdecc_printer_init( &p, buf, sizeof( buf ) );

    avdecc_cmd_print_frame_header( &p, frame );
    jdksavdecc_adpdu_print( &p, adpdu );
    fprintf( s, "%s", buf );
}