Lines Matching defs:inst

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