Bug #3940 » check_reload_status.patch
| pfPorts/check_reload_status/files/check_reload_status.c | ||
|---|---|---|
|
static void set_blockmode(int socket, int cmd);
|
||
|
struct command * match_command(struct command *target, char *wordpassed);
|
||
|
struct command * parse_command(int fd, int argc, char **argv);
|
||
|
static void socket_read_command(int socket, short event, void *arg);
|
||
|
static void socket_read_command(int socket);
|
||
|
static void show_command_list(int fd, const struct command *list);
|
||
|
static void socket_accept_command(int socket, short event, void *arg);
|
||
|
static void socket_close_command(int fd, struct event *ev);
|
||
|
static void socket_read_fcgi(int, short, void *);
|
||
|
static void fcgi_send_command(int, short, void *);
|
||
|
static int fcgi_open_socket(struct runq *);
|
||
| ... | ... | |
|
}
|
||
|
static void
|
||
|
socket_close_command(int fd, struct event *ev)
|
||
|
{
|
||
|
event_del(ev);
|
||
|
free(ev);
|
||
|
close(fd);
|
||
|
}
|
||
|
static void
|
||
|
socket_read_fcgi(int fd, short event, void *arg)
|
||
|
{
|
||
|
struct runq *tmpcmd = arg;
|
||
| ... | ... | |
|
}
|
||
|
static void
|
||
|
socket_read_command(int fd, short event, void *arg)
|
||
|
socket_read_command(int fd)
|
||
|
{
|
||
|
struct command *cmd;
|
||
|
struct event *ev = arg;
|
||
|
enum { bufsize = 2048 };
|
||
|
char buf[bufsize];
|
||
|
register int n;
|
||
|
char **ap, *argv[bufsize], *p;
|
||
|
int i, loop = 0;
|
||
|
if (event == EV_TIMEOUT) {
|
||
|
socket_close_command(fd, ev);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
tryagain:
|
||
|
bzero(buf, sizeof(buf));
|
||
|
if ((n = read (fd, buf, bufsize)) == -1) {
|
||
| ... | ... | |
|
for (i = 0; i < n - 1; i++) {
|
||
|
if (!isalpha(buf[i]) && !isspace(buf[i]) && !isdigit(buf[i]) && !ispunct(buf[i])) {
|
||
|
write(fd, "ERROR:\tonly alphanumeric chars allowd", 37);
|
||
|
socket_close_command(fd, ev);
|
||
|
close(fd);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
| ... | ... | |
|
socket_accept_command(int fd, __unused short event, __unused void *arg)
|
||
|
{
|
||
|
struct sockaddr_un sun;
|
||
|
struct timeval tv = { 10, 0 };
|
||
|
struct event *ev;
|
||
|
socklen_t len;
|
||
|
int newfd;
|
||
| ... | ... | |
|
}
|
||
|
set_blockmode(newfd, O_NONBLOCK | FD_CLOEXEC);
|
||
|
if ((ev = malloc(sizeof(*ev))) == NULL) {
|
||
|
syslog(LOG_ERR, "Cannot allocate new struct event.");
|
||
|
close(newfd);
|
||
|
return;
|
||
|
}
|
||
|
event_set(ev, newfd, EV_READ | EV_PERSIST, socket_read_command, ev);
|
||
|
event_add(ev, &tv);
|
||
|
socket_read_command(newfd);
|
||
|
}
|
||
|
static void
|
||
- « Previous
- 1
- 2
- Next »