]> git.hungrycats.org Git - linux/commitdiff
Resolve conflicts.
authorDavid S. Miller <davem@nuts.ninka.net>
Sun, 2 Mar 2003 17:01:01 +0000 (09:01 -0800)
committerDavid S. Miller <davem@nuts.ninka.net>
Sun, 2 Mar 2003 17:01:01 +0000 (09:01 -0800)
1  2 
include/net/sctp/structs.h
include/net/sctp/ulpqueue.h
include/net/sctp/user.h
net/sctp/ipv6.c
net/sctp/outqueue.c
net/sctp/sm_statefuns.c
net/sctp/ulpevent.c
net/sctp/ulpqueue.c

Simple merge
index 8a9f056d4fc3db0de6f5ab73fdc9e23f991aebbd,7b8ad3ab1d4afbe7e0520ecb23616a90a5258cd0..334dbf1138efeb0630a870edd21a981441e77c41
@@@ -60,13 -61,22 +61,22 @@@ struct sctp_ulpq *sctp_ulpq_init(struc
  void sctp_ulpq_free(struct sctp_ulpq *);
  
  /* Add a new DATA chunk for processing. */
- int sctp_ulpq_tail_data(struct sctp_ulpq *, sctp_chunk_t *chunk, int priority);
+ int sctp_ulpq_tail_data(struct sctp_ulpq *, struct sctp_chunk *, int);
  
 -/* Add a new event for propogation to the ULP. */
 +/* Add a new event for propagation to the ULP. */
  int sctp_ulpq_tail_event(struct sctp_ulpq *, struct sctp_ulpevent *ev);
  
- /* Is the ulpqueue empty. */
- int sctp_ulpqueue_is_empty(struct sctp_ulpq *);
+ /* Renege previously received chunks.  */
+ void sctp_ulpq_renege(struct sctp_ulpq *, struct sctp_chunk *, int);
+ 
+ /* Perform partial delivery. */
+ void sctp_ulpq_partial_delivery(struct sctp_ulpq *, struct sctp_chunk *, int);
+ 
+ /* Abort the partial delivery. */
+ void sctp_ulpq_abort_pd(struct sctp_ulpq *, int);
+ 
+ /* Clear the partial data delivery condition on this socket. */
+ int sctp_clear_pd(struct sock *sk);
  
  #endif /* __sctp_ulpqueue_h__ */
  
Simple merge
diff --cc net/sctp/ipv6.c
Simple merge
Simple merge
Simple merge
index 020be17ba7bc1465712f2f720d96ebdf68a3d24a,30e96c68d10f9106e8065e35b7f7df92c3fdb9b8..295fb6029d1220e0a3d3a13d566c934914ffb6b6
@@@ -785,10 -831,11 +831,11 @@@ static void sctp_rcvmsg_rfree(struct sk
        sctp_association_put(asoc);
  }
  
 -/* Charge receive window for bytes recieved.  */
 +/* Charge receive window for bytes received.  */
- static void sctp_ulpevent_set_owner_r(struct sk_buff *skb, sctp_association_t *asoc)
+ static void sctp_ulpevent_set_owner_r(struct sk_buff *skb,
+                                     sctp_association_t *asoc)
  {
-       sctp_ulpevent_t *event;
+       struct sctp_ulpevent *event;
  
        /* The current stack structures assume that the rcv buffer is
         * per socket.  For UDP-style sockets this is not true as
index bfc886cf25e4c8335a16092d26fc7c2dc7d1e2bd,9f8d3b7826eefe5751d52adcd95b8854b3312a9e..bcd8ed5eae118f09c6396761f3097b3211ee891a
@@@ -154,7 -151,35 +151,35 @@@ int sctp_ulpq_tail_data(struct sctp_ulp
        return 0;
  }
  
 -/* Add a new event for propogation to the ULP.  */
 +/* Add a new event for propagation to the ULP.  */
+ /* Clear the partial delivery mode for this socket.   Note: This
+  * assumes that no association is currently in partial delivery mode.
+  */
+ int sctp_clear_pd(struct sock *sk)
+ {
+       struct sctp_opt *sp;
+       sp = sctp_sk(sk);
+ 
+       sp->pd_mode = 0;
+       if (!skb_queue_empty(&sp->pd_lobby)) {
+               struct list_head *list;
+               sctp_skb_list_tail(&sp->pd_lobby, &sk->receive_queue);
+               list = (struct list_head *)&sctp_sk(sk)->pd_lobby;
+               INIT_LIST_HEAD(list);
+               return 1;
+       }
+       return 0;
+ }
+ 
+ /* Clear the pd_mode and restart any pending messages waiting for delivery. */
+ static int sctp_ulpq_clear_pd(struct sctp_ulpq *ulpq)
+ {
+       ulpq->pd_mode = 0;
+       return sctp_clear_pd(ulpq->asoc->base.sk);
+ }
+ 
+ 
+ 
  int sctp_ulpq_tail_event(struct sctp_ulpq *ulpq, struct sctp_ulpevent *event)
  {
        struct sock *sk = ulpq->asoc->base.sk;