• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/wpa/src/eap_server/

Lines Matching refs:data

55 static void eap_wsc_state(struct eap_wsc_data *data, int state)
58 eap_wsc_state_txt(data->state),
60 data->state = state;
67 struct eap_wsc_data *data = timeout_ctx;
74 data->ext_reg_timeout = 1;
81 struct eap_wsc_data *data;
99 data = os_zalloc(sizeof(*data));
100 if (data == NULL)
102 data->state = registrar ? START : MESG;
103 data->registrar = registrar;
112 os_free(data);
142 data->wps = wps_init(&cfg);
143 if (data->wps == NULL) {
144 os_free(data);
147 data->fragment_size = sm->fragment_size > 0 ? sm->fragment_size :
150 return data;
156 struct eap_wsc_data *data = priv;
157 eloop_cancel_timeout(eap_wsc_ext_reg_timeout, sm, data);
158 wpabuf_free(data->in_buf);
159 wpabuf_free(data->out_buf);
160 wps_deinit(data->wps);
161 os_free(data);
166 struct eap_wsc_data *data, u8 id)
186 static struct wpabuf * eap_wsc_build_msg(struct eap_wsc_data *data, u8 id)
193 send_len = wpabuf_len(data->out_buf) - data->out_used;
194 if (2 + send_len > data->fragment_size) {
195 send_len = data->fragment_size - 2;
197 if (data->out_used == 0) {
213 wpabuf_put_u8(req, data->out_op_code); /* Op-Code */
216 wpabuf_put_be16(req, wpabuf_len(data->out_buf));
218 wpabuf_put_data(req, wpabuf_head_u8(data->out_buf) + data->out_used,
220 data->out_used += send_len;
222 if (data->out_used == wpabuf_len(data->out_buf)) {
226 wpabuf_free(data->out_buf);
227 data->out_buf = NULL;
228 data->out_used = 0;
229 eap_wsc_state(data, MESG);
233 (unsigned long) wpabuf_len(data->out_buf) -
234 data->out_used);
235 eap_wsc_state(data, WAIT_FRAG_ACK);
244 struct eap_wsc_data *data = priv;
246 switch (data->state) {
248 return eap_wsc_build_start(sm, data, id);
250 if (data->out_buf == NULL) {
251 data->out_buf = wps_get_msg(data->wps,
252 &data->out_op_code);
253 if (data->out_buf == NULL) {
258 data->out_used = 0;
262 return eap_wsc_build_msg(data, id);
267 "buildReq", data->state);
290 static int eap_wsc_process_cont(struct eap_wsc_data *data,
294 if (op_code != data->in_op_code) {
297 op_code, data->in_op_code);
298 eap_wsc_state(data, FAIL);
302 if (len > wpabuf_tailroom(data->in_buf)) {
304 eap_wsc_state(data, FAIL);
308 wpabuf_put_data(data->in_buf, buf, len);
311 (unsigned long) wpabuf_tailroom(data->in_buf));
317 static int eap_wsc_process_fragment(struct eap_wsc_data *data,
322 if (data->in_buf == NULL && !(flags & WSC_FLAGS_LF)) {
328 if (data->in_buf == NULL) {
330 data->in_buf = wpabuf_alloc(message_length);
331 if (data->in_buf == NULL) {
336 data->in_op_code = op_code;
337 wpabuf_put_data(data->in_buf, buf, len);
341 (unsigned long) wpabuf_tailroom(data->in_buf));
351 struct eap_wsc_data *data = priv;
359 eloop_cancel_timeout(eap_wsc_ext_reg_timeout, sm, data);
360 if (data->ext_reg_timeout) {
361 eap_wsc_state(data, FAIL);
394 if (data->state == WAIT_FRAG_ACK) {
398 eap_wsc_state(data, FAIL);
402 eap_wsc_state(data, MESG);
410 eap_wsc_state(data, FAIL);
414 if (data->in_buf &&
415 eap_wsc_process_cont(data, pos, end - pos, op_code) < 0) {
416 eap_wsc_state(data, FAIL);
421 if (eap_wsc_process_fragment(data, flags, op_code,
424 eap_wsc_state(data, FAIL);
426 eap_wsc_state(data, FRAG_ACK);
430 if (data->in_buf == NULL) {
433 data->in_buf = &tmpbuf;
436 res = wps_process_msg(data->wps, op_code, data->in_buf);
441 eap_wsc_state(data, FAIL);
444 eap_wsc_state(data, MESG);
448 eap_wsc_state(data, FAIL);
451 eap_wsc_state(data, MESG);
453 eloop_cancel_timeout(eap_wsc_ext_reg_timeout, sm, data);
455 sm, data);
459 if (data->in_buf != &tmpbuf)
460 wpabuf_free(data->in_buf);
461 data->in_buf = NULL;
467 struct eap_wsc_data *data = priv;
468 return data->state == FAIL;