[SCTP] Allow SCTP_MAXSEG to revert to default frag point with a '0' value.

Signed-off-by: Ivan Skytte Jorgensen <isj-sctp@i1.dk>
Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
This commit is contained in:
Ivan Skytte Jorgensen 2005-10-28 15:36:12 -07:00 committed by Sridhar Samudrala
parent a1ab358269
commit 96a339985d
1 changed files with 5 additions and 7 deletions

View File

@ -2306,16 +2306,14 @@ static int sctp_setsockopt_maxseg(struct sock *sk, char __user *optval, int optl
return -EINVAL; return -EINVAL;
if (get_user(val, (int __user *)optval)) if (get_user(val, (int __user *)optval))
return -EFAULT; return -EFAULT;
if ((val < 8) || (val > SCTP_MAX_CHUNK_LEN)) if ((val != 0) && ((val < 8) || (val > SCTP_MAX_CHUNK_LEN)))
return -EINVAL; return -EINVAL;
sp->user_frag = val; sp->user_frag = val;
if (val) { /* Update the frag_point of the existing associations. */
/* Update the frag_point of the existing associations. */ list_for_each(pos, &(sp->ep->asocs)) {
list_for_each(pos, &(sp->ep->asocs)) { asoc = list_entry(pos, struct sctp_association, asocs);
asoc = list_entry(pos, struct sctp_association, asocs); asoc->frag_point = sctp_frag_point(sp, asoc->pmtu);
asoc->frag_point = sctp_frag_point(sp, asoc->pmtu);
}
} }
return 0; return 0;