summaryrefslogtreecommitdiffstats
path: root/rubbos/app/httpd-2.0.64/os/beos/beosd.c
diff options
context:
space:
mode:
Diffstat (limited to 'rubbos/app/httpd-2.0.64/os/beos/beosd.c')
-rw-r--r--rubbos/app/httpd-2.0.64/os/beos/beosd.c166
1 files changed, 0 insertions, 166 deletions
diff --git a/rubbos/app/httpd-2.0.64/os/beos/beosd.c b/rubbos/app/httpd-2.0.64/os/beos/beosd.c
deleted file mode 100644
index 0d1755d4..00000000
--- a/rubbos/app/httpd-2.0.64/os/beos/beosd.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <unistd.h>
-#include "httpd.h"
-#include "http_config.h"
-#include "http_main.h"
-#include "http_log.h"
-#include "beosd.h"
-#include "mpm_common.h"
-
-beosd_config_rec beosd_config;
-
-/* Set group privileges.
- *
- * Note that until we get the multi-user situation sorted on beos,
- * this is just a no-op to allow common configuration files!
- */
-
-#if B_BEOS_VERSION < 0x0460
-static int set_group_privs(void)
-{
- /* no-op */
- return 0;
-}
-#endif
-
-
-int beosd_setup_child(void)
-{
- /* TODO: revisit the whole issue of users/groups for BeOS as
- * R5 and below doesn't really have much concept of them.
- */
-
- return 0;
-}
-
-
-AP_DECLARE(const char *) beosd_set_user(cmd_parms *cmd,
- void *dummy, const char *arg)
-{
- /* no-op */
- return NULL;
-}
-
-AP_DECLARE(const char *) beosd_set_group(cmd_parms *cmd,
- void *dummy, const char *arg)
-{
- /* no-op */
- return NULL;
-}
-
-void beosd_pre_config(void)
-{
- /* Until the multi-user situation on BeOS is fixed,
- simply have a no-op here to allow for common conf files
- */
-}
-
-AP_DECLARE(apr_status_t) beosd_accept(void **accepted, ap_listen_rec *lr,
- apr_pool_t *ptrans)
-{
- apr_socket_t *csd;
- apr_status_t status;
- int sockdes;
-
- status = apr_accept(&csd, lr->sd, ptrans);
- if (status == APR_SUCCESS) {
- *accepted = csd;
- apr_os_sock_get(&sockdes, csd);
- if (sockdes >= FD_SETSIZE) {
- ap_log_error(APLOG_MARK, APLOG_WARNING, 0, NULL,
- "new file descriptor %d is too large; you probably need "
- "to rebuild Apache with a larger FD_SETSIZE "
- "(currently %d)",
- sockdes, FD_SETSIZE);
- apr_socket_close(csd);
- return APR_EINTR;
- }
- return status;
- }
-
- if (APR_STATUS_IS_EINTR(status)) {
- return status;
- }
- /* Our old behaviour here was to continue after accept()
- * errors. But this leads us into lots of troubles
- * because most of the errors are quite fatal. For
- * example, EMFILE can be caused by slow descriptor
- * leaks (say in a 3rd party module, or libc). It's
- * foolish for us to continue after an EMFILE. We also
- * seem to tickle kernel bugs on some platforms which
- * lead to never-ending loops here. So it seems best
- * to just exit in most cases.
- */
- switch (status) {
-#ifdef EPROTO
- /* EPROTO on certain older kernels really means
- * ECONNABORTED, so we need to ignore it for them.
- * See discussion in new-httpd archives nh.9701
- * search for EPROTO.
- *
- * Also see nh.9603, search for EPROTO:
- * There is potentially a bug in Solaris 2.x x<6,
- * and other boxes that implement tcp sockets in
- * userland (i.e. on top of STREAMS). On these
- * systems, EPROTO can actually result in a fatal
- * loop. See PR#981 for example. It's hard to
- * handle both uses of EPROTO.
- */
- case EPROTO:
-#endif
-#ifdef ECONNABORTED
- case ECONNABORTED:
-#endif
-#ifdef ETIMEDOUT
- case ETIMEDOUT:
-#endif
-#ifdef EHOSTUNREACH
- case EHOSTUNREACH:
-#endif
-#ifdef ENETUNREACH
- case ENETUNREACH:
-#endif
- break;
-#ifdef ENETDOWN
- case ENETDOWN:
- /*
- * When the network layer has been shut down, there
- * is not much use in simply exiting: the parent
- * would simply re-create us (and we'd fail again).
- * Use the CHILDFATAL code to tear the server down.
- * @@@ Martin's idea for possible improvement:
- * A different approach would be to define
- * a new APEXIT_NETDOWN exit code, the reception
- * of which would make the parent shutdown all
- * children, then idle-loop until it detected that
- * the network is up again, and restart the children.
- * Ben Hyde noted that temporary ENETDOWN situations
- * occur in mobile IP.
- */
- ap_log_error(APLOG_MARK, APLOG_EMERG, status, ap_server_conf,
- "apr_accept: giving up.");
- return APR_EGENERAL;
-#endif /*ENETDOWN*/
-
- default:
- ap_log_error(APLOG_MARK, APLOG_ERR, status, ap_server_conf,
- "apr_accept: (client socket)");
- return APR_EGENERAL;
- }
- return status;
-}