You are viewing a plain text version of this content. The canonical link for it is here.
Posted to test-cvs@httpd.apache.org by jw...@apache.org on 2003/09/08 04:22:31 UTC
cvs commit: httpd-test/flood flood_round_robin.c
jwoolley 2003/09/07 19:22:31
Modified: flood flood_round_robin.c
Log:
make this follow the apr idioms a bit more closely.
Revision Changes Path
1.36 +45 -36 httpd-test/flood/flood_round_robin.c
Index: flood_round_robin.c
===================================================================
RCS file: /home/cvs/httpd-test/flood/flood_round_robin.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -u -r1.35 -r1.36
--- flood_round_robin.c 7 Sep 2003 22:56:53 -0000 1.35
+++ flood_round_robin.c 8 Sep 2003 02:22:31 -0000 1.36
@@ -63,6 +63,7 @@
#include <apr_base64.h>
#include <apr_poll.h>
#include <apr_thread_proc.h>
+#include <apr_errno.h>
#if APR_HAVE_STRINGS_H
#include <strings.h> /* strncasecmp */
@@ -969,31 +970,36 @@
apr_pollset_t *pollset;
apr_procattr_t *procattr;
apr_size_t nbytes, wbytes;
+ char buf[255];
char **args;
const char *progname;
- if (apr_procattr_create(&procattr, rp->pool) != APR_SUCCESS) {
+ if ((rv = apr_procattr_create(&procattr, rp->pool)) != APR_SUCCESS) {
apr_file_printf(local_stderr,
- "apr_procattr_create failed for '%s'\n",
- rp->url[rp->current_url].responsescript);
- return APR_EGENERAL;
+ "apr_procattr_create failed for '%s': %s\n",
+ rp->url[rp->current_url].responsescript,
+ apr_strerror(rv, buf, sizeof(buf)));
+ return rv;
}
- if (apr_procattr_io_set(procattr, APR_FULL_BLOCK, APR_NO_PIPE,
- APR_NO_PIPE) != APR_SUCCESS) {
+ if ((rv = apr_procattr_io_set(procattr, APR_FULL_BLOCK, APR_NO_PIPE,
+ APR_NO_PIPE)) != APR_SUCCESS) {
apr_file_printf(local_stderr,
- "apr_procattr_io_set failed for '%s'\n",
- rp->url[rp->current_url].responsescript);
- return APR_EGENERAL;
+ "apr_procattr_io_set failed for '%s': %s\n",
+ rp->url[rp->current_url].responsescript,
+ apr_strerror(rv, buf, sizeof(buf)));
+ return rv;
}
- if (apr_procattr_error_check_set(procattr, 1)) {
+ if ((rv = apr_procattr_error_check_set(procattr, 1)) != APR_SUCCESS) {
apr_file_printf(local_stderr,
- "apr_procattr_error_check_set failed for '%s'\n",
- rp->url[rp->current_url].responsescript);
- return APR_EGENERAL;
+ "apr_procattr_error_check_set failed "
+ "for '%s': %s\n",
+ rp->url[rp->current_url].responsescript,
+ apr_strerror(rv, buf, sizeof(buf)));
+ return rv;
}
apr_tokenize_to_argv(rp->url[rp->current_url].responsescript, &args,
@@ -1003,20 +1009,22 @@
proc = (apr_proc_t *)apr_pcalloc(rp->pool, sizeof(*proc));
/* create process */
- if (apr_proc_create(proc, progname, (const char * const *)args, NULL,
- procattr, rp->pool) != APR_SUCCESS) {
+ if ((rv = apr_proc_create(proc, progname, (const char * const *)args,
+ NULL, procattr, rp->pool)) != APR_SUCCESS) {
apr_file_printf(local_stderr,
- "Can't spawn postprocess script '%s'\n",
- rp->url[rp->current_url].responsescript);
- return APR_EGENERAL;
+ "Can't spawn postprocess script '%s': %s\n",
+ rp->url[rp->current_url].responsescript,
+ apr_strerror(rv, buf, sizeof(buf)));
+ return rv;
}
- if (apr_file_pipe_timeout_set(proc->in, apr_time_from_sec(10))
- != APR_SUCCESS) {
+ if ((rv = apr_file_pipe_timeout_set(proc->in, apr_time_from_sec(10)))
+ != APR_SUCCESS) {
apr_file_printf(local_stderr,
- "apr_file_pipe_timeout_set failed for '%s'\n",
- rp->url[rp->current_url].responsescript);
- return APR_EGENERAL;
+ "apr_file_pipe_timeout_set failed for '%s': %s\n",
+ rp->url[rp->current_url].responsescript,
+ apr_strerror(rv, buf, sizeof(buf)));
+ return rv;
}
apr_pollset_create(&pollset, 1, rp->pool, 0);
@@ -1036,18 +1044,19 @@
int bytes;
apr_int32_t nrdes;
const apr_pollfd_t *ardes = NULL;
+ const apr_pollfd_t *rdes;
- apr_pollset_poll(pollset, apr_time_from_sec(10), &nrdes, &ardes);
-
- if (!nrdes) {
+ if ((rv = apr_pollset_poll(pollset, apr_time_from_sec(10),
+ &nrdes, &ardes)) != APR_SUCCESS) {
apr_file_printf(local_stderr,
- "timeout writing data to script '%s'\n",
- rp->url[rp->current_url].responsescript);
- return APR_EGENERAL;
+ "error writing data to script '%s': %s\n",
+ rp->url[rp->current_url].responsescript,
+ apr_strerror(rv, buf, sizeof(buf)));
+ return rv;
}
/* there can be only one descriptor... */
- const apr_pollfd_t *rdes = &(ardes[0]);
+ rdes = &(ardes[0]);
bytes = nbytes;
apr_file_write(rdes->desc.f, resp->rbuf, &bytes);
@@ -1059,14 +1068,14 @@
apr_pollset_remove(pollset, &pipeout);
apr_file_close(proc->in);
- rv = apr_proc_wait(proc, &exitcode, NULL, APR_WAIT);
- /* child may be gone already... */
- if (!rv & (APR_CHILD_DONE | APR_SUCCESS)) {
+ if ((rv = apr_proc_wait(proc, &exitcode, NULL, APR_WAIT))
+ != APR_CHILD_DONE) {
apr_file_printf(local_stderr,
- "apr_proc_wait failed for '%s'\n",
- rp->url[rp->current_url].responsescript);
- return APR_EGENERAL;
+ "apr_proc_wait failed for '%s': %s\n",
+ rp->url[rp->current_url].responsescript,
+ apr_strerror(rv, buf, sizeof(buf)));
+ return rv;
}
if (exitcode != 0) {