• 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

51 id (struct multi_instance *mi)
53 if (mi)
54 return tls_common_name (mi->context.c2.tls_multi, false);
62 set_cc_config (struct multi_instance *mi, struct buffer_list *cc_config)
64 if (mi->cc_config)
65 buffer_list_free (mi->cc_config);
66 mi->cc_config = cc_config;
81 const struct multi_instance *mi,
91 if (mi && mi->context.c2.es)
92 es = mi->context.c2.es;
97 if (mi)
98 plugins = mi->context.plugins;
108 if (mi)
109 argv_printf_cat (&argv, "%s", tls_common_name (mi->context.c2.tls_multi, false));
126 if (mi)
127 argv_printf_cat (&argv, "%s", tls_common_name (mi->context.c2.tls_multi, false));
398 multi_instance_string (const struct multi_instance *mi, bool null, struct gc_arena *gc)
400 if (mi)
403 const char *cn = tls_common_name (mi->context.c2.tls_multi, true);
407 buf_printf (&out, "%s", mroute_addr_print (&mi->real, gc));
417 generate_prefix (struct multi_instance *mi)
419 mi->msg_prefix = multi_instance_string (mi, true, &mi->gc);
420 set_prefix (mi);
424 ungenerate_prefix (struct multi_instance *mi)
426 mi->msg_prefix = NULL;
427 set_prefix (mi);
431 mi_prefix (const struct multi_instance *mi)
433 if (mi && mi->msg_prefix)
434 return mi->msg_prefix;
446 struct multi_instance *mi)
450 if (TUNNEL_TYPE (mi->context.c1.tuntap) == DEV_TYPE_TUN)
452 for (ir = mi->context.options.iroutes; ir != NULL; ir = ir->next)
455 for ( ir6 = mi->context.options.iroutes_ipv6; ir6 != NULL; ir6 = ir6->next )
469 struct multi_instance *mi)
472 setenv_trusted (mi->context.c2.es, get_link_socket_info (&mi->context));
475 setenv_stats (&mi->context);
479 const unsigned int duration = (unsigned int) now - mi->created;
480 setenv_unsigned (mi->context.c2.es, "time_duration", duration);
486 struct multi_instance *mi)
488 if ((mi->context.c2.context_auth == CAS_SUCCEEDED && mi->connection_established_flag)
489 || mi->context.c2.context_auth == CAS_PARTIAL)
491 multi_client_disconnect_setenv (m, mi);
493 if (plugin_defined (mi->context.plugins, OPENVPN_PLUGIN_CLIENT_DISCONNECT))
495 if (plugin_call (mi->context.plugins, OPENVPN_PLUGIN_CLIENT_DISCONNECT, NULL, NULL, mi->context.c2.es) != OPENVPN_PLUGIN_FUNC_SUCCESS)
499 if (mi->context.options.client_disconnect_script)
502 setenv_str (mi->context.c2.es, "script_type", "client-disconnect");
503 argv_printf (&argv, "%sc", mi->context.options.client_disconnect_script);
504 openvpn_run_script (&argv, mi->context.c2.es, 0, "--client-disconnect");
509 management_notify_client_close (management, &mi->context.c2.mda_context, mi->context.c2.es);
517 struct multi_instance *mi,
522 ASSERT (!mi->halt);
523 mi->halt = true;
528 m->n_clients += mi->n_clients_delta;
530 mi->n_clients_delta = 0;
533 if (m->pending == mi)
535 if (m->earliest_wakeup == mi)
540 if (mi->did_real_hash)
542 ASSERT (hash_remove (m->hash, &mi->real));
544 if (mi->did_iter)
546 ASSERT (hash_remove (m->iter, &mi->real));
549 if (mi->did_cid_hash)
551 ASSERT (hash_remove (m->cid_hash, &mi->context.c2.mda_context.cid));
555 schedule_remove_entry (m->schedule, (struct schedule_entry *) mi);
557 ifconfig_pool_release (m->ifconfig_pool, mi->vaddr_handle, false);
559 if (mi->did_iroutes)
561 multi_del_iroutes (m, mi);
562 mi->did_iroutes = false;
566 multi_tcp_dereference_instance (m->mtcp, mi);
568 mbuf_dereference_instance (m->mbuf, mi);
572 set_cc_config (mi, NULL);
575 multi_client_disconnect_script (m, mi);
577 if (mi->did_open_context)
578 close_context (&mi->context, SIGTERM, CC_GC_FREE);
580 multi_tcp_instance_specific_free (mi);
582 ungenerate_prefix (mi);
589 multi_instance_dec_refcount (mi);
615 struct multi_instance *mi = (struct multi_instance *) he->value;
616 mi->did_iter = false;
617 multi_close_instance (m, mi, true);
650 struct multi_instance *mi;
656 ALLOC_OBJ_CLEAR (mi, struct multi_instance);
658 mi->gc = gc_new ();
659 multi_instance_inc_refcount (mi);
660 mi->vaddr_handle = -1;
661 mi->created = now;
662 mroute_addr_init (&mi->real);
666 mi->real = *real;
667 generate_prefix (mi);
670 mi->did_open_context = true;
671 inherit_context_child (&mi->context, &m->top);
672 if (IS_SIG (&mi->context))
675 mi->context.c2.context_auth = CAS_PENDING;
685 if (!multi_tcp_instance_specific_init (m, mi))
687 generate_prefix (mi);
690 if (!hash_add (m->iter, &mi->real, mi, false))
693 mroute_addr_print (&mi->real, &gc));
696 mi->did_iter = true;
700 mi->context.c2.mda_context.cid = m->cid_counter++;
701 } while (!hash_add (m->cid_hash, &mi->context.c2.mda_context.cid, mi, false));
702 mi->did_cid_hash = true;
705 mi->context.c2.push_reply_deferred = true;
707 if (!multi_process_post (m, mi, MPP_PRE_SELECT))
715 return mi;
718 multi_close_instance (m, mi, false);
752 const struct multi_instance *mi = (struct multi_instance *) he->value;
754 if (!mi->halt)
758 tls_common_name (mi->context.c2.tls_multi, false),
759 mroute_addr_print (&mi->real, &gc),
760 mi->context.c2.link_read_bytes,
761 mi->context.c2.link_write_bytes,
762 mi->reporting_addr,
763 mi->created,
764 time_string (mi->created, 0, false, &gc));
781 const struct multi_instance *mi = route->instance;
790 tls_common_name (mi->context.c2.tls_multi, false),
791 mroute_addr_print (&mi->real, &gc),
820 const struct multi_instance *mi = (struct multi_instance *) he->value;
822 if (!mi->halt)
825 sep, tls_common_name (mi->context.c2.tls_multi, false),
826 sep, mroute_addr_print (&mi->real, &gc),
827 sep, print_in_addr_t (mi->reporting_addr, IA_EMPTY_IF_UNDEF, &gc),
828 sep, mi->context.c2.link_read_bytes,
829 sep, mi->context.c2.link_write_bytes,
830 sep, time_string (mi->created, 0, false, &gc),
831 sep, (unsigned int)mi->created,
832 sep, tls_username (mi->context.c2.tls_multi, false));
848 const struct multi_instance *mi = route->instance;
856 sep, tls_common_name (mi->context.c2.tls_multi, false),
857 sep, mroute_addr_print (&mi->real, &gc),
883 const struct multi_instance *mi = (struct multi_instance *) he->value;
885 if (!mi->halt)
888 tls_common_name (mi->context.c2.tls_multi, false),
890 mi->context.c2.n_trunc_tun_write,
891 mi->context.c2.n_trunc_pre_encrypt,
892 mi->context.c2.n_trunc_post_decrypt);
909 * return value may be != mi.
915 struct multi_instance *mi,
933 if ((!owner || owner != mi)
943 newroute->instance = mi;
954 if (route_quota_test (m, mi) && learn_address_script (m, mi, "update", &newroute->addr))
957 owner = mi;
958 multi_instance_inc_refcount (mi);
959 route_quota_inc (mi);
971 if (route_quota_test (m, mi) && learn_address_script (m, mi, "add", &newroute->addr))
974 owner = mi;
975 multi_instance_inc_refcount (mi);
976 route_quota_inc (mi);
986 multi_instance_string (mi, false, &gc));
1017 struct multi_instance *mi = route->instance;
1019 ret = mi;
1041 struct multi_instance *mi = route->instance;
1042 multi_learn_addr (m, mi, addr, MULTI_ROUTE_CACHE|MULTI_ROUTE_AGEABLE);
1043 ret = mi;
1079 struct multi_instance *mi,
1099 struct multi_instance *owner = multi_learn_addr (m, mi, &addr, 0);
1102 management_learn_addr (management, &mi->context.c2.mda_context, &addr, primary);
1110 struct multi_instance *mi,
1130 struct multi_instance *owner = multi_learn_addr (m, mi, &addr, 0);
1133 management_learn_addr (management, &mi->context.c2.mda_context, &addr, primary);
1145 struct multi_instance *mi)
1150 if (TUNNEL_TYPE (mi->context.c1.tuntap) == DEV_TYPE_TUN)
1152 mi->did_iroutes = true;
1153 for (ir = mi->context.options.iroutes; ir != NULL; ir = ir->next)
1159 multi_instance_string (mi, false, &gc));
1163 multi_instance_string (mi, false, &gc));
1167 multi_learn_in_addr_t (m, mi, ir->network, ir->netbits, false);
1169 for ( ir6 = mi->context.options.iroutes_ipv6; ir6 != NULL; ir6 = ir6->next )
1175 multi_instance_string (mi, false, &gc));
1179 multi_instance_string (mi, false, &gc));
1183 multi_learn_in6_addr (m, mi, ir6->network, ir6->netbits, false);
1208 struct multi_instance *mi = (struct multi_instance *) he->value;
1209 if (mi != new_mi && !mi->halt)
1211 const char *cn = tls_common_name (mi->context.c2.tls_multi, true);
1214 mi->did_iter = false;
1215 multi_close_instance (m, mi, false);
1275 multi_select_virtual_addr (struct multi_context *m, struct multi_instance *mi)
1283 if (mi->context.options.push_ifconfig_defined)
1287 if (mi->vaddr_handle >= 0)
1289 ifconfig_pool_release (m->ifconfig_pool, mi->vaddr_handle, true);
1290 mi->vaddr_handle = -1;
1293 mi->context.c2.push_ifconfig_defined = true;
1294 mi->context.c2.push_ifconfig_local = mi->context.options.push_ifconfig_local;
1295 mi->context.c2.push_ifconfig_remote_netmask = mi->context.options.push_ifconfig_remote_netmask;
1297 mi->context.c2.push_ifconfig_local_alias = mi->context.options.push_ifconfig_local_alias;
1304 if ( mi->context.c1.tuntap->ipv6 &&
1305 mi->context.options.ifconfig_ipv6_pool_defined &&
1306 ! mi->context.options.push_ifconfig_ipv6_defined )
1311 else if (m->ifconfig_pool && mi->vaddr_handle < 0) /* otherwise, choose a pool address */
1317 if (!mi->context.options.duplicate_cn)
1318 cn = tls_common_name (mi->context.c2.tls_multi, true);
1321 mi->vaddr_handle = ifconfig_pool_acquire (m->ifconfig_pool, &local, &remote, &remote_ipv6, cn);
1322 if (mi->vaddr_handle >= 0)
1324 const int tunnel_type = TUNNEL_TYPE (mi->context.c1.tuntap);
1325 const int tunnel_topology = TUNNEL_TOPOLOGY (mi->context.c1.tuntap);
1329 (mi->context.options.ifconfig_ipv6_pool_defined
1334 mi->context.c2.push_ifconfig_local = remote;
1337 mi->context.c2.push_ifconfig_remote_netmask = mi->context.options.ifconfig_pool_netmask;
1338 if (!mi->context.c2.push_ifconfig_remote_netmask)
1339 mi->context.c2.push_ifconfig_remote_netmask = mi->context.c1.tuntap->remote_netmask;
1344 mi->context.c2.push_ifconfig_remote_netmask = mi->context.c1.tuntap->local;
1346 mi->context.c2.push_ifconfig_remote_netmask = local;
1349 if (mi->context.c2.push_ifconfig_remote_netmask)
1350 mi->context.c2.push_ifconfig_defined = true;
1353 multi_instance_string (mi, false, &gc));
1355 if ( mi->context.options.ifconfig_ipv6_pool_defined )
1357 mi->context.c2.push_ifconfig_ipv6_local = remote_ipv6;
1358 mi->context.c2.push_ifconfig_ipv6_remote =
1359 mi->context.c1.tuntap->local_ipv6;
1360 mi->context.c2.push_ifconfig_ipv6_netbits =
1361 mi->context.options.ifconfig_ipv6_pool_netbits;
1362 mi->context.c2.push_ifconfig_ipv6_defined = true;
1378 if ( mi->context.c1.tuntap->ipv6 &&
1379 mi->context.options.push_ifconfig_ipv6_defined )
1381 mi->context.c2.push_ifconfig_ipv6_local =
1382 mi->context.options.push_ifconfig_ipv6_local;
1383 mi->context.c2.push_ifconfig_ipv6_remote =
1384 mi->context.options.push_ifconfig_ipv6_remote;
1385 mi->context.c2.push_ifconfig_ipv6_netbits =
1386 mi->context.options.push_ifconfig_ipv6_netbits;
1387 mi->context.c2.push_ifconfig_ipv6_defined = true;
1390 print_in6_addr( mi->context.c2.push_ifconfig_ipv6_local, 0, &gc ),
1391 mi->context.c2.push_ifconfig_ipv6_netbits );
1401 multi_set_virtual_addr_env (struct multi_context *m, struct multi_instance *mi)
1403 setenv_del (mi->context.c2.es, "ifconfig_pool_local_ip");
1404 setenv_del (mi->context.c2.es, "ifconfig_pool_remote_ip");
1405 setenv_del (mi->context.c2.es, "ifconfig_pool_netmask");
1407 if (mi->context.c2.push_ifconfig_defined)
1409 const int tunnel_type = TUNNEL_TYPE (mi->context.c1.tuntap);
1410 const int tunnel_topology = TUNNEL_TOPOLOGY (mi->context.c1.tuntap);
1412 setenv_in_addr_t (mi->context.c2.es,
1414 mi->context.c2.push_ifconfig_local,
1419 setenv_in_addr_t (mi->context.c2.es,
1421 mi->context.c2.push_ifconfig_remote_netmask,
1426 setenv_in_addr_t (mi->context.c2.es,
1428 mi->context.c2.push_ifconfig_remote_netmask,
1444 struct multi_instance *mi,
1452 options_server_import (&mi->context.options,
1457 mi->context.c2.es);
1469 multi_select_virtual_addr (m, mi);
1470 multi_set_virtual_addr_env (m, mi);
1481 struct multi_instance *mi,
1497 options_string_import (&mi->context.options,
1502 mi->context.c2.es);
1511 multi_select_virtual_addr (m, mi);
1512 multi_set_virtual_addr_env (m, mi);
1525 struct multi_instance *mi,
1537 options_string_import (&mi->context.options,
1542 mi->context.c2.es);
1551 multi_select_virtual_addr (m, mi);
1552 multi_set_virtual_addr_env (m, mi);
1560 struct multi_instance *mi)
1565 setenv_str (mi->context.c2.es, "common_name", tls_common_name (mi->context.c2.tls_multi, true));
1568 setenv_trusted (mi->context.c2.es, get_link_socket_info (&mi->context));
1571 multi_set_virtual_addr_env (m, mi);
1575 const char *created_ascii = time_string (mi->created, 0, false, &gc);
1576 setenv_str (mi->context.c2.es, "time_ascii", created_ascii);
1577 setenv_unsigned (mi->context.c2.es, "time_unix", (unsigned int)mi->created);
1593 multi_connection_established (struct multi_context *m, struct multi_instance *mi)
1595 if (tls_authentication_status (mi->context.c2.tls_multi, 0) == TLS_AUTHENTICATION_SUCCEEDED)
1613 ASSERT (mi->context.c1.tuntap);
1616 tls_lock_common_name (mi->context.c2.tls_multi);
1617 tls_lock_cert_hash_set (mi->context.c2.tls_multi);
1620 generate_prefix (mi);
1623 if (!mi->context.options.duplicate_cn)
1624 multi_delete_dup (m, mi);
1627 mi->vaddr_handle = -1;
1633 if (mi->context.options.client_config_dir)
1637 ccd_file = gen_path (mi->context.options.client_config_dir,
1638 tls_common_name (mi->context.c2.tls_multi, false),
1644 options_server_import (&mi->context.options,
1649 mi->context.c2.es);
1653 ccd_file = gen_path (mi->context.options.client_config_dir,
1659 options_server_import (&mi->context.options,
1664 mi->context.c2.es);
1673 multi_select_virtual_addr (m, mi);
1676 multi_client_connect_setenv (m, mi);
1684 if (plugin_defined (mi->context.plugins, OPENVPN_PLUGIN_CLIENT_CONNECT))
1687 const char *dc_file = create_temp_file (mi->context.options.tmp_dir, "cc", &gc);
1695 if (plugin_call (mi->context.plugins, OPENVPN_PLUGIN_CLIENT_CONNECT, &argv, NULL, mi->context.c2.es) != OPENVPN_PLUGIN_FUNC_SUCCESS)
1702 multi_client_connect_post (m, mi, dc_file, option_permissions_mask, &option_types_found);
1710 if (plugin_defined (mi->context.plugins, OPENVPN_PLUGIN_CLIENT_CONNECT_V2))
1716 if (plugin_call (mi->context.plugins, OPENVPN_PLUGIN_CLIENT_CONNECT_V2, NULL, &pr, mi->context.c2.es) != OPENVPN_PLUGIN_FUNC_SUCCESS)
1723 multi_client_connect_post_plugin (m, mi, &pr, option_permissions_mask, &option_types_found);
1734 if (mi->context.options.client_connect_script && cc_succeeded)
1739 setenv_str (mi->context.c2.es, "script_type", "client-connect");
1741 dc_file = create_temp_file (mi->context.options.tmp_dir, "cc", &gc);
1748 mi->context.options.client_connect_script,
1751 if (openvpn_run_script (&argv, mi->context.c2.es, 0, "--client-connect"))
1753 multi_client_connect_post (m, mi, dc_file, option_permissions_mask, &option_types_found);
1766 if (cc_succeeded && mi->cc_config)
1768 multi_client_connect_mda (m, mi, mi->cc_config, option_permissions_mask, &option_types_found);
1777 if (mi->context.options.disable)
1788 do_deferred_options (&mi->context, option_types_found);
1793 if (!mi->context.c2.push_ifconfig_defined)
1796 multi_instance_string (mi, false, &gc));
1802 if (!ifconfig_push_constraint_satisfied (&mi->context))
1806 multi_instance_string (mi, false, &gc),
1807 print_in_addr_t (mi->context.c2.push_ifconfig_local, 0, &gc),
1808 print_in_addr_t (mi->context.options.push_ifconfig_constraint_network, 0, &gc),
1809 print_in_addr_t (mi->context.options.push_ifconfig_constraint_netmask, 0, &gc));
1816 if (TUNNEL_TYPE (mi->context.c1.tuntap) == DEV_TYPE_TUN)
1818 if (mi->context.c2.push_ifconfig_defined)
1820 multi_learn_in_addr_t (m, mi, mi->context.c2.push_ifconfig_local, -1, true);
1822 multi_instance_string (mi, false, &gc),
1823 print_in_addr_t (mi->context.c2.push_ifconfig_local, 0, &gc));
1826 if (mi->context.c2.push_ifconfig_ipv6_defined)
1828 multi_learn_in6_addr (m, mi, mi->context.c2.push_ifconfig_ipv6_local, -1, true);
1831 multi_instance_string (mi, false, &gc),
1832 print_in6_addr (mi->context.c2.push_ifconfig_ipv6_local, 0, &gc));
1837 multi_add_iroutes (m, mi);
1844 remove_iroutes_from_push_route_list (&mi->context.options);
1846 else if (mi->context.options.iroutes)
1849 multi_instance_string (mi, false, &gc));
1853 mi->reporting_addr = mi->context.c2.push_ifconfig_local;
1856 mi->context.c2.context_auth = CAS_SUCCEEDED;
1861 mi->context.c2.context_auth = cc_succeeded_count ? CAS_PARTIAL : CAS_FAILED;
1865 mi->connection_established_flag = true;
1870 --mi->n_clients_delta;
1874 management_connection_established (management, &mi->context.c2.mda_context, mi->context.c2.es);
1883 mi->context.c2.push_reply_deferred = false;
1892 struct multi_instance *mi,
1895 if (multi_output_queue_ready (m, mi))
1899 item.instance = mi;
1914 struct multi_instance *mi)
1922 multi_add_mbuf (m, mi, mb);
1938 struct multi_instance *mi;
1952 mi = (struct multi_instance *) he->value;
1953 if (mi != sender_instance && !mi->halt)
1958 if (!pf_c2c_test (&sender_instance->context, &mi->context, "bcast_c2c"))
1962 mi_prefix (mi));
1968 if (!pf_addr_test (&mi->context, sender_addr, "bcast_src_addr"))
1973 mi_prefix (mi));
1979 multi_add_mbuf (m, mi, mb);
2019 multi_schedule_context_wakeup (struct multi_context *m, struct multi_instance *mi)
2022 ASSERT (!openvpn_gettimeofday (&mi->wakeup, NULL));
2023 tv_add (&mi->wakeup, &mi->context.c2.timeval);
2027 (struct schedule_entry *) mi,
2028 &mi->wakeup,
2029 compute_wakeup_sigma (&mi->context.c2.timeval));
2034 * earliest to absolute time in mi->wakeup,
2040 multi_process_post (struct multi_context *m, struct multi_instance *mi, const unsigned int flags)
2044 if (!IS_SIG (&mi->context) && ((flags & MPP_PRE_SELECT) || ((flags & MPP_CONDITIONAL_PRE_SELECT) && !ANY_OUT (&mi->context))))
2048 pre_select (&mi->context);
2050 if (!IS_SIG (&mi->context))
2053 multi_schedule_context_wakeup(m, mi);
2057 if (!mi->connection_established_flag && CONNECTION_ESTABLISHED (&mi->context))
2058 multi_connection_established (m, mi);
2062 if (IS_SIG (&mi->context))
2066 multi_close_instance_on_signal (m, mi);
2073 multi_set_pending (m, ANY_OUT (&mi->context) ? mi : NULL);
2077 id(mi),
2078 (int) (mi == m->pending),
2079 mi ? mi->context.c2.to_tun.len : -1,
2080 mi ? mi->context.c2.to_link.len : -1,
2081 (mi && mi->context.c2.fragment) ? mi->context.c2.fragment->outgoing.len : -1,
2082 (int)mi->context.c2.timeval.tv_sec,
2083 (int)mi->context.c2.timeval.tv_usec);
2088 *m->mpp_touched = mi;
2122 struct multi_instance *mi;
2198 mi = multi_get_instance_by_virtual_addr (m, &dest, true);
2201 if (mi)
2204 if (!pf_c2c_test (c, &mi->context, "tun_c2c"))
2207 mi_prefix (mi));
2212 multi_unicast (m, &c->c2.to_tun, mi);
2259 mi = multi_get_instance_by_virtual_addr (m, &dest, false);
2262 if (mi)
2265 if (!pf_c2c_test (c, &mi->context, "tap_c2c"))
2268 mi_prefix (mi));
2273 multi_unicast (m, &c->c2.to_tun, mi);
2496 struct multi_instance *mi = m->pending;
2498 ASSERT (mi);
2500 set_prefix (mi);
2503 mi->context.c2.to_tun.len);
2505 buf_reset (&mi->context.c2.to_tun);
2507 multi_process_post (m, mi, mpp_flags);
2516 route_quota_exceeded (const struct multi_context *m, const struct multi_instance *mi)
2520 mi->context.options.max_routes_per_client,
2521 multi_instance_string (mi, false, &gc));
2636 multi_close_instance_on_signal (struct multi_context *m, struct multi_instance *mi)
2638 remap_signal (&mi->context);
2639 set_prefix (mi);
2640 print_signal (mi->context.sig, "client-instance", D_MULTI_LOW);
2642 multi_close_instance (m, mi, false);
2646 multi_signal_instance (struct multi_context *m, struct multi_instance *mi, const int sig)
2648 mi->context.sig->signal_received = sig;
2649 multi_close_instance_on_signal (m, mi);
2687 struct multi_instance *mi = (struct multi_instance *) he->value;
2688 if (!mi->halt)
2690 const char *cn = tls_common_name (mi->context.c2.tls_multi, false);
2693 multi_signal_instance (m, mi, SIGTERM);
2721 struct multi_instance *mi = (struct multi_instance *) he->value;
2722 if (!mi->halt && mroute_addr_equal (&maddr, &mi->real))
2724 multi_signal_instance (m, mi, SIGTERM);
2750 struct multi_instance *mi = (struct multi_instance *) hash_lookup (m->cid_hash, &cid);
2751 if (mi && !mi->halt)
2752 return mi;
2761 struct multi_instance *mi = lookup_by_cid (m, cid);
2762 if (mi)
2764 send_restart (&mi->context, kill_msg); /* was: multi_signal_instance (m, mi, SIGTERM); */
2765 multi_schedule_context_wakeup(m, mi);
2782 struct multi_instance *mi = lookup_by_cid (m, cid);
2786 if (mi)
2788 ret = tls_authenticate_key (mi->context.c2.tls_multi, mda_key_id, auth, client_reason);
2793 if (!mi->connection_established_flag)
2795 set_cc_config (mi, cc_config);
2803 if (mi->connection_established_flag)
2805 send_auth_failed (&mi->context, client_reason); /* mid-session reauth failed */
2806 multi_schedule_context_wakeup(m, mi);
2820 struct multi_instance *mi = lookup_by_cid (m, cid);
2823 if (mi)
2824 ret = tls_get_peer_info (mi->context.c2.tls_multi);
2838 struct multi_instance *mi = lookup_by_cid (m, cid);
2841 if (mi && pf_config)
2842 ret = pf_load_from_buffer_list (&mi->context, pf_config);