Lines Matching refs:inst

280 instance_stopped(const instance_t *inst)  in instance_stopped()  argument
282 return ((inst->cur_istate == IIS_OFFLINE) || in instance_stopped()
283 (inst->cur_istate == IIS_MAINTENANCE) || in instance_stopped()
284 (inst->cur_istate == IIS_DISABLED) || in instance_stopped()
285 (inst->cur_istate == IIS_UNINITIALIZED)); in instance_stopped()
338 update_instance_states(instance_t *inst, internal_inst_state_t new_cur_state, in update_instance_states() argument
341 internal_inst_state_t old_cur = inst->cur_istate; in update_instance_states()
342 internal_inst_state_t old_next = inst->next_istate; in update_instance_states()
349 inst->cur_istate = new_cur_state; in update_instance_states()
350 inst->next_istate = new_next_state; in update_instance_states()
351 (void) set_single_rep_val(inst->cur_istate_rep, in update_instance_states()
353 (void) set_single_rep_val(inst->next_istate_rep, in update_instance_states()
356 if (((sret = store_rep_vals(inst->cur_istate_rep, inst->fmri, in update_instance_states()
358 ((sret = store_rep_vals(inst->next_istate_rep, inst->fmri, in update_instance_states()
361 "repository: %s"), inst->fmri, scf_strerror(sret)); in update_instance_states()
363 if (fmri_to_instance(inst->fmri, &scf_inst) == 0) { in update_instance_states()
384 inst->fmri); in update_instance_states()
389 inst->fmri); in update_instance_states()
397 if ((ret = restarter_set_states(rst_event_handle, inst->fmri, in update_instance_states()
402 "repository: %s"), inst->fmri, strerror(ret)); in update_instance_states()
406 update_state(instance_t *inst, internal_inst_state_t new_cur, in update_state() argument
409 update_instance_states(inst, new_cur, IIS_NONE, err); in update_state()
666 process_offline_inst(instance_t *inst) in process_offline_inst() argument
668 if (inst->disable_req) { in process_offline_inst()
669 inst->disable_req = B_FALSE; in process_offline_inst()
670 (void) run_method(inst, IM_DISABLE, NULL); in process_offline_inst()
671 } else if (inst->maintenance_req) { in process_offline_inst()
672 inst->maintenance_req = B_FALSE; in process_offline_inst()
673 update_state(inst, IIS_MAINTENANCE, RERR_RESTART); in process_offline_inst()
679 if (inst->conn_rate_exceeded) { in process_offline_inst()
680 basic_cfg_t *cfg = inst->config->basic; in process_offline_inst()
682 inst->conn_rate_exceeded = B_FALSE; in process_offline_inst()
683 update_state(inst, IIS_OFFLINE_CONRATE, RERR_RESTART); in process_offline_inst()
688 inst->timer_id = iu_schedule_timer(timer_queue, in process_offline_inst()
690 inst); in process_offline_inst()
691 if (inst->timer_id == -1) { in process_offline_inst()
694 "seconds."), inst->fmri, in process_offline_inst()
698 } else if (copies_limit_exceeded(inst)) { in process_offline_inst()
699 update_state(inst, IIS_OFFLINE_COPIES, RERR_RESTART); in process_offline_inst()
709 create_bound_socket(const instance_t *inst, socket_info_t *sock_info) in create_bound_socket() argument
713 const char *fmri = inst->fmri; in create_bound_socket()
732 if (inst->config->basic->do_tcp_keepalive && in create_bound_socket()
733 !inst->config->basic->iswait && !inst->config->basic->istlx) { in create_bound_socket()
788 int qlen = inst->config->basic->conn_backlog; in create_bound_socket()
1220 expand_address(instance_t *inst, const proto_info_t *pi) in expand_address() argument
1224 instance_cfg_t *cfg = inst->config; in expand_address()
1248 (inst->remote_addr.ss_family == AF_INET)) { in expand_address()
1251 sp = (struct sockaddr_in *)&(inst->remote_addr); in expand_address()
1308 remove_method_ids(instance_t *inst, pid_t pid, ctid_t cid, in remove_method_ids() argument
1312 (void) add_remove_contract(inst, B_FALSE, cid); in remove_method_ids()
1315 remove_rep_val(inst->start_pids, (int64_t)pid); in remove_method_ids()
1316 (void) store_rep_vals(inst->start_pids, inst->fmri, in remove_method_ids()
1319 remove_rep_val(inst->non_start_pid, (int64_t)pid); in remove_method_ids()
1320 (void) store_rep_vals(inst->non_start_pid, inst->fmri, in remove_method_ids()
1376 destroy_instance(instance_t *inst) in destroy_instance() argument
1378 if (inst == NULL) in destroy_instance()
1381 destroy_instance_cfg(inst->config); in destroy_instance()
1382 destroy_instance_cfg(inst->new_config); in destroy_instance()
1384 destroy_rep_val_list(inst->cur_istate_rep); in destroy_instance()
1385 destroy_rep_val_list(inst->next_istate_rep); in destroy_instance()
1387 destroy_rep_val_list(inst->start_pids); in destroy_instance()
1388 destroy_rep_val_list(inst->non_start_pid); in destroy_instance()
1389 destroy_rep_val_list(inst->start_ctids); in destroy_instance()
1391 free(inst->fmri); in destroy_instance()
1393 free(inst); in destroy_instance()
1406 retrieve_instance_state(instance_t *inst) in retrieve_instance_state() argument
1411 if (((ret = retrieve_rep_vals(inst->cur_istate_rep, inst->fmri, in retrieve_instance_state()
1413 ((ret = retrieve_rep_vals(inst->next_istate_rep, inst->fmri, in retrieve_instance_state()
1418 inst->fmri, scf_strerror(scf_error())); in retrieve_instance_state()
1425 if ((set_single_rep_val(inst->cur_istate_rep, in retrieve_instance_state()
1427 (set_single_rep_val(inst->next_istate_rep, in retrieve_instance_state()
1434 inst->cur_istate = get_single_rep_val(inst->cur_istate_rep); in retrieve_instance_state()
1435 inst->next_istate = get_single_rep_val(inst->next_istate_rep); in retrieve_instance_state()
1444 retrieve_method_pids(instance_t *inst) in retrieve_method_pids() argument
1448 switch (retrieve_rep_vals(inst->start_pids, inst->fmri, in retrieve_method_pids()
1456 "instance %s from repository: %s"), inst->fmri, in retrieve_method_pids()
1461 rv = uu_list_first(inst->start_pids); in retrieve_method_pids()
1463 if (register_method(inst, (pid_t)rv->val, (ctid_t)-1, in retrieve_method_pids()
1465 inst->copies++; in retrieve_method_pids()
1466 rv = uu_list_next(inst->start_pids, rv); in retrieve_method_pids()
1474 rv = uu_list_next(inst->start_pids, rv); in retrieve_method_pids()
1475 remove_rep_val(inst->start_pids, pid); in retrieve_method_pids()
1479 inst->fmri); in retrieve_method_pids()
1480 rv = uu_list_next(inst->start_pids, rv); in retrieve_method_pids()
1485 (void) store_rep_vals(inst->start_pids, inst->fmri, PR_NAME_START_PIDS); in retrieve_method_pids()
1524 refresh_instance(instance_t *inst) in refresh_instance() argument
1528 switch (inst->cur_istate) { in refresh_instance()
1542 destroy_instance_cfg(inst->config); in refresh_instance()
1543 if ((inst->config = read_instance_cfg(inst->fmri)) == NULL) { in refresh_instance()
1544 log_invalid_cfg(inst->fmri); in refresh_instance()
1545 if (inst->cur_istate == IIS_OFFLINE_BIND) { in refresh_instance()
1546 cancel_bind_timer(inst); in refresh_instance()
1547 } else if (inst->cur_istate == IIS_OFFLINE_CONRATE) { in refresh_instance()
1548 cancel_inst_timer(inst); in refresh_instance()
1550 update_state(inst, IIS_MAINTENANCE, RERR_FAULT); in refresh_instance()
1552 switch (inst->cur_istate) { in refresh_instance()
1554 if (copies_limit_exceeded(inst)) { in refresh_instance()
1556 cancel_bind_timer(inst); in refresh_instance()
1563 update_state(inst, IIS_OFFLINE, in refresh_instance()
1565 process_offline_inst(inst); in refresh_instance()
1570 process_offline_inst(inst); in refresh_instance()
1588 if (!copies_limit_exceeded(inst)) { in refresh_instance()
1589 update_state(inst, IIS_OFFLINE, in refresh_instance()
1591 process_offline_inst(inst); in refresh_instance()
1603 if ((cfg = read_instance_cfg(inst->fmri)) != NULL) { in refresh_instance()
1604 instance_cfg_t *ocfg = inst->config; in refresh_instance()
1632 destroy_bound_fds(inst); in refresh_instance()
1634 assert(inst->new_config == NULL); in refresh_instance()
1635 inst->new_config = cfg; in refresh_instance()
1637 (void) run_method(inst, IM_OFFLINE, NULL); in refresh_instance()
1650 inst->config = cfg; in refresh_instance()
1653 if (copies_limit_exceeded(inst)) { in refresh_instance()
1654 destroy_bound_fds(inst); in refresh_instance()
1655 (void) run_method(inst, IM_OFFLINE, in refresh_instance()
1667 (void) run_method(inst, IM_REFRESH, in refresh_instance()
1672 log_invalid_cfg(inst->fmri); in refresh_instance()
1674 destroy_bound_fds(inst); in refresh_instance()
1676 inst->maintenance_req = B_TRUE; in refresh_instance()
1677 (void) run_method(inst, IM_OFFLINE, NULL); in refresh_instance()
1683 "refresh_instance", inst->cur_istate); in refresh_instance()
2174 process_start_term(instance_t *inst, char *proto_name) in process_start_term() argument
2178 inst->copies--; in process_start_term()
2180 if ((inst->cur_istate == IIS_MAINTENANCE) || in process_start_term()
2181 (inst->cur_istate == IIS_DISABLED)) { in process_start_term()
2186 cfg = inst->config->basic; in process_start_term()
2192 switch (inst->cur_istate) { in process_start_term()
2219 if (poll_bound_fds(inst, B_TRUE, proto_name) != in process_start_term()
2221 handle_bind_failure(inst); in process_start_term()
2223 update_state(inst, IIS_OFFLINE, RERR_RESTART); in process_start_term()
2224 create_bound_fds(inst); in process_start_term()
2232 if ((inst->cur_istate == IIS_OFFLINE_COPIES) && in process_start_term()
2233 !copies_limit_exceeded(inst)) { in process_start_term()
2234 update_state(inst, IIS_OFFLINE, RERR_NONE); in process_start_term()
2235 process_offline_inst(inst); in process_start_term()
2245 process_pending_rst_event(instance_t *inst) in process_pending_rst_event() argument
2247 if (inst->pending_rst_event != RESTARTER_EVENT_TYPE_INVALID) { in process_pending_rst_event()
2251 inst->pending_rst_event, inst->fmri); in process_pending_rst_event()
2252 re = inst->pending_rst_event; in process_pending_rst_event()
2253 inst->pending_rst_event = RESTARTER_EVENT_TYPE_INVALID; in process_pending_rst_event()
2254 handle_restarter_event(inst, re, B_TRUE); in process_pending_rst_event()
2265 process_non_start_term(instance_t *inst, int status) in process_non_start_term() argument
2272 methods[states[inst->cur_istate].method_running].name, in process_non_start_term()
2273 inst->fmri); in process_non_start_term()
2275 if ((inst->cur_istate == IIS_IN_ONLINE_METHOD) || in process_non_start_term()
2276 (inst->cur_istate == IIS_IN_REFRESH_METHOD)) in process_non_start_term()
2277 destroy_bound_fds(inst); in process_non_start_term()
2279 update_state(inst, IIS_MAINTENANCE, RERR_FAULT); in process_non_start_term()
2281 inst->maintenance_req = B_FALSE; in process_non_start_term()
2282 inst->conn_rate_exceeded = B_FALSE; in process_non_start_term()
2284 if (inst->new_config != NULL) { in process_non_start_term()
2285 destroy_instance_cfg(inst->new_config); in process_non_start_term()
2286 inst->new_config = NULL; in process_non_start_term()
2290 process_pending_rst_event(inst); in process_non_start_term()
2305 methods[states[inst->cur_istate].method_running].name, in process_non_start_term()
2306 inst->fmri, status); in process_non_start_term()
2312 switch (inst->cur_istate) { in process_non_start_term()
2321 if (inst->bind_retries_exceeded) { in process_non_start_term()
2322 update_state(inst, IIS_DEGRADED, RERR_NONE); in process_non_start_term()
2327 update_state(inst, in process_non_start_term()
2328 methods[states[inst->cur_istate].method_running].dst_state, in process_non_start_term()
2332 if (inst->cur_istate == IIS_OFFLINE) { in process_non_start_term()
2333 if (inst->new_config != NULL) { in process_non_start_term()
2340 destroy_instance_cfg(inst->config); in process_non_start_term()
2341 inst->config = inst->new_config; in process_non_start_term()
2342 inst->new_config = NULL; in process_non_start_term()
2346 process_offline_inst(inst); in process_non_start_term()
2355 if (poll_bound_fds(inst, B_TRUE, NULL) != 0) in process_non_start_term()
2356 handle_bind_failure(inst); in process_non_start_term()
2364 if (!INST_IN_TRANSITION(inst)) { in process_non_start_term()
2366 if (!instance_stopped(inst)) { in process_non_start_term()
2371 handle_restarter_event(inst, in process_non_start_term()
2375 process_pending_rst_event(inst); in process_non_start_term()
2474 instance_t *inst; in inetd_refresh() local
2479 for (inst = uu_list_first(instance_list); inst != NULL; in inetd_refresh()
2480 inst = uu_list_next(instance_list, inst)) { in inetd_refresh()
2481 if (smf_refresh_instance(inst->fmri) < 0) { in inetd_refresh()
2483 inst->fmri, scf_strerror(scf_error())); in inetd_refresh()
2500 instance_t *inst; in inetd_stop() local
2520 for (inst = uu_list_first(instance_list); inst != NULL; in inetd_stop()
2521 inst = uu_list_next(instance_list, inst)) { in inetd_stop()
2522 if (!instance_stopped(inst) && !INST_IN_TRANSITION(inst)) in inetd_stop()
2523 handle_restarter_event(inst, in inetd_stop()
3618 instance_t *inst; in fini() local
3620 while ((inst = uu_list_teardown(instance_list, &cookie)) != in fini()
3622 destroy_instance(inst); in fini()