cluster realod and logging

This commit is contained in:
roberto@sirius
2010-11-25 11:07:27 +01:00
parent 0024bf56be
commit d128a958cf
4 changed files with 41 additions and 1 deletions
+7
View File
@@ -346,6 +346,13 @@ void master_loop(char **argv, char **environ) {
}
switch(uwsgi.wsgi_requests[0]->uh.modifier1) {
case 96:
uwsgi_log_verbose("%.*s", uwsgi.wsgi_requests[0]->uh.pktsize, uwsgi.wsgi_requests[0]->buffer);
case 98:
if (kill(getpid(), SIGHUP)) {
uwsgi_error("kill()");
}
break;
case 99:
if (uwsgi.wsgi_requests[0]->uh.modifier2 == 0) {
uwsgi_log("requested configuration data, sending %d bytes\n", cluster_opt_size);
+1 -1
View File
@@ -43,7 +43,7 @@ ssize_t send_udp_message(uint8_t modifier1, char *host, char *message, uint16_t
memset(&udp_addr, 0, sizeof(struct sockaddr_in));
udp_addr.sin_family = AF_INET;
udp_addr.sin_port = htons(atoi(udp_port));
udp_addr.sin_port = htons(atoi(udp_port+1));
udp_addr.sin_addr.s_addr = inet_addr(host);
udpbuff[0] = modifier1;
+29
View File
@@ -97,6 +97,8 @@ static struct option long_base_options[] = {
{"multicast", required_argument, 0, LONG_ARGS_MULTICAST},
{"cluster", required_argument, 0, LONG_ARGS_CLUSTER},
#endif
{"cluster-reload", required_argument, 0, LONG_ARGS_CLUSTER_RELOAD},
{"cluster-log", required_argument, 0, LONG_ARGS_CLUSTER_LOG},
#ifdef UWSGI_SNMP
{"snmp", no_argument, 0, LONG_ARGS_SNMP},
{"snmp-community", required_argument, 0, LONG_ARGS_SNMP_COMMUNITY},
@@ -1496,6 +1498,12 @@ end:
case 0:
return 1;
case LONG_ARGS_CLUSTER_RELOAD:
send_udp_message(98, optarg, "", 0);
break;
case LONG_ARGS_CLUSTER_LOG:
uwsgi_stdin_sendto(optarg, 96, 0);
break;
case LONG_ARGS_VHOSTHOST:
uwsgi.vhost = 1;
uwsgi.vhost_host = 1;
@@ -2223,3 +2231,24 @@ int uwsgi_cluster_join(char *name) {
return fd;
}
void uwsgi_stdin_sendto(char *socket_name, uint8_t modifier1, uint8_t modifier2) {
char buf[4096];
ssize_t rlen ;
size_t delta = 4096;
char *ptr = buf;
rlen = read(0, ptr, delta);
while(rlen > 0) {
ptr += rlen;
delta-=rlen;
if (delta <= 0) break;
rlen = read(0, ptr, delta);
}
if (ptr > buf) {
send_udp_message(modifier1, socket_name, ptr, ptr-buf);
}
}
+4
View File
@@ -242,6 +242,8 @@ struct uwsgi_opt {
#define LONG_ARGS_UPLOAD_PROGRESS 17060
#define LONG_ARGS_REMAP_MODIFIER 17061
#define LONG_ARGS_CLUSTER 17062
#define LONG_ARGS_CLUSTER_RELOAD 17063
#define LONG_ARGS_CLUSTER_LOG 17064
@@ -1163,3 +1165,5 @@ int uwsgi_get_dgram(int, struct wsgi_request *);
int uwsgi_cluster_join(char *);
int uwsgi_string_sendto(int, uint8_t, uint8_t, struct sockaddr *, socklen_t, char *, size_t);
void uwsgi_stdin_sendto(char *, uint8_t, uint8_t);