X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=port.cpp;h=8fed914cf30779678f800d0881549ff631de29aa;hp=4afca9c7978729533a701f6f57f547a1835540d4;hb=89a525b798faa8da871a7b4a1798c6e8d0d24354;hpb=5463e1b62a39ce417b610584e3d34a8bc30ac15e diff --git a/port.cpp b/port.cpp index 4afca9c..8fed914 100644 --- a/port.cpp +++ b/port.cpp @@ -1264,23 +1264,31 @@ void Port::bridge(unsigned int bridge_id) p_bridge = NULL; } -/* send data to remote Port */ -int Port::bridge_tx(unsigned char *data, int len) +class Port *Port::bridge_remote(void) { - class Port *to_port = NULL; + class Port *remote = NULL; /* get remote port from bridge */ if (!p_bridge) - return -EINVAL; + return NULL; if (p_bridge->sunrise == this) - to_port = p_bridge->sunset; + remote = p_bridge->sunset; if (p_bridge->sunset == this) - to_port = p_bridge->sunrise; - if (!to_port) + remote = p_bridge->sunrise; + + return remote; +} + +/* send data to remote Port */ +int Port::bridge_tx(unsigned char *data, int len) +{ + class Port *remote = bridge_remote(); + + if (!remote) return -EINVAL; -// printf("Traffic: %u -> %u (bridge %u)\n", p_serial, to_port->p_serial, p_bridge->bridge_id); - return to_port->bridge_rx(data, len); +// printf("Traffic: %u -> %u (bridge %u)\n", p_serial, remote->p_serial, p_bridge->bridge_id); + return remote->bridge_rx(data, len); } /* receive data from remote Port (dummy, needs to be inherited) */