Lines Matching defs:newsp

1646 	struct secpolicy *newsp = NULL;
1649 newsp = keydb_newsecpolicy();
1650 if (!newsp)
1651 return newsp;
1653 newsp->refcnt = 1;
1654 newsp->req = NULL;
1656 return newsp;
1670 struct secpolicy *newsp;
1685 if ((newsp = key_newsp()) == NULL) {
1690 newsp->spidx.dir = xpl0->sadb_x_policy_dir;
1691 newsp->policy = xpl0->sadb_x_policy_type;
1700 newsp->req = NULL;
1707 struct ipsecrequest **p_isr = &newsp->req;
1713 key_freesp(newsp, KEY_SADB_UNLOCKED);
1727 key_freesp(newsp, KEY_SADB_UNLOCKED);
1737 key_freesp(newsp, KEY_SADB_UNLOCKED);
1755 key_freesp(newsp, KEY_SADB_UNLOCKED);
1770 key_freesp(newsp, KEY_SADB_UNLOCKED);
1800 key_freesp(newsp, KEY_SADB_UNLOCKED);
1816 key_freesp(newsp, KEY_SADB_UNLOCKED);
1833 key_freesp(newsp, KEY_SADB_UNLOCKED);
1848 key_freesp(newsp, KEY_SADB_UNLOCKED);
1856 (*p_isr)->sp = newsp;
1865 key_freesp(newsp, KEY_SADB_UNLOCKED);
1877 key_freesp(newsp, KEY_SADB_UNLOCKED);
1883 return newsp;
2094 struct secpolicy *newsp;
2174 newsp = key_getsp(&spidx);
2176 if (newsp) {
2177 newsp->state = IPSEC_SPSTATE_DEAD;
2178 key_freesp(newsp, KEY_SADB_LOCKED);
2181 if (newsp != NULL) {
2182 key_freesp(newsp, KEY_SADB_LOCKED);
2190 if ((newsp = key_msg2sp(xpl0, PFKEY_EXTLEN(xpl0), &error)) == NULL) {
2194 if ((newsp->id = key_getnewspid()) == 0) {
2195 keydb_delsecpolicy(newsp);
2206 &newsp->spidx);
2211 keydb_delsecpolicy(newsp);
2216 keydb_delsecpolicy(newsp);
2224 if (newsp->req && newsp->req->saidx.src.ss_family) {
2227 if (sa->sa_family != newsp->req->saidx.src.ss_family) {
2228 if (newsp->req->saidx.mode != IPSEC_MODE_TUNNEL || newsp->req->saidx.proto != IPPROTO_ESP
2229 || sa->sa_family != AF_INET6 || newsp->req->saidx.src.ss_family != AF_INET) {
2230 keydb_delsecpolicy(newsp);
2235 if (newsp->req && newsp->req->saidx.dst.ss_family) {
2238 if (sa->sa_family != newsp->req->saidx.dst.ss_family) {
2239 if (newsp->req->saidx.mode != IPSEC_MODE_TUNNEL || newsp->req->saidx.proto != IPPROTO_ESP
2240 || sa->sa_family != AF_INET6 || newsp->req->saidx.dst.ss_family != AF_INET) {
2241 keydb_delsecpolicy(newsp);
2249 newsp->created = tv.tv_sec;
2250 newsp->lastused = tv.tv_sec;
2251 newsp->lifetime = lft ? lft->sadb_lifetime_addtime : 0;
2252 newsp->validtime = lft ? lft->sadb_lifetime_usetime : 0;
2254 newsp->refcnt = 1; /* do not reclaim until I say I do */
2255 newsp->state = IPSEC_SPSTATE_ALIVE;
2261 if (newsp->policy == IPSEC_POLICY_GENERATE)
2262 LIST_INSERT_TAIL(&sptree[newsp->spidx.dir], newsp, secpolicy, chain);
2266 LIST_FOREACH(tmpsp, &sptree[newsp->spidx.dir], chain)
2270 LIST_INSERT_BEFORE(tmpsp, newsp, chain);
2272 LIST_INSERT_TAIL(&sptree[newsp->spidx.dir], newsp, secpolicy, chain);
2332 xpl->sadb_x_policy_id = newsp->id;