- if ((rp->rcb_flags & RAW_ADDR) &&
- bcmp(sa->sa_data, so->so_addr.sa_data, 14) != 0)
+#define equal(a1, a2) \
+ (bcmp((caddr_t)&(a1), (caddr_t)&(a2), sizeof (struct sockaddr)) == 0)
+ if ((rp->rcb_flags & RAW_LADDR) &&
+ !equal(rp->rcb_laddr, rh->raw_dst))
+ continue;
+ if ((rp->rcb_flags & RAW_FADDR) &&
+ !equal(rp->rcb_faddr, rh->raw_src))