Skip to content

Commit

Permalink
[SCTP]: sctp_process_init() and sctp_source() switched to net-endian.
Browse files Browse the repository at this point in the history
both are done in one go since almost always we have result of
the latter immediately passed to the former.  Possibly non-obvious
note: sctp_process_param() is endian-agnostic

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Al Viro authored and David S. Miller committed Dec 3, 2006
1 parent 02a8a4d commit 6a1e5f3
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 17 deletions.
4 changes: 1 addition & 3 deletions net/sctp/endpointola.c
Original file line number Diff line number Diff line change
Expand Up @@ -346,10 +346,8 @@ static void sctp_endpoint_bh_rcv(struct sctp_endpoint *ep)
* COOKIE-ECHO chunk.
*/
if (NULL == chunk->asoc) {
union sctp_addr tmp;
flip_to_n(&tmp, sctp_source(chunk));
asoc = sctp_endpoint_lookup_assoc(ep,
&tmp,
sctp_source(chunk),
&transport);
chunk->asoc = asoc;
chunk->transport = transport;
Expand Down
12 changes: 4 additions & 8 deletions net/sctp/sm_make_chunk.c
Original file line number Diff line number Diff line change
Expand Up @@ -1041,10 +1041,10 @@ const union sctp_addr *sctp_source(const struct sctp_chunk *chunk)
{
/* If we have a known transport, use that. */
if (chunk->transport) {
return &chunk->transport->ipaddr_h;
return &chunk->transport->ipaddr;
} else {
/* Otherwise, extract it from the IP header. */
return &chunk->source_h;
return &chunk->source;
}
}

Expand Down Expand Up @@ -1844,7 +1844,6 @@ int sctp_process_init(struct sctp_association *asoc, sctp_cid_t cid,
struct sctp_transport *transport;
struct list_head *pos, *temp;
char *cookie;
union sctp_addr tmp;

/* We must include the address that the INIT packet came from.
* This is the only address that matters for an INIT packet.
Expand All @@ -1857,8 +1856,7 @@ int sctp_process_init(struct sctp_association *asoc, sctp_cid_t cid,
* be a a better choice than any of the embedded addresses.
*/
if (peer_addr) {
flip_to_n(&tmp, peer_addr);
if(!sctp_assoc_add_peer(asoc, &tmp, gfp, SCTP_ACTIVE))
if(!sctp_assoc_add_peer(asoc, peer_addr, gfp, SCTP_ACTIVE))
goto nomem;
}

Expand Down Expand Up @@ -2419,7 +2417,6 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,
union sctp_addr addr;
struct list_head *pos;
union sctp_addr_param *addr_param;
union sctp_addr tmp;

addr_param = (union sctp_addr_param *)
((void *)asconf_param + sizeof(sctp_addip_param_t));
Expand Down Expand Up @@ -2463,8 +2460,7 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,
* an Error Cause TLV set to the new error code 'Request to
* Delete Source IP Address'
*/
flip_to_n(&tmp, sctp_source(asconf));
if (sctp_cmp_addr_exact(&tmp, &addr))
if (sctp_cmp_addr_exact(sctp_source(asconf), &addr))
return SCTP_ERROR_DEL_SRC_IP;

sctp_assoc_del_peer(asoc, &addr);
Expand Down
8 changes: 2 additions & 6 deletions net/sctp/sm_statefuns.c
Original file line number Diff line number Diff line change
Expand Up @@ -598,7 +598,6 @@ sctp_disposition_t sctp_sf_do_5_1D_ce(const struct sctp_endpoint *ep,
struct sctp_ulpevent *ev, *ai_ev = NULL;
int error = 0;
struct sctp_chunk *err_chk_p;
union sctp_addr tmp;

/* If the packet is an OOTB packet which is temporarily on the
* control endpoint, respond with an ABORT.
Expand Down Expand Up @@ -666,9 +665,8 @@ sctp_disposition_t sctp_sf_do_5_1D_ce(const struct sctp_endpoint *ep,
*/
peer_init = &chunk->subh.cookie_hdr->c.peer_init[0];

flip_to_h(&tmp, &chunk->subh.cookie_hdr->c.peer_addr);
if (!sctp_process_init(new_asoc, chunk->chunk_hdr->type,
&tmp,
&chunk->subh.cookie_hdr->c.peer_addr,
peer_init, GFP_ATOMIC))
goto nomem_init;

Expand Down Expand Up @@ -5105,7 +5103,6 @@ static struct sctp_packet *sctp_ootb_pkt_new(const struct sctp_association *asoc
__u16 sport;
__u16 dport;
__u32 vtag;
union sctp_addr tmp;

/* Get the source and destination port from the inbound packet. */
sport = ntohs(chunk->sctp_hdr->dest);
Expand Down Expand Up @@ -5136,8 +5133,7 @@ static struct sctp_packet *sctp_ootb_pkt_new(const struct sctp_association *asoc
}

/* Make a transport for the bucket, Eliza... */
flip_to_n(&tmp, sctp_source(chunk));
transport = sctp_transport_new(&tmp, GFP_ATOMIC);
transport = sctp_transport_new(sctp_source(chunk), GFP_ATOMIC);
if (!transport)
goto nomem;

Expand Down

0 comments on commit 6a1e5f3

Please sign in to comment.