1218885Sdim/* $OpenBSD: privsep.h,v 1.2 2004/05/04 18:51:18 henning Exp $ */ 2218885Sdim 3218885Sdim/* 4218885Sdim * Copyright (c) 2004 Henning Brauer <henning@openbsd.org> 5218885Sdim * 6218885Sdim * Permission to use, copy, modify, and distribute this software for any 7218885Sdim * purpose with or without fee is hereby granted, provided that the above 8218885Sdim * copyright notice and this permission notice appear in all copies. 9218885Sdim * 10218885Sdim * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11218885Sdim * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12218885Sdim * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13218885Sdim * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14218885Sdim * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN 15218885Sdim * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 16218885Sdim * OF OR IN CONNECTION WITH THE USE, ABUSE OR PERFORMANCE OF THIS SOFTWARE. 17218885Sdim * 18218885Sdim * $FreeBSD: releng/11.0/sbin/dhclient/privsep.h 252624 2013-07-03 22:07:55Z pjd $ 19218885Sdim */ 20218885Sdim 21218885Sdim#include <sys/types.h> 22218885Sdim 23218885Sdim#include <poll.h> 24218885Sdim#include <pwd.h> 25218885Sdim 26218885Sdimstruct buf { 27218885Sdim u_char *buf; 28218885Sdim size_t size; 29218885Sdim size_t wpos; 30218885Sdim size_t rpos; 31218885Sdim}; 32218885Sdim 33218885Sdimenum imsg_code { 34218885Sdim IMSG_NONE, 35218885Sdim IMSG_SCRIPT_INIT, 36218885Sdim IMSG_SCRIPT_WRITE_PARAMS, 37218885Sdim IMSG_SCRIPT_GO, 38218885Sdim IMSG_SCRIPT_GO_RET, 39218885Sdim IMSG_SEND_PACKET 40218885Sdim}; 41218885Sdim 42218885Sdimstruct imsg_hdr { 43218885Sdim enum imsg_code code; 44218885Sdim size_t len; 45218885Sdim}; 46218885Sdim 47218885Sdimstruct buf *buf_open(size_t); 48218885Sdimint buf_add(struct buf *, void *, size_t); 49218885Sdimint buf_close(int, struct buf *); 50218885Sdimssize_t buf_read(int sock, void *, size_t); 51218885Sdim