Lines Matching refs:cmsgs
1626 struct sctp_cmsgs *cmsgs);
1628 static int sctp_sendmsg_parse(struct sock *sk, struct sctp_cmsgs *cmsgs, in sctp_sendmsg_parse() argument
1641 memset(cmsgs, 0, sizeof(*cmsgs)); in sctp_sendmsg_parse()
1642 err = sctp_msghdr_parse(msg, cmsgs); in sctp_sendmsg_parse()
1649 if (cmsgs->srinfo) { in sctp_sendmsg_parse()
1650 srinfo->sinfo_stream = cmsgs->srinfo->sinfo_stream; in sctp_sendmsg_parse()
1651 srinfo->sinfo_flags = cmsgs->srinfo->sinfo_flags; in sctp_sendmsg_parse()
1652 srinfo->sinfo_ppid = cmsgs->srinfo->sinfo_ppid; in sctp_sendmsg_parse()
1653 srinfo->sinfo_context = cmsgs->srinfo->sinfo_context; in sctp_sendmsg_parse()
1654 srinfo->sinfo_assoc_id = cmsgs->srinfo->sinfo_assoc_id; in sctp_sendmsg_parse()
1655 srinfo->sinfo_timetolive = cmsgs->srinfo->sinfo_timetolive; in sctp_sendmsg_parse()
1658 if (cmsgs->sinfo) { in sctp_sendmsg_parse()
1659 srinfo->sinfo_stream = cmsgs->sinfo->snd_sid; in sctp_sendmsg_parse()
1660 srinfo->sinfo_flags = cmsgs->sinfo->snd_flags; in sctp_sendmsg_parse()
1661 srinfo->sinfo_ppid = cmsgs->sinfo->snd_ppid; in sctp_sendmsg_parse()
1662 srinfo->sinfo_context = cmsgs->sinfo->snd_context; in sctp_sendmsg_parse()
1663 srinfo->sinfo_assoc_id = cmsgs->sinfo->snd_assoc_id; in sctp_sendmsg_parse()
1666 if (cmsgs->prinfo) { in sctp_sendmsg_parse()
1667 srinfo->sinfo_timetolive = cmsgs->prinfo->pr_value; in sctp_sendmsg_parse()
1669 cmsgs->prinfo->pr_policy); in sctp_sendmsg_parse()
1690 struct sctp_cmsgs *cmsgs, in sctp_sendmsg_new_asoc() argument
1750 if (cmsgs->init) { in sctp_sendmsg_new_asoc()
1751 struct sctp_initmsg *init = cmsgs->init; in sctp_sendmsg_new_asoc()
1781 if (!cmsgs->addrs_msg) in sctp_sendmsg_new_asoc()
1788 for_each_cmsghdr(cmsg, cmsgs->addrs_msg) { in sctp_sendmsg_new_asoc()
1996 struct sctp_cmsgs *cmsgs) in sctp_sendmsg_get_daddr() argument
2019 struct sctp_cmsgs *cmsgs) in sctp_sendmsg_update_sinfo() argument
2021 if (!cmsgs->srinfo && !cmsgs->sinfo) { in sctp_sendmsg_update_sinfo()
2027 if (!cmsgs->prinfo) in sctp_sendmsg_update_sinfo()
2031 if (!cmsgs->srinfo && !cmsgs->prinfo) in sctp_sendmsg_update_sinfo()
2034 if (cmsgs->authinfo) { in sctp_sendmsg_update_sinfo()
2039 sinfo->sinfo_ssn = cmsgs->authinfo->auth_keynumber; in sctp_sendmsg_update_sinfo()
2049 struct sctp_cmsgs cmsgs; in sctp_sendmsg() local
2056 err = sctp_sendmsg_parse(sk, &cmsgs, &_sinfo, msg, msg_len); in sctp_sendmsg()
2064 daddr = sctp_sendmsg_get_daddr(sk, msg, &cmsgs); in sctp_sendmsg()
2082 sctp_sendmsg_update_sinfo(asoc, sinfo, &cmsgs); in sctp_sendmsg()
2104 err = sctp_sendmsg_new_asoc(sk, sflags, &cmsgs, daddr, in sctp_sendmsg()
2128 sctp_sendmsg_update_sinfo(asoc, sinfo, &cmsgs); in sctp_sendmsg()
8121 static int sctp_msghdr_parse(const struct msghdr *msg, struct sctp_cmsgs *cmsgs) in sctp_msghdr_parse() argument
8153 cmsgs->init = CMSG_DATA(cmsg); in sctp_msghdr_parse()
8171 cmsgs->srinfo = CMSG_DATA(cmsg); in sctp_msghdr_parse()
8173 if (cmsgs->srinfo->sinfo_flags & in sctp_msghdr_parse()
8195 cmsgs->sinfo = CMSG_DATA(cmsg); in sctp_msghdr_parse()
8197 if (cmsgs->sinfo->snd_flags & in sctp_msghdr_parse()
8216 cmsgs->prinfo = CMSG_DATA(cmsg); in sctp_msghdr_parse()
8217 if (cmsgs->prinfo->pr_policy & ~SCTP_PR_SCTP_MASK) in sctp_msghdr_parse()
8220 if (cmsgs->prinfo->pr_policy == SCTP_PR_SCTP_NONE) in sctp_msghdr_parse()
8221 cmsgs->prinfo->pr_value = 0; in sctp_msghdr_parse()
8236 cmsgs->authinfo = CMSG_DATA(cmsg); in sctp_msghdr_parse()
8251 cmsgs->addrs_msg = my_msg; in sctp_msghdr_parse()