recognize strongSwan VID

This commit is contained in:
Andreas Steffen
2010-03-07 17:52:04 +01:00
parent 1ec8f22de2
commit 469d448333
+55 -49
View File
@@ -375,57 +375,63 @@ static void handle_known_vendorid (struct msg_digest *md, const char *vidstr,
bool vid_useful = FALSE; bool vid_useful = FALSE;
size_t i, j; size_t i, j;
switch (vid->id) { switch (vid->id)
/* Remote side supports OpenPGP certificates */ {
case VID_OPENPGP: /* Remote side is a strongSwan host */
md->openpgp = TRUE; case VID_STRONGSWAN:
vid_useful = TRUE; vid_useful = TRUE;
break;
/* Remote side is a Windows 2000+ host */
case VID_MS_NT5:
md->ms_nt5 = TRUE;
vid_useful = TRUE;
break;
/*
* Use most recent supported NAT-Traversal method and ignore the
* other ones (implementations will send all supported methods but
* only one will be used)
*
* Note: most recent == higher id in vendor.h
*/
case VID_NATT_IETF_00:
if (!nat_traversal_support_non_ike)
break; break;
if ((nat_traversal_enabled) && (!md->nat_traversal_vid))
{
md->nat_traversal_vid = vid->id;
vid_useful = TRUE;
}
break;
case VID_NATT_IETF_02:
case VID_NATT_IETF_02_N:
case VID_NATT_IETF_03:
case VID_NATT_RFC:
if (nat_traversal_support_port_floating
&& md->nat_traversal_vid < vid->id)
{
md->nat_traversal_vid = vid->id;
vid_useful = TRUE;
}
break;
/* Remote side would like to do DPD with us on this connection */ /* Remote side supports OpenPGP certificates */
case VID_MISC_DPD: case VID_OPENPGP:
md->dpd = TRUE; md->openpgp = TRUE;
vid_useful = TRUE; vid_useful = TRUE;
break; break;
case VID_MISC_XAUTH:
vid_useful = TRUE; /* Remote side is a Windows 2000+ host */
break; case VID_MS_NT5:
default: md->ms_nt5 = TRUE;
break; vid_useful = TRUE;
break;
/*
* Use most recent supported NAT-Traversal method and ignore the
* other ones (implementations will send all supported methods but
* only one will be used)
*
* Note: most recent == higher id in vendor.h
*/
case VID_NATT_IETF_00:
if (!nat_traversal_support_non_ike)
break;
if ((nat_traversal_enabled) && (!md->nat_traversal_vid))
{
md->nat_traversal_vid = vid->id;
vid_useful = TRUE;
}
break;
case VID_NATT_IETF_02:
case VID_NATT_IETF_02_N:
case VID_NATT_IETF_03:
case VID_NATT_RFC:
if (nat_traversal_support_port_floating
&& md->nat_traversal_vid < vid->id)
{
md->nat_traversal_vid = vid->id;
vid_useful = TRUE;
}
break;
/* Remote side would like to do DPD with us on this connection */
case VID_MISC_DPD:
md->dpd = TRUE;
vid_useful = TRUE;
break;
case VID_MISC_XAUTH:
vid_useful = TRUE;
break;
default:
break;
} }
if (vid->flags & VID_SUBSTRING_DUMPHEXA) if (vid->flags & VID_SUBSTRING_DUMPHEXA)