• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/openvpn-2.3.1/src/openvpn/

Lines Matching defs:mi

111   struct multi_instance *mi = NULL;
114 mi = multi_create_instance (m, NULL);
115 if (mi)
118 const uint32_t hv = hash_value (hash, &mi->real);
121 he = hash_lookup_fast (hash, bucket, &mi->real, hv);
129 he->key = &mi->real;
130 he->value = mi;
133 hash_add_fast (hash, bucket, &mi->real, hv, mi);
135 mi->did_real_hash = true;
139 if (mi)
140 dmsg (D_MULTI_DEBUG, "MULTI TCP: instance added: %s", mroute_addr_print (&mi->real, &gc));
146 ASSERT (!(mi && mi->halt));
147 return mi;
151 multi_tcp_instance_specific_init (struct multi_context *m, struct multi_instance *mi)
154 mi->tcp_link_out_deferred = mbuf_init (m->top.options.n_bcast_buf);
156 ASSERT (mi->context.c2.link_socket);
157 ASSERT (mi->context.c2.link_socket->info.lsa);
158 ASSERT (mi->context.c2.link_socket->mode == LS_MODE_TCP_ACCEPT_FROM);
159 ASSERT (mi->context.c2.link_socket->info.lsa->actual.dest.addr.sa.sa_family == AF_INET
160 || mi->context.c2.link_socket->info.lsa->actual.dest.addr.sa.sa_family == AF_INET6
162 if (!mroute_extract_openvpn_sockaddr (&mi->real, &mi->context.c2.link_socket->info.lsa->actual.dest, true))
171 multi_tcp_instance_specific_free (struct multi_instance *mi)
173 mbuf_free (mi->tcp_link_out_deferred);
215 multi_tcp_dereference_instance (struct multi_tcp *mtcp, struct multi_instance *mi)
217 struct link_socket *ls = mi->context.c2.link_socket;
218 if (ls && mi->socket_set_called)
224 multi_tcp_set_global_rw_flags (struct multi_context *m, struct multi_instance *mi)
226 if (mi)
228 mi->socket_set_called = true;
229 socket_set (mi->context.c2.link_socket,
231 mbuf_defined (mi->tcp_link_out_deferred) ? EVENT_WRITE : EVENT_READ,
232 mi,
233 &mi->tcp_rwflags);
257 multi_tcp_context (struct multi_context *m, struct multi_instance *mi)
259 if (mi)
260 return &mi->context;
266 multi_tcp_process_outgoing_link_ready (struct multi_context *m, struct multi_instance *mi, const unsigned int mpp_flags)
270 ASSERT (mi);
273 if (mbuf_extract_item (mi->tcp_link_out_deferred, &item)) /* ciphertext IP packet */
277 ASSERT (mi == item.instance);
278 mi->context.c2.to_link = item.buffer->buf;
279 ret = multi_process_outgoing_link_dowork (m, mi, mpp_flags);
281 mi = NULL;
290 struct multi_instance *mi = multi_process_outgoing_link_pre (m);
293 if (mi)
295 if (defer || mbuf_defined (mi->tcp_link_out_deferred))
298 struct buffer *buf = &mi->context.c2.to_link;
304 set_prefix (mi);
307 item.instance = mi;
308 mbuf_add_item (mi->tcp_link_out_deferred, &item);
311 ret = multi_process_post (m, mi, mpp_flags);
313 mi = NULL;
319 ret = multi_process_outgoing_link_dowork (m, mi, mpp_flags);
321 mi = NULL;
328 multi_tcp_wait_lite (struct multi_context *m, struct multi_instance *mi, const int action, bool *tun_input_pending)
330 struct context *c = multi_tcp_context (m, mi);
333 dmsg (D_MULTI_DEBUG, "MULTI TCP: multi_tcp_wait_lite a=%s mi=" ptr_format,
335 (ptr_type)mi);
392 multi_tcp_dispatch (struct multi_context *m, struct multi_instance *mi, const int action)
395 struct multi_instance *touched = mi;
398 dmsg (D_MULTI_DEBUG, "MULTI TCP: multi_tcp_dispatch a=%s mi=" ptr_format,
400 (ptr_type)mi);
411 ASSERT (mi);
412 ASSERT (mi->context.c2.link_socket);
413 set_prefix (mi);
414 read_incoming_link (&mi->context);
416 if (!IS_SIG (&mi->context))
418 multi_process_incoming_link (m, mi, mpp_flags);
419 if (!IS_SIG (&mi->context))
420 stream_buf_read_setup (mi->context.c2.link_socket);
433 ASSERT (mi);
434 multi_tcp_process_outgoing_link_ready (m, mi, mpp_flags);
443 ASSERT (mi);
444 multi_tcp_set_global_rw_flags (m, mi);
445 multi_process_post (m, mi, mpp_flags);
456 multi_tcp_post (struct multi_context *m, struct multi_instance *mi, const int action)
458 struct context *c = multi_tcp_context (m, mi);
481 if (mi && socket_read_residual (c->c2.link_socket))
484 multi_tcp_set_global_rw_flags (m, mi);
489 msg (M_FATAL, "MULTI TCP: multi_tcp_post bad state, mi=%s flags=%d",
490 multi_instance_string (mi, false, &gc),
505 multi_tcp_action (struct multi_context *m, struct multi_instance *mi, int action, bool poll)
528 action = multi_tcp_wait_lite (m, mi, action, &tun_input_pending);
537 struct multi_instance *touched = multi_tcp_dispatch (m, mi, action);
545 if (mi == touched)
546 mi = NULL;
557 mi = m->pending;
564 action = multi_tcp_post (m, mi, action);
574 mi = NULL;
597 struct multi_instance *mi = (struct multi_instance *) e->arg;
598 if (mi)
601 multi_tcp_action (m, mi, TA_SOCKET_WRITE_READY, false);
603 multi_tcp_action (m, mi, TA_SOCKET_READ, false);
627 struct multi_instance *mi;
630 mi = multi_create_instance_tcp (m);
631 if (mi)
632 multi_tcp_action (m, mi, TA_INITIAL, false);
649 struct multi_instance *mi;
650 while (!IS_SIG (&m->top) && (mi = mbuf_peek (m->mbuf)) != NULL)
652 multi_tcp_action (m, mi, TA_SOCKET_WRITE, true);