tac_handle
struct tac_handle *tach;
typedef int (*set_func)(struct tac_handle *, const char *);
static int do_item(pam_handle_t *, struct tac_handle *, int,
static char *get_msg(struct tac_handle *);
static int set_msg(struct tac_handle *, const char *);
do_item(pam_handle_t *pamh, struct tac_handle *tach, int item,
get_msg(struct tac_handle *tach)
set_msg(struct tac_handle *tach, const char *msg)
tac_send_authen(struct tac_handle *h)
tac_send_author(struct tac_handle *h)
tac_send_acct(struct tac_handle *h)
add_str_16(struct tac_handle *h, u_int16_t *fld, struct tac_str *cs)
tac_set_rem_addr(struct tac_handle *h, const char *addr)
tac_set_data(struct tac_handle *h, const void *data, size_t data_len)
tac_set_msg(struct tac_handle *h, const char *msg)
tac_set_port(struct tac_handle *h, const char *port)
tac_set_priv(struct tac_handle *h, int priv)
tac_set_user(struct tac_handle *h, const char *user)
tac_set_av(struct tac_handle *h, u_int index, const char *av)
tac_get_av(struct tac_handle *h, u_int index)
tac_get_av_value(struct tac_handle *h, const char *attribute)
tac_clear_avs(struct tac_handle *h)
clear_srvr_avs(struct tac_handle *h)
tac_strerror(struct tac_handle *h)
xmalloc(struct tac_handle *h, size_t size)
xstrdup(struct tac_handle *h, const char *s)
close_connection(struct tac_handle *h)
conn_server(struct tac_handle *h)
crypt_msg(struct tac_handle *h, struct tac_msg *msg)
dup_str(struct tac_handle *h, const struct tac_str *ss, size_t *len)
establish_connection(struct tac_handle *h)
generr(struct tac_handle *h, const char *format, ...)
get_srvr_end(struct tac_handle *h)
get_str(struct tac_handle *h, const char *field,
read_timed(struct tac_handle *h, void *buf, size_t len,
static int add_str_8(struct tac_handle *, u_int8_t *,
recv_msg(struct tac_handle *h)
static int add_str_16(struct tac_handle *, u_int16_t *,
static void close_connection(struct tac_handle *);
static int conn_server(struct tac_handle *);
save_str(struct tac_handle *h, struct tac_str *cs, const void *data,
static void crypt_msg(struct tac_handle *, struct tac_msg *);
static void *dup_str(struct tac_handle *, const struct tac_str *,
send_msg(struct tac_handle *h)
static int establish_connection(struct tac_handle *);
static void generr(struct tac_handle *, const char *, ...)
static int get_srvr_end(struct tac_handle *);
tac_add_server_av(struct tac_handle *h, const char *host, int port,
static int get_str(struct tac_handle *, const char *,
static int read_timed(struct tac_handle *, void *, size_t,
static int recv_msg(struct tac_handle *);
static int save_str(struct tac_handle *, struct tac_str *,
tac_add_server(struct tac_handle *h, const char *host, int port,
tac_close(struct tac_handle *h)
static int send_msg(struct tac_handle *);
memset(h, 0, sizeof(struct tac_handle));
static void *xmalloc(struct tac_handle *, size_t);
tac_config(struct tac_handle *h, const char *path)
static char *xstrdup(struct tac_handle *, const char *);
static void clear_srvr_avs(struct tac_handle *);
static void create_msg(struct tac_handle *, int, int, int);
tac_create_authen(struct tac_handle *h, int action, int type, int service)
tac_create_author(struct tac_handle *h, int method, int type, int service)
tac_create_acct(struct tac_handle *h, int acct, int action, int type, int service)
add_str_8(struct tac_handle *h, u_int8_t *fld, struct tac_str *cs)
create_msg(struct tac_handle *h, int msg_type, int var, int type)
tac_get_data(struct tac_handle *h, size_t *len)
tac_get_msg(struct tac_handle *h)
struct tac_handle *
struct tac_handle *h;
h = (struct tac_handle *)malloc(sizeof(struct tac_handle));
int tac_add_server(struct tac_handle *,
void tac_close(struct tac_handle *);
int tac_config(struct tac_handle *, const char *);
int tac_create_authen(struct tac_handle *, int, int, int);
void *tac_get_data(struct tac_handle *, size_t *);
char *tac_get_msg(struct tac_handle *);
struct tac_handle *tac_open(void);
int tac_send_authen(struct tac_handle *);
int tac_set_data(struct tac_handle *,
int tac_set_msg(struct tac_handle *, const char *);
int tac_set_port(struct tac_handle *, const char *);
int tac_set_priv(struct tac_handle *, int);
int tac_set_rem_addr(struct tac_handle *, const char *);
int tac_set_user(struct tac_handle *, const char *);
const char *tac_strerror(struct tac_handle *);
int tac_send_author(struct tac_handle *);
int tac_create_author(struct tac_handle *, int, int, int);
int tac_set_av(struct tac_handle *, u_int, const char *);
char *tac_get_av(struct tac_handle *, u_int);
char *tac_get_av_value(struct tac_handle *, const char *);
void tac_clear_avs(struct tac_handle *);
int tac_create_acct(struct tac_handle *, int, int, int, int);
int tac_send_acct(struct tac_handle *);
struct tac_handle;
struct tac_handle *h;
tacplus_error(struct tac_handle *h, const char *func)
struct tac_handle **h = p;
static struct tac_handle *
static struct tac_handle *sth;
struct tac_handle **h = &sth;