summaryrefslogtreecommitdiffstats
path: root/src/net/udp.c
diff options
context:
space:
mode:
authorMichael Brown2007-01-16 04:19:40 +0100
committerMichael Brown2007-01-16 04:19:40 +0100
commitbcdb6fad3e55ecbfef52b77a6f0de68ed7ddbbe8 (patch)
tree030c2c240dab6b893016ff9f07e7e0bafbdc54e9 /src/net/udp.c
parentImproved debugging (diff)
downloadipxe-bcdb6fad3e55ecbfef52b77a6f0de68ed7ddbbe8.tar.gz
ipxe-bcdb6fad3e55ecbfef52b77a6f0de68ed7ddbbe8.tar.xz
ipxe-bcdb6fad3e55ecbfef52b77a6f0de68ed7ddbbe8.zip
Improve debug messages
Diffstat (limited to 'src/net/udp.c')
-rw-r--r--src/net/udp.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/net/udp.c b/src/net/udp.c
index 8a23a1e7..7966de09 100644
--- a/src/net/udp.c
+++ b/src/net/udp.c
@@ -64,8 +64,11 @@ int udp_open ( struct udp_connection *conn, uint16_t local_port ) {
}
/* Attempt bind to local port */
- if ( ( rc = udp_bind ( conn, local_port ) ) != 0 )
+ if ( ( rc = udp_bind ( conn, local_port ) ) != 0 ) {
+ DBGC ( conn, "UDP %p could not bind to local port %d: %s\n",
+ conn, local_port, strerror ( rc ) );
return rc;
+ }
/* Add to UDP connection list */
list_add ( &conn->list, &udp_conns );
@@ -122,6 +125,10 @@ int udp_senddata ( struct udp_connection *conn ) {
rc = conn->udp_op->senddata ( conn, conn->tx_pkb->data,
pkb_tailroom ( conn->tx_pkb ) );
+ if ( rc != 0 ) {
+ DBGC ( conn, "UDP %p application could not send packet: %s\n",
+ conn, strerror ( rc ) );
+ }
if ( conn->tx_pkb ) {
free_pkb ( conn->tx_pkb );
@@ -146,6 +153,7 @@ int udp_sendto_via ( struct udp_connection *conn, struct sockaddr_tcpip *peer,
size_t len ) {
struct udp_header *udphdr;
struct pk_buff *pkb;
+ int rc;
/* Use precreated packet buffer if one is available */
if ( conn->tx_pkb ) {
@@ -183,7 +191,14 @@ int udp_sendto_via ( struct udp_connection *conn, struct sockaddr_tcpip *peer,
ntohs ( udphdr->len ) );
/* Send it to the next layer for processing */
- return tcpip_tx ( pkb, &udp_protocol, peer, netdev, &udphdr->chksum );
+ if ( ( rc = tcpip_tx ( pkb, &udp_protocol, peer, netdev,
+ &udphdr->chksum ) ) != 0 ) {
+ DBGC ( conn, "UDP %p could not transmit packet: %s\n",
+ conn, strerror ( rc ) );
+ return rc;
+ }
+
+ return 0;
}
/**
@@ -301,6 +316,10 @@ static int udp_rx ( struct pk_buff *pkb, struct sockaddr_tcpip *st_src,
/* Pass data to application */
rc = conn->udp_op->newdata ( conn, pkb->data, pkb_len ( pkb ),
st_src, st_dest );
+ if ( rc != 0 ) {
+ DBGC ( conn, "UDP %p application rejected packet: %s\n",
+ conn, strerror ( rc ) );
+ }
done:
free_pkb ( pkb );