Lines Matching refs:cs
43 control_init(struct privsep *ps, struct control_sock *cs)
50 if (cs->cs_name == NULL)
59 if (strlcpy(sun.sun_path, cs->cs_name,
61 log_warn("%s: %s name too long", __func__, cs->cs_name);
66 if (unlink(cs->cs_name) == -1)
68 log_warn("%s: unlink %s", __func__, cs->cs_name);
73 if (cs->cs_restricted) {
82 log_warn("%s: bind: %s", __func__, cs->cs_name);
89 if (chmod(cs->cs_name, mode) == -1) {
92 (void)unlink(cs->cs_name);
96 cs->cs_fd = fd;
97 cs->cs_env = env;
103 control_listen(struct control_sock *cs)
105 if (cs->cs_name == NULL)
108 if (listen(cs->cs_fd, CONTROL_BACKLOG) == -1) {
113 event_set(&cs->cs_ev, cs->cs_fd, EV_READ,
114 control_accept, cs);
115 event_add(&cs->cs_ev, NULL);
116 evtimer_set(&cs->cs_evt, control_accept, cs);
122 control_cleanup(struct control_sock *cs)
124 if (cs->cs_name == NULL)
126 event_del(&cs->cs_ev);
127 event_del(&cs->cs_evt);
137 struct control_sock *cs = arg;
139 event_add(&cs->cs_ev, NULL);
153 event_del(&cs->cs_ev);
154 evtimer_add(&cs->cs_evt, &evtpause);
175 c->iev.data = cs; /* proc.c cheats (reuses the handler) */
177 c->iev.handler, cs);
197 control_close(int fd, struct control_sock *cs)
213 if (evtimer_pending(&cs->cs_evt, NULL)) {
214 evtimer_del(&cs->cs_evt);
215 event_add(&cs->cs_ev, NULL);
224 struct control_sock *cs = arg;
229 struct httpd *env = cs->cs_env;
238 control_close(fd, cs);
245 control_close(fd, cs);
252 control_close(fd, cs);
263 control_close(fd, cs);