lpr_conn
lpr_conn(conn->id, l, sock, sa);
struct lpr_conn *conn;
struct lpr_conn *conn = NULL, key;
lpr_on_allowedhost(struct lpr_conn *conn, const char *hostname,
lpr_on_recvjob(struct lpr_conn *conn, int ack)
lpr_on_recvjob_file(struct lpr_conn *conn, int ack, size_t sz, int cf, int fd)
lpr_on_request(struct lpr_conn *conn, int fd, const char *hostname,
struct lpr_conn *conn = arg;
struct lpr_conn *conn = arg;
lpr_readcommand(struct lpr_conn *conn)
SPLAY_ENTRY(lpr_conn) entry;
lpr_readfile(struct lpr_conn *conn)
lpr_parsejobfilter(struct lpr_conn *conn, struct lp_jobfilter *jf, int argc,
lpr_free(struct lpr_conn *conn)
lpr_close(struct lpr_conn *conn)
lpr_ack(struct lpr_conn *conn, char c)
lpr_reply(struct lpr_conn *conn, const char *s)
lpr_stream(struct lpr_conn *conn)
SPLAY_HEAD(lpr_conn_tree, lpr_conn);
lpr_forward(struct lpr_conn *conn)
static int lpr_conn_cmp(struct lpr_conn *, struct lpr_conn *);
SPLAY_PROTOTYPE(lpr_conn_tree, lpr_conn, entry, lpr_conn_cmp);
struct lpr_conn *conn = arg;
static void lpr_on_allowedhost(struct lpr_conn *, const char *, const char *);
static void lpr_on_recvjob(struct lpr_conn *, int);
static void lpr_on_recvjob_file(struct lpr_conn *, int, size_t, int, int);
static void lpr_on_request(struct lpr_conn *, int, const char *, const char *);
lpr_conn_cmp(struct lpr_conn *a, struct lpr_conn *b)
SPLAY_GENERATE(lpr_conn_tree, lpr_conn, entry, lpr_conn_cmp);
static int lpr_readcommand(struct lpr_conn *);
static int lpr_readfile(struct lpr_conn *);
static int lpr_parsejobfilter(struct lpr_conn *, struct lp_jobfilter *,
static void lpr_free(struct lpr_conn *);
static void lpr_close(struct lpr_conn *);
static void lpr_ack(struct lpr_conn *, char);
static void lpr_reply(struct lpr_conn *, const char *);
static void lpr_stream(struct lpr_conn *);
static void lpr_forward(struct lpr_conn *);
void lpr_conn(uint32_t, struct listener *, int, const struct sockaddr *);