struct udp_connection *conn;
size_t ulen;
uint16_t csum;
- int rc;
+ int rc = 0;
/* Sanity check packet */
if ( pkb_len ( pkb ) < sizeof ( *udphdr ) ) {
}
/* Pass data to application */
- rc = conn->udp_op->newdata ( conn, pkb->data, pkb_len ( pkb ),
+ if ( conn->udp_op->newdata ) {
+ 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 ) );
+ if ( rc != 0 ) {
+ DBGC ( conn, "UDP %p application rejected packet: %s\n",
+ conn, strerror ( rc ) );
+ }
+ } else {
+ DBGC ( conn, "UDP %p application has no newdata handler for " \
+ "incoming packet\n", conn );
}
done: