vp = paircopy2(request->packet->vps, PW_STRIPPED_USER_NAME);
if (vp) pairadd(&vps, vp);
-
+
vp = paircopy2(request->reply->vps, PW_CACHED_SESSION_POLICY);
if (vp) pairadd(&vps, vp);
-
+
+ if (handler->certs) {
+ pairadd(&vps, paircopy(handler->certs));
+ }
+
if (vps) {
SSL_SESSION_set_ex_data(tls_session->ssl->session,
eaptls_session_idx, vps);
*/
} else {
- vp = SSL_SESSION_get_ex_data(tls_session->ssl->session,
+ vps = SSL_SESSION_get_ex_data(tls_session->ssl->session,
eaptls_session_idx);
- if (!vp) {
+ if (!vps) {
RDEBUG("WARNING: No information in cached session!");
return eaptls_fail(handler, peap_flag);
} else {
- RDEBUG("Adding cached attributes to the reply:");
- debug_pair_list(vp);
- pairadd(&request->reply->vps, paircopy(vp));
+ RDEBUG("Adding cached attributes:");
+ debug_pair_list(vps);
+
+ for (vp = vps; vp != NULL; vp = vp->next) {
+ /*
+ * TLS-* attrs get added back to
+ * the request list.
+ */
+ if ((vp->attribute >= 1910) &&
+ (vp->attribute < 1929)) {
+ pairadd(&request->packet->vps,
+ paircopyvp(vp));
+ } else {
+ pairadd(&request->reply->vps,
+ paircopyvp(vp));
+ }
+ }
/*
* Mark the request as resumed.