]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - net/sctp/ulpevent.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
[karo-tx-linux.git] / net / sctp / ulpevent.c
index 61b1f5ada96a92aeb403c02c64694cb5e801106c..e70e5fc87890c92031ab4b8a10e8fe3b15c5567e 100644 (file)
@@ -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.