cli
cli ; \
ilbd_free_cli(ilbd_client_t *cli)
(void) close(cli->cli_sd);
if (cli->cli_cmd == ILBD_SHOW_NAT)
if (cli->cli_cmd == ILBD_SHOW_PERSIST)
if (cli->cli_saved_reply != NULL)
free(cli->cli_saved_reply);
if (cli->cli_peer_ucredp != NULL)
ucred_free(cli->cli_peer_ucredp);
free(cli->cli_pw_buf);
free(cli);
consume_common_struct(ilb_comm_t *ic, size_t ic_sz, ilbd_client_t *cli,
cli->cli_ev = ILBD_EVENT_REQ;
ps = &cli->cli_pw;
cli->cli_peer_ucredp);
rc = ilbd_destroy_sg(name, ps, cli->cli_peer_ucredp);
ev_port, ps, cli->cli_peer_ucredp);
ev_port, ps, cli->cli_peer_ucredp);
cli->cli_peer_ucredp);
cli->cli_peer_ucredp);
ps, cli->cli_peer_ucredp);
rc = ilbd_destroy_rule(name, ps, cli->cli_peer_ucredp);
rc = ilbd_enable_rule(name, ps, cli->cli_peer_ucredp);
rc = ilbd_disable_rule(name, ps, cli->cli_peer_ucredp);
cli->cli_peer_ucredp);
rc = ilbd_destroy_hc(name, ps, cli->cli_peer_ucredp);
rc = ilbd_show_nat(cli, ic, reply_buf, &rbufsz);
rc = ilbd_show_sticky(cli, ic, reply_buf, &rbufsz);
if ((ret = send(cli->cli_sd, reply_buf, rbufsz, 0)) != rbufsz) {
assert(cli->cli_saved_reply == NULL);
if ((cli->cli_saved_reply = malloc(rbufsz)) == NULL) {
bcopy(reply_buf, cli->cli_saved_reply, rbufsz);
cli->cli_saved_size = rbufsz;
ilbd_client_t *cli = NULL;
if ((cli = calloc(1, sizeof (ilbd_client_t))) == NULL) {
res = getpeerucred(new_sd, &cli->cli_peer_ucredp);
if ((uid = ucred_getruid(cli->cli_peer_ucredp)) == (uid_t)-1) {
cli->cli_pw_bufsz = (size_t)sysconf(_SC_GETPW_R_SIZE_MAX);
if ((cli->cli_pw_buf = malloc(cli->cli_pw_bufsz)) == NULL) {
if (getpwuid_r(uid, &cli->cli_pw, cli->cli_pw_buf,
cli->cli_pw_bufsz) == NULL) {
cli->cli_ev = ILBD_EVENT_REQ;
cli->cli_sd = new_sd;
cli->cli_cmd = ILBD_BAD_CMD;
cli->cli_saved_reply = NULL;
cli->cli_saved_size = 0;
cli) == -1) {
if (cli != NULL) {
if (cli->cli_peer_ucredp != NULL)
ucred_free(cli->cli_peer_ucredp);
free(cli->cli_pw_buf);
free(cli);
handle_req(int ev_port, ilbd_event_t event, ilbd_client_t *cli)
if (cli->cli_saved_reply != NULL) {
r = recv(cli->cli_sd, (void *)ic_u.buf, sizeof (ic_u.buf), 0);
cli->cli_cmd = ic_u.ic.ic_cmd;
rc = consume_common_struct(&ic_u.ic, r, cli, ev_port);
assert(cli->cli_saved_reply != NULL);
if (send(cli->cli_sd, cli->cli_saved_reply,
cli->cli_saved_size, 0) != cli->cli_saved_size) {
free(cli->cli_saved_reply);
cli->cli_saved_reply = NULL;
cli->cli_saved_size = 0;
cli->cli_ev = ILBD_EVENT_REQ;
if (port_associate(ev_port, PORT_SOURCE_FD, cli->cli_sd,
POLLRDNORM, cli) == -1) {
cli->cli_ev = ILBD_EVENT_REP_OK;
if (port_associate(ev_port, PORT_SOURCE_FD, cli->cli_sd, POLLWRNORM,
cli) == -1) {
ilbd_free_cli(cli);
ilbd_client_t *cli;
cli = (ilbd_client_t *)p_ev.portev_user;
assert(ev_port_obj == cli->cli_sd);
ilbd_free_cli(cli);
handle_req(ev_port, event, cli);
ilbd_show_sticky(void *cli, const ilb_comm_t *ic, uint32_t *rbuf,
sticky_cur_cli = cli;
} else if (cli == sticky_cur_cli) {
ilbd_show_nat(void *cli, const ilb_comm_t *ic, uint32_t *rbuf, size_t *rbufsz)
nat_cur_cli = cli;
} else if (cli == nat_cur_cli) {
save_flags(flags); cli();
save_flags(flags); cli();
save_flags(flags); cli();
#define ILT_CFG_REG(cli, reg) PSWRQ2_REG_##cli##_##reg##_RT_OFFSET
cli();
cli();
cli();
cli();
cli();
cli();
cli();
cli();
cli();
cli();
cli();
cli();
cli();
cli();
cli();
cli();
cli();
cli();
cli();
cli();
cli
cli();
cli();
#define ACPI_DISABLE_IRQS() cli()
extern void cli(void);
extern void cli(void);