we can (hopefully) remove all inter-module linking.
It's not done yet (and untested), but TTLS should now NOT require
linking against rlm_eap_tls
*
* Copyright 2003 Alan DeKok <aland@freeradius.org>
*/
-#include "eap_tls.h"
+#include "rlm_eap_tls.h"
#include "eap_peap.h"
/*
tlv_packet[9] = 0;
tlv_packet[10] = EAP_TLV_FAILURE;
- record_plus(&tls_session->clean_in, tlv_packet, 11);
+ (tls_session->record_plus)(&tls_session->clean_in, tlv_packet, 11);
/*
* FIXME: Check the return code.
*/
tls_handshake_send(tls_session);
- record_init(&tls_session->clean_in);
-
+ (tls_session->record_init)(&tls_session->clean_in);
+
return 1;
}
tlv_packet[9] = 0;
tlv_packet[10] = EAP_TLV_SUCCESS;
- record_plus(&tls_session->clean_in, tlv_packet, 11);
+ (tls_session->record_plus)(&tls_session->clean_in, tlv_packet, 11);
/*
* FIXME: Check the return code.
*/
tls_handshake_send(tls_session);
- record_init(&tls_session->clean_in);
+ (tls_session->record_init)(&tls_session->clean_in);
return 1;
}
* Send the EAP data, WITHOUT the header.
*/
#if 1
- record_plus(&tls_session->clean_in, vp->strvalue + EAP_HEADER_LEN,
+ (tls_session->record_plus)(&tls_session->clean_in, vp->strvalue + EAP_HEADER_LEN,
vp->length - EAP_HEADER_LEN);
#else
- record_plus(&tls_session->clean_in, vp->strvalue, vp->length);
+ (tls_session->record_plus)(&tls_session->clean_in, vp->strvalue, vp->length);
#endif
tls_handshake_send(tls_session);
- record_init(&tls_session->clean_in);
+ (tls_session->record_init)(&tls_session->clean_in);
return 1;
}
*
* I *really* don't like these 'record_t' things...
*/
- data_len = record_minus(&tls_session->dirty_in, buffer, sizeof(buffer));
+ data_len = (tls_session->record_minus)(&tls_session->dirty_in, buffer, sizeof(buffer));
data = buffer;
/*
* go there, too...
*/
BIO_write(tls_session->into_ssl, buffer, data_len);
- record_init(&tls_session->clean_out);
+ (tls_session->record_init)(&tls_session->clean_out);
/*
* Read (and decrypt) the tunneled data from the SSL session,
*/
#include "autoconf.h"
-#include "eap_tls.h"
+#include "rlm_eap_tls.h"
#include "eap_peap.h"
typedef struct rlm_eap_peap_t {
eap_packet.length[1] = EAP_HEADER_LEN + 1;
eap_packet.data[0] = PW_EAP_IDENTITY;
- record_plus(&tls_session->clean_in,
- &eap_packet, sizeof(eap_packet));
-
+ (tls_session->record_plus)(&tls_session->clean_in,
+ &eap_packet, sizeof(eap_packet));
+
tls_handshake_send(tls_session);
- record_init(&tls_session->clean_in);
+ (tls_session->record_init)(&tls_session->clean_in);
}
eaptls_request(handler->eap_ds, tls_session);
DEBUG2(" rlm_eap_peap: EAPTLS_SUCCESS");
record_t dirty_in;
record_t dirty_out;
+ void (*record_init)(record_t *buf);
+ void (*record_close)(record_t *buf);
+ unsigned int (*record_plus)(record_t *buf, const unsigned char *ptr,
+ unsigned int size);
+ unsigned int (*record_minus)(record_t *buf, unsigned char *ptr,
+ unsigned int size);
+
+
/*
* Framed-MTU attribute in RADIUS,
* if present, can also be used to set this
state->ssl = new_tls;
/*
+ * Initialize callbacks
+ */
+ state->record_init = record_init;
+ state->record_close = record_close;
+ state->record_plus = record_plus;
+ state->record_minus = record_minus;
+
+ /*
* Create & hook the BIOs to handle the dirty side of the
* SSL. This is *very important* as we want to handle
* the transmission part. Now the only IO interface
*
* Copyright 2003 Alan DeKok <aland@freeradius.org>
*/
-#include "eap_tls.h"
+#include "rlm_eap_tls.h"
#include "eap_ttls.h"
/*
}
#endif
- record_plus(&tls_session->clean_in, buffer, total);
+ (tls_session->record_plus)(&tls_session->clean_in, buffer, total);
/*
* FIXME: Check the return code.
*/
tls_handshake_send(tls_session);
- record_init(&tls_session->clean_in);
+ (tls_session->record_init)(&tls_session->clean_in);
}
/*
*
* I *really* don't like these 'record_t' things...
*/
- data_len = record_minus(&tls_session->dirty_in, buffer, sizeof(buffer));
+ data_len = (tls_session->record_minus)(&tls_session->dirty_in, buffer, sizeof(buffer));
data = buffer;
/*
* go there, too...
*/
BIO_write(tls_session->into_ssl, buffer, data_len);
- record_init(&tls_session->clean_out);
+ (tls_session->record_init)(&tls_session->clean_out);
/*
* Read (and decrypt) the tunneled data from the SSL session,