key.c (197250) | key.c (199398) |
---|---|
1/* $FreeBSD: head/sys/netipsec/key.c 197250 2009-09-16 11:56:44Z vanhu $ */ | 1/* $FreeBSD: head/sys/netipsec/key.c 199398 2009-11-17 16:00:41Z vanhu $ */ |
2/* $KAME: key.c,v 1.191 2001/06/27 10:46:49 sakane Exp $ */ 3 4/*- 5 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions --- 2837 unchanged lines hidden (view full) --- 2847 newsav->created = time_second; 2848 newsav->pid = mhp->msg->sadb_msg_pid; 2849 2850 /* add to satree */ 2851 newsav->sah = sah; 2852 sa_initref(newsav); 2853 newsav->state = SADB_SASTATE_LARVAL; 2854 | 2/* $KAME: key.c,v 1.191 2001/06/27 10:46:49 sakane Exp $ */ 3 4/*- 5 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions --- 2837 unchanged lines hidden (view full) --- 2847 newsav->created = time_second; 2848 newsav->pid = mhp->msg->sadb_msg_pid; 2849 2850 /* add to satree */ 2851 newsav->sah = sah; 2852 sa_initref(newsav); 2853 newsav->state = SADB_SASTATE_LARVAL; 2854 |
2855 /* XXX locking??? */ | 2855 SAHTREE_LOCK(); |
2856 LIST_INSERT_TAIL(&sah->savtree[SADB_SASTATE_LARVAL], newsav, 2857 secasvar, chain); | 2856 LIST_INSERT_TAIL(&sah->savtree[SADB_SASTATE_LARVAL], newsav, 2857 secasvar, chain); |
2858 SAHTREE_UNLOCK(); |
|
2858done: 2859 KEYDEBUG(KEYDEBUG_IPSEC_STAMP, 2860 printf("DP %s from %s:%u return SP:%p\n", __func__, 2861 where, tag, newsav)); 2862 2863 return newsav; 2864} 2865 --- 2827 unchanged lines hidden (view full) --- 5693 } 5694 if (sah == NULL) { 5695 SAHTREE_UNLOCK(); 5696 ipseclog((LOG_DEBUG, "%s: no SA found.\n", __func__)); 5697 return key_senderror(so, m, ENOENT); 5698 } 5699 5700 key_sa_chgstate(sav, SADB_SASTATE_DEAD); | 2859done: 2860 KEYDEBUG(KEYDEBUG_IPSEC_STAMP, 2861 printf("DP %s from %s:%u return SP:%p\n", __func__, 2862 where, tag, newsav)); 2863 2864 return newsav; 2865} 2866 --- 2827 unchanged lines hidden (view full) --- 5694 } 5695 if (sah == NULL) { 5696 SAHTREE_UNLOCK(); 5697 ipseclog((LOG_DEBUG, "%s: no SA found.\n", __func__)); 5698 return key_senderror(so, m, ENOENT); 5699 } 5700 5701 key_sa_chgstate(sav, SADB_SASTATE_DEAD); |
5701 SAHTREE_UNLOCK(); | |
5702 KEY_FREESAV(&sav); | 5702 KEY_FREESAV(&sav); |
5703 SAHTREE_UNLOCK(); |
|
5703 5704 { 5705 struct mbuf *n; 5706 struct sadb_msg *newmsg; 5707 5708 /* create new sadb_msg to reply. */ 5709 /* XXX-BZ NAT-T extensions? */ 5710 n = key_gather_mbuf(m, mhp, 1, 4, SADB_EXT_RESERVED, --- 2356 unchanged lines hidden --- | 5704 5705 { 5706 struct mbuf *n; 5707 struct sadb_msg *newmsg; 5708 5709 /* create new sadb_msg to reply. */ 5710 /* XXX-BZ NAT-T extensions? */ 5711 n = key_gather_mbuf(m, mhp, 1, 4, SADB_EXT_RESERVED, --- 2356 unchanged lines hidden --- |