From e8ec7aa8e38a93f5b034ac74cebce5de23710317 Mon Sep 17 00:00:00 2001 From: hongbotian Date: Mon, 30 Nov 2015 01:45:08 -0500 Subject: upload http JIRA: BOTTLENECK-10 Change-Id: I7598427ff904df438ce77c2819ee48ac75ffa8da Signed-off-by: hongbotian --- rubbos/app/httpd-2.0.64/os/netware/Apache.def | 5 ++ rubbos/app/httpd-2.0.64/os/netware/apache.xdc | Bin 0 -> 128 bytes rubbos/app/httpd-2.0.64/os/netware/modules.c | 99 ++++++++++++++++++++++++ rubbos/app/httpd-2.0.64/os/netware/os.h | 40 ++++++++++ rubbos/app/httpd-2.0.64/os/netware/pre_nw.h | 70 +++++++++++++++++ rubbos/app/httpd-2.0.64/os/netware/util_nw.c | 105 ++++++++++++++++++++++++++ 6 files changed, 319 insertions(+) create mode 100644 rubbos/app/httpd-2.0.64/os/netware/Apache.def create mode 100644 rubbos/app/httpd-2.0.64/os/netware/apache.xdc create mode 100644 rubbos/app/httpd-2.0.64/os/netware/modules.c create mode 100644 rubbos/app/httpd-2.0.64/os/netware/os.h create mode 100644 rubbos/app/httpd-2.0.64/os/netware/pre_nw.h create mode 100644 rubbos/app/httpd-2.0.64/os/netware/util_nw.c (limited to 'rubbos/app/httpd-2.0.64/os/netware') diff --git a/rubbos/app/httpd-2.0.64/os/netware/Apache.def b/rubbos/app/httpd-2.0.64/os/netware/Apache.def new file mode 100644 index 00000000..6d8bf9f4 --- /dev/null +++ b/rubbos/app/httpd-2.0.64/os/netware/Apache.def @@ -0,0 +1,5 @@ +MODULE APRLIB.NLM +MODULE LIBC.NLM +MODULE WS2_32.NLM +EXPORT @HTTPD.IMP +IMPORT GetCurrentAddressSpace diff --git a/rubbos/app/httpd-2.0.64/os/netware/apache.xdc b/rubbos/app/httpd-2.0.64/os/netware/apache.xdc new file mode 100644 index 00000000..12a7f6ba Binary files /dev/null and b/rubbos/app/httpd-2.0.64/os/netware/apache.xdc differ diff --git a/rubbos/app/httpd-2.0.64/os/netware/modules.c b/rubbos/app/httpd-2.0.64/os/netware/modules.c new file mode 100644 index 00000000..5c16248a --- /dev/null +++ b/rubbos/app/httpd-2.0.64/os/netware/modules.c @@ -0,0 +1,99 @@ +/* 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. + */ + +/* modules.c --- major modules compiled into Apache for NetWare. + * Only insert an entry for a module if it must be compiled into + * the core server + */ + +#define CORE_PRIVATE +#include "httpd.h" +#include "http_config.h" + +extern module core_module; +extern module mpm_netware_module; +extern module http_module; +extern module so_module; +extern module mime_module; +extern module access_module; +extern module auth_module; +extern module negotiation_module; +extern module include_module; +extern module autoindex_module; +extern module dir_module; +extern module cgi_module; +extern module userdir_module; +extern module alias_module; +extern module env_module; +extern module log_config_module; +extern module asis_module; +extern module imap_module; +extern module actions_module; +extern module setenvif_module; +extern module nwssl_module; +extern module netware_module; + +module *ap_prelinked_modules[] = { + &core_module, + &mpm_netware_module, + &http_module, + &so_module, + &mime_module, + &access_module, + &auth_module, + &negotiation_module, + &include_module, + &autoindex_module, + &dir_module, + &cgi_module, + &userdir_module, + &alias_module, + &env_module, + &log_config_module, + &asis_module, + &imap_module, + &actions_module, + &setenvif_module, + &nwssl_module, + &netware_module, + NULL +}; + +module *ap_preloaded_modules[] = { + &core_module, + &mpm_netware_module, + &http_module, + &so_module, + &mime_module, + &access_module, + &auth_module, + &negotiation_module, + &include_module, + &autoindex_module, + &dir_module, + &cgi_module, + &userdir_module, + &alias_module, + &env_module, + &log_config_module, + &asis_module, + &imap_module, + &actions_module, + &setenvif_module, + &nwssl_module, + &netware_module, + NULL +}; diff --git a/rubbos/app/httpd-2.0.64/os/netware/os.h b/rubbos/app/httpd-2.0.64/os/netware/os.h new file mode 100644 index 00000000..abb3e584 --- /dev/null +++ b/rubbos/app/httpd-2.0.64/os/netware/os.h @@ -0,0 +1,40 @@ +/* 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. + */ + +#ifndef APACHE_OS_H +#define APACHE_OS_H + +#ifndef PLATFORM +#define PLATFORM "NETWARE" +#endif + +#include + +AP_DECLARE_DATA extern int hold_screen_on_exit; /* Indicates whether the screen should be held open on exit*/ + +#define CASE_BLIND_FILESYSTEM +#define NO_WRITEV + +#define APACHE_MPM_DIR "server/mpm/netware" /* generated on unix */ + +#define getpid NXThreadGetId + +/* Hold the screen open if there is an exit code and the hold_screen_on_exit flag >= 0 or the + hold_screen_on_exit > 0. If the hold_screen_on_exit flag is < 0 then close the screen no + matter what the exit code is. */ +#define exit(s) {if((s||hold_screen_on_exit)&&(hold_screen_on_exit>=0)){pressanykey();}apr_terminate();exit(s);} + +#endif /* ! APACHE_OS_H */ diff --git a/rubbos/app/httpd-2.0.64/os/netware/pre_nw.h b/rubbos/app/httpd-2.0.64/os/netware/pre_nw.h new file mode 100644 index 00000000..da67b3f4 --- /dev/null +++ b/rubbos/app/httpd-2.0.64/os/netware/pre_nw.h @@ -0,0 +1,70 @@ +/* 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. + */ + +#ifndef __pre_nw__ +#define __pre_nw__ + +#include + +#ifndef __GNUC__ +#pragma precompile_target "precomp.mch" +#endif + +#define NETWARE + +#define N_PLAT_NLM + +/* hint for MSL C++ that we're on NetWare platform */ +#define __NETWARE__ + +/* the FAR keyword has no meaning in a 32-bit environment + but is used in the SDK headers so we take it out */ +#define FAR +#define far + +/* no-op for Codewarrior C compiler; a functions are cdecl + by default */ +#define cdecl + +/* if we have wchar_t enabled in C++, predefine this type to avoid + a conflict in Novell's header files */ +#ifndef __GNUC__ +#if (__option(cplusplus) && __option(wchar_type)) +#define _WCHAR_T +#endif +#endif + +/* C9X defintion used by MSL C++ library */ +#define DECIMAL_DIG 17 + +/* some code may want to use the MS convention for long long */ +#ifndef __int64 +#define __int64 long long +#endif + +/* Don't use the DBM rewrite map for mod_rewrite */ +#define NO_DBM_REWRITEMAP + +/* Allow MOD_AUTH_DBM to use APR */ +#define AP_AUTH_DBM_USE_APR + +/* Restrict the number of nested includes */ +#define AP_MAX_INCLUDE_DEPTH 48 + +#endif + + + diff --git a/rubbos/app/httpd-2.0.64/os/netware/util_nw.c b/rubbos/app/httpd-2.0.64/os/netware/util_nw.c new file mode 100644 index 00000000..ef3fbf46 --- /dev/null +++ b/rubbos/app/httpd-2.0.64/os/netware/util_nw.c @@ -0,0 +1,105 @@ +/* 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 "httpd.h" +#include "http_log.h" + +#include +#include + +int nlmUnloadSignaled(int wait); +event_handle_t eh; +Warn_t ref; +Report_t dum; + +AP_DECLARE(apr_status_t) ap_os_create_privileged_process( + const request_rec *r, + apr_proc_t *newproc, const char *progname, + const char * const *args, + const char * const *env, + apr_procattr_t *attr, apr_pool_t *p) +{ + return apr_proc_create(newproc, progname, args, env, attr, p); +} + +int _NonAppCheckUnload( void ) +{ + return nlmUnloadSignaled(1); +} + +// down server event callback +void ap_down_server_cb(void *, void *) +{ + nlmUnloadSignaled(0); + return; +} + +// Required place holder event callback +void ap_dummy_cb(void *, void *) +{ + return; +} + +// destroy callback resources +void ap_cb_destroy(void *) +{ + // cleanup down event notification + UnRegisterEventNotification(eh); + NX_UNWRAP_INTERFACE(ref); + NX_UNWRAP_INTERFACE(dum); +} + +int _NonAppStart +( + void *NLMHandle, + void *errorScreen, + const char *cmdLine, + const char *loadDirPath, + size_t uninitializedDataLength, + void *NLMFileHandle, + int (*readRoutineP)( int conn, void *fileHandle, size_t offset, + size_t nbytes, size_t *bytesRead, void *buffer ), + size_t customDataOffset, + size_t customDataSize, + int messageCount, + const char **messages +) +{ +#pragma unused(cmdLine) +#pragma unused(loadDirPath) +#pragma unused(uninitializedDataLength) +#pragma unused(NLMFileHandle) +#pragma unused(readRoutineP) +#pragma unused(customDataOffset) +#pragma unused(customDataSize) +#pragma unused(messageCount) +#pragma unused(messages) + + // register for down server event + rtag_t rt = AllocateResourceTag(NLMHandle, "Apache2 Down Server Callback", + EventSignature); + + NX_WRAP_INTERFACE((void *)ap_down_server_cb, 2, (void **)&ref); + NX_WRAP_INTERFACE((void *)ap_dummy_cb, 2, (void **)&dum); + eh = RegisterForEventNotification(rt, EVENT_DOWN_SERVER, + EVENT_PRIORITY_APPLICATION, + ref, dum, NULL); + + // clean-up + NXVmRegisterExitHandler(ap_cb_destroy, NULL); + +} + -- cgit 1.2.3-korg