Apply by doing: cd /usr/src patch -p0 < 009_isakmpd.patch cd sbin/isakmpd make obj && make cleandir && make depend && make && make install Finally, kill and restart isakmpd. No configuration changes are necessary. Index: sbin/isakmpd/ike_quick_mode.c =================================================================== RCS file: /cvs/src/sbin/isakmpd/ike_quick_mode.c,v retrieving revision 1.34 diff -u -r1.34 ike_quick_mode.c --- sbin/isakmpd/ike_quick_mode.c 2000/04/07 22:05:19 1.34 +++ sbin/isakmpd/ike_quick_mode.c 2000/06/09 20:55:03 @@ -118,6 +118,7 @@ X509_NAME *subject; RSA *key; #endif + extern char *policy_callback(char *); /* If there is no policy setup, everything fails. */ if (keynote_sessid < 0) @@ -128,6 +129,9 @@ policy_sa = sa; policy_isakmp_sa = isakmp_sa; + /* Reset information */ + policy_callback(KEYNOTE_CALLBACK_INITIALIZE); + /* Set the return values; true/false for now at least. */ return_values[0] = "false"; /* Order of values in array is important. */ return_values[1] = "true"; @@ -243,6 +247,7 @@ /* Ask policy. */ result = LK (kn_do_query, (keynote_sessid, return_values, RETVALUES_NUM)); + policy_callback(KEYNOTE_CALLBACK_CLEANUP); /* Just to make sure */ /* Remove authorizer from the session. */ LK (kn_remove_authorizer, (keynote_sessid, principal)); Index: sbin/isakmpd/policy.c =================================================================== RCS file: /cvs/src/sbin/isakmpd/policy.c,v retrieving revision 1.12 diff -u -r1.12 policy.c --- sbin/isakmpd/policy.c 2000/05/02 14:35:27 1.12 +++ sbin/isakmpd/policy.c 2000/06/09 20:55:05 @@ -146,7 +146,7 @@ return dst; } -static char * +char * policy_callback (char *name) { struct proto *proto;