Lines Matching refs:psp

59 	struct ps_process *psp = arg;  in ps_bpf_recvbpf()  local
60 struct bpf *bpf = psp->psp_bpf; in ps_bpf_recvbpf()
64 .ps_id = psp->psp_id, in ps_bpf_recvbpf()
65 .ps_cmd = psp->psp_id.psi_cmd, in ps_bpf_recvbpf()
80 logerr("%s: %s", psp->psp_ifname, __func__); in ps_bpf_recvbpf()
86 eloop_event_delete(psp->psp_ctx->eloop, bpf->bpf_fd); in ps_bpf_recvbpf()
88 psp->psp_bpf = NULL; in ps_bpf_recvbpf()
94 len = ps_sendpsmdata(psp->psp_ctx, psp->psp_ctx->ps_data_fd, in ps_bpf_recvbpf()
106 struct ps_process *psp = arg; in ps_bpf_recvmsgcb() local
110 logerrx("%s: IN cmd %x, psp %p", __func__, psm->ps_cmd, psp); in ps_bpf_recvmsgcb()
127 if (psp->psp_bpf == NULL) { in ps_bpf_recvmsgcb()
132 return bpf_send(psp->psp_bpf, psp->psp_proto, in ps_bpf_recvmsgcb()
139 struct ps_process *psp = arg; in ps_bpf_recvmsg() local
141 if (ps_recvpsmsg(psp->psp_ctx, psp->psp_fd, events, in ps_bpf_recvmsg()
147 ps_bpf_start_bpf(struct ps_process *psp) in ps_bpf_start_bpf() argument
149 struct dhcpcd_ctx *ctx = psp->psp_ctx; in ps_bpf_start_bpf()
151 struct in_addr *ia = &psp->psp_id.psi_addr.psa_in_addr; in ps_bpf_start_bpf()
158 setproctitle("[BPF %s] %s%s%s", psp->psp_protostr, psp->psp_ifname, in ps_bpf_start_bpf()
160 ps_freeprocesses(ctx, psp); in ps_bpf_start_bpf()
162 psp->psp_bpf = bpf_open(&psp->psp_ifp, psp->psp_filter, ia); in ps_bpf_start_bpf()
163 if (psp->psp_bpf == NULL) in ps_bpf_start_bpf()
166 else if (ps_rights_limit_fd(psp->psp_bpf->bpf_fd) == -1) in ps_bpf_start_bpf()
169 else if (eloop_event_add(ctx->eloop, psp->psp_bpf->bpf_fd, ELE_READ, in ps_bpf_start_bpf()
170 ps_bpf_recvbpf, psp) == -1) in ps_bpf_start_bpf()
173 psp->psp_work_fd = psp->psp_bpf->bpf_fd; in ps_bpf_start_bpf()
185 struct ps_process *psp; in ps_bpf_cmd() local
193 psp = ps_findprocess(ctx, &psm->ps_id); in ps_bpf_cmd()
196 logerrx("%s: IN cmd %x, psp %p", __func__, psm->ps_cmd, psp); in ps_bpf_cmd()
216 if (psp != NULL) in ps_bpf_cmd()
219 psp = ps_newprocess(ctx, &psm->ps_id); in ps_bpf_cmd()
220 if (psp == NULL) in ps_bpf_cmd()
223 ifp = &psp->psp_ifp; in ps_bpf_cmd()
227 ifp->ctx = psp->psp_ctx; in ps_bpf_cmd()
231 memcpy(psp->psp_ifname, ifp->name, sizeof(psp->psp_ifname)); in ps_bpf_cmd()
236 psp->psp_proto = ETHERTYPE_ARP; in ps_bpf_cmd()
237 psp->psp_protostr = "ARP"; in ps_bpf_cmd()
238 psp->psp_filter = bpf_arp; in ps_bpf_cmd()
242 psp->psp_proto = ETHERTYPE_IP; in ps_bpf_cmd()
243 psp->psp_protostr = "BOOTP"; in ps_bpf_cmd()
244 psp->psp_filter = bpf_bootp; in ps_bpf_cmd()
252 snprintf(psp->psp_name, sizeof(psp->psp_name), "BPF %s%s%s", in ps_bpf_cmd()
253 psp->psp_protostr, in ps_bpf_cmd()
256 start = ps_startprocess(psp, ps_bpf_recvmsg, NULL, in ps_bpf_cmd()
260 ps_freeprocess(psp); in ps_bpf_cmd()
267 psp->psp_ifname, psp->psp_name, psp->psp_pid); in ps_bpf_cmd()