struct sctphdr *sh;
union sctp_addr src;
union sctp_addr dest;
- union sctp_addr tmp;
int family;
struct sctp_af *af;
asoc = __sctp_rcv_lookup(skb, &src, &dest, &transport);
- flip_to_n(&tmp, &dest);
-
if (!asoc)
- ep = __sctp_rcv_lookup_endpoint(&tmp);
+ ep = __sctp_rcv_lookup_endpoint(&dest);
/* Retrieve the common input handling substructure. */
rcvr = asoc ? &asoc->base : &ep->base;
/* Optimize here for direct hit, only listening connections can
* have wildcards anyways.
*/
- hash = sctp_assoc_hashfn(local->v4.sin_port, peer->v4.sin_port);
+ hash = sctp_assoc_hashfn(ntohs(local->v4.sin_port), ntohs(peer->v4.sin_port));
head = &sctp_assoc_hashtable[hash];
read_lock(&head->lock);
for (epb = head->chain; epb; epb = epb->next) {
if (!af)
continue;
- af->from_addr_param(paddr, params.addr, ntohs(sh->source), 0);
+ af->from_addr_param(paddr, params.addr, sh->source, 0);
asoc = __sctp_lookup_association(laddr, paddr, &transport);
if (asoc)