diff options
Diffstat (limited to 'net/sctp/ulpevent.c')
| -rw-r--r-- | net/sctp/ulpevent.c | 30 | 
1 files changed, 29 insertions, 1 deletions
diff --git a/net/sctp/ulpevent.c b/net/sctp/ulpevent.c index dff27d5e22f..c962c6062aa 100644 --- a/net/sctp/ulpevent.c +++ b/net/sctp/ulpevent.c @@ -843,7 +843,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_authkey(  	ak = (struct sctp_authkey_event *)  		skb_put(skb, sizeof(struct sctp_authkey_event)); -	ak->auth_type = SCTP_AUTHENTICATION_INDICATION; +	ak->auth_type = SCTP_AUTHENTICATION_EVENT;  	ak->auth_flags = 0;  	ak->auth_length = sizeof(struct sctp_authkey_event); @@ -862,6 +862,34 @@ fail:  	return NULL;  } +/* + * Socket Extensions for SCTP + * 6.3.10. SCTP_SENDER_DRY_EVENT + */ +struct sctp_ulpevent *sctp_ulpevent_make_sender_dry_event( +	const struct sctp_association *asoc, gfp_t gfp) +{ +	struct sctp_ulpevent *event; +	struct sctp_sender_dry_event *sdry; +	struct sk_buff *skb; + +	event = sctp_ulpevent_new(sizeof(struct sctp_sender_dry_event), +				  MSG_NOTIFICATION, gfp); +	if (!event) +		return NULL; + +	skb = sctp_event2skb(event); +	sdry = (struct sctp_sender_dry_event *) +		skb_put(skb, sizeof(struct sctp_sender_dry_event)); + +	sdry->sender_dry_type = SCTP_SENDER_DRY_EVENT; +	sdry->sender_dry_flags = 0; +	sdry->sender_dry_length = sizeof(struct sctp_sender_dry_event); +	sctp_ulpevent_set_owner(event, asoc); +	sdry->sender_dry_assoc_id = sctp_assoc2id(asoc); + +	return event; +}  /* Return the notification type, assuming this is a notification   * event.  |