Add monitoring support to wsproxy.
This commit is contained in:
parent
306eab28da
commit
8039dddced
|
|
@ -1,3 +1,9 @@
|
||||||
|
wsproxy (1.0-1KUMIRELEASE4) unstable; urgency=low
|
||||||
|
|
||||||
|
* Add /wsproxy-monitoring/ for monitoring purposes.
|
||||||
|
|
||||||
|
-- Ed Schouten <ed@kumina.nl> Wed, 29 Jun 2011 09:19:32 +0200
|
||||||
|
|
||||||
wsproxy (1.0-1KUMIRELEASE3) unstable; urgency=low
|
wsproxy (1.0-1KUMIRELEASE3) unstable; urgency=low
|
||||||
|
|
||||||
* Add support for Flash headers.
|
* Add support for Flash headers.
|
||||||
|
|
|
||||||
18
wsproxy.c
18
wsproxy.c
|
|
@ -386,7 +386,6 @@ eat_flash_magic(void)
|
||||||
int
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
struct stat sb;
|
|
||||||
union {
|
union {
|
||||||
struct sockaddr sa;
|
struct sockaddr sa;
|
||||||
struct sockaddr_in sa_in;
|
struct sockaddr_in sa_in;
|
||||||
|
|
@ -397,10 +396,10 @@ main(int argc, char *argv[])
|
||||||
uint32_t key1 = 0, key2 = 0;
|
uint32_t key1 = 0, key2 = 0;
|
||||||
socklen_t salen;
|
socklen_t salen;
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
int fd, s;
|
int fd, monitoring = 0, s;
|
||||||
|
|
||||||
/* Squelch stderr when it is a socket. */
|
/* Squelch stderr when it is a socket. */
|
||||||
if (fstat(STDERR_FILENO, &sb) == -1 || S_ISSOCK(sb.st_mode)) {
|
if (!isatty(STDERR_FILENO)) {
|
||||||
fd = open("/dev/null", O_WRONLY);
|
fd = open("/dev/null", O_WRONLY);
|
||||||
if (fd == -1) {
|
if (fd == -1) {
|
||||||
perror("open");
|
perror("open");
|
||||||
|
|
@ -430,8 +429,10 @@ main(int argc, char *argv[])
|
||||||
fprintf(stderr, "malformed HTTP header received\n");
|
fprintf(stderr, "malformed HTTP header received\n");
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
if (strncmp(line, "GET /wsproxy-monitoring/ ", 25) == 0)
|
||||||
|
monitoring = 1;
|
||||||
port = strtoul(line + 5, NULL, 10);
|
port = strtoul(line + 5, NULL, 10);
|
||||||
if (port < minport || port > maxport) {
|
if (!monitoring && (port < minport || port > maxport)) {
|
||||||
fprintf(stderr, "port not allowed\n");
|
fprintf(stderr, "port not allowed\n");
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
@ -453,6 +454,15 @@ main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
} while (strcmp(line, "\n") != 0 && strcmp(line, "\r\n") != 0);
|
} while (strcmp(line, "\n") != 0 && strcmp(line, "\r\n") != 0);
|
||||||
|
|
||||||
|
/* Simple monitoring. */
|
||||||
|
if (monitoring) {
|
||||||
|
printf("HTTP/1.1 200 OK\r\n"
|
||||||
|
"Content-Type: text/plain\r\n"
|
||||||
|
"\r\n"
|
||||||
|
"RUNNING\n");
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
|
||||||
/* Eight byte payload. */
|
/* Eight byte payload. */
|
||||||
if (fread(key3, sizeof key3, 1, stdin) != 1) {
|
if (fread(key3, sizeof key3, 1, stdin) != 1) {
|
||||||
fprintf(stderr, "key data missing\n");
|
fprintf(stderr, "key data missing\n");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue