Lines Matching defs:sg

112 i_attach_rule2sg(ilbd_sg_t *sg, ilbd_rule_t *irl)
114 /* assert: the same rule is attached to any sg only once */
115 list_insert_tail(&sg->isg_rulelist, irl);
120 i_ilbd_free_sg(ilbd_sg_t *sg)
124 if (sg == NULL)
126 list_remove(&ilbd_sg_hlist, sg);
127 while ((tmp_srv = list_remove_tail(&sg->isg_srvlist)) != NULL) {
128 i_ilbd_free_srvID(sg, tmp_srv->isv_id);
130 sg->isg_srvcount--;
132 free(sg);
138 ilbd_sg_t *sg;
140 /* find position of sg in list */
141 for (sg = list_head(&ilbd_sg_hlist); sg != NULL;
142 sg = list_next(&ilbd_sg_hlist, sg)) {
143 if (strncmp(sg->isg_name, name, sizeof (sg->isg_name)) == 0)
144 return (sg);
146 return (sg);
348 ilbd_create_sg(ilb_sg_info_t *sg, int ev_port, const struct passwd *ps,
356 audit_sg_data.ed_sgroup = sg->sg_name;
367 if (i_find_sg_byname(sg->sg_name) != NULL) {
369 sg->sg_name);
375 d_sg = i_ilbd_alloc_sg(sg->sg_name);
383 * we've successfully created the sg in memory. Before we can
510 i_ilbd_alloc_srvID(ilbd_sg_t *sg, int32_t *set_id)
517 assert(sg->isg_id_arr[*set_id] == 0);
518 sg->isg_id_arr[*set_id] = 1;
523 if (sg->isg_srvcount == MAX_SRVCOUNT)
526 i = sg->isg_max_id;
528 if (sg->isg_id_arr[(id + i) % MAX_SRVCOUNT] == 0)
532 sg->isg_max_id = (id + i) % MAX_SRVCOUNT;
533 sg->isg_id_arr[sg->isg_max_id] = 1;
534 return (sg->isg_max_id);
541 i_ilbd_free_srvID(ilbd_sg_t *sg, int32_t id)
543 assert(sg->isg_id_arr[id] == 1);
544 sg->isg_id_arr[id] = 0;
553 fill_audit_record(ilb_sg_info_t *sg, audit_sg_event_data_t *audit_sg_data,
559 for (i = 0; i < sg->sg_srvcount; i++) {
560 tsrv = &sg->sg_servers[i];
575 audit_sg_data->ed_sgroup = sg->sg_name;
578 audit_sg_data->ed_sgroup = sg->sg_name;
588 * the name(s) of the server(s) are encoded in the sg.
839 ilbd_sg_check_rule_port(ilbd_sg_t *sg, ilb_rule_info_t *rl)
844 /* Don't allow adding a rule to a sg with no server, for now... */
845 if (sg->isg_srvcount == 0)
851 for (srv = list_head(&sg->isg_srvlist); srv != NULL;
852 srv = list_next(&sg->isg_srvlist, srv)) {
935 i_delete_srv(ilbd_sg_t *sg, ilbd_srv_t *srv, int ev_port)
939 rc = i_rem_srv_frm_krules(&sg->isg_rulelist, &srv->isv_srv, ev_port);
942 list_remove(&sg->isg_srvlist, srv);
943 i_ilbd_free_srvID(sg, srv->isv_id);
945 sg->isg_srvcount--;
1051 ilbd_sg_t *sg;
1053 for (sg = list_head(&ilbd_sg_hlist);
1054 sg != NULL && tmp_rbufsz >= sizeof (ilbd_name_t);
1055 sg = list_next(&ilbd_sg_hlist, sg),
1058 sg->isg_name, sizeof (ilbd_name_t));
1193 ilbd_Xable_server(ilb_sg_info_t *sg, const struct passwd *ps,
1217 assert(sg->sg_srvcount == 1);
1219 srv = &sg->sg_servers[0];
1502 ilbd_disable_server(ilb_sg_info_t *sg, const struct passwd *ps,
1505 return (ilbd_Xable_server(sg, ps, stat_disable_server, ucredp));
1509 ilbd_enable_server(ilb_sg_info_t *sg, const struct passwd *ps,
1512 return (ilbd_Xable_server(sg, ps, stat_enable_server, ucredp));
1519 ilbd_address_to_srvID(ilb_sg_info_t *sg, uint32_t *rbuf, size_t *rbufsz)
1529 tmp_sg = i_find_sg_byname(sg->sg_name);
1532 tsrv->sgs_addr = sg->sg_servers[0].sgs_addr;
1548 ilbd_srvID_to_address(ilb_sg_info_t *sg, uint32_t *rbuf, size_t *rbufsz)
1557 tmp_sg = i_find_sg_byname(sg->sg_name);
1560 (void) strlcpy(tsrv->sgs_srvID, sg->sg_servers[0].sgs_srvID,