summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2008-08-21 17:52:08 +0200
committerMichael Brown2008-08-21 17:52:08 +0200
commit0ffc3f6285cb39af55547243201783e418aff8b9 (patch)
tree6b673d132a1bdf247305197501f01072a13e941b
parent[pxe] Fix broadcast transmissions via PXENV_UDP_WRITE (diff)
downloadipxe-0ffc3f6285cb39af55547243201783e418aff8b9.tar.gz
ipxe-0ffc3f6285cb39af55547243201783e418aff8b9.tar.xz
ipxe-0ffc3f6285cb39af55547243201783e418aff8b9.zip
[pxe] Add extra debug messages to the PXE UDP API calls
-rw-r--r--src/interface/pxe/pxe_udp.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/interface/pxe/pxe_udp.c b/src/interface/pxe/pxe_udp.c
index 032b1f23..033b1ad9 100644
--- a/src/interface/pxe/pxe_udp.c
+++ b/src/interface/pxe/pxe_udp.c
@@ -166,6 +166,7 @@ PXENV_EXIT_t pxenv_udp_open ( struct s_PXENV_UDP_OPEN *pxenv_udp_open ) {
/* Record source IP address */
pxe_udp.local.sin_addr.s_addr = pxenv_udp_open->src_ip;
+ DBG ( " %s", inet_ntoa ( pxe_udp.local.sin_addr ) );
/* Open promiscuous UDP connection */
xfer_close ( &pxe_udp.xfer, 0 );
@@ -355,8 +356,10 @@ PXENV_EXIT_t pxenv_udp_write ( struct s_PXENV_UDP_WRITE *pxenv_udp_write ) {
*
*/
PXENV_EXIT_t pxenv_udp_read ( struct s_PXENV_UDP_READ *pxenv_udp_read ) {
- struct in_addr dest_ip = { .s_addr = pxenv_udp_read->dest_ip };
- uint16_t d_port = pxenv_udp_read->d_port;
+ struct in_addr dest_ip_wanted = { .s_addr = pxenv_udp_read->dest_ip };
+ struct in_addr dest_ip;
+ uint16_t d_port_wanted = pxenv_udp_read->d_port;
+ uint16_t d_port;
DBG ( "PXENV_UDP_READ" );
@@ -368,12 +371,21 @@ PXENV_EXIT_t pxenv_udp_read ( struct s_PXENV_UDP_READ *pxenv_udp_read ) {
pxe_udp.pxenv_udp_read = NULL;
goto no_packet;
}
+ dest_ip.s_addr = pxenv_udp_read->dest_ip;
+ d_port = pxenv_udp_read->d_port;
/* Filter on destination address and/or port */
- if ( dest_ip.s_addr && ( dest_ip.s_addr != pxenv_udp_read->dest_ip ) )
+ if ( dest_ip_wanted.s_addr &&
+ ( dest_ip_wanted.s_addr != dest_ip.s_addr ) ) {
+ DBG ( " wrong IP %s", inet_ntoa ( dest_ip ) );
+ DBG ( " (wanted %s)", inet_ntoa ( dest_ip_wanted ) );
goto no_packet;
- if ( d_port && ( d_port != pxenv_udp_read->d_port ) )
+ }
+ if ( d_port_wanted && ( d_port_wanted != d_port ) ) {
+ DBG ( " wrong port %d ", htons ( d_port ) );
+ DBG ( " (wanted %d)", htons ( d_port_wanted ) );
goto no_packet;
+ }
DBG ( " %04x:%04x+%x %s:", pxenv_udp_read->buffer.segment,
pxenv_udp_read->buffer.offset, pxenv_udp_read->buffer_size,