7045614 Move Apache Web server to userland
6844584 mod_perl packaging improvements
81 files added
4 files modified
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | include ../../../make-rules/shared-macros.mk |
| | | |
| | | COMPONENT_NAME= mod_dtrace |
| | | COMPONENT_VERSION= 0.3.1 |
| | | COMPONENT_SRC= src |
| | | |
| | | include ../../../make-rules/justmake.mk |
| | | include ../../../make-rules/ips.mk |
| | | |
| | | APACHE_USR_PREFIX=/usr/apache2/2.2 |
| | | |
| | | $(BUILD_DIR_32)/.built: COMPONENT_BUILD_ARGS += APXS=$(APACHE_USR_PREFIX)/bin/apxs |
| | | $(BUILD_DIR_64)/.built: COMPONENT_BUILD_ARGS += APXS=$(APACHE_USR_PREFIX)/bin/$(MACH64)/apxs |
| | | $(BUILD_DIR_32)/.built: COMPONENT_BUILD_ARGS += DTRACE="/usr/sbin/dtrace -32" |
| | | $(BUILD_DIR_64)/.built: COMPONENT_BUILD_ARGS += DTRACE="/usr/sbin/dtrace -64" |
| | | |
| | | PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin |
| | | |
| | | download: |
| | | |
| | | clobber: clean |
| | | |
| | | $(SOURCE_DIR)/.prep: |
| | | $(TOUCH) $@ |
| | | |
| | | clean:: |
| | | $(RM) $(SOURCE_DIR)/.prep |
| | | |
| | | build: $(BUILD_32_and_64) |
| | | |
| | | test: $(NO_TESTS) |
| | | |
| | | BUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS) |
| | | |
| | | include ../../../make-rules/depend.mk |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | set name=pkg.fmri \ |
| | | value=pkg:/web/server/apache-22/module/apache-dtrace@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) |
| | | set name=pkg.summary \ |
| | | value="DTrace plugin for Apache Web Server V2.2" |
| | | set name=info.classification \ |
| | | value="org.opensolaris.category.2008:Web Services/Application and Web Servers" |
| | | set name=info.upstream_url value="http://prefetch.net/projects/apache_modtrace/" |
| | | set name=opensolaris.arc_url \ |
| | | value=http://arc.opensolaris.org/caselog/PSARC/2008/090 |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | |
| | | license apache.license license="Apache v2.0" |
| | | |
| | | dir path=etc |
| | | dir path=etc/apache2 |
| | | dir path=etc/apache2/2.2 |
| | | dir path=etc/apache2/2.2/conf.d |
| | | dir path=usr |
| | | dir path=usr/apache2 |
| | | dir path=usr/apache2/2.2 |
| | | dir path=usr/apache2/2.2/libexec |
| | | dir path=usr/apache2/2.2/libexec/$(MACH64) |
| | | file dtrace.conf path=etc/apache2/2.2/conf.d/dtrace.conf mode=0644 preserve=renamenew \ |
| | | original_name=SUNWapch22m-dtrace:etc/apache2/2.2/conf.d/dtrace.conf |
| | | file build/$(MACH32)/.libs/mod_dtrace.so path=usr/apache2/2.2/libexec/mod_dtrace.so |
| | | file build/$(MACH64)/.libs/mod_dtrace.so path=usr/apache2/2.2/libexec/$(MACH64)/mod_dtrace.so |
| | | |
| | | legacy pkg=SUNWapch22m-dtrace \ |
| | | name="DTrace plugin for Apache Web Server V2.2" \ |
| | | desc="Dtrace plugin for Apache Web Server Version 2.2" |
| | | |
| | | legacy pkg=SUNWapch22r-dtrace \ |
| | | name="DTrace plugin for Apache Web Server V2.2" \ |
| | | desc="Dtrace plugin for Apache Web Server Version 2.2" |
New file |
| | |
| | | Apache License |
| | | Version 2.0, January 2004 |
| | | http://www.apache.org/licenses/ |
| | | |
| | | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION |
| | | |
| | | 1. Definitions. |
| | | |
| | | "License" shall mean the terms and conditions for use, reproduction, |
| | | and distribution as defined by Sections 1 through 9 of this document. |
| | | |
| | | "Licensor" shall mean the copyright owner or entity authorized by |
| | | the copyright owner that is granting the License. |
| | | |
| | | "Legal Entity" shall mean the union of the acting entity and all |
| | | other entities that control, are controlled by, or are under common |
| | | control with that entity. For the purposes of this definition, |
| | | "control" means (i) the power, direct or indirect, to cause the |
| | | direction or management of such entity, whether by contract or |
| | | otherwise, or (ii) ownership of fifty percent (50%) or more of the |
| | | outstanding shares, or (iii) beneficial ownership of such entity. |
| | | |
| | | "You" (or "Your") shall mean an individual or Legal Entity |
| | | exercising permissions granted by this License. |
| | | |
| | | "Source" form shall mean the preferred form for making modifications, |
| | | including but not limited to software source code, documentation |
| | | source, and configuration files. |
| | | |
| | | "Object" form shall mean any form resulting from mechanical |
| | | transformation or translation of a Source form, including but |
| | | not limited to compiled object code, generated documentation, |
| | | and conversions to other media types. |
| | | |
| | | "Work" shall mean the work of authorship, whether in Source or |
| | | Object form, made available under the License, as indicated by a |
| | | copyright notice that is included in or attached to the work |
| | | (an example is provided in the Appendix below). |
| | | |
| | | "Derivative Works" shall mean any work, whether in Source or Object |
| | | form, that is based on (or derived from) the Work and for which the |
| | | editorial revisions, annotations, elaborations, or other modifications |
| | | represent, as a whole, an original work of authorship. For the purposes |
| | | of this License, Derivative Works shall not include works that remain |
| | | separable from, or merely link (or bind by name) to the interfaces of, |
| | | the Work and Derivative Works thereof. |
| | | |
| | | "Contribution" shall mean any work of authorship, including |
| | | the original version of the Work and any modifications or additions |
| | | to that Work or Derivative Works thereof, that is intentionally |
| | | submitted to Licensor for inclusion in the Work by the copyright owner |
| | | or by an individual or Legal Entity authorized to submit on behalf of |
| | | the copyright owner. For the purposes of this definition, "submitted" |
| | | means any form of electronic, verbal, or written communication sent |
| | | to the Licensor or its representatives, including but not limited to |
| | | communication on electronic mailing lists, source code control systems, |
| | | and issue tracking systems that are managed by, or on behalf of, the |
| | | Licensor for the purpose of discussing and improving the Work, but |
| | | excluding communication that is conspicuously marked or otherwise |
| | | designated in writing by the copyright owner as "Not a Contribution." |
| | | |
| | | "Contributor" shall mean Licensor and any individual or Legal Entity |
| | | on behalf of whom a Contribution has been received by Licensor and |
| | | subsequently incorporated within the Work. |
| | | |
| | | 2. Grant of Copyright License. Subject to the terms and conditions of |
| | | this License, each Contributor hereby grants to You a perpetual, |
| | | worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
| | | copyright license to reproduce, prepare Derivative Works of, |
| | | publicly display, publicly perform, sublicense, and distribute the |
| | | Work and such Derivative Works in Source or Object form. |
| | | |
| | | 3. Grant of Patent License. Subject to the terms and conditions of |
| | | this License, each Contributor hereby grants to You a perpetual, |
| | | worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
| | | (except as stated in this section) patent license to make, have made, |
| | | use, offer to sell, sell, import, and otherwise transfer the Work, |
| | | where such license applies only to those patent claims licensable |
| | | by such Contributor that are necessarily infringed by their |
| | | Contribution(s) alone or by combination of their Contribution(s) |
| | | with the Work to which such Contribution(s) was submitted. If You |
| | | institute patent litigation against any entity (including a |
| | | cross-claim or counterclaim in a lawsuit) alleging that the Work |
| | | or a Contribution incorporated within the Work constitutes direct |
| | | or contributory patent infringement, then any patent licenses |
| | | granted to You under this License for that Work shall terminate |
| | | as of the date such litigation is filed. |
| | | |
| | | 4. Redistribution. You may reproduce and distribute copies of the |
| | | Work or Derivative Works thereof in any medium, with or without |
| | | modifications, and in Source or Object form, provided that You |
| | | meet the following conditions: |
| | | |
| | | (a) You must give any other recipients of the Work or |
| | | Derivative Works a copy of this License; and |
| | | |
| | | (b) You must cause any modified files to carry prominent notices |
| | | stating that You changed the files; and |
| | | |
| | | (c) You must retain, in the Source form of any Derivative Works |
| | | that You distribute, all copyright, patent, trademark, and |
| | | attribution notices from the Source form of the Work, |
| | | excluding those notices that do not pertain to any part of |
| | | the Derivative Works; and |
| | | |
| | | (d) If the Work includes a "NOTICE" text file as part of its |
| | | distribution, then any Derivative Works that You distribute must |
| | | include a readable copy of the attribution notices contained |
| | | within such NOTICE file, excluding those notices that do not |
| | | pertain to any part of the Derivative Works, in at least one |
| | | of the following places: within a NOTICE text file distributed |
| | | as part of the Derivative Works; within the Source form or |
| | | documentation, if provided along with the Derivative Works; or, |
| | | within a display generated by the Derivative Works, if and |
| | | wherever such third-party notices normally appear. The contents |
| | | of the NOTICE file are for informational purposes only and |
| | | do not modify the License. You may add Your own attribution |
| | | notices within Derivative Works that You distribute, alongside |
| | | or as an addendum to the NOTICE text from the Work, provided |
| | | that such additional attribution notices cannot be construed |
| | | as modifying the License. |
| | | |
| | | You may add Your own copyright statement to Your modifications and |
| | | may provide additional or different license terms and conditions |
| | | for use, reproduction, or distribution of Your modifications, or |
| | | for any such Derivative Works as a whole, provided Your use, |
| | | reproduction, and distribution of the Work otherwise complies with |
| | | the conditions stated in this License. |
| | | |
| | | 5. Submission of Contributions. Unless You explicitly state otherwise, |
| | | any Contribution intentionally submitted for inclusion in the Work |
| | | by You to the Licensor shall be under the terms and conditions of |
| | | this License, without any additional terms or conditions. |
| | | Notwithstanding the above, nothing herein shall supersede or modify |
| | | the terms of any separate license agreement you may have executed |
| | | with Licensor regarding such Contributions. |
| | | |
| | | 6. Trademarks. This License does not grant permission to use the trade |
| | | names, trademarks, service marks, or product names of the Licensor, |
| | | except as required for reasonable and customary use in describing the |
| | | origin of the Work and reproducing the content of the NOTICE file. |
| | | |
| | | 7. Disclaimer of Warranty. Unless required by applicable law or |
| | | agreed to in writing, Licensor provides the Work (and each |
| | | Contributor provides its Contributions) on an "AS IS" BASIS, |
| | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
| | | implied, including, without limitation, any warranties or conditions |
| | | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A |
| | | PARTICULAR PURPOSE. You are solely responsible for determining the |
| | | appropriateness of using or redistributing the Work and assume any |
| | | risks associated with Your exercise of permissions under this License. |
| | | |
| | | 8. Limitation of Liability. In no event and under no legal theory, |
| | | whether in tort (including negligence), contract, or otherwise, |
| | | unless required by applicable law (such as deliberate and grossly |
| | | negligent acts) or agreed to in writing, shall any Contributor be |
| | | liable to You for damages, including any direct, indirect, special, |
| | | incidental, or consequential damages of any character arising as a |
| | | result of this License or out of the use or inability to use the |
| | | Work (including but not limited to damages for loss of goodwill, |
| | | work stoppage, computer failure or malfunction, or any and all |
| | | other commercial damages or losses), even if such Contributor |
| | | has been advised of the possibility of such damages. |
| | | |
| | | 9. Accepting Warranty or Additional Liability. While redistributing |
| | | the Work or Derivative Works thereof, You may choose to offer, |
| | | and charge a fee for, acceptance of support, warranty, indemnity, |
| | | or other liability obligations and/or rights consistent with this |
| | | License. However, in accepting such obligations, You may act only |
| | | on Your own behalf and on Your sole responsibility, not on behalf |
| | | of any other Contributor, and only if You agree to indemnify, |
| | | defend, and hold each Contributor harmless for any liability |
| | | incurred by, or claims asserted against, such Contributor by reason |
| | | of your accepting any such warranty or additional liability. |
| | | |
| | | END OF TERMS AND CONDITIONS |
| | | |
| | | APPENDIX: How to apply the Apache License to your work. |
| | | |
| | | To apply the Apache License to your work, attach the following |
| | | boilerplate notice, with the fields enclosed by brackets "[]" |
| | | replaced with your own identifying information. (Don't include |
| | | the brackets!) The text should be enclosed in the appropriate |
| | | comment syntax for the file format. We also recommend that a |
| | | file or class name and description of purpose be included on the |
| | | same "printed page" as the copyright notice for easier |
| | | identification within third-party archives. |
| | | |
| | | Copyright [yyyy] [name of copyright owner] |
| | | |
| | | Licensed 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. |
New file |
| | |
| | | |
| | | <IfDefine 64bit> |
| | | LoadModule dtrace_module libexec/64/mod_dtrace.so |
| | | </IfDefine> |
| | | <IfDefine !64bit> |
| | | LoadModule dtrace_module libexec/mod_dtrace.so |
| | | </IfDefine> |
| | | |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | APXS=apxs |
| | | DTRACE=/usr/sbin/dtrace |
| | | |
| | | CC=`$(APXS) -q CC` |
| | | CFLAGS=`$(APXS) -q CFLAGS` |
| | | LDFLAGS_SHLIB=`$(APXS) -q LDFLAGS_SHLIB` |
| | | |
| | | all: .libs/mod_dtrace.so |
| | | |
| | | .libs/mod_dtrace.o: mod_dtrace.c |
| | | $(APXS) -c -o mod_dtrace.so mod_dtrace.c && rm .libs/mod_dtrace.so |
| | | |
| | | apache.o: .libs/mod_dtrace.o apache.d |
| | | $(DTRACE) -G -o apache.o -s apache.d .libs/mod_dtrace.o |
| | | |
| | | .libs/mod_dtrace.so: apache.o mapfile .libs/mod_dtrace.o |
| | | $(CC) -M mapfile $(CFLAGS) -KPIC -G $(LDFLAGS_SHLIB) -o .libs/mod_dtrace.so .libs/mod_dtrace.o apache.o |
| | | |
| | | clean: |
| | | -rm -f *.o *.so *.lo *.la *.slo |
| | | -rm -rf .libs |
New file |
| | |
| | | provider apache { |
| | | probe receive__request(uintptr_t); |
| | | probe log__request(uintptr_t,string,string); |
| | | probe create__child(); |
| | | probe accept__connection(uintptr_t); |
| | | probe check__user__credentials(uintptr_t); |
| | | probe check__access(uintptr_t); |
| | | probe check__authorization(uintptr_t); |
| | | }; |
| | | |
New file |
| | |
| | | data = R0x1000000; |
| | | { |
| | | local: |
| | | apache_receive_request; |
| | | apache_log_request; |
| | | apache_create_child; |
| | | apache_accept_connection; |
| | | apache_check_user; |
| | | apache_check_access; |
| | | apache_check_authorization; |
| | | dtrace_register_hooks; |
| | | }; |
| | | |
New file |
| | |
| | | /* |
| | | * License: |
| | | * Copyright 2004 The Apache Software Foundation |
| | | * |
| | | * Licensed 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. |
| | | * |
| | | * Module Name: mod_dtrace |
| | | * |
| | | * Purpose: Apache implements a set of hooks and filters to allow |
| | | * modules to view and modify requests sent to the server. |
| | | * This module takes advantage of this architecture to |
| | | * implement several DTrace hooks. |
| | | * |
| | | * Notes: To get the most use out of the mod_dtrace Apache module, it will |
| | | * be useful to familiarize yourself with the Apache request_rec, |
| | | * server_rec and conn_rec structures. These can be viewed on the |
| | | * docx website: |
| | | * |
| | | * http://docx.webperf.org/httpd_8h-source.html |
| | | * |
| | | * A basic overview of each structure is included below: |
| | | * |
| | | * request_rec : Contains all of the attributes (URI, filename, |
| | | * method, bytes_sent) needed to describe an |
| | | * HTTP request |
| | | * |
| | | * conn_rec : Stores the connection attributes including |
| | | * IP addresses and ports |
| | | * |
| | | * server_rec : Stores information to describe each virtual server |
| | | * |
| | | * Last Modified: 02-08-2007 |
| | | * |
| | | * Author: Matty < matty91 at gmail dot com > |
| | | * |
| | | * Version: 0.3a |
| | | * |
| | | * Release history: |
| | | * |
| | | * 0.3a: Fixed bug due to NULL values -- Sebastien Bouchex Bellomie |
| | | * |
| | | * 0.2a: Initial release |
| | | * |
| | | * Build instructions are available at the following site: |
| | | * http://prefetch.net/projects/apache_modtrace/build.txt |
| | | * |
| | | */ |
| | | |
| | | #include "ap_config.h" |
| | | #include "httpd.h" |
| | | #include "http_config.h" |
| | | #include "http_connection.h" |
| | | #include "http_protocol.h" |
| | | #include "http_request.h" |
| | | #include <sys/sdt.h> |
| | | |
| | | module AP_MODULE_DECLARE_DATA dtrace_module; |
| | | |
| | | /* |
| | | * Probe Function Purpoose: |
| | | * This probe will fire each time a request is send to the server. |
| | | * |
| | | * arg0 -> address of the request_rec structure |
| | | */ |
| | | int apache_receive_request(request_rec *r) |
| | | { |
| | | DTRACE_PROBE1(apache, |
| | | receive__request, |
| | | r); |
| | | |
| | | return DECLINED; |
| | | } |
| | | |
| | | /* |
| | | * This probe will fire each time the web server invokes the logging handlers. |
| | | * Since the request_rec, server_rec and conn_rec should be completely filled |
| | | * in when this probe fires -- this will be a useful probe. |
| | | * |
| | | * arg0 -> The address of the request_rec structure |
| | | */ |
| | | int apache_log_request(request_rec *r) |
| | | { |
| | | /* apr_table_get will return the value of User-Agent or NULL */ |
| | | const char *userAgent = NULL; |
| | | if (r->headers_in != NULL) |
| | | { |
| | | userAgent = apr_table_get(r->headers_in, "User-Agent"); |
| | | } |
| | | |
| | | /* apr_table_get will return the value of Location or NULL */ |
| | | const char *redirectLocation = NULL; |
| | | if (r->headers_out) { |
| | | redirectLocation = apr_table_get(r->headers_out, "Location"); |
| | | } |
| | | |
| | | DTRACE_PROBE3(apache, |
| | | log__request, |
| | | r, |
| | | userAgent, |
| | | redirectLocation); |
| | | |
| | | return DECLINED; |
| | | } |
| | | |
| | | /* |
| | | * This probe will fire each time an httpd child process is created |
| | | */ |
| | | void apache_create_child(apr_pool_t *p, server_rec *s) |
| | | { |
| | | DTRACE_PROBE(apache, |
| | | create__child); |
| | | } |
| | | |
| | | /* |
| | | * This probe will fire each time a new TCP connection is created |
| | | * |
| | | * arg0 -> Client's IP address |
| | | */ |
| | | int apache_accept_connection(conn_rec *c, void *csd) |
| | | { |
| | | DTRACE_PROBE1(apache, |
| | | accept__connection, |
| | | c); |
| | | |
| | | return DECLINED; |
| | | } |
| | | |
| | | /* |
| | | * This probe will fire when the authentication stage is encountered |
| | | * |
| | | * arg0 -> The address of the request_rec structure |
| | | * |
| | | */ |
| | | int apache_check_user(request_rec *r) |
| | | { |
| | | DTRACE_PROBE1(apache, |
| | | check__user__credentials, |
| | | r); |
| | | |
| | | return DECLINED; |
| | | } |
| | | |
| | | /* |
| | | * This probe will fire when the access checking stage is encountered |
| | | * |
| | | * arg0 -> The address of the request_rec structure |
| | | * |
| | | */ |
| | | int apache_check_access(request_rec *r) |
| | | { |
| | | DTRACE_PROBE1(apache, |
| | | check__access, |
| | | r); |
| | | |
| | | return DECLINED; |
| | | } |
| | | |
| | | /* |
| | | * This probe will fire when the authorization checking stage is encountered |
| | | * |
| | | * arg0 -> The address of the request_rec structure |
| | | * |
| | | */ |
| | | int apache_check_authorization(request_rec *r) |
| | | { |
| | | DTRACE_PROBE1(apache, |
| | | check__authorization, |
| | | r); |
| | | |
| | | return DECLINED; |
| | | } |
| | | |
| | | /* |
| | | * Define the hooks and the functions registered to those hooks |
| | | */ |
| | | void dtrace_register_hooks(apr_pool_t *p) |
| | | { |
| | | ap_hook_post_read_request(apache_receive_request,NULL,NULL,APR_HOOK_MIDDLE); |
| | | ap_hook_child_init(apache_create_child,NULL, NULL, APR_HOOK_MIDDLE); |
| | | ap_hook_pre_connection(apache_accept_connection,NULL, NULL, APR_HOOK_MIDDLE); |
| | | ap_hook_check_user_id(apache_check_user,NULL,NULL,APR_HOOK_MIDDLE); |
| | | ap_hook_access_checker(apache_check_access,NULL,NULL,APR_HOOK_MIDDLE); |
| | | ap_hook_auth_checker(apache_check_authorization,NULL,NULL,APR_HOOK_MIDDLE); |
| | | ap_hook_log_transaction(apache_log_request,NULL,NULL,APR_HOOK_MIDDLE); |
| | | } |
| | | |
| | | module AP_MODULE_DECLARE_DATA dtrace_module = |
| | | { |
| | | STANDARD20_MODULE_STUFF, |
| | | NULL, |
| | | NULL, |
| | | NULL, |
| | | NULL, |
| | | NULL, |
| | | dtrace_register_hooks |
| | | }; |
| | | |
| | | |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | include ../../../make-rules/shared-macros.mk |
| | | |
| | | COMPONENT_NAME= mod_fcgid |
| | | COMPONENT_VERSION= 2.3.6 |
| | | COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION) |
| | | COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz |
| | | COMPONENT_ARCHIVE_HASH= sha1:018245896f331909e896685ab3ca86b163846e4d |
| | | COMPONENT_ARCHIVE_URL= http://archive.apache.org/dist/httpd/mod_fcgid/$(COMPONENT_ARCHIVE) |
| | | |
| | | include ../../../make-rules/prep.mk |
| | | include ../../../make-rules/justmake.mk |
| | | include ../../../make-rules/ips.mk |
| | | |
| | | PATCH_LEVEL=0 |
| | | |
| | | APACHE_USR_PREFIX=/usr/apache2/2.2 |
| | | |
| | | $(BUILD_DIR_32)/.built: APXS=$(APACHE_USR_PREFIX)/bin/apxs |
| | | $(BUILD_DIR_64)/.built: APXS=$(APACHE_USR_PREFIX)/bin/$(MACH64)/apxs |
| | | |
| | | COMPONENT_PRE_BUILD_ACTION= ( cd $(@D); APXS=$(APXS) ./configure.apxs ) |
| | | |
| | | PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin |
| | | |
| | | build: $(BUILD_32_and_64) |
| | | |
| | | install: $(INSTALL_32_and_64) |
| | | |
| | | test: $(NO_TESTS) |
| | | |
| | | BUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS) |
| | | |
| | | include ../../../make-rules/depend.mk |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | set name=pkg.fmri \ |
| | | value=pkg:/web/server/apache-22/module/apache-fcgid@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) |
| | | set name=pkg.summary \ |
| | | value="FastCGI plugin for Apache Web Server V2.2" |
| | | set name=pkg.description \ |
| | | value="FastCGI plugin for Apache Web Server Version 2.2" |
| | | set name=info.classification \ |
| | | value="org.opensolaris.category.2008:Web Services/Application and Web Servers" |
| | | set name=info.upstream_url value="http://httpd.apache.org/mod_fcgid/" |
| | | set name=info.source_url value=$(COMPONENT_ARCHIVE_URL) |
| | | set name=opensolaris.arc_url \ |
| | | value=http://arc.opensolaris.org/caselog/LSARC/2009/600 |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | |
| | | license apache.license license="Apache v2.0" |
| | | |
| | | dir path=etc |
| | | dir path=etc/apache2 |
| | | dir path=etc/apache2/2.2 |
| | | dir path=etc/apache2/2.2/conf.d |
| | | dir path=usr |
| | | dir path=usr/apache2 |
| | | dir path=usr/apache2/2.2 |
| | | dir path=usr/apache2/2.2/libexec |
| | | dir path=usr/apache2/2.2/libexec/$(MACH64) |
| | | dir path=usr/apache2/2.2/manual |
| | | dir path=usr/apache2/2.2/manual/mod |
| | | file fcgid.conf path=etc/apache2/2.2/conf.d/fcgid.conf mode=0644 preserve=renamenew \ |
| | | original_name=SUNWapch22m-fcgid:etc/apache2/2.2/conf.d/fcgid.conf |
| | | file path=usr/apache2/2.2/libexec/mod_fcgid.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_fcgid.so |
| | | file path=usr/apache2/2.2/manual/mod/mod_fcgid.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_fcgid.html |
| | | |
| | | legacy pkg=SUNWapch22m-fcgid \ |
| | | name="FastCGI plugin for Apache Web Server V2.2" \ |
| | | desc="FastCGI plugin for Apache Web Server Version 2.2 (2.3.6)" |
| | | |
| | | legacy pkg=SUNWapch22r-fcgid \ |
| | | name="FastCGI plugin for Apache Web Server V2.2" \ |
| | | desc="FastCGI plugin for Apache Web Server Version 2.2 (2.3.6)" |
New file |
| | |
| | | Apache License |
| | | Version 2.0, January 2004 |
| | | http://www.apache.org/licenses/ |
| | | |
| | | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION |
| | | |
| | | 1. Definitions. |
| | | |
| | | "License" shall mean the terms and conditions for use, reproduction, |
| | | and distribution as defined by Sections 1 through 9 of this document. |
| | | |
| | | "Licensor" shall mean the copyright owner or entity authorized by |
| | | the copyright owner that is granting the License. |
| | | |
| | | "Legal Entity" shall mean the union of the acting entity and all |
| | | other entities that control, are controlled by, or are under common |
| | | control with that entity. For the purposes of this definition, |
| | | "control" means (i) the power, direct or indirect, to cause the |
| | | direction or management of such entity, whether by contract or |
| | | otherwise, or (ii) ownership of fifty percent (50%) or more of the |
| | | outstanding shares, or (iii) beneficial ownership of such entity. |
| | | |
| | | "You" (or "Your") shall mean an individual or Legal Entity |
| | | exercising permissions granted by this License. |
| | | |
| | | "Source" form shall mean the preferred form for making modifications, |
| | | including but not limited to software source code, documentation |
| | | source, and configuration files. |
| | | |
| | | "Object" form shall mean any form resulting from mechanical |
| | | transformation or translation of a Source form, including but |
| | | not limited to compiled object code, generated documentation, |
| | | and conversions to other media types. |
| | | |
| | | "Work" shall mean the work of authorship, whether in Source or |
| | | Object form, made available under the License, as indicated by a |
| | | copyright notice that is included in or attached to the work |
| | | (an example is provided in the Appendix below). |
| | | |
| | | "Derivative Works" shall mean any work, whether in Source or Object |
| | | form, that is based on (or derived from) the Work and for which the |
| | | editorial revisions, annotations, elaborations, or other modifications |
| | | represent, as a whole, an original work of authorship. For the purposes |
| | | of this License, Derivative Works shall not include works that remain |
| | | separable from, or merely link (or bind by name) to the interfaces of, |
| | | the Work and Derivative Works thereof. |
| | | |
| | | "Contribution" shall mean any work of authorship, including |
| | | the original version of the Work and any modifications or additions |
| | | to that Work or Derivative Works thereof, that is intentionally |
| | | submitted to Licensor for inclusion in the Work by the copyright owner |
| | | or by an individual or Legal Entity authorized to submit on behalf of |
| | | the copyright owner. For the purposes of this definition, "submitted" |
| | | means any form of electronic, verbal, or written communication sent |
| | | to the Licensor or its representatives, including but not limited to |
| | | communication on electronic mailing lists, source code control systems, |
| | | and issue tracking systems that are managed by, or on behalf of, the |
| | | Licensor for the purpose of discussing and improving the Work, but |
| | | excluding communication that is conspicuously marked or otherwise |
| | | designated in writing by the copyright owner as "Not a Contribution." |
| | | |
| | | "Contributor" shall mean Licensor and any individual or Legal Entity |
| | | on behalf of whom a Contribution has been received by Licensor and |
| | | subsequently incorporated within the Work. |
| | | |
| | | 2. Grant of Copyright License. Subject to the terms and conditions of |
| | | this License, each Contributor hereby grants to You a perpetual, |
| | | worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
| | | copyright license to reproduce, prepare Derivative Works of, |
| | | publicly display, publicly perform, sublicense, and distribute the |
| | | Work and such Derivative Works in Source or Object form. |
| | | |
| | | 3. Grant of Patent License. Subject to the terms and conditions of |
| | | this License, each Contributor hereby grants to You a perpetual, |
| | | worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
| | | (except as stated in this section) patent license to make, have made, |
| | | use, offer to sell, sell, import, and otherwise transfer the Work, |
| | | where such license applies only to those patent claims licensable |
| | | by such Contributor that are necessarily infringed by their |
| | | Contribution(s) alone or by combination of their Contribution(s) |
| | | with the Work to which such Contribution(s) was submitted. If You |
| | | institute patent litigation against any entity (including a |
| | | cross-claim or counterclaim in a lawsuit) alleging that the Work |
| | | or a Contribution incorporated within the Work constitutes direct |
| | | or contributory patent infringement, then any patent licenses |
| | | granted to You under this License for that Work shall terminate |
| | | as of the date such litigation is filed. |
| | | |
| | | 4. Redistribution. You may reproduce and distribute copies of the |
| | | Work or Derivative Works thereof in any medium, with or without |
| | | modifications, and in Source or Object form, provided that You |
| | | meet the following conditions: |
| | | |
| | | (a) You must give any other recipients of the Work or |
| | | Derivative Works a copy of this License; and |
| | | |
| | | (b) You must cause any modified files to carry prominent notices |
| | | stating that You changed the files; and |
| | | |
| | | (c) You must retain, in the Source form of any Derivative Works |
| | | that You distribute, all copyright, patent, trademark, and |
| | | attribution notices from the Source form of the Work, |
| | | excluding those notices that do not pertain to any part of |
| | | the Derivative Works; and |
| | | |
| | | (d) If the Work includes a "NOTICE" text file as part of its |
| | | distribution, then any Derivative Works that You distribute must |
| | | include a readable copy of the attribution notices contained |
| | | within such NOTICE file, excluding those notices that do not |
| | | pertain to any part of the Derivative Works, in at least one |
| | | of the following places: within a NOTICE text file distributed |
| | | as part of the Derivative Works; within the Source form or |
| | | documentation, if provided along with the Derivative Works; or, |
| | | within a display generated by the Derivative Works, if and |
| | | wherever such third-party notices normally appear. The contents |
| | | of the NOTICE file are for informational purposes only and |
| | | do not modify the License. You may add Your own attribution |
| | | notices within Derivative Works that You distribute, alongside |
| | | or as an addendum to the NOTICE text from the Work, provided |
| | | that such additional attribution notices cannot be construed |
| | | as modifying the License. |
| | | |
| | | You may add Your own copyright statement to Your modifications and |
| | | may provide additional or different license terms and conditions |
| | | for use, reproduction, or distribution of Your modifications, or |
| | | for any such Derivative Works as a whole, provided Your use, |
| | | reproduction, and distribution of the Work otherwise complies with |
| | | the conditions stated in this License. |
| | | |
| | | 5. Submission of Contributions. Unless You explicitly state otherwise, |
| | | any Contribution intentionally submitted for inclusion in the Work |
| | | by You to the Licensor shall be under the terms and conditions of |
| | | this License, without any additional terms or conditions. |
| | | Notwithstanding the above, nothing herein shall supersede or modify |
| | | the terms of any separate license agreement you may have executed |
| | | with Licensor regarding such Contributions. |
| | | |
| | | 6. Trademarks. This License does not grant permission to use the trade |
| | | names, trademarks, service marks, or product names of the Licensor, |
| | | except as required for reasonable and customary use in describing the |
| | | origin of the Work and reproducing the content of the NOTICE file. |
| | | |
| | | 7. Disclaimer of Warranty. Unless required by applicable law or |
| | | agreed to in writing, Licensor provides the Work (and each |
| | | Contributor provides its Contributions) on an "AS IS" BASIS, |
| | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
| | | implied, including, without limitation, any warranties or conditions |
| | | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A |
| | | PARTICULAR PURPOSE. You are solely responsible for determining the |
| | | appropriateness of using or redistributing the Work and assume any |
| | | risks associated with Your exercise of permissions under this License. |
| | | |
| | | 8. Limitation of Liability. In no event and under no legal theory, |
| | | whether in tort (including negligence), contract, or otherwise, |
| | | unless required by applicable law (such as deliberate and grossly |
| | | negligent acts) or agreed to in writing, shall any Contributor be |
| | | liable to You for damages, including any direct, indirect, special, |
| | | incidental, or consequential damages of any character arising as a |
| | | result of this License or out of the use or inability to use the |
| | | Work (including but not limited to damages for loss of goodwill, |
| | | work stoppage, computer failure or malfunction, or any and all |
| | | other commercial damages or losses), even if such Contributor |
| | | has been advised of the possibility of such damages. |
| | | |
| | | 9. Accepting Warranty or Additional Liability. While redistributing |
| | | the Work or Derivative Works thereof, You may choose to offer, |
| | | and charge a fee for, acceptance of support, warranty, indemnity, |
| | | or other liability obligations and/or rights consistent with this |
| | | License. However, in accepting such obligations, You may act only |
| | | on Your own behalf and on Your sole responsibility, not on behalf |
| | | of any other Contributor, and only if You agree to indemnify, |
| | | defend, and hold each Contributor harmless for any liability |
| | | incurred by, or claims asserted against, such Contributor by reason |
| | | of your accepting any such warranty or additional liability. |
| | | |
| | | END OF TERMS AND CONDITIONS |
| | | |
| | | APPENDIX: How to apply the Apache License to your work. |
| | | |
| | | To apply the Apache License to your work, attach the following |
| | | boilerplate notice, with the fields enclosed by brackets "[]" |
| | | replaced with your own identifying information. (Don't include |
| | | the brackets!) The text should be enclosed in the appropriate |
| | | comment syntax for the file format. We also recommend that a |
| | | file or class name and description of purpose be included on the |
| | | same "printed page" as the copyright notice for easier |
| | | identification within third-party archives. |
| | | |
| | | Copyright [yyyy] [name of copyright owner] |
| | | |
| | | Licensed 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. |
| | | |
| | | |
| | | |
| | | APACHE HTTP SERVER SUBCOMPONENTS: |
| | | |
| | | The Apache HTTP Server includes a number of subcomponents with |
| | | separate copyright notices and license terms. Your use of the source |
| | | code for the these subcomponents is subject to the terms and |
| | | conditions of the following licenses. |
| | | |
| | | For the mod_mime_magic component: |
| | | |
| | | /* |
| | | * mod_mime_magic: MIME type lookup via file magic numbers |
| | | * Copyright (c) 1996-1997 Cisco Systems, Inc. |
| | | * |
| | | * This software was submitted by Cisco Systems to the Apache Group in July |
| | | * 1997. Future revisions and derivatives of this source code must |
| | | * acknowledge Cisco Systems as the original contributor of this module. |
| | | * All other licensing and usage conditions are those of the Apache Group. |
| | | * |
| | | * Some of this code is derived from the free version of the file command |
| | | * originally posted to comp.sources.unix. Copyright info for that program |
| | | * is included below as required. |
| | | * --------------------------------------------------------------------------- |
| | | * - Copyright (c) Ian F. Darwin, 1987. Written by Ian F. Darwin. |
| | | * |
| | | * This software is not subject to any license of the American Telephone and |
| | | * Telegraph Company or of the Regents of the University of California. |
| | | * |
| | | * Permission is granted to anyone to use this software for any purpose on any |
| | | * computer system, and to alter it and redistribute it freely, subject to |
| | | * the following restrictions: |
| | | * |
| | | * 1. The author is not responsible for the consequences of use of this |
| | | * software, no matter how awful, even if they arise from flaws in it. |
| | | * |
| | | * 2. The origin of this software must not be misrepresented, either by |
| | | * explicit claim or by omission. Since few users ever read sources, credits |
| | | * must appear in the documentation. |
| | | * |
| | | * 3. Altered versions must be plainly marked as such, and must not be |
| | | * misrepresented as being the original software. Since few users ever read |
| | | * sources, credits must appear in the documentation. |
| | | * |
| | | * 4. This notice may not be removed or altered. |
| | | * ------------------------------------------------------------------------- |
| | | * |
| | | */ |
| | | |
| | | |
| | | For the modules\mappers\mod_imagemap.c component: |
| | | |
| | | "macmartinized" polygon code copyright 1992 by Eric Haines, erich@eye.com |
| | | |
| | | For the server\util_md5.c component: |
| | | |
| | | /************************************************************************ |
| | | * NCSA HTTPd Server |
| | | * Software Development Group |
| | | * National Center for Supercomputing Applications |
| | | * University of Illinois at Urbana-Champaign |
| | | * 605 E. Springfield, Champaign, IL 61820 |
| | | * httpd@ncsa.uiuc.edu |
| | | * |
| | | * Copyright (C) 1995, Board of Trustees of the University of Illinois |
| | | * |
| | | ************************************************************************ |
| | | * |
| | | * md5.c: NCSA HTTPd code which uses the md5c.c RSA Code |
| | | * |
| | | * Original Code Copyright (C) 1994, Jeff Hostetler, Spyglass, Inc. |
| | | * Portions of Content-MD5 code Copyright (C) 1993, 1994 by Carnegie Mellon |
| | | * University (see Copyright below). |
| | | * Portions of Content-MD5 code Copyright (C) 1991 Bell Communications |
| | | * Research, Inc. (Bellcore) (see Copyright below). |
| | | * Portions extracted from mpack, John G. Myers - jgm+@cmu.edu |
| | | * Content-MD5 Code contributed by Martin Hamilton (martin@net.lut.ac.uk) |
| | | * |
| | | */ |
| | | |
| | | |
| | | /* these portions extracted from mpack, John G. Myers - jgm+@cmu.edu */ |
| | | /* (C) Copyright 1993,1994 by Carnegie Mellon University |
| | | * All Rights Reserved. |
| | | * |
| | | * Permission to use, copy, modify, distribute, and sell this software |
| | | * and its documentation for any purpose is hereby granted without |
| | | * fee, provided that the above copyright notice appear in all copies |
| | | * and that both that copyright notice and this permission notice |
| | | * appear in supporting documentation, and that the name of Carnegie |
| | | * Mellon University not be used in advertising or publicity |
| | | * pertaining to distribution of the software without specific, |
| | | * written prior permission. Carnegie Mellon University makes no |
| | | * representations about the suitability of this software for any |
| | | * purpose. It is provided "as is" without express or implied |
| | | * warranty. |
| | | * |
| | | * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO |
| | | * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY |
| | | * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE |
| | | * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
| | | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN |
| | | * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING |
| | | * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS |
| | | * SOFTWARE. |
| | | */ |
| | | |
| | | /* |
| | | * Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) |
| | | * |
| | | * Permission to use, copy, modify, and distribute this material |
| | | * for any purpose and without fee is hereby granted, provided |
| | | * that the above copyright notice and this permission notice |
| | | * appear in all copies, and that the name of Bellcore not be |
| | | * used in advertising or publicity pertaining to this |
| | | * material without the specific, prior written permission |
| | | * of an authorized representative of Bellcore. BELLCORE |
| | | * MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY |
| | | * OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", |
| | | * WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. |
| | | */ |
| | | |
| | | For the srclib\apr\include\apr_md5.h component: |
| | | /* |
| | | * This is work is derived from material Copyright RSA Data Security, Inc. |
| | | * |
| | | * The RSA copyright statement and Licence for that original material is |
| | | * included below. This is followed by the Apache copyright statement and |
| | | * licence for the modifications made to that material. |
| | | */ |
| | | |
| | | /* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All |
| | | rights reserved. |
| | | |
| | | License to copy and use this software is granted provided that it |
| | | is identified as the "RSA Data Security, Inc. MD5 Message-Digest |
| | | Algorithm" in all material mentioning or referencing this software |
| | | or this function. |
| | | |
| | | License is also granted to make and use derivative works provided |
| | | that such works are identified as "derived from the RSA Data |
| | | Security, Inc. MD5 Message-Digest Algorithm" in all material |
| | | mentioning or referencing the derived work. |
| | | |
| | | RSA Data Security, Inc. makes no representations concerning either |
| | | the merchantability of this software or the suitability of this |
| | | software for any particular purpose. It is provided "as is" |
| | | without express or implied warranty of any kind. |
| | | |
| | | These notices must be retained in any copies of any part of this |
| | | documentation and/or software. |
| | | */ |
| | | |
| | | For the srclib\apr\passwd\apr_md5.c component: |
| | | |
| | | /* |
| | | * This is work is derived from material Copyright RSA Data Security, Inc. |
| | | * |
| | | * The RSA copyright statement and Licence for that original material is |
| | | * included below. This is followed by the Apache copyright statement and |
| | | * licence for the modifications made to that material. |
| | | */ |
| | | |
| | | /* MD5C.C - RSA Data Security, Inc., MD5 message-digest algorithm |
| | | */ |
| | | |
| | | /* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All |
| | | rights reserved. |
| | | |
| | | License to copy and use this software is granted provided that it |
| | | is identified as the "RSA Data Security, Inc. MD5 Message-Digest |
| | | Algorithm" in all material mentioning or referencing this software |
| | | or this function. |
| | | |
| | | License is also granted to make and use derivative works provided |
| | | that such works are identified as "derived from the RSA Data |
| | | Security, Inc. MD5 Message-Digest Algorithm" in all material |
| | | mentioning or referencing the derived work. |
| | | |
| | | RSA Data Security, Inc. makes no representations concerning either |
| | | the merchantability of this software or the suitability of this |
| | | software for any particular purpose. It is provided "as is" |
| | | without express or implied warranty of any kind. |
| | | |
| | | These notices must be retained in any copies of any part of this |
| | | documentation and/or software. |
| | | */ |
| | | /* |
| | | * The apr_md5_encode() routine uses much code obtained from the FreeBSD 3.0 |
| | | * MD5 crypt() function, which is licenced as follows: |
| | | * ---------------------------------------------------------------------------- |
| | | * "THE BEER-WARE LICENSE" (Revision 42): |
| | | * <phk@login.dknet.dk> wrote this file. As long as you retain this notice you |
| | | * can do whatever you want with this stuff. If we meet some day, and you think |
| | | * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp |
| | | * ---------------------------------------------------------------------------- |
| | | */ |
| | | |
| | | For the srclib\apr-util\crypto\apr_md4.c component: |
| | | |
| | | * This is derived from material copyright RSA Data Security, Inc. |
| | | * Their notice is reproduced below in its entirety. |
| | | * |
| | | * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All |
| | | * rights reserved. |
| | | * |
| | | * License to copy and use this software is granted provided that it |
| | | * is identified as the "RSA Data Security, Inc. MD4 Message-Digest |
| | | * Algorithm" in all material mentioning or referencing this software |
| | | * or this function. |
| | | * |
| | | * License is also granted to make and use derivative works provided |
| | | * that such works are identified as "derived from the RSA Data |
| | | * Security, Inc. MD4 Message-Digest Algorithm" in all material |
| | | * mentioning or referencing the derived work. |
| | | * |
| | | * RSA Data Security, Inc. makes no representations concerning either |
| | | * the merchantability of this software or the suitability of this |
| | | * software for any particular purpose. It is provided "as is" |
| | | * without express or implied warranty of any kind. |
| | | * |
| | | * These notices must be retained in any copies of any part of this |
| | | * documentation and/or software. |
| | | */ |
| | | |
| | | For the srclib\apr-util\include\apr_md4.h component: |
| | | |
| | | * |
| | | * This is derived from material copyright RSA Data Security, Inc. |
| | | * Their notice is reproduced below in its entirety. |
| | | * |
| | | * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All |
| | | * rights reserved. |
| | | * |
| | | * License to copy and use this software is granted provided that it |
| | | * is identified as the "RSA Data Security, Inc. MD4 Message-Digest |
| | | * Algorithm" in all material mentioning or referencing this software |
| | | * or this function. |
| | | * |
| | | * License is also granted to make and use derivative works provided |
| | | * that such works are identified as "derived from the RSA Data |
| | | * Security, Inc. MD4 Message-Digest Algorithm" in all material |
| | | * mentioning or referencing the derived work. |
| | | * |
| | | * RSA Data Security, Inc. makes no representations concerning either |
| | | * the merchantability of this software or the suitability of this |
| | | * software for any particular purpose. It is provided "as is" |
| | | * without express or implied warranty of any kind. |
| | | * |
| | | * These notices must be retained in any copies of any part of this |
| | | * documentation and/or software. |
| | | */ |
| | | |
| | | |
| | | For the srclib\apr-util\test\testmd4.c component: |
| | | |
| | | * |
| | | * This is derived from material copyright RSA Data Security, Inc. |
| | | * Their notice is reproduced below in its entirety. |
| | | * |
| | | * Copyright (C) 1990-2, RSA Data Security, Inc. Created 1990. All |
| | | * rights reserved. |
| | | * |
| | | * RSA Data Security, Inc. makes no representations concerning either |
| | | * the merchantability of this software or the suitability of this |
| | | * software for any particular purpose. It is provided "as is" |
| | | * without express or implied warranty of any kind. |
| | | * |
| | | * These notices must be retained in any copies of any part of this |
| | | * documentation and/or software. |
| | | */ |
| | | |
| | | For the srclib\apr-util\xml\expat\conftools\install-sh component: |
| | | |
| | | # |
| | | # install - install a program, script, or datafile |
| | | # This comes from X11R5 (mit/util/scripts/install.sh). |
| | | # |
| | | # Copyright 1991 by the Massachusetts Institute of Technology |
| | | # |
| | | # Permission to use, copy, modify, distribute, and sell this software and its |
| | | # documentation for any purpose is hereby granted without fee, provided that |
| | | # the above copyright notice appear in all copies and that both that |
| | | # copyright notice and this permission notice appear in supporting |
| | | # documentation, and that the name of M.I.T. not be used in advertising or |
| | | # publicity pertaining to distribution of the software without specific, |
| | | # written prior permission. M.I.T. makes no representations about the |
| | | # suitability of this software for any purpose. It is provided "as is" |
| | | # without express or implied warranty. |
| | | # |
| | | |
| | | For the srclib\pcre\install-sh component: |
| | | |
| | | # |
| | | # Copyright 1991 by the Massachusetts Institute of Technology |
| | | # |
| | | # Permission to use, copy, modify, distribute, and sell this software and its |
| | | # documentation for any purpose is hereby granted without fee, provided that |
| | | # the above copyright notice appear in all copies and that both that |
| | | # copyright notice and this permission notice appear in supporting |
| | | # documentation, and that the name of M.I.T. not be used in advertising or |
| | | # publicity pertaining to distribution of the software without specific, |
| | | # written prior permission. M.I.T. makes no representations about the |
| | | # suitability of this software for any purpose. It is provided "as is" |
| | | # without express or implied warranty. |
| | | |
| | | For the pcre component: |
| | | |
| | | PCRE LICENCE |
| | | ------------ |
| | | |
| | | PCRE is a library of functions to support regular expressions whose syntax |
| | | and semantics are as close as possible to those of the Perl 5 language. |
| | | |
| | | Release 5 of PCRE is distributed under the terms of the "BSD" licence, as |
| | | specified below. The documentation for PCRE, supplied in the "doc" |
| | | directory, is distributed under the same terms as the software itself. |
| | | |
| | | Written by: Philip Hazel <ph10@cam.ac.uk> |
| | | |
| | | University of Cambridge Computing Service, |
| | | Cambridge, England. Phone: +44 1223 334714. |
| | | |
| | | Copyright (c) 1997-2004 University of Cambridge |
| | | All rights reserved. |
| | | |
| | | Redistribution and use in source and binary forms, with or without |
| | | modification, are permitted provided that the following conditions are met: |
| | | |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | this list of conditions and the following disclaimer. |
| | | |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | notice, this list of conditions and the following disclaimer in the |
| | | documentation and/or other materials provided with the distribution. |
| | | |
| | | * Neither the name of the University of Cambridge nor the names of its |
| | | contributors may be used to endorse or promote products derived from |
| | | this software without specific prior written permission. |
| | | |
| | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| | | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| | | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| | | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
| | | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| | | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| | | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| | | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| | | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| | | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| | | POSSIBILITY OF SUCH DAMAGE. |
| | | |
| | | End PCRE LICENCE |
| | | |
| | | |
| | | For the test\zb.c component: |
| | | |
| | | /* ZeusBench V1.01 |
| | | =============== |
| | | |
| | | This program is Copyright (C) Zeus Technology Limited 1996. |
| | | |
| | | This program may be used and copied freely providing this copyright notice |
| | | is not removed. |
| | | |
| | | This software is provided "as is" and any express or implied waranties, |
| | | including but not limited to, the implied warranties of merchantability and |
| | | fitness for a particular purpose are disclaimed. In no event shall |
| | | Zeus Technology Ltd. be liable for any direct, indirect, incidental, special, |
| | | exemplary, or consequential damaged (including, but not limited to, |
| | | procurement of substitute good or services; loss of use, data, or profits; |
| | | or business interruption) however caused and on theory of liability. Whether |
| | | in contract, strict liability or tort (including negligence or otherwise) |
| | | arising in any way out of the use of this software, even if advised of the |
| | | possibility of such damage. |
| | | |
| | | Written by Adam Twiss (adam@zeus.co.uk). March 1996 |
| | | |
| | | Thanks to the following people for their input: |
| | | Mike Belshe (mbelshe@netscape.com) |
| | | Michael Campanella (campanella@stevms.enet.dec.com) |
| | | |
| | | */ |
| | | |
| | | For the expat xml parser component: |
| | | |
| | | Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd |
| | | and Clark Cooper |
| | | |
| | | Permission is hereby granted, free of charge, to any person obtaining |
| | | a copy of this software and associated documentation files (the |
| | | "Software"), to deal in the Software without restriction, including |
| | | without limitation the rights to use, copy, modify, merge, publish, |
| | | distribute, sublicense, and/or sell copies of the Software, and to |
| | | permit persons to whom the Software is furnished to do so, subject to |
| | | the following conditions: |
| | | |
| | | The above copyright notice and this permission notice shall be included |
| | | in all copies or substantial portions of the Software. |
| | | |
| | | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
| | | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| | | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
| | | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
| | | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
| | | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
| | | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| | | |
| | | ==================================================================== |
New file |
| | |
| | | |
| | | <IfDefine 64bit> |
| | | LoadModule fcgid_module libexec/64/mod_fcgid.so |
| | | </IfDefine> |
| | | <IfDefine !64bit> |
| | | LoadModule fcgid_module libexec/mod_fcgid.so |
| | | </IfDefine> |
| | | |
| | | <IfModule mod_fcgid.c> |
| | | FcgidProcessTableFile /var/run/apache2/2.2/fcgid_shm |
| | | FcgidIPCDir /var/run/apache2/2.2/fcgid.sock |
| | | AddHandler fcgid-script .fcgi |
| | | <Location /fcgid> |
| | | SetHandler fcgid-script |
| | | Options ExecCGI |
| | | allow from all |
| | | </Location> |
| | | </IfModule> |
| | | |
New file |
| | |
| | | # |
| | | # Fix regression in 2.3.6 which broke process controls when using vhost- |
| | | # specific configuration. |
| | | # |
| | | Index: modules/fcgid/fcgid_spawn_ctl.c |
| | | =================================================================== |
| | | --- modules/fcgid/fcgid_spawn_ctl.c (revision 1037726) |
| | | +++ modules/fcgid/fcgid_spawn_ctl.c (revision 1037727) |
| | | @@ -178,7 +178,7 @@ |
| | | if (current_node->inode == command->inode |
| | | && current_node->deviceid == command->deviceid |
| | | && !strcmp(current_node->cmdline, command->cmdline) |
| | | - && current_node->vhost_id == sconf->vhost_id |
| | | + && current_node->vhost_id == command->vhost_id |
| | | && current_node->uid == command->uid |
| | | && current_node->gid == command->gid) |
| | | break; |
New file |
| | |
| | | --- configure.apxs.orig Wed Jun 2 10:55:51 2010 |
| | | +++ configure.apxs Tue May 10 09:48:15 2011 |
| | | @@ -24,8 +24,9 @@ |
| | | # scripts expect them to be the parent of the build directory |
| | | # they fail to use the $installbuilddir path. |
| | | exp_installbuilddir=`$APXS -q exp_installbuilddir` |
| | | -top_installbuilddir=`cd $exp_installbuilddir/..; pwd` |
| | | -top_installbuilddir=`echo $exp_installbuilddir | sed -e "s#/[^/]*\\\$##;"` |
| | | +# Better to set top_builddir and top_srcdir to Apache prefix in order 64 |
| | | +# bits module is built (to avoid problem with $(MACH64) directory in path). |
| | | +top_installbuilddir=`$APXS -q prefix` |
| | | |
| | | builddir=`pwd` |
| | | srcdir=$builddir |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | include ../../../make-rules/shared-macros.mk |
| | | |
| | | COMPONENT_NAME= tomcat-connectors |
| | | COMPONENT_VERSION= 1.2.28 |
| | | COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)-src |
| | | COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz |
| | | COMPONENT_ARCHIVE_HASH= sha1:0e022e242d88f4d42cbbfa42883d02e14ad16929 |
| | | COMPONENT_ARCHIVE_URL= http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE) |
| | | |
| | | include ../../../make-rules/prep.mk |
| | | include ../../../make-rules/configure.mk |
| | | include ../../../make-rules/ips.mk |
| | | |
| | | PATCH_LEVEL=0 |
| | | |
| | | APACHE_USR_PREFIX=/usr/apache2/2.2 |
| | | |
| | | CONFIGURE_SCRIPT = $(SOURCE_DIR)/native/configure |
| | | |
| | | # Forcing CC from environment instead. Using one provided by apxs doesn't |
| | | # make mod_jk build. |
| | | CC= |
| | | |
| | | CONFIGURE_OPTIONS.32 += --with-apxs=$(APACHE_USR_PREFIX)/bin/apxs |
| | | CONFIGURE_OPTIONS.64 += --with-apxs=$(APACHE_USR_PREFIX)/bin/$(MACH64)/apxs |
| | | |
| | | # Header files are missing during build without cloning. |
| | | COMPONENT_PRE_CONFIGURE_ACTION += ($(CLONEY) $(SOURCE_DIR)/native $(@D)); |
| | | |
| | | PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin |
| | | |
| | | build: $(BUILD_32_and_64) |
| | | |
| | | test: $(NO_TESTS) |
| | | |
| | | BUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS) |
| | | |
| | | include ../../../make-rules/depend.mk |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | set name=pkg.fmri \ |
| | | value=pkg:/web/server/apache-22/module/apache-jk@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) |
| | | set name=pkg.summary \ |
| | | value="Tomcat Connector plugin for Apache Web Server V2.2" |
| | | set name=pkg.description \ |
| | | value="Tomcat Connector plugin for Apache Web Server Version 2.2" |
| | | set name=info.classification \ |
| | | value="org.opensolaris.category.2008:Web Services/Application and Web Servers" |
| | | set name=info.upstream_url value="http://tomcat.apache.org/connectors-doc/" |
| | | set name=info.source_url value=$(COMPONENT_ARCHIVE_URL) |
| | | set name=opensolaris.arc_url \ |
| | | value=http://arc.opensolaris.org/caselog/PSARC/2008/090 |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | |
| | | license apache.license license="Apache v2.0" |
| | | |
| | | dir path=etc |
| | | dir path=etc/apache2 |
| | | dir path=etc/apache2/2.2 |
| | | dir path=etc/apache2/2.2/conf.d |
| | | dir path=usr |
| | | dir path=usr/apache2 |
| | | dir path=usr/apache2/2.2 |
| | | dir path=usr/apache2/2.2/libexec |
| | | dir path=usr/apache2/2.2/libexec/$(MACH64) |
| | | file jk.conf path=etc/apache2/2.2/conf.d/jk.conf mode=0644 preserve=renamenew \ |
| | | original_name=SUNWapch22m-jk:etc/apache2/2.2/conf.d/jk.conf |
| | | file workers.properties path=etc/apache2/2.2/conf.d/workers.properties mode=0644 preserve=renamenew \ |
| | | original_name=SUNWapch22m-jk:etc/apache2/2.2/conf.d/workers.properties |
| | | file build/$(MACH32)/apache-2.0/mod_jk.so path=usr/apache2/2.2/libexec/mod_jk.so |
| | | file build/$(MACH64)/apache-2.0/mod_jk.so path=usr/apache2/2.2/libexec/$(MACH64)/mod_jk.so |
| | | |
| | | legacy pkg=SUNWapch22m-jk \ |
| | | name="Tomcat Connector plugin for Apache Web Server Version 2.2 (1.2.28)" \ |
| | | desc="Tomcat Connector plugin for Apache Web Server Version 2.2 (1.2.28)" |
| | | |
| | | legacy pkg=SUNWapch22r-jk \ |
| | | name="Tomcat Connector plugin for Apache Web Server Version 2.2 (1.2.28)" \ |
| | | desc="Tomcat Connector plugin for Apache Web Server Version 2.2 (1.2.28)" |
New file |
| | |
| | | |
| | | Apache License |
| | | Version 2.0, January 2004 |
| | | http://www.apache.org/licenses/ |
| | | |
| | | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION |
| | | |
| | | 1. Definitions. |
| | | |
| | | "License" shall mean the terms and conditions for use, reproduction, |
| | | and distribution as defined by Sections 1 through 9 of this document. |
| | | |
| | | "Licensor" shall mean the copyright owner or entity authorized by |
| | | the copyright owner that is granting the License. |
| | | |
| | | "Legal Entity" shall mean the union of the acting entity and all |
| | | other entities that control, are controlled by, or are under common |
| | | control with that entity. For the purposes of this definition, |
| | | "control" means (i) the power, direct or indirect, to cause the |
| | | direction or management of such entity, whether by contract or |
| | | otherwise, or (ii) ownership of fifty percent (50%) or more of the |
| | | outstanding shares, or (iii) beneficial ownership of such entity. |
| | | |
| | | "You" (or "Your") shall mean an individual or Legal Entity |
| | | exercising permissions granted by this License. |
| | | |
| | | "Source" form shall mean the preferred form for making modifications, |
| | | including but not limited to software source code, documentation |
| | | source, and configuration files. |
| | | |
| | | "Object" form shall mean any form resulting from mechanical |
| | | transformation or translation of a Source form, including but |
| | | not limited to compiled object code, generated documentation, |
| | | and conversions to other media types. |
| | | |
| | | "Work" shall mean the work of authorship, whether in Source or |
| | | Object form, made available under the License, as indicated by a |
| | | copyright notice that is included in or attached to the work |
| | | (an example is provided in the Appendix below). |
| | | |
| | | "Derivative Works" shall mean any work, whether in Source or Object |
| | | form, that is based on (or derived from) the Work and for which the |
| | | editorial revisions, annotations, elaborations, or other modifications |
| | | represent, as a whole, an original work of authorship. For the purposes |
| | | of this License, Derivative Works shall not include works that remain |
| | | separable from, or merely link (or bind by name) to the interfaces of, |
| | | the Work and Derivative Works thereof. |
| | | |
| | | "Contribution" shall mean any work of authorship, including |
| | | the original version of the Work and any modifications or additions |
| | | to that Work or Derivative Works thereof, that is intentionally |
| | | submitted to Licensor for inclusion in the Work by the copyright owner |
| | | or by an individual or Legal Entity authorized to submit on behalf of |
| | | the copyright owner. For the purposes of this definition, "submitted" |
| | | means any form of electronic, verbal, or written communication sent |
| | | to the Licensor or its representatives, including but not limited to |
| | | communication on electronic mailing lists, source code control systems, |
| | | and issue tracking systems that are managed by, or on behalf of, the |
| | | Licensor for the purpose of discussing and improving the Work, but |
| | | excluding communication that is conspicuously marked or otherwise |
| | | designated in writing by the copyright owner as "Not a Contribution." |
| | | |
| | | "Contributor" shall mean Licensor and any individual or Legal Entity |
| | | on behalf of whom a Contribution has been received by Licensor and |
| | | subsequently incorporated within the Work. |
| | | |
| | | 2. Grant of Copyright License. Subject to the terms and conditions of |
| | | this License, each Contributor hereby grants to You a perpetual, |
| | | worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
| | | copyright license to reproduce, prepare Derivative Works of, |
| | | publicly display, publicly perform, sublicense, and distribute the |
| | | Work and such Derivative Works in Source or Object form. |
| | | |
| | | 3. Grant of Patent License. Subject to the terms and conditions of |
| | | this License, each Contributor hereby grants to You a perpetual, |
| | | worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
| | | (except as stated in this section) patent license to make, have made, |
| | | use, offer to sell, sell, import, and otherwise transfer the Work, |
| | | where such license applies only to those patent claims licensable |
| | | by such Contributor that are necessarily infringed by their |
| | | Contribution(s) alone or by combination of their Contribution(s) |
| | | with the Work to which such Contribution(s) was submitted. If You |
| | | institute patent litigation against any entity (including a |
| | | cross-claim or counterclaim in a lawsuit) alleging that the Work |
| | | or a Contribution incorporated within the Work constitutes direct |
| | | or contributory patent infringement, then any patent licenses |
| | | granted to You under this License for that Work shall terminate |
| | | as of the date such litigation is filed. |
| | | |
| | | 4. Redistribution. You may reproduce and distribute copies of the |
| | | Work or Derivative Works thereof in any medium, with or without |
| | | modifications, and in Source or Object form, provided that You |
| | | meet the following conditions: |
| | | |
| | | (a) You must give any other recipients of the Work or |
| | | Derivative Works a copy of this License; and |
| | | |
| | | (b) You must cause any modified files to carry prominent notices |
| | | stating that You changed the files; and |
| | | |
| | | (c) You must retain, in the Source form of any Derivative Works |
| | | that You distribute, all copyright, patent, trademark, and |
| | | attribution notices from the Source form of the Work, |
| | | excluding those notices that do not pertain to any part of |
| | | the Derivative Works; and |
| | | |
| | | (d) If the Work includes a "NOTICE" text file as part of its |
| | | distribution, then any Derivative Works that You distribute must |
| | | include a readable copy of the attribution notices contained |
| | | within such NOTICE file, excluding those notices that do not |
| | | pertain to any part of the Derivative Works, in at least one |
| | | of the following places: within a NOTICE text file distributed |
| | | as part of the Derivative Works; within the Source form or |
| | | documentation, if provided along with the Derivative Works; or, |
| | | within a display generated by the Derivative Works, if and |
| | | wherever such third-party notices normally appear. The contents |
| | | of the NOTICE file are for informational purposes only and |
| | | do not modify the License. You may add Your own attribution |
| | | notices within Derivative Works that You distribute, alongside |
| | | or as an addendum to the NOTICE text from the Work, provided |
| | | that such additional attribution notices cannot be construed |
| | | as modifying the License. |
| | | |
| | | You may add Your own copyright statement to Your modifications and |
| | | may provide additional or different license terms and conditions |
| | | for use, reproduction, or distribution of Your modifications, or |
| | | for any such Derivative Works as a whole, provided Your use, |
| | | reproduction, and distribution of the Work otherwise complies with |
| | | the conditions stated in this License. |
| | | |
| | | 5. Submission of Contributions. Unless You explicitly state otherwise, |
| | | any Contribution intentionally submitted for inclusion in the Work |
| | | by You to the Licensor shall be under the terms and conditions of |
| | | this License, without any additional terms or conditions. |
| | | Notwithstanding the above, nothing herein shall supersede or modify |
| | | the terms of any separate license agreement you may have executed |
| | | with Licensor regarding such Contributions. |
| | | |
| | | 6. Trademarks. This License does not grant permission to use the trade |
| | | names, trademarks, service marks, or product names of the Licensor, |
| | | except as required for reasonable and customary use in describing the |
| | | origin of the Work and reproducing the content of the NOTICE file. |
| | | |
| | | 7. Disclaimer of Warranty. Unless required by applicable law or |
| | | agreed to in writing, Licensor provides the Work (and each |
| | | Contributor provides its Contributions) on an "AS IS" BASIS, |
| | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
| | | implied, including, without limitation, any warranties or conditions |
| | | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A |
| | | PARTICULAR PURPOSE. You are solely responsible for determining the |
| | | appropriateness of using or redistributing the Work and assume any |
| | | risks associated with Your exercise of permissions under this License. |
| | | |
| | | 8. Limitation of Liability. In no event and under no legal theory, |
| | | whether in tort (including negligence), contract, or otherwise, |
| | | unless required by applicable law (such as deliberate and grossly |
| | | negligent acts) or agreed to in writing, shall any Contributor be |
| | | liable to You for damages, including any direct, indirect, special, |
| | | incidental, or consequential damages of any character arising as a |
| | | result of this License or out of the use or inability to use the |
| | | Work (including but not limited to damages for loss of goodwill, |
| | | work stoppage, computer failure or malfunction, or any and all |
| | | other commercial damages or losses), even if such Contributor |
| | | has been advised of the possibility of such damages. |
| | | |
| | | 9. Accepting Warranty or Additional Liability. While redistributing |
| | | the Work or Derivative Works thereof, You may choose to offer, |
| | | and charge a fee for, acceptance of support, warranty, indemnity, |
| | | or other liability obligations and/or rights consistent with this |
| | | License. However, in accepting such obligations, You may act only |
| | | on Your own behalf and on Your sole responsibility, not on behalf |
| | | of any other Contributor, and only if You agree to indemnify, |
| | | defend, and hold each Contributor harmless for any liability |
| | | incurred by, or claims asserted against, such Contributor by reason |
| | | of your accepting any such warranty or additional liability. |
| | | |
| | | END OF TERMS AND CONDITIONS |
| | | |
| | | APPENDIX: How to apply the Apache License to your work. |
| | | |
| | | To apply the Apache License to your work, attach the following |
| | | boilerplate notice, with the fields enclosed by brackets "[]" |
| | | replaced with your own identifying information. (Don't include |
| | | the brackets!) The text should be enclosed in the appropriate |
| | | comment syntax for the file format. We also recommend that a |
| | | file or class name and description of purpose be included on the |
| | | same "printed page" as the copyright notice for easier |
| | | identification within third-party archives. |
| | | |
| | | Copyright [yyyy] [name of copyright owner] |
| | | |
| | | Licensed 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. |
New file |
| | |
| | | |
| | | <IfDefine 64bit> |
| | | LoadModule jk_module libexec/64/mod_jk.so |
| | | </IfDefine> |
| | | <IfDefine !64bit> |
| | | LoadModule jk_module libexec/mod_jk.so |
| | | </IfDefine> |
| | | |
| | | <IfModule mod_jk.c> |
| | | JkWorkersFile /etc/apache2/2.2/conf.d/workers.properties |
| | | # Where to put jk shared memory |
| | | # Update this path to match your local state directory or logs directory |
| | | JkShmFile /var/apache2/2.2/logs/mod_jk.shm |
| | | # Where to put jk logs |
| | | # Update this path to match your logs directory location (put mod_jk.log next to access_log) |
| | | JkLogFile /var/apache2/2.2/logs/mod_jk.log |
| | | # Set the jk log level [debug/error/info] |
| | | JkLogLevel info |
| | | # Select the timestamp log format |
| | | JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " |
| | | # Send everything for context /examples to worker named worker1 (ajp13) |
| | | JkMount /examples/* worker1 |
| | | </IfModule> |
| | | |
New file |
| | |
| | | # Define 1 real worker using ajp13 |
| | | worker.list=worker1 |
| | | # Set properties for worker1 (ajp13) |
| | | worker.worker1.type=ajp13 |
| | | worker.worker1.host=localhost |
| | | worker.worker1.port=8009 |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | include ../../../make-rules/shared-macros.mk |
| | | |
| | | COMPONENT_NAME= mod_perl |
| | | COMPONENT_VERSION= 2.0.4 |
| | | COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION) |
| | | COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz |
| | | COMPONENT_ARCHIVE_HASH= sha1:65299a16ec414a690a48a2bbe63acaa3c6bb897b |
| | | COMPONENT_ARCHIVE_URL= http://perl.apache.org/dist/$(COMPONENT_ARCHIVE) |
| | | |
| | | CONFIGURE_DEFAULT_DIRS=no |
| | | |
| | | include ../../../make-rules/prep.mk |
| | | include ../../../make-rules/justmake.mk |
| | | include ../../../make-rules/ips.mk |
| | | |
| | | APACHE_USR_PREFIX=/usr/apache2/2.2 |
| | | AP_PERL5LIB=$(APACHE_USR_PREFIX)/lib/perl |
| | | AP_PERL5BIN=$(APACHE_USR_PREFIX)/bin |
| | | PERLMAN=$(APACHE_USR_PREFIX)/man |
| | | |
| | | COMPONENT_PRE_BUILD_ACTION= ( \ |
| | | cd $(@D); $(PERL) Makefile.PL \ |
| | | INSTALLDIRS=perl \ |
| | | INSTALLSITELIB=$(AP_PERL5LIB) \ |
| | | INSTALLARCHLIB=$(AP_PERL5LIB) \ |
| | | INSTALLSITEARCH=$(AP_PERL5LIB) \ |
| | | INSTALLPRIVLIB=$(AP_PERL5LIB) \ |
| | | SITEARCHEXP=$(AP_PERL5LIB) \ |
| | | SITELIBEXP=$(AP_PERL5LIB) \ |
| | | INSTALLMAN1DIR=$(PERLMAN)/man1 \ |
| | | INSTALLMAN3DIR=$(PERLMAN)/man3 \ |
| | | INSTALLSCRIPT=$(AP_PERL5BIN) \ |
| | | MP_APXS=$(APACHE_USR_PREFIX)/bin/apxs) |
| | | |
| | | COMPONENT_TEST_TARGETS= test |
| | | |
| | | PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin |
| | | |
| | | build: $(BUILD_32) |
| | | |
| | | install: $(INSTALL_32) |
| | | |
| | | # Won't start (maybe because of mod_dtrace.so on system). |
| | | #test: $(TEST_32) |
| | | test: $(NO_TESTS) |
| | | |
| | | BUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS) |
| | | |
| | | include ../../../make-rules/depend.mk |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted> |
| | | set name=pkg.fmri \ |
| | | value=pkg:/web/server/apache-22/module/apache-perl@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) |
| | | set name=pkg.summary \ |
| | | value="Perl plugin for Apache Web Server V2.2" |
| | | set name=pkg.description \ |
| | | value="Perl plugin for Apache Web Server Version 2.2" |
| | | set name=info.classification \ |
| | | value="org.opensolaris.category.2008:Web Services/Application and Web Servers" |
| | | set name=info.upstream_url value="http://perl.apache.org/" |
| | | set name=info.source_url value=$(COMPONENT_ARCHIVE_URL) |
| | | set name=opensolaris.arc_url \ |
| | | value=http://arc.opensolaris.org/caselog/PSARC/2007/586 |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | |
| | | license LICENSE license="Apache v2.0" |
| | | |
| | | |
| | | dir path=etc |
| | | dir path=etc/apache2 |
| | | dir path=etc/apache2/2.2 |
| | | dir path=etc/apache2/2.2/conf.d |
| | | file perl.conf path=etc/apache2/2.2/conf.d/perl.conf mode=0644 preserve=renamenew |
| | | dir path=usr |
| | | dir path=usr/apache2 |
| | | dir path=usr/apache2/2.2 |
| | | dir path=usr/apache2/2.2/bin |
| | | dir path=usr/apache2/2.2/include |
| | | dir path=usr/apache2/2.2/lib |
| | | dir path=usr/apache2/2.2/lib/perl |
| | | dir path=usr/apache2/2.2/lib/perl/APR |
| | | dir path=usr/apache2/2.2/lib/perl/Apache |
| | | dir path=usr/apache2/2.2/lib/perl/Apache2 |
| | | dir path=usr/apache2/2.2/lib/perl/Apache2/PerlSections |
| | | dir path=usr/apache2/2.2/lib/perl/Bundle |
| | | dir path=usr/apache2/2.2/lib/perl/ModPerl |
| | | dir path=usr/apache2/2.2/lib/perl/auto |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/Base64 |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/Brigade |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/Bucket |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/BucketAlloc |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/BucketType |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/Const |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/Date |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/Error |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/Finfo |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/IpSubnet |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/OS |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/PerlIO |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/Pool |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/SockAddr |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/Socket |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/Status |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/String |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/Table |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/ThreadMutex |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/ThreadRWLock |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/URI |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/UUID |
| | | dir path=usr/apache2/2.2/lib/perl/auto/APR/Util |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2 |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Access |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Build |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/CmdParms |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Command |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Connection |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/ConnectionUtil |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Const |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Directive |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Filter |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/FilterRec |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/HookRun |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Log |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/MPM |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Module |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Process |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestIO |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestRec |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestUtil |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Response |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/ServerRec |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/ServerUtil |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/SubProcess |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/SubRequest |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/URI |
| | | dir path=usr/apache2/2.2/lib/perl/auto/Apache2/Util |
| | | dir path=usr/apache2/2.2/lib/perl/auto/ModPerl |
| | | dir path=usr/apache2/2.2/lib/perl/auto/ModPerl/Const |
| | | dir path=usr/apache2/2.2/lib/perl/auto/ModPerl/Global |
| | | dir path=usr/apache2/2.2/lib/perl/auto/ModPerl/Util |
| | | dir path=usr/apache2/2.2/lib/perl/auto/mod_perl2 |
| | | dir path=usr/apache2/2.2/libexec |
| | | dir path=usr/apache2/2.2/man |
| | | dir path=usr/apache2/2.2/man/man3 |
| | | dir path=usr/bin |
| | | file path=usr/apache2/2.2/bin/mp2bug |
| | | file path=usr/apache2/2.2/include/mod_perl.h |
| | | file path=usr/apache2/2.2/include/modperl_apache_compat.h |
| | | file path=usr/apache2/2.2/include/modperl_apache_includes.h |
| | | file path=usr/apache2/2.2/include/modperl_apr_compat.h |
| | | file path=usr/apache2/2.2/include/modperl_apr_includes.h |
| | | file path=usr/apache2/2.2/include/modperl_apr_perlio.h |
| | | file path=usr/apache2/2.2/include/modperl_bucket.h |
| | | file path=usr/apache2/2.2/include/modperl_callback.h |
| | | file path=usr/apache2/2.2/include/modperl_cgi.h |
| | | file path=usr/apache2/2.2/include/modperl_cmd.h |
| | | file path=usr/apache2/2.2/include/modperl_common_includes.h |
| | | file path=usr/apache2/2.2/include/modperl_common_log.h |
| | | file path=usr/apache2/2.2/include/modperl_common_types.h |
| | | file path=usr/apache2/2.2/include/modperl_common_util.h |
| | | file path=usr/apache2/2.2/include/modperl_config.h |
| | | file path=usr/apache2/2.2/include/modperl_const.h |
| | | file path=usr/apache2/2.2/include/modperl_constants.h |
| | | file path=usr/apache2/2.2/include/modperl_debug.h |
| | | file path=usr/apache2/2.2/include/modperl_directives.h |
| | | file path=usr/apache2/2.2/include/modperl_env.h |
| | | file path=usr/apache2/2.2/include/modperl_error.h |
| | | file path=usr/apache2/2.2/include/modperl_filter.h |
| | | file path=usr/apache2/2.2/include/modperl_flags.h |
| | | file path=usr/apache2/2.2/include/modperl_global.h |
| | | file path=usr/apache2/2.2/include/modperl_gtop.h |
| | | file path=usr/apache2/2.2/include/modperl_handler.h |
| | | file path=usr/apache2/2.2/include/modperl_hooks.h |
| | | file path=usr/apache2/2.2/include/modperl_interp.h |
| | | file path=usr/apache2/2.2/include/modperl_io.h |
| | | file path=usr/apache2/2.2/include/modperl_io_apache.h |
| | | file path=usr/apache2/2.2/include/modperl_largefiles.h |
| | | file path=usr/apache2/2.2/include/modperl_log.h |
| | | file path=usr/apache2/2.2/include/modperl_mgv.h |
| | | file path=usr/apache2/2.2/include/modperl_module.h |
| | | file path=usr/apache2/2.2/include/modperl_options.h |
| | | file path=usr/apache2/2.2/include/modperl_pcw.h |
| | | file path=usr/apache2/2.2/include/modperl_perl.h |
| | | file path=usr/apache2/2.2/include/modperl_perl_global.h |
| | | file path=usr/apache2/2.2/include/modperl_perl_includes.h |
| | | file path=usr/apache2/2.2/include/modperl_perl_pp.h |
| | | file path=usr/apache2/2.2/include/modperl_perl_unembed.h |
| | | file path=usr/apache2/2.2/include/modperl_svptr_table.h |
| | | file path=usr/apache2/2.2/include/modperl_sys.h |
| | | file path=usr/apache2/2.2/include/modperl_time.h |
| | | file path=usr/apache2/2.2/include/modperl_tipool.h |
| | | file path=usr/apache2/2.2/include/modperl_trace.h |
| | | file path=usr/apache2/2.2/include/modperl_types.h |
| | | file path=usr/apache2/2.2/include/modperl_util.h |
| | | file path=usr/apache2/2.2/include/modperl_xs_sv_convert.h |
| | | file path=usr/apache2/2.2/include/modperl_xs_typedefs.h |
| | | file path=usr/apache2/2.2/include/modperl_xs_util.h |
| | | file path=usr/apache2/2.2/lib/perl/APR.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/Base64.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/Brigade.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/Bucket.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/BucketAlloc.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/BucketType.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/Const.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/Date.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/Error.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/Finfo.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/IpSubnet.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/OS.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/PerlIO.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/Pool.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/SockAddr.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/Socket.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/Status.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/String.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/Table.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/ThreadMutex.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/ThreadRWLock.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/URI.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/UUID.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/Util.pm |
| | | file path=usr/apache2/2.2/lib/perl/APR/XSLoader.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/Test.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/Test5005compat.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestBuild.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestClient.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestCommon.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestCommonPost.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestConfig.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestConfigC.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestConfigPHP.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestConfigParrot.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestConfigParse.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestConfigPerl.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestHandler.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestHarness.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestHarnessPHP.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestMB.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestMM.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestPerlDB.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestReport.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestReportPerl.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestRequest.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestRun.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestRunPHP.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestRunParrot.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestRunPerl.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestSSLCA.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestServer.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestSmoke.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestSmokePerl.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestSort.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestTrace.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache/TestUtil.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/Access.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/Build.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/BuildConfig.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/CmdParms.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/Command.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/Connection.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/ConnectionUtil.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/Const.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/Directive.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/Filter.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/FilterRec.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/HookRun.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/Log.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/MPM.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/Module.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/ParseSource.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/PerlSections.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/PerlSections/Dump.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/Process.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/Reload.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/RequestIO.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/RequestRec.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/RequestUtil.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/Resource.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/Response.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/ServerRec.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/ServerUtil.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/SizeLimit.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/SourceTables.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/Status.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/SubProcess.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/SubRequest.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/URI.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/Util.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/XSLoader.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/compat.pm |
| | | file path=usr/apache2/2.2/lib/perl/Apache2/porting.pm |
| | | file path=usr/apache2/2.2/lib/perl/Bundle/Apache2.pm |
| | | file path=usr/apache2/2.2/lib/perl/Bundle/ApacheTest.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/BuildMM.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/BuildOptions.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/CScan.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/Code.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/Config.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/Const.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/FunctionMap.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/Global.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/MM.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/Manifest.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/MapUtil.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/MethodLookup.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/ParseSource.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/PerlRun.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/PerlRunPrefork.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/Registry.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/RegistryBB.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/RegistryCooker.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/RegistryLoader.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/RegistryPrefork.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/StructureMap.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/TestReport.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/TestRun.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/TypeMap.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/Util.pm |
| | | file path=usr/apache2/2.2/lib/perl/ModPerl/WrapXS.pm |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/APR.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/APR.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Base64/Base64.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Base64/Base64.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Brigade/Brigade.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Brigade/Brigade.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Bucket/Bucket.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Bucket/Bucket.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/BucketAlloc/BucketAlloc.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/BucketAlloc/BucketAlloc.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/BucketType/BucketType.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/BucketType/BucketType.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Const/Const.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Const/Const.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Date/Date.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Date/Date.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Error/Error.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Error/Error.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Finfo/Finfo.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Finfo/Finfo.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/IpSubnet/IpSubnet.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/IpSubnet/IpSubnet.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/OS/OS.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/OS/OS.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/PerlIO/PerlIO.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/PerlIO/PerlIO.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Pool/Pool.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Pool/Pool.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/SockAddr/SockAddr.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/SockAddr/SockAddr.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Socket/Socket.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Socket/Socket.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Status/Status.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Status/Status.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/String/String.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/String/String.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Table/Table.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Table/Table.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/ThreadMutex/ThreadMutex.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/ThreadMutex/ThreadMutex.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/ThreadRWLock/ThreadRWLock.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/ThreadRWLock/ThreadRWLock.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/URI/URI.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/URI/URI.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/UUID/UUID.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/UUID/UUID.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Util/Util.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/APR/Util/Util.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Access/Access.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Access/Access.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Build/autosplit.ix |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/CmdParms/CmdParms.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/CmdParms/CmdParms.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Command/Command.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Command/Command.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Connection/Connection.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Connection/Connection.so |
| | | file \ |
| | | path=usr/apache2/2.2/lib/perl/auto/Apache2/ConnectionUtil/ConnectionUtil.bs |
| | | file \ |
| | | path=usr/apache2/2.2/lib/perl/auto/Apache2/ConnectionUtil/ConnectionUtil.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Const/Const.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Const/Const.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Directive/Directive.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Directive/Directive.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Filter/Filter.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Filter/Filter.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/FilterRec/FilterRec.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/FilterRec/FilterRec.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/HookRun/HookRun.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/HookRun/HookRun.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Log/Log.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Log/Log.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/MPM/MPM.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/MPM/MPM.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Module/Module.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Module/Module.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Process/Process.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Process/Process.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestIO/RequestIO.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestIO/RequestIO.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestRec/RequestRec.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestRec/RequestRec.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestUtil/RequestUtil.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/RequestUtil/RequestUtil.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Response/Response.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Response/Response.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/ServerRec/ServerRec.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/ServerRec/ServerRec.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/ServerUtil/ServerUtil.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/ServerUtil/ServerUtil.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/SubProcess/SubProcess.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/SubProcess/SubProcess.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/SubRequest/SubRequest.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/SubRequest/SubRequest.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/URI/URI.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/URI/URI.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Util/Util.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/Util/Util.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/Apache2/typemap |
| | | file path=usr/apache2/2.2/lib/perl/auto/ModPerl/Const/Const.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/ModPerl/Const/Const.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/ModPerl/Global/Global.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/ModPerl/Global/Global.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/ModPerl/Util/Util.bs |
| | | file path=usr/apache2/2.2/lib/perl/auto/ModPerl/Util/Util.so |
| | | file path=usr/apache2/2.2/lib/perl/auto/mod_perl2/.packlist |
| | | file path=usr/apache2/2.2/lib/perl/mod_perl2.pm |
| | | file path=usr/apache2/2.2/lib/perl/perllocal.pod |
| | | file path=usr/apache2/2.2/libexec/mod_perl.so |
| | | file path=usr/apache2/2.2/man/man3/APR.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::Base64.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::Brigade.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::Bucket.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::BucketAlloc.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::BucketType.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::Const.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::Date.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::Error.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::Finfo.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::IpSubnet.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::OS.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::PerlIO.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::Pool.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::SockAddr.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::Socket.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::Status.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::String.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::Table.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::ThreadMutex.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::ThreadRWLock.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::URI.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::UUID.3 |
| | | file path=usr/apache2/2.2/man/man3/APR::Util.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::Access.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::Build.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::CmdParms.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::Command.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::Connection.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::ConnectionUtil.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::Const.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::Directive.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::Filter.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::FilterRec.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::HookRun.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::Log.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::MPM.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::Module.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::PerlSections.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::Process.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::Reload.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::RequestIO.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::RequestRec.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::RequestUtil.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::Resource.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::Response.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::ServerRec.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::ServerUtil.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::SizeLimit.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::Status.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::SubProcess.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::SubRequest.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::URI.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::Util.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::compat.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache2::porting.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache::Test.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache::TestConfig.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache::TestMB.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache::TestMM.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache::TestReport.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache::TestRequest.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache::TestRun.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache::TestRunPHP.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache::TestRunPerl.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache::TestSmoke.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache::TestTrace.3 |
| | | file path=usr/apache2/2.2/man/man3/Apache::TestUtil.3 |
| | | file path=usr/apache2/2.2/man/man3/Bundle::Apache2.3 |
| | | file path=usr/apache2/2.2/man/man3/Bundle::ApacheTest.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::BuildMM.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::CScan.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::Code.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::Config.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::Const.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::Global.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::MM.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::MethodLookup.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::PerlRun.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::PerlRunPrefork.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::Registry.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::RegistryBB.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::RegistryCooker.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::RegistryLoader.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::RegistryPrefork.3 |
| | | file path=usr/apache2/2.2/man/man3/ModPerl::Util.3 |
| | | file path=usr/apache2/2.2/man/man3/mod_perl2.3 |
| | | link path=usr/bin/mp2bug target=../apache2/2.2/bin/mp2bug |
| | | |
| | | |
| | | legacy pkg=SUNWapch22u \ |
| | | name="Apache Web Server V2.2 (usr)" \ |
| | | desc="The Apache HTTP Server Version 2.2 (usr components)" |
New file |
| | |
| | | --- mod_perl-2.0.2/lib/Apache2/Status.pm.orig Thu Oct 20 17:04:43 2005 |
| | | +++ mod_perl-2.0.2/lib/Apache2/Status.pm Thu Aug 20 11:38:03 2009 |
| | | @@ -28,7 +28,7 @@ |
| | | |
| | | use Apache2::Const -compile => qw(OK); |
| | | |
| | | -$Apache2::Status::VERSION = '4.00'; # mod_perl 2.0 |
| | | +$Apache2::Status::VERSION = '4.01'; # mod_perl 2.0 |
| | | |
| | | use constant IS_WIN32 => ($^O eq "MSWin32"); |
| | | |
| | | @@ -125,7 +125,7 @@ |
| | | $r->print(symdump($r, $qs)); |
| | | } |
| | | else { |
| | | - my $uri = $r->uri; |
| | | + my $uri = $r->location; |
| | | $r->print('<p>'); |
| | | $r->print( |
| | | map { qq[<a href="$uri?$_">$status{$_}</a><br />\n] } sort { lc $a cmp lc $b } keys %status |
| | | @@ -197,7 +197,7 @@ |
| | | sub status_inc { |
| | | my ($r) = @_; |
| | | |
| | | - my $uri = $r->uri; |
| | | + my $uri = $r->location; |
| | | my @retval = ( |
| | | '<table border="1">', |
| | | "<tr>", |
| | | @@ -285,7 +285,7 @@ |
| | | my ($r) = @_; |
| | | |
| | | local $_; |
| | | - my $uri = $r->uri; |
| | | + my $uri = $r->location; |
| | | my $cache = __PACKAGE__->registry_cache; |
| | | |
| | | my @retval = "<h2>Compiled registry scripts grouped by their handler</h2>"; |
| | | @@ -760,7 +760,7 @@ |
| | | my ($self, $package, $r) = @_; |
| | | |
| | | my @m = qw(<table>); |
| | | - my $uri = $r->uri; |
| | | + my $uri = $r->location; |
| | | my $is_main = $package eq "main"; |
| | | |
| | | my $do_dump = has($r, "dumper"); |
New file |
| | |
| | | --- /dev/null Fri Oct 16 06:02:02 2009 |
| | | +++ mod_perl-2.0.4/lib/Apache2/Reload.pm Sun Nov 19 15:31:40 2006 |
| | | @@ -0,0 +1,185 @@ |
| | | +# 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. |
| | | +# |
| | | +package Apache2::Reload; |
| | | + |
| | | +use strict; |
| | | +use warnings FATAL => 'all'; |
| | | + |
| | | +use mod_perl2; |
| | | + |
| | | +our $VERSION = '0.09'; |
| | | + |
| | | +use Apache2::Const -compile => qw(OK); |
| | | + |
| | | +use Apache2::Connection; |
| | | +use Apache2::ServerUtil; |
| | | +use Apache2::RequestUtil; |
| | | + |
| | | +use ModPerl::Util (); |
| | | + |
| | | +use vars qw(%INCS %Stat $TouchTime); |
| | | + |
| | | +%Stat = ($INC{"Apache2/Reload.pm"} => time); |
| | | + |
| | | +$TouchTime = time; |
| | | + |
| | | +sub import { |
| | | + my $class = shift; |
| | | + my ($package, $file) = (caller)[0,1]; |
| | | + |
| | | + $class->register_module($package, $file); |
| | | +} |
| | | + |
| | | +sub package_to_module { |
| | | + my $package = shift; |
| | | + $package =~ s/::/\//g; |
| | | + $package .= ".pm"; |
| | | + return $package; |
| | | +} |
| | | + |
| | | +sub module_to_package { |
| | | + my $module = shift; |
| | | + $module =~ s/\//::/g; |
| | | + $module =~ s/\.pm$//g; |
| | | + return $module; |
| | | +} |
| | | + |
| | | +sub register_module { |
| | | + my ($class, $package, $file) = @_; |
| | | + my $module = package_to_module($package); |
| | | + |
| | | + if ($file) { |
| | | + $INCS{$module} = $file; |
| | | + } |
| | | + else { |
| | | + $file = $INC{$module}; |
| | | + return unless $file; |
| | | + $INCS{$module} = $file; |
| | | + } |
| | | +} |
| | | + |
| | | +sub unregister_module { |
| | | + my ($class, $package) = @_; |
| | | + my $module = package_to_module($package); |
| | | + delete $INCS{$module}; |
| | | +} |
| | | + |
| | | +# the first argument is: |
| | | +# $c if invoked as 'PerlPreConnectionHandler' |
| | | +# $r if invoked as 'PerlInitHandler' |
| | | +sub handler { |
| | | + my $o = shift; |
| | | + $o = $o->base_server if ref($o) eq 'Apache2::Connection'; |
| | | + |
| | | + my $DEBUG = ref($o) && (lc($o->dir_config("ReloadDebug") || '') eq 'on'); |
| | | + |
| | | + my $TouchFile = ref($o) && $o->dir_config("ReloadTouchFile"); |
| | | + |
| | | + my $ConstantRedefineWarnings = ref($o) && |
| | | + (lc($o->dir_config("ReloadConstantRedefineWarnings") || '') eq 'off') |
| | | + ? 0 : 1; |
| | | + |
| | | + my $TouchModules; |
| | | + |
| | | + if ($TouchFile) { |
| | | + warn "Checking mtime of $TouchFile\n" if $DEBUG; |
| | | + my $touch_mtime = (stat $TouchFile)[9] || return Apache2::Const::OK; |
| | | + return Apache2::Const::OK unless $touch_mtime > $TouchTime; |
| | | + $TouchTime = $touch_mtime; |
| | | + open my $fh, $TouchFile or die "Can't open '$TouchFile': $!"; |
| | | + $TouchModules = <$fh>; |
| | | + chomp $TouchModules if $TouchModules; |
| | | + } |
| | | + |
| | | + if (ref($o) && (lc($o->dir_config("ReloadAll") || 'on') eq 'on')) { |
| | | + *Apache2::Reload::INCS = \%INC; |
| | | + } |
| | | + else { |
| | | + *Apache2::Reload::INCS = \%INCS; |
| | | + my $ExtraList = |
| | | + $TouchModules || |
| | | + (ref($o) && $o->dir_config("ReloadModules")) || |
| | | + ''; |
| | | + my @extra = split /\s+/, $ExtraList; |
| | | + foreach (@extra) { |
| | | + if (/(.*)::\*$/) { |
| | | + my $prefix = $1; |
| | | + $prefix =~ s/::/\//g; |
| | | + foreach my $match (keys %INC) { |
| | | + if ($match =~ /^\Q$prefix\E/) { |
| | | + $Apache2::Reload::INCS{$match} = $INC{$match}; |
| | | + } |
| | | + } |
| | | + } |
| | | + else { |
| | | + Apache2::Reload->register_module($_); |
| | | + } |
| | | + } |
| | | + } |
| | | + |
| | | + my $ReloadDirs = ref($o) && $o->dir_config("ReloadDirectories"); |
| | | + my @watch_dirs = split(/\s+/, $ReloadDirs||''); |
| | | + |
| | | + my @changed; |
| | | + foreach my $key (sort { $a cmp $b } keys %Apache2::Reload::INCS) { |
| | | + my $file = $Apache2::Reload::INCS{$key}; |
| | | + |
| | | + next unless defined $file; |
| | | + next if @watch_dirs && !grep { $file =~ /^$_/ } @watch_dirs; |
| | | + warn "Apache2::Reload: Checking mtime of $key\n" if $DEBUG; |
| | | + |
| | | + my $mtime = (stat $file)[9]; |
| | | + |
| | | + unless (defined($mtime) && $mtime) { |
| | | + for (@INC) { |
| | | + $mtime = (stat "$_/$file")[9]; |
| | | + last if defined($mtime) && $mtime; |
| | | + } |
| | | + } |
| | | + |
| | | + warn("Apache2::Reload: Can't locate $file\n"), next |
| | | + unless defined $mtime and $mtime; |
| | | + |
| | | + unless (defined $Stat{$file}) { |
| | | + $Stat{$file} = $^T; |
| | | + } |
| | | + |
| | | + if ($mtime > $Stat{$file}) { |
| | | + push @changed, $key; |
| | | + } |
| | | + $Stat{$file} = $mtime; |
| | | + } |
| | | + |
| | | + #First, let's unload all changed modules |
| | | + foreach my $module (@changed) { |
| | | + my $package = module_to_package($module); |
| | | + ModPerl::Util::unload_package($package); |
| | | + } |
| | | + |
| | | + #Then, let's reload them all, so that module dependencies can satisfy |
| | | + #themselves in the correct order. |
| | | + foreach my $module (@changed) { |
| | | + my $package = module_to_package($module); |
| | | + require $module; |
| | | + warn("Apache2::Reload: process $$ reloading $package from $module\n") |
| | | + if $DEBUG; |
| | | + } |
| | | + |
| | | + return Apache2::Const::OK; |
| | | +} |
| | | + |
| | | +1; |
| | | +__END__ |
| | | --- /dev/null Fri Oct 16 06:02:02 2009 |
| | | +++ mod_perl-2.0.4/docs/api/Apache2/Reload.pod Sun Nov 19 15:32:13 2006 |
| | | @@ -1,0 +1,380 @@ |
| | | +=head1 NAME |
| | | + |
| | | +Apache2::Reload - Reload Perl Modules when Changed on Disk |
| | | + |
| | | +=head1 Synopsis |
| | | + |
| | | + # Monitor and reload all modules in %INC: |
| | | + # httpd.conf: |
| | | + PerlModule Apache2::Reload |
| | | + PerlInitHandler Apache2::Reload |
| | | + |
| | | + # when working with protocols and connection filters |
| | | + # PerlPreConnectionHandler Apache2::Reload |
| | | + |
| | | + # Reload groups of modules: |
| | | + # httpd.conf: |
| | | + PerlModule Apache2::Reload |
| | | + PerlInitHandler Apache2::Reload |
| | | + PerlSetVar ReloadAll Off |
| | | + PerlSetVar ReloadModules "ModPerl::* Apache2::*" |
| | | + #PerlSetVar ReloadDebug On |
| | | + |
| | | + # Reload a single module from within itself: |
| | | + package My::Apache2::Module; |
| | | + use Apache2::Reload; |
| | | + sub handler { ... } |
| | | + 1; |
| | | + |
| | | +=head1 Description |
| | | + |
| | | +C<Apache2::Reload> reloads modules that change on the disk. |
| | | + |
| | | +When Perl pulls a file via C<require>, it stores the filename in the |
| | | +global hash C<%INC>. The next time Perl tries to C<require> the same |
| | | +file, it sees the file in C<%INC> and does not reload from disk. This |
| | | +module's handler can be configured to iterate over the modules in |
| | | +C<%INC> and reload those that have changed on disk or only specific |
| | | +modules that have registered themselves with C<Apache2::Reload>. It can |
| | | +also do the check for modified modules, when a special touch-file has |
| | | +been modified. |
| | | + |
| | | +Note that C<Apache2::Reload> operates on the current context of |
| | | +C<@INC>. Which means, when called as a C<Perl*Handler> it will not |
| | | +see C<@INC> paths added or removed by C<ModPerl::Registry> scripts, as |
| | | +the value of C<@INC> is saved on server startup and restored to that |
| | | +value after each request. In other words, if you want |
| | | +C<Apache2::Reload> to work with modules that live in custom C<@INC> |
| | | +paths, you should modify C<@INC> when the server is started. Besides, |
| | | +C<'use lib'> in the startup script, you can also set the C<PERL5LIB> |
| | | +variable in the httpd's environment to include any non-standard 'lib' |
| | | +directories that you choose. For example, to accomplish that you can |
| | | +include a line: |
| | | + |
| | | + PERL5LIB=/home/httpd/perl/extra; export PERL5LIB |
| | | + |
| | | +in the script that starts Apache. Alternatively, you can set this |
| | | +environment variable in I<httpd.conf>: |
| | | + |
| | | + PerlSetEnv PERL5LIB /home/httpd/perl/extra |
| | | + |
| | | +=head2 Monitor All Modules in C<%INC> |
| | | + |
| | | +To monitor and reload all modules in C<%INC> at the beginning of |
| | | +request's processing, simply add the following configuration to your |
| | | +I<httpd.conf>: |
| | | + |
| | | + PerlModule Apache2::Reload |
| | | + PerlInitHandler Apache2::Reload |
| | | + |
| | | +When working with connection filters and protocol modules |
| | | +C<Apache2::Reload> should be invoked in the pre_connection stage: |
| | | + |
| | | + PerlPreConnectionHandler Apache2::Reload |
| | | + |
| | | +See also the discussion on |
| | | +C<L<PerlPreConnectionHandler|docs::2.0::user::handlers::protocols/PerlPreConnectionHandler>>. |
| | | + |
| | | +=head2 Register Modules Implicitly |
| | | + |
| | | +To only reload modules that have registered with C<Apache2::Reload>, |
| | | +add the following to the I<httpd.conf>: |
| | | + |
| | | + PerlModule Apache2::Reload |
| | | + PerlInitHandler Apache2::Reload |
| | | + PerlSetVar ReloadAll Off |
| | | + # ReloadAll defaults to On |
| | | + |
| | | +Then any modules with the line: |
| | | + |
| | | + use Apache2::Reload; |
| | | + |
| | | +Will be reloaded when they change. |
| | | + |
| | | +=head2 Register Modules Explicitly |
| | | + |
| | | +You can also register modules explicitly in your I<httpd.conf> file |
| | | +that you want to be reloaded on change: |
| | | + |
| | | + PerlModule Apache2::Reload |
| | | + PerlInitHandler Apache2::Reload |
| | | + PerlSetVar ReloadAll Off |
| | | + PerlSetVar ReloadModules "My::Foo My::Bar Foo::Bar::Test" |
| | | + |
| | | +Note that these are split on whitespace, but the module list B<must> |
| | | +be in quotes, otherwise Apache tries to parse the parameter list. |
| | | + |
| | | +The C<*> wild character can be used to register groups of files under |
| | | +the same namespace. For example the setting: |
| | | + |
| | | + PerlSetVar ReloadModules "ModPerl::* Apache2::*" |
| | | + |
| | | +will monitor all modules under the namespaces C<ModPerl::> and |
| | | +C<Apache2::>. |
| | | + |
| | | +=head2 Monitor Only Certain Sub Directories |
| | | + |
| | | +To reload modules only in certain directories (and their |
| | | +subdirectories) add the following to the I<httpd.conf>: |
| | | + |
| | | + PerlModule Apache2::Reload |
| | | + PerlInitHandler Apache2::Reload |
| | | + PerlSetVar ReloadDirectories "/tmp/project1 /tmp/project2" |
| | | + |
| | | +You can further narrow the list of modules to be reloaded from the |
| | | +chosen directories with C<ReloadModules> as in: |
| | | + |
| | | + PerlModule Apache2::Reload |
| | | + PerlInitHandler Apache2::Reload |
| | | + PerlSetVar ReloadDirectories "/tmp/project1 /tmp/project2" |
| | | + PerlSetVar ReloadAll Off |
| | | + PerlSetVar ReloadModules "MyApache2::*" |
| | | + |
| | | +In this configuration example only modules from the namespace |
| | | +C<MyApache2::> found in the directories I</tmp/project1/> and |
| | | +I</tmp/project2/> (and their subdirectories) will be reloaded. |
| | | + |
| | | +=head2 Special "Touch" File |
| | | + |
| | | +You can also declare a file, which when gets C<touch(1)>ed, causes the |
| | | +reloads to be performed. For example if you set: |
| | | + |
| | | + PerlSetVar ReloadTouchFile /tmp/reload_modules |
| | | + |
| | | +and don't C<touch(1)> the file I</tmp/reload_modules>, the reloads |
| | | +won't happen until you go to the command line and type: |
| | | + |
| | | + % touch /tmp/reload_modules |
| | | + |
| | | +When you do that, the modules that have been changed, will be |
| | | +magically reloaded on the next request. This option works with any |
| | | +mode described before. |
| | | + |
| | | +=head2 Unregistering a module |
| | | + |
| | | +In some cases, it might be necessary to explicitely stop reloading |
| | | +a module. |
| | | + |
| | | + Apache2::Reload->unregister_module('Some::Module'); |
| | | + |
| | | +But be carefull, since unregistering a module in this way will only |
| | | +do so for the current interpreter. This feature should be used with |
| | | +care. |
| | | + |
| | | +=head1 Performance Issues |
| | | + |
| | | +This module is perfectly suited for a development environment. Though |
| | | +it's possible that you would like to use it in a production |
| | | +environment, since with C<Apache2::Reload> you don't have to restart |
| | | +the server in order to reload changed modules during software |
| | | +updates. Though this convenience comes at a price: |
| | | + |
| | | +=over |
| | | + |
| | | +=item * |
| | | + |
| | | +If the "touch" file feature is used, C<Apache2::Reload> has to stat(2) |
| | | +the touch file on each request, which adds a slight but most likely |
| | | +insignificant overhead to response times. Otherwise C<Apache2::Reload> |
| | | +will stat(2) each registered module or even worse--all modules in |
| | | +C<%INC>, which will significantly slow everything down. |
| | | + |
| | | +=item * |
| | | + |
| | | +Once the child process reloads the modules, the memory used by these |
| | | +modules is not shared with the parent process anymore. Therefore the |
| | | +memory consumption may grow significantly. |
| | | + |
| | | +=back |
| | | + |
| | | +Therefore doing a full server stop and restart is probably a better |
| | | +solution. |
| | | + |
| | | +=head1 Debug |
| | | + |
| | | +If you aren't sure whether the modules that are supposed to be |
| | | +reloaded, are actually getting reloaded, turn the debug mode on: |
| | | + |
| | | + PerlSetVar ReloadDebug On |
| | | + |
| | | +=head1 Caveats |
| | | + |
| | | +=head2 Problems With Reloading Modules Which Do Not Declare Their Package Name |
| | | + |
| | | +If you modify modules, which don't declare their C<package>, and rely on |
| | | +C<Apache2::Reload> to reload them, you may encounter problems: i.e., |
| | | +it'll appear as if the module wasn't reloaded when in fact it |
| | | +was. This happens because when C<Apache2::Reload> C<require()>s such a |
| | | +module all the global symbols end up in the C<Apache2::Reload> |
| | | +namespace! So the module does get reloaded and you see the compile |
| | | +time errors if there are any, but the symbols don't get imported to |
| | | +the right namespace. Therefore the old version of the code is running. |
| | | + |
| | | + |
| | | +=head2 Failing to Find a File to Reload |
| | | + |
| | | +C<Apache2::Reload> uses C<%INC> to find the files on the filesystem. If |
| | | +an entry for a certain filepath in C<%INC> is relative, |
| | | +C<Apache2::Reload> will use C<@INC> to try to resolve that relative |
| | | +path. Now remember that mod_perl freezes the value of C<@INC> at the |
| | | +server startup, and you can modify it only for the duration of one |
| | | +request when you need to load some module which is not in on of the |
| | | +C<@INC> directories. So a module gets loaded, and registered in |
| | | +C<%INC> with a relative path. Now when C<Apache2::Reload> tries to find |
| | | +that module to check whether it has been modified, it can't find since |
| | | +its directory is not in C<@INC>. So C<Apache2::Reload> will silently |
| | | +skip that module. |
| | | + |
| | | +You can enable the C<Debug|/Debug> mode to see what C<Apache2::Reload> |
| | | +does behind the scenes. |
| | | + |
| | | + |
| | | + |
| | | +=head2 Problems with Scripts Running with Registry Handlers that Cache the Code |
| | | + |
| | | +The following problem is relevant only to registry handlers that cache |
| | | +the compiled script. For example it concerns |
| | | +C<L<ModPerl::Registry|docs::2.0::api::ModPerl::Registry>> but not |
| | | +C<L<ModPerl::PerlRun|docs::2.0::api::ModPerl::PerlRun>>. |
| | | + |
| | | +=head3 The Problem |
| | | + |
| | | +Let's say that there is a module C<My::Utils>: |
| | | + |
| | | + #file:My/Utils.pm |
| | | + #---------------- |
| | | + package My::Utils; |
| | | + BEGIN { warn __PACKAGE__ , " was reloaded\n" } |
| | | + use base qw(Exporter); |
| | | + @EXPORT = qw(colour); |
| | | + sub colour { "white" } |
| | | + 1; |
| | | + |
| | | +And a registry script F<test.pl>: |
| | | + |
| | | + #file:test.pl |
| | | + #------------ |
| | | + use My::Utils; |
| | | + print "Content-type: text/plain\n\n"; |
| | | + print "the color is " . colour(); |
| | | + |
| | | +Assuming that the server is running in a single mode, we request the |
| | | +script for the first time and we get the response: |
| | | + |
| | | + the color is white |
| | | + |
| | | +Now we change F<My/Utils.pm>: |
| | | + |
| | | + - sub colour { "white" } |
| | | + + sub colour { "red" } |
| | | + |
| | | +And issue the request again. C<Apache2::Reload> does its job and we can |
| | | +see that C<My::Utils> was reloaded (look in the I<error_log> |
| | | +file). However the script still returns: |
| | | + |
| | | + the color is white |
| | | + |
| | | +=head3 The Explanation |
| | | + |
| | | +Even though F<My/Utils.pm> was reloaded, C<ModPerl::Registry>'s cached |
| | | +code won't run 'C<use My::Utils;>' again (since it happens only once, |
| | | +i.e. during the compile time). Therefore the script doesn't know that |
| | | +the subroutine reference has been changed. |
| | | + |
| | | +This is easy to verify. Let's change the script to be: |
| | | + |
| | | + #file:test.pl |
| | | + #------------ |
| | | + use My::Utils; |
| | | + print "Content-type: text/plain\n\n"; |
| | | + my $sub_int = \&colour; |
| | | + my $sub_ext = \&My::Utils::colour; |
| | | + print "int $sub_int\n"; |
| | | + print "ext $sub_ext\n"; |
| | | + |
| | | +Issue a request, you will see something similar to: |
| | | + |
| | | + int CODE(0x8510af8) |
| | | + ext CODE(0x8510af8) |
| | | + |
| | | +As you can see both point to the same CODE reference (meaning that |
| | | +it's the same symbol). After modifying F<My/Utils.pm> again: |
| | | + |
| | | + - sub colour { "red" } |
| | | + + sub colour { "blue" } |
| | | + |
| | | +and calling the script on the secondnd time, we get: |
| | | + |
| | | + int CODE(0x8510af8) |
| | | + ext CODE(0x851112c) |
| | | + |
| | | +You can see that the internal CODE reference is not the same as the |
| | | +external one. |
| | | + |
| | | +=head3 The Solution |
| | | + |
| | | +There are two solutions to this problem: |
| | | + |
| | | +Solution 1: replace C<use()> with an explicit C<require()> + |
| | | +C<import()>. |
| | | + |
| | | + - use My::Utils; |
| | | + + require My::Utils; My::Utils->import(); |
| | | + |
| | | +now the changed functions will be reimported on every request. |
| | | + |
| | | +Solution 2: remember to touch the script itself every time you change |
| | | +the module that it requires. |
| | | + |
| | | +=head1 Threaded MPM and Multiple Perl Interpreters |
| | | + |
| | | +If you use C<Apache2::Reload> with a threaded MPM and multiple Perl |
| | | +interpreters, the modules will be reloaded by each interpreter as they |
| | | +are used, not every interpreters at once. Similar to mod_perl 1.0 |
| | | +where each child has its own Perl interpreter, the modules are |
| | | +reloaded as each child is hit with a request. |
| | | + |
| | | +If a module is loaded at startup, the syntax tree of each subroutine |
| | | +is shared between interpreters (big win), but each subroutine has its |
| | | +own padlist (where lexical my variables are stored). Once |
| | | +C<Apache2::Reload> reloads a module, this sharing goes away and each |
| | | +Perl interpreter will have its own copy of the syntax tree for the |
| | | +reloaded subroutines. |
| | | + |
| | | + |
| | | +=head1 Pseudo-hashes |
| | | + |
| | | +The short summary of this is: Don't use pseudo-hashes. They are |
| | | +deprecated since Perl 5.8 and are removed in 5.9. |
| | | + |
| | | +Use an array with constant indexes. Its faster in the general case, |
| | | +its more guaranteed, and generally, it works. |
| | | + |
| | | +The long summary is that some work has been done to get this module |
| | | +working with modules that use pseudo-hashes, but it's still broken in |
| | | +the case of a single module that contains multiple packages that all |
| | | +use pseudo-hashes. |
| | | + |
| | | +So don't do that. |
| | | + |
| | | + |
| | | + |
| | | + |
| | | +=head1 Copyright |
| | | + |
| | | +mod_perl 2.0 and its core modules are copyrighted under |
| | | +The Apache Software License, Version 2.0. |
| | | + |
| | | + |
| | | +=head1 Authors |
| | | + |
| | | +Matt Sergeant, matt@sergeant.org |
| | | + |
| | | +Stas Bekman (porting to mod_perl 2.0) |
| | | + |
| | | +A few concepts borrowed from C<Stonehenge::Reload> by Randal Schwartz |
| | | +and C<Apache::StatINC> (mod_perl 1.x) by Doug MacEachern and Ask |
| | | +Bjoern Hansen. |
| | | + |
| | | +=cut |
| | | + |
New file |
| | |
| | | --- mod_perl-2.0.4/Apache-Test/lib/Apache/TestConfigParse.pm Sun Nov 11 21:34:46 2007 |
| | | +++ mod_perl-2.0.4/Apache-Test/lib/Apache/TestConfigParse.pm Thu May 19 05:35:01 2011 |
| | | @@ -211,6 +211,11 @@ |
| | | for my $args (@{ $c->{$directive} }) { |
| | | my $modname = $args->[0]; |
| | | my $file = $self->server_file_rel2abs($args->[1]); |
| | | + |
| | | + unless ($file !~ m/\/64\//) { |
| | | + debug "$file is 64 bit module (we don't want it)"; |
| | | + next; |
| | | + } |
| | | |
| | | unless (-e $file) { |
| | | debug "$file does not exist, skipping LoadModule"; |
New file |
| | |
| | | --- mod_perl-2.0.4/lib/Apache2/SizeLimit.pm.orig Mon Nov 23 02:17:25 2009 |
| | | +++ mod_perl-2.0.4/lib/Apache2/SizeLimit.pm Mon Nov 23 02:21:39 2009 |
| | | @@ -52,7 +52,8 @@ |
| | | if Apache2::MPM->is_threaded(); |
| | | |
| | | # decide at compile time how to check for a process' memory size. |
| | | - if (SOLARIS && $Config{'osvers'} >= 2.6) { |
| | | + my ($major,$minor) = split(/\./, $Config{'osvers'}); |
| | | + if (SOLARIS && (($major > 2) || ($major == 2 && $minor >= 6))) { |
| | | |
| | | $HOW_BIG_IS_IT = \&solaris_2_6_size_check; |
| | | |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | # |
| | | # Cause Perl to work with Apache pre-fork MPM(32-bit) only. |
| | | # Load this module only if not loaded already |
| | | # |
| | | <IfDefine !64bit> |
| | | <IfModule prefork.c> |
| | | <IfModule !mod_perl.c> |
| | | LoadModule perl_module libexec/mod_perl.so |
| | | </IfModule> |
| | | </IfModule> |
| | | </IfDefine> |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | include ../../../make-rules/shared-macros.mk |
| | | |
| | | COMPONENT_NAME= mod_proxy_html |
| | | COMPONENT_VERSION= 3.1.1 |
| | | COMPONENT_SRC= $(COMPONENT_NAME) |
| | | COMPONENT_ARCHIVE= $(COMPONENT_SRC)-$(COMPONENT_VERSION).tar.bz2 |
| | | COMPONENT_ARCHIVE_HASH= sha1:d36398151994f308ce36bacab09beb8165bf01a7 |
| | | # Original archive from community didn't contain name in its version. |
| | | # Therefore we created special Userland copy with version info. |
| | | COMPONENT_ARCHIVE_URL= http://apache.webthing.com/mod_proxy_html/$(COMPONENT_ARCHIVE) |
| | | |
| | | include ../../../make-rules/prep.mk |
| | | include ../../../make-rules/justmake.mk |
| | | include ../../../make-rules/ips.mk |
| | | |
| | | APACHE_USR_PREFIX=/usr/apache2/2.2 |
| | | |
| | | $(BUILD_DIR_32)/.built: COMPONENT_BUILD_ARGS += APXS=$(APACHE_USR_PREFIX)/bin/apxs |
| | | $(BUILD_DIR_64)/.built: COMPONENT_BUILD_ARGS += APXS=$(APACHE_USR_PREFIX)/bin/$(MACH64)/apxs |
| | | |
| | | PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin |
| | | |
| | | build: $(BUILD_32_and_64) |
| | | |
| | | test: $(NO_TESTS) |
| | | |
| | | BUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS) |
| | | |
| | | include ../../../make-rules/depend.mk |
New file |
| | |
| | | Oracle elects to use only the GNU Lesser General Public License version |
| | | 2.1 (LGPL)/GNU General Public License version 2 (GPL) for any software |
| | | where a choice of LGPL/GPL license versions are made available with the |
| | | language indicating that LGPLv2.1/GPLv2 or any later version may be |
| | | used, or where a choice of which version of the LGPL/GPL is applied is |
| | | unspecified. Unless specifically stated otherwise, where a choice |
| | | exists between another license and either the GPL or the LGPL, Oracle |
| | | chooses the other license. |
| | | ==================================================================== |
| | | |
| | | GNU GENERAL PUBLIC LICENSE |
| | | Version 2, June 1991 |
| | | |
| | | Copyright (C) 1989, 1991 Free Software Foundation, Inc. |
| | | 59 Temple Place - Suite 330, Boston, MA |
| | | 02111-1307, USA. |
| | | Everyone is permitted to copy and distribute verbatim copies |
| | | of this license document, but changing it is not allowed. |
| | | |
| | | Preamble |
| | | |
| | | The licenses for most software are designed to take away your |
| | | freedom to share and change it. By contrast, the GNU General Public |
| | | License is intended to guarantee your freedom to share and change free |
| | | software--to make sure the software is free for all its users. This |
| | | General Public License applies to most of the Free Software |
| | | Foundation's software and to any other program whose authors commit to |
| | | using it. (Some other Free Software Foundation software is covered by |
| | | the GNU Library General Public License instead.) You can apply it to |
| | | your programs, too. |
| | | |
| | | When we speak of free software, we are referring to freedom, not |
| | | price. Our General Public Licenses are designed to make sure that you |
| | | have the freedom to distribute copies of free software (and charge for |
| | | this service if you wish), that you receive source code or can get it |
| | | if you want it, that you can change the software or use pieces of it |
| | | in new free programs; and that you know you can do these things. |
| | | |
| | | To protect your rights, we need to make restrictions that forbid |
| | | anyone to deny you these rights or to ask you to surrender the rights. |
| | | These restrictions translate to certain responsibilities for you if you |
| | | distribute copies of the software, or if you modify it. |
| | | |
| | | For example, if you distribute copies of such a program, whether |
| | | gratis or for a fee, you must give the recipients all the rights that |
| | | you have. You must make sure that they, too, receive or can get the |
| | | source code. And you must show them these terms so they know their |
| | | rights. |
| | | |
| | | We protect your rights with two steps: (1) copyright the software, and |
| | | (2) offer you this license which gives you legal permission to copy, |
| | | distribute and/or modify the software. |
| | | |
| | | Also, for each author's protection and ours, we want to make certain |
| | | that everyone understands that there is no warranty for this free |
| | | software. If the software is modified by someone else and passed on, we |
| | | want its recipients to know that what they have is not the original, so |
| | | that any problems introduced by others will not reflect on the original |
| | | authors' reputations. |
| | | |
| | | Finally, any free program is threatened constantly by software |
| | | patents. We wish to avoid the danger that redistributors of a free |
| | | program will individually obtain patent licenses, in effect making the |
| | | program proprietary. To prevent this, we have made it clear that any |
| | | patent must be licensed for everyone's free use or not licensed at all. |
| | | |
| | | The precise terms and conditions for copying, distribution and |
| | | modification follow. |
| | | |
| | | GNU GENERAL PUBLIC LICENSE |
| | | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
| | | |
| | | 0. This License applies to any program or other work which contains |
| | | a notice placed by the copyright holder saying it may be distributed |
| | | under the terms of this General Public License. The "Program", below, |
| | | refers to any such program or work, and a "work based on the Program" |
| | | means either the Program or any derivative work under copyright law: |
| | | that is to say, a work containing the Program or a portion of it, |
| | | either verbatim or with modifications and/or translated into another |
| | | language. (Hereinafter, translation is included without limitation in |
| | | the term "modification".) Each licensee is addressed as "you". |
| | | |
| | | Activities other than copying, distribution and modification are not |
| | | covered by this License; they are outside its scope. The act of |
| | | running the Program is not restricted, and the output from the Program |
| | | is covered only if its contents constitute a work based on the |
| | | Program (independent of having been made by running the Program). |
| | | Whether that is true depends on what the Program does. |
| | | |
| | | 1. You may copy and distribute verbatim copies of the Program's |
| | | source code as you receive it, in any medium, provided that you |
| | | conspicuously and appropriately publish on each copy an appropriate |
| | | copyright notice and disclaimer of warranty; keep intact all the |
| | | notices that refer to this License and to the absence of any warranty; |
| | | and give any other recipients of the Program a copy of this License |
| | | along with the Program. |
| | | |
| | | You may charge a fee for the physical act of transferring a copy, and |
| | | you may at your option offer warranty protection in exchange for a fee. |
| | | |
| | | 2. You may modify your copy or copies of the Program or any portion |
| | | of it, thus forming a work based on the Program, and copy and |
| | | distribute such modifications or work under the terms of Section 1 |
| | | above, provided that you also meet all of these conditions: |
| | | |
| | | a) You must cause the modified files to carry prominent notices |
| | | stating that you changed the files and the date of any change. |
| | | |
| | | b) You must cause any work that you distribute or publish, that in |
| | | whole or in part contains or is derived from the Program or any |
| | | part thereof, to be licensed as a whole at no charge to all third |
| | | parties under the terms of this License. |
| | | |
| | | c) If the modified program normally reads commands interactively |
| | | when run, you must cause it, when started running for such |
| | | interactive use in the most ordinary way, to print or display an |
| | | announcement including an appropriate copyright notice and a |
| | | notice that there is no warranty (or else, saying that you provide |
| | | a warranty) and that users may redistribute the program under |
| | | these conditions, and telling the user how to view a copy of this |
| | | License. (Exception: if the Program itself is interactive but |
| | | does not normally print such an announcement, your work based on |
| | | the Program is not required to print an announcement.) |
| | | |
| | | These requirements apply to the modified work as a whole. If |
| | | identifiable sections of that work are not derived from the Program, |
| | | and can be reasonably considered independent and separate works in |
| | | themselves, then this License, and its terms, do not apply to those |
| | | sections when you distribute them as separate works. But when you |
| | | distribute the same sections as part of a whole which is a work based |
| | | on the Program, the distribution of the whole must be on the terms of |
| | | this License, whose permissions for other licensees extend to the |
| | | entire whole, and thus to each and every part regardless of who wrote it. |
| | | |
| | | Thus, it is not the intent of this section to claim rights or contest |
| | | your rights to work written entirely by you; rather, the intent is to |
| | | exercise the right to control the distribution of derivative or |
| | | collective works based on the Program. |
| | | |
| | | In addition, mere aggregation of another work not based on the Program |
| | | with the Program (or with a work based on the Program) on a volume of |
| | | a storage or distribution medium does not bring the other work under |
| | | the scope of this License. |
| | | |
| | | 3. You may copy and distribute the Program (or a work based on it, |
| | | under Section 2) in object code or executable form under the terms of |
| | | Sections 1 and 2 above provided that you also do one of the following: |
| | | |
| | | a) Accompany it with the complete corresponding machine-readable |
| | | source code, which must be distributed under the terms of Sections |
| | | 1 and 2 above on a medium customarily used for software interchange; or, |
| | | |
| | | b) Accompany it with a written offer, valid for at least three |
| | | years, to give any third party, for a charge no more than your |
| | | cost of physically performing source distribution, a complete |
| | | machine-readable copy of the corresponding source code, to be |
| | | distributed under the terms of Sections 1 and 2 above on a medium |
| | | customarily used for software interchange; or, |
| | | |
| | | c) Accompany it with the information you received as to the offer |
| | | to distribute corresponding source code. (This alternative is |
| | | allowed only for noncommercial distribution and only if you |
| | | received the program in object code or executable form with such |
| | | an offer, in accord with Subsection b above.) |
| | | |
| | | The source code for a work means the preferred form of the work for |
| | | making modifications to it. For an executable work, complete source |
| | | code means all the source code for all modules it contains, plus any |
| | | associated interface definition files, plus the scripts used to |
| | | control compilation and installation of the executable. However, as a |
| | | special exception, the source code distributed need not include |
| | | anything that is normally distributed (in either source or binary |
| | | form) with the major components (compiler, kernel, and so on) of the |
| | | operating system on which the executable runs, unless that component |
| | | itself accompanies the executable. |
| | | |
| | | If distribution of executable or object code is made by offering |
| | | access to copy from a designated place, then offering equivalent |
| | | access to copy the source code from the same place counts as |
| | | distribution of the source code, even though third parties are not |
| | | compelled to copy the source along with the object code. |
| | | |
| | | 4. You may not copy, modify, sublicense, or distribute the Program |
| | | except as expressly provided under this License. Any attempt |
| | | otherwise to copy, modify, sublicense or distribute the Program is |
| | | void, and will automatically terminate your rights under this License. |
| | | However, parties who have received copies, or rights, from you under |
| | | this License will not have their licenses terminated so long as such |
| | | parties remain in full compliance. |
| | | |
| | | 5. You are not required to accept this License, since you have not |
| | | signed it. However, nothing else grants you permission to modify or |
| | | distribute the Program or its derivative works. These actions are |
| | | prohibited by law if you do not accept this License. Therefore, by |
| | | modifying or distributing the Program (or any work based on the |
| | | Program), you indicate your acceptance of this License to do so, and |
| | | all its terms and conditions for copying, distributing or modifying |
| | | the Program or works based on it. |
| | | |
| | | 6. Each time you redistribute the Program (or any work based on the |
| | | Program), the recipient automatically receives a license from the |
| | | original licensor to copy, distribute or modify the Program subject to |
| | | these terms and conditions. You may not impose any further |
| | | restrictions on the recipients' exercise of the rights granted herein. |
| | | You are not responsible for enforcing compliance by third parties to |
| | | this License. |
| | | |
| | | 7. If, as a consequence of a court judgment or allegation of patent |
| | | infringement or for any other reason (not limited to patent issues), |
| | | conditions are imposed on you (whether by court order, agreement or |
| | | otherwise) that contradict the conditions of this License, they do not |
| | | excuse you from the conditions of this License. If you cannot |
| | | distribute so as to satisfy simultaneously your obligations under this |
| | | License and any other pertinent obligations, then as a consequence you |
| | | may not distribute the Program at all. For example, if a patent |
| | | license would not permit royalty-free redistribution of the Program by |
| | | all those who receive copies directly or indirectly through you, then |
| | | the only way you could satisfy both it and this License would be to |
| | | refrain entirely from distribution of the Program. |
| | | |
| | | If any portion of this section is held invalid or unenforceable under |
| | | any particular circumstance, the balance of the section is intended to |
| | | apply and the section as a whole is intended to apply in other |
| | | circumstances. |
| | | |
| | | It is not the purpose of this section to induce you to infringe any |
| | | patents or other property right claims or to contest validity of any |
| | | such claims; this section has the sole purpose of protecting the |
| | | integrity of the free software distribution system, which is |
| | | implemented by public license practices. Many people have made |
| | | generous contributions to the wide range of software distributed |
| | | through that system in reliance on consistent application of that |
| | | system; it is up to the author/donor to decide if he or she is willing |
| | | to distribute software through any other system and a licensee cannot |
| | | impose that choice. |
| | | |
| | | This section is intended to make thoroughly clear what is believed to |
| | | be a consequence of the rest of this License. |
| | | |
| | | 8. If the distribution and/or use of the Program is restricted in |
| | | certain countries either by patents or by copyrighted interfaces, the |
| | | original copyright holder who places the Program under this License |
| | | may add an explicit geographical distribution limitation excluding |
| | | those countries, so that distribution is permitted only in or among |
| | | countries not thus excluded. In such case, this License incorporates |
| | | the limitation as if written in the body of this License. |
| | | |
| | | 9. The Free Software Foundation may publish revised and/or new versions |
| | | of the General Public License from time to time. Such new versions will |
| | | be similar in spirit to the present version, but may differ in detail to |
| | | address new problems or concerns. |
| | | |
| | | Each version is given a distinguishing version number. If the Program |
| | | specifies a version number of this License which applies to it and "any |
| | | later version", you have the option of following the terms and conditions |
| | | either of that version or of any later version published by the Free |
| | | Software Foundation. If the Program does not specify a version number of |
| | | this License, you may choose any version ever published by the Free Software |
| | | Foundation. |
| | | |
| | | 10. If you wish to incorporate parts of the Program into other free |
| | | programs whose distribution conditions are different, write to the author |
| | | to ask for permission. For software which is copyrighted by the Free |
| | | Software Foundation, write to the Free Software Foundation; we sometimes |
| | | make exceptions for this. Our decision will be guided by the two goals |
| | | of preserving the free status of all derivatives of our free software and |
| | | of promoting the sharing and reuse of software generally. |
| | | |
| | | NO WARRANTY |
| | | |
| | | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
| | | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
| | | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
| | | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
| | | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| | | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
| | | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
| | | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
| | | REPAIR OR CORRECTION. |
| | | |
| | | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
| | | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
| | | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
| | | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
| | | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
| | | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
| | | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
| | | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
| | | POSSIBILITY OF SUCH DAMAGES. |
| | | |
| | | END OF TERMS AND CONDITIONS |
| | | |
| | | Appendix: How to Apply These Terms to Your New Programs |
| | | |
| | | If you develop a new program, and you want it to be of the greatest |
| | | possible use to the public, the best way to achieve this is to make it |
| | | free software which everyone can redistribute and change under these terms. |
| | | |
| | | To do so, attach the following notices to the program. It is safest |
| | | to attach them to the start of each source file to most effectively |
| | | convey the exclusion of warranty; and each file should have at least |
| | | the "copyright" line and a pointer to where the full notice is found. |
| | | |
| | | <one line to give the program's name and a brief idea of what it does.> |
| | | Copyright (C) 19yy <name of author> |
| | | |
| | | This program is free software; you can redistribute it and/or modify |
| | | it under the terms of the GNU General Public License as published by |
| | | the Free Software Foundation; either version 2 of the License, or |
| | | (at your option) any later version. |
| | | |
| | | This program is distributed in the hope that it will be useful, |
| | | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | GNU General Public License for more details. |
| | | |
| | | You should have received a copy of the GNU General Public License |
| | | along with this program; if not, write to the Free Software |
| | | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
| | | |
| | | Also add information on how to contact you by electronic and paper mail. |
| | | |
| | | If the program is interactive, make it output a short notice like this |
| | | when it starts in an interactive mode: |
| | | |
| | | Gnomovision version 69, Copyright (C) 19yy name of author |
| | | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
| | | This is free software, and you are welcome to redistribute it |
| | | under certain conditions; type `show c' for details. |
| | | |
| | | The hypothetical commands `show w' and `show c' should show the appropriate |
| | | parts of the General Public License. Of course, the commands you use may |
| | | be called something other than `show w' and `show c'; they could even be |
| | | mouse-clicks or menu items--whatever suits your program. |
| | | |
| | | You should also get your employer (if you work as a programmer) or your |
| | | school, if any, to sign a "copyright disclaimer" for the program, if |
| | | necessary. Here is a sample; alter the names: |
| | | |
| | | Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
| | | `Gnomovision' (which makes passes at compilers) written by James Hacker. |
| | | |
| | | <signature of Ty Coon>, 1 April 1989 |
| | | Ty Coon, President of Vice |
| | | |
| | | This General Public License does not permit incorporating your program into |
| | | proprietary programs. If your program is a subroutine library, you may |
| | | consider it more useful to permit linking proprietary applications with the |
| | | library. If this is what you want to do, use the GNU Library General |
| | | Public License instead of this License. |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | set name=pkg.fmri \ |
| | | value=pkg:/web/server/apache-22/module/apache-proxy_html@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) |
| | | set name=pkg.summary \ |
| | | value="Proxy HTML plugin for Apache Web Server V2.2" |
| | | set name=pkg.description \ |
| | | value="Proxy HTML plugin for Apache Web Server Version 2.2" |
| | | set name=info.classification \ |
| | | value="org.opensolaris.category.2008:Web Services/Application and Web Servers" |
| | | set name=info.upstream_url value="http://apache.webthing.com/mod_proxy_html/" |
| | | set name=opensolaris.arc_url \ |
| | | value=http://arc.opensolaris.org/caselog/LSARC/2009/553 |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | |
| | | license apache-proxy_html.license license="GPLv2" |
| | | |
| | | dir path=etc |
| | | dir path=etc/apache2 |
| | | dir path=etc/apache2/2.2 |
| | | dir path=etc/apache2/2.2/samples-conf.d |
| | | dir path=usr |
| | | dir path=usr/apache2 |
| | | dir path=usr/apache2/2.2 |
| | | dir path=usr/apache2/2.2/libexec |
| | | dir path=usr/apache2/2.2/libexec/$(MACH64) |
| | | file proxy_html.conf path=etc/apache2/2.2/samples-conf.d/proxy_html.conf |
| | | file build/$(MACH32)/.libs/mod_proxy_html.so path=usr/apache2/2.2/libexec/mod_proxy_html.so |
| | | file build/$(MACH64)/.libs/mod_proxy_html.so path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy_html.so |
| | | |
| | | legacy pkg=SUNWapch22m-proxy-html \ |
| | | name="Proxy HTML plugin for Apache Web Server V2.2" \ |
| | | desc="Proxy HTML plugin for Apache Web Server Version 2.2 (3.1.1)" |
| | | |
| | | legacy pkg=SUNWapch22r-proxy-html \ |
| | | name="Proxy HTML plugin for Apache Web Server V2.2" \ |
| | | desc="Proxy HTML plugin for Apache Web Server Version 2.2 (3.1.1)" |
New file |
| | |
| | | Oracle elects to use only the the Apache License Version 2.0 for this |
| | | component. |
| | | ==================================================== |
| | | Copyright (c) 2007-8, WebThing Ltd |
| | | Author: Nick Kew <nick@webthing.com> |
| | | |
| | | This work is available to you under EITHER the Apache License Version 2.0 |
| | | OR the GNU General Poblic License Version 2. It is your choice which |
| | | of these licenses you accept, but if you wish to copy or use this |
| | | work, you MUST accept one of these licenses and abide by its terms. |
| | | |
| | | |
| | | |
| | | OPTION 1: Apache License |
| | | WebThing 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. |
| | | |
| | | |
| | | |
| | | OPTION 2: GNU General Public License |
| | | This program is free software; you can redistribute it and/or modify |
| | | it under the terms of the GNU General Public License Version 2, |
| | | as published by the Free Software Foundation. |
| | | |
| | | This program is distributed in the hope that it will be useful, |
| | | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | GNU General Public License for more details. |
| | | |
| | | You can obtain a copy of the GNU General Poblic License Version 2 |
| | | from http://www.gnu.org/licenses/old-licenses/gpl-2.0.html or |
| | | http://apache.webthing.com/COPYING.txt |
| | | |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | set name=pkg.fmri \ |
| | | value=pkg:/web/server/apache-22/module/apache-xml2enc@1.0.1,$(BUILD_VERSION) |
| | | set name=pkg.summary \ |
| | | value="xml2nec plugin for Apache Web Server V2.2" |
| | | set name=pkg.description \ |
| | | value="xml2enc plugin for Apache Web Server Version 2.2" |
| | | set name=info.classification \ |
| | | value="org.opensolaris.category.2008:Web Services/Application and Web Servers" |
| | | set name=info.upstream_url value="http://apache.webthing.com/mod_xml2enc/" |
| | | set name=opensolaris.arc_url \ |
| | | value=http://arc.opensolaris.org/caselog/LSARC/2009/553 |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | |
| | | license apache-xml2enc.license license="Apache v2.0" |
| | | |
| | | dir path=usr |
| | | dir path=usr/apache2 |
| | | dir path=usr/apache2/2.2 |
| | | dir path=usr/apache2/2.2/include |
| | | dir path=usr/apache2/2.2/libexec |
| | | dir path=usr/apache2/2.2/libexec/$(MACH64) |
| | | file mod_xml2enc.h path=usr/apache2/2.2/include/mod_xml2enc.h |
| | | file build/$(MACH32)/.libs/mod_xml2enc.so path=usr/apache2/2.2/libexec/mod_xml2enc.so |
| | | file build/$(MACH64)/.libs/mod_xml2enc.so path=usr/apache2/2.2/libexec/$(MACH64)/mod_xml2enc.so |
| | | |
| | | legacy pkg=SUNWapch22m-xml2enc \ |
| | | name="xml2nec plugin for Apache Web Server V2.2" \ |
| | | desc="xml2enc plugin for Apache Web Server Version 2.2 (1.0)" |
New file |
| | |
| | | --- mod_proxy_html/proxy_html.conf Mon Oct 5 15:50:28 2009 |
| | | +++ mod_proxy_html/proxy_html.conf Tue Mar 30 11:49:53 2010 |
| | | @@ -1,21 +1,21 @@ |
| | | -# Configuration example. |
| | | -# |
| | | -# First, to load the module with its prerequisites. Note: mod_xml2enc |
| | | -# is not always necessary, but without it mod_proxy_html is likely to |
| | | -# mangle pages in encodings other than ASCII or Unicode (utf-8). |
| | | -# |
| | | -# For Unix-family systems: |
| | | -# LoadFile /usr/lib/libxml2.so |
| | | -# LoadModule proxy_html_module modules/mod_proxy_html.so |
| | | -# LoadModule xml2enc_module modules/mod_xml2enc.so |
| | | -# |
| | | -# For Windows (I don't know if there's a standard path for the libraries) |
| | | -# LoadFile C:/path/zlib.dll |
| | | -# LoadFile C:/path/iconv.dll |
| | | -# LoadFile C:/path/libxml2.dll |
| | | -# LoadModule proxy_html_module modules/mod_proxy_html.so |
| | | -# LoadModule xml2enc_module modules/mod_xml2enc.so |
| | | -# |
| | | + |
| | | +<IfDefine 64bit> |
| | | +LoadFile /usr/lib/64/libxml2.so.2 |
| | | + |
| | | +LoadModule xml2enc_module libexec/64/mod_xml2enc.so |
| | | +LoadModule proxy_html_module libexec/64/mod_proxy_html.so |
| | | + |
| | | +</IfDefine> |
| | | +<IfDefine !64bit> |
| | | +LoadFile /usr/lib/libxml2.so.2 |
| | | + |
| | | +LoadModule xml2enc_module libexec/mod_xml2enc.so |
| | | +LoadModule proxy_html_module libexec/mod_proxy_html.so |
| | | +</IfDefine> |
| | | + |
| | | +<IfModule mod_proxy_html.c> |
| | | + |
| | | + |
| | | # All knowledge of HTML links has been removed from the mod_proxy_html |
| | | # code itself, and is instead read from httpd.conf (or included file) |
| | | # at server startup. So you MUST declare it. This will normally be |
| | | @@ -60,7 +60,10 @@ |
| | | # |
| | | # ProxyHTMLLinks myelement myattr otherattr |
| | | # |
| | | -# See the documentation at |
| | | +# Also at top level in httpd.conf, you can declare charset aliases. |
| | | +# This is the most efficient way to support encodings that libxml2 |
| | | +# doesn't natively support. See the documentation at |
| | | # http://apache.webthing.com/mod_proxy_html/ |
| | | -# and the tutorial at |
| | | -# http://www.apachetutor.org/admin/reverseproxies |
| | | + |
| | | +</IfModule> |
| | | + |
New file |
| | |
| | | --- /dev/null 2011-05-10 16:41:00.000000000 -0700 |
| | | +++ mod_proxy_html/Makefile 2011-05-10 16:39:23.932152964 -0700 |
| | | @@ -0,0 +1,15 @@ |
| | | +APXS=apxs |
| | | + |
| | | +INCLUDES="-I/usr/include/libxml2 -I." |
| | | + |
| | | +all: .libs/mod_proxy_html.so .libs/mod_xml2enc.so |
| | | + |
| | | +.libs/mod_proxy_html.so: mod_proxy_html.c |
| | | + $(APXS) -c -o mod_proxy_html.so $(INCLUDES) mod_proxy_html.c |
| | | + |
| | | +.libs/mod_xml2enc.so: mod_xml2enc.c |
| | | + $(APXS) -c -o mod_xml2enc.so $(INCLUDES) mod_xml2enc.c |
| | | + |
| | | +clean: |
| | | + -rm -f *.o *.so *.lo *.la *.slo |
| | | + -rm -rf .libs |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | include ../../../make-rules/shared-macros.mk |
| | | |
| | | COMPONENT_NAME= modsecurity-apache |
| | | COMPONENT_VERSION= 2.5.9 |
| | | COMPONENT_SRC= $(COMPONENT_NAME)_$(COMPONENT_VERSION) |
| | | COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz |
| | | COMPONENT_ARCHIVE_HASH= sha1:875919332a918956371fe8e2f7e46d88081857cf |
| | | COMPONENT_ARCHIVE_URL= http://www.modsecurity.org/download/$(COMPONENT_ARCHIVE) |
| | | |
| | | include ../../../make-rules/prep.mk |
| | | include ../../../make-rules/configure.mk |
| | | include ../../../make-rules/ips.mk |
| | | |
| | | APACHE_USR_PREFIX=/usr/apache2/2.2 |
| | | |
| | | APXS.32= $(APACHE_USR_PREFIX)/bin/apxs |
| | | APXS.64= $(APACHE_USR_PREFIX)/bin/$(MACH64)/apxs |
| | | |
| | | CONFIGURE_OPTIONS += LTFLAGS="--silent --tag=CC" |
| | | CONFIGURE_OPTIONS += --with-apxs=$(APXS.$(BITS)) |
| | | CONFIGURE_OPTIONS += --with-apr=`$(APXS.$(BITS)) -q APR_CONFIG` |
| | | CONFIGURE_OPTIONS += --with-apu=`$(APXS.$(BITS)) -q APU_CONFIG` |
| | | |
| | | # Need to get right version of C compiler and GNU sed first. |
| | | PATH=$(SPRO_VROOT)/bin:/usr/gnu/bin:/usr/bin |
| | | |
| | | # Some patches need configure script re-creation. |
| | | COMPONENT_PREP_ACTION = (cd $(@D)/apache2; autoconf) |
| | | |
| | | CONFIGURE_SCRIPT = $(SOURCE_DIR)/apache2/configure |
| | | |
| | | # Header files are missing during build without cloning. |
| | | COMPONENT_PRE_BUILD_ACTION += ($(CLONEY) $(SOURCE_DIR)/apache2 $(@D)); |
| | | |
| | | build: $(BUILD_32_and_64) |
| | | |
| | | test: $(NO_TESTS) |
| | | |
| | | BUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS) |
| | | |
| | | include ../../../make-rules/depend.mk |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | set name=pkg.fmri \ |
| | | value=pkg:/web/server/apache-22/module/apache-security@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) |
| | | set name=pkg.summary \ |
| | | value="Mod Security plugin for Apache Web Server V2.2" |
| | | set name=pkg.description \ |
| | | value="Mod Security plugin for Apache Web Server Version 2.2" |
| | | set name=info.classification \ |
| | | value="org.opensolaris.category.2008:Web Services/Application and Web Servers" |
| | | set name=info.upstream_url value="http://www.modsecurity.org/" |
| | | set name=info.source_url value=$(COMPONENT_ARCHIVE_URL) |
| | | set name=opensolaris.arc_url \ |
| | | value=http://arc.opensolaris.org/caselog/PSARC/2008/090 |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | |
| | | license security2.license license="GPLv2" |
| | | |
| | | dir path=etc |
| | | dir path=etc/apache2 |
| | | dir path=etc/apache2/2.2 |
| | | dir path=etc/apache2/2.2/samples-conf.d |
| | | dir path=usr |
| | | dir path=usr/apache2 |
| | | dir path=usr/apache2/2.2 |
| | | dir path=usr/apache2/2.2/libexec |
| | | dir path=usr/apache2/2.2/libexec/$(MACH64) |
| | | file security2.conf path=etc/apache2/2.2/samples-conf.d/security2.conf |
| | | file build/$(MACH32)/.libs/mod_security2.so path=usr/apache2/2.2/libexec/mod_security2.so |
| | | file build/$(MACH64)/.libs/mod_security2.so path=usr/apache2/2.2/libexec/$(MACH64)/mod_security2.so |
| | | |
| | | legacy pkg=SUNWapch22m-security \ |
| | | name="Mod Security plugin (2.5.9) for Apache Web Server Version 2.2" \ |
| | | desc="Mod Security plugin (2.5.9) for Apache Web Server Version 2.2" |
| | | |
| | | legacy pkg=SUNWapch22r-security \ |
| | | name="Mod Security plugin (2.5.9) for Apache Web Server Version 2.2" \ |
| | | desc="Mod Security plugin (2.5.9) for Apache Web Server Version 2.2" |
New file |
| | |
| | | --- modsecurity-apache_2.5.9/apache2/configure.in.orig Fri May 6 03:57:25 2011 |
| | | +++ modsecurity-apache_2.5.9/apache2/configure.in Fri May 6 03:59:43 2011 |
| | | @@ -302,9 +302,9 @@ |
| | | ### Build *EXTRA_CFLAGS vars |
| | | |
| | | if test -n "$debug_mem"; then |
| | | - EXTRA_CFLAGS="-O0 -g -Wall" |
| | | + EXTRA_CFLAGS="-O0 -g" |
| | | else |
| | | - EXTRA_CFLAGS="-O2 -g -Wall $strict_compile" |
| | | + EXTRA_CFLAGS="-O2 -g $strict_compile" |
| | | fi |
| | | MODSEC_EXTRA_CFLAGS="$debug_conf $debug_cache $debug_acmp $debug_mem $perf_meas $modsec_api" |
| | | |
| | | @@ -311,11 +311,11 @@ |
| | | APXS_WRAPPER=build/apxs-wrapper |
| | | APXS_EXTRA_CFLAGS="" |
| | | for f in $EXTRA_CFLAGS; do |
| | | - APXS_EXTRA_CFLAGS="$APXS_EXTRA_CFLAGS -Wc,$f" |
| | | + APXS_EXTRA_CFLAGS="$APXS_EXTRA_CFLAGS" |
| | | done; |
| | | MODSEC_APXS_EXTRA_CFLAGS="" |
| | | for f in $MODSEC_EXTRA_CFLAGS; do |
| | | - MODSEC_APXS_EXTRA_CFLAGS="$MODSEC_APXS_EXTRA_CFLAGS -Wc,$f" |
| | | + MODSEC_APXS_EXTRA_CFLAGS="$MODSEC_APXS_EXTRA_CFLAGS" |
| | | done; |
| | | |
| | | ### Substitute the vars |
New file |
| | |
| | | |
| | | <IfDefine 64bit> |
| | | LoadModule security2_module libexec/64/mod_security2.so |
| | | </IfDefine> |
| | | <IfDefine !64bit> |
| | | LoadModule security2_module libexec/mod_security2.so |
| | | </IfDefine> |
| | | |
| | | <IfModule mod_security2.c> |
| | | |
| | | # Basic configuration options |
| | | SecRuleEngine On |
| | | SecRequestBodyAccess On |
| | | SecResponseBodyAccess Off |
| | | |
| | | # Handling of file uploads |
| | | # TODO Choose a folder private to Apache. |
| | | # SecUploadDir /opt/apache-frontend/tmp/ |
| | | SecUploadKeepFiles Off |
| | | |
| | | # Debug log |
| | | SecDebugLog /var/apache2/2.2/logs/modsec_debug.log |
| | | SecDebugLogLevel 0 |
| | | |
| | | # Serial audit log |
| | | SecAuditEngine RelevantOnly |
| | | SecAuditLogRelevantStatus ^5 |
| | | SecAuditLogParts ABIFHZ |
| | | SecAuditLogType Serial |
| | | SecAuditLog /var/apache2/2.2/logs/modsec_audit.log |
| | | |
| | | # Maximum request body size we will |
| | | # accept for buffering |
| | | SecRequestBodyLimit 131072 |
| | | |
| | | # Store up to 128 KB in memory |
| | | SecRequestBodyInMemoryLimit 131072 |
| | | |
| | | # Buffer response bodies of up to |
| | | # 512 KB in length |
| | | SecResponseBodyLimit 524288 |
| | | |
| | | # Verify that we've correctly processed the request body. |
| | | # As a rule of thumb, when failing to process a request body |
| | | # you should reject the request when deployed in blocking mode |
| | | # or log a high-severity alert when deployed in detection-only mode. |
| | | SecRule REQBODY_PROCESSOR_ERROR "!@eq 0" "phase:2,t:none,log,deny,msg:'Failed to parse request body.',severity:2" |
| | | |
| | | # By default be strict with what we accept in the multipart/form-data |
| | | # request body. If the rule below proves to be too strict for your |
| | | # environment consider changing it to detection-only. You are encouraged |
| | | # _not_ to remove it altogether. |
| | | SecRule MULTIPART_STRICT_ERROR "!@eq 0" "phase:2,t:none,log,deny,msg:'Multipart request body failed strict validation: PE %{REQBODY_PROCESSOR_ERROR}, BQ %{MULTIPART_BOUNDARY_QUOTED}, BW %{MULTIPART_BOUNDARY_WHITESPACE}, DB %{MULTIPART_DATA_BEFORE}, DA %{MULTIPART_DATA_AFTER}, HF %{MULTIPART_HEADER_FOLDING}, LF %{MULTIPART_LF_LINE}, SM %{MULTIPART_SEMICOLON_MISSING}'" |
| | | |
| | | # Did we see anything that might be a boundary? |
| | | SecRule MULTIPART_UNMATCHED_BOUNDARY "!@eq 0" "phase:2,t:none,log,deny,msg:'Multipart parser detected a possible unmatched boundary.'" |
| | | |
| | | SecRule REQUEST_URI "sfw" "deny" |
| | | </IfModule> |
New file |
| | |
| | | Oracle elects to use only the GNU Lesser General Public License version |
| | | 2.1 (LGPL)/GNU General Public License version 2 (GPL) for any software |
| | | where a choice of LGPL/GPL license versions are made available with the |
| | | language indicating that LGPLv2.1/GPLv2 or any later version may be |
| | | used, or where a choice of which version of the LGPL/GPL is applied is |
| | | unspecified. Unless specifically stated otherwise, where a choice |
| | | exists between another license and either the GPL or the LGPL, Oracle |
| | | chooses the other license. |
| | | ==================================================================== |
| | | |
| | | GNU GENERAL PUBLIC LICENSE |
| | | Version 2, June 1991 |
| | | |
| | | Copyright (C) 1989, 1991 Free Software Foundation, Inc. |
| | | 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| | | Everyone is permitted to copy and distribute verbatim copies |
| | | of this license document, but changing it is not allowed. |
| | | |
| | | Preamble |
| | | |
| | | The licenses for most software are designed to take away your |
| | | freedom to share and change it. By contrast, the GNU General Public |
| | | License is intended to guarantee your freedom to share and change free |
| | | software--to make sure the software is free for all its users. This |
| | | General Public License applies to most of the Free Software |
| | | Foundation's software and to any other program whose authors commit to |
| | | using it. (Some other Free Software Foundation software is covered by |
| | | the GNU Library General Public License instead.) You can apply it to |
| | | your programs, too. |
| | | |
| | | When we speak of free software, we are referring to freedom, not |
| | | price. Our General Public Licenses are designed to make sure that you |
| | | have the freedom to distribute copies of free software (and charge for |
| | | this service if you wish), that you receive source code or can get it |
| | | if you want it, that you can change the software or use pieces of it |
| | | in new free programs; and that you know you can do these things. |
| | | |
| | | To protect your rights, we need to make restrictions that forbid |
| | | anyone to deny you these rights or to ask you to surrender the rights. |
| | | These restrictions translate to certain responsibilities for you if you |
| | | distribute copies of the software, or if you modify it. |
| | | |
| | | For example, if you distribute copies of such a program, whether |
| | | gratis or for a fee, you must give the recipients all the rights that |
| | | you have. You must make sure that they, too, receive or can get the |
| | | source code. And you must show them these terms so they know their |
| | | rights. |
| | | |
| | | We protect your rights with two steps: (1) copyright the software, and |
| | | (2) offer you this license which gives you legal permission to copy, |
| | | distribute and/or modify the software. |
| | | |
| | | Also, for each author's protection and ours, we want to make certain |
| | | that everyone understands that there is no warranty for this free |
| | | software. If the software is modified by someone else and passed on, we |
| | | want its recipients to know that what they have is not the original, so |
| | | that any problems introduced by others will not reflect on the original |
| | | authors' reputations. |
| | | |
| | | Finally, any free program is threatened constantly by software |
| | | patents. We wish to avoid the danger that redistributors of a free |
| | | program will individually obtain patent licenses, in effect making the |
| | | program proprietary. To prevent this, we have made it clear that any |
| | | patent must be licensed for everyone's free use or not licensed at all. |
| | | |
| | | The precise terms and conditions for copying, distribution and |
| | | modification follow. |
| | | |
| | | GNU GENERAL PUBLIC LICENSE |
| | | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
| | | |
| | | 0. This License applies to any program or other work which contains |
| | | a notice placed by the copyright holder saying it may be distributed |
| | | under the terms of this General Public License. The "Program", below, |
| | | refers to any such program or work, and a "work based on the Program" |
| | | means either the Program or any derivative work under copyright law: |
| | | that is to say, a work containing the Program or a portion of it, |
| | | either verbatim or with modifications and/or translated into another |
| | | language. (Hereinafter, translation is included without limitation in |
| | | the term "modification".) Each licensee is addressed as "you". |
| | | |
| | | Activities other than copying, distribution and modification are not |
| | | covered by this License; they are outside its scope. The act of |
| | | running the Program is not restricted, and the output from the Program |
| | | is covered only if its contents constitute a work based on the |
| | | Program (independent of having been made by running the Program). |
| | | Whether that is true depends on what the Program does. |
| | | |
| | | 1. You may copy and distribute verbatim copies of the Program's |
| | | source code as you receive it, in any medium, provided that you |
| | | conspicuously and appropriately publish on each copy an appropriate |
| | | copyright notice and disclaimer of warranty; keep intact all the |
| | | notices that refer to this License and to the absence of any warranty; |
| | | and give any other recipients of the Program a copy of this License |
| | | along with the Program. |
| | | |
| | | You may charge a fee for the physical act of transferring a copy, and |
| | | you may at your option offer warranty protection in exchange for a fee. |
| | | |
| | | 2. You may modify your copy or copies of the Program or any portion |
| | | of it, thus forming a work based on the Program, and copy and |
| | | distribute such modifications or work under the terms of Section 1 |
| | | above, provided that you also meet all of these conditions: |
| | | |
| | | a) You must cause the modified files to carry prominent notices |
| | | stating that you changed the files and the date of any change. |
| | | |
| | | b) You must cause any work that you distribute or publish, that in |
| | | whole or in part contains or is derived from the Program or any |
| | | part thereof, to be licensed as a whole at no charge to all third |
| | | parties under the terms of this License. |
| | | |
| | | c) If the modified program normally reads commands interactively |
| | | when run, you must cause it, when started running for such |
| | | interactive use in the most ordinary way, to print or display an |
| | | announcement including an appropriate copyright notice and a |
| | | notice that there is no warranty (or else, saying that you provide |
| | | a warranty) and that users may redistribute the program under |
| | | these conditions, and telling the user how to view a copy of this |
| | | License. (Exception: if the Program itself is interactive but |
| | | does not normally print such an announcement, your work based on |
| | | the Program is not required to print an announcement.) |
| | | |
| | | These requirements apply to the modified work as a whole. If |
| | | identifiable sections of that work are not derived from the Program, |
| | | and can be reasonably considered independent and separate works in |
| | | themselves, then this License, and its terms, do not apply to those |
| | | sections when you distribute them as separate works. But when you |
| | | distribute the same sections as part of a whole which is a work based |
| | | on the Program, the distribution of the whole must be on the terms of |
| | | this License, whose permissions for other licensees extend to the |
| | | entire whole, and thus to each and every part regardless of who wrote it. |
| | | |
| | | Thus, it is not the intent of this section to claim rights or contest |
| | | your rights to work written entirely by you; rather, the intent is to |
| | | exercise the right to control the distribution of derivative or |
| | | collective works based on the Program. |
| | | |
| | | In addition, mere aggregation of another work not based on the Program |
| | | with the Program (or with a work based on the Program) on a volume of |
| | | a storage or distribution medium does not bring the other work under |
| | | the scope of this License. |
| | | |
| | | 3. You may copy and distribute the Program (or a work based on it, |
| | | under Section 2) in object code or executable form under the terms of |
| | | Sections 1 and 2 above provided that you also do one of the following: |
| | | |
| | | a) Accompany it with the complete corresponding machine-readable |
| | | source code, which must be distributed under the terms of Sections |
| | | 1 and 2 above on a medium customarily used for software interchange; or, |
| | | |
| | | b) Accompany it with a written offer, valid for at least three |
| | | years, to give any third party, for a charge no more than your |
| | | cost of physically performing source distribution, a complete |
| | | machine-readable copy of the corresponding source code, to be |
| | | distributed under the terms of Sections 1 and 2 above on a medium |
| | | customarily used for software interchange; or, |
| | | |
| | | c) Accompany it with the information you received as to the offer |
| | | to distribute corresponding source code. (This alternative is |
| | | allowed only for noncommercial distribution and only if you |
| | | received the program in object code or executable form with such |
| | | an offer, in accord with Subsection b above.) |
| | | |
| | | The source code for a work means the preferred form of the work for |
| | | making modifications to it. For an executable work, complete source |
| | | code means all the source code for all modules it contains, plus any |
| | | associated interface definition files, plus the scripts used to |
| | | control compilation and installation of the executable. However, as a |
| | | special exception, the source code distributed need not include |
| | | anything that is normally distributed (in either source or binary |
| | | form) with the major components (compiler, kernel, and so on) of the |
| | | operating system on which the executable runs, unless that component |
| | | itself accompanies the executable. |
| | | |
| | | If distribution of executable or object code is made by offering |
| | | access to copy from a designated place, then offering equivalent |
| | | access to copy the source code from the same place counts as |
| | | distribution of the source code, even though third parties are not |
| | | compelled to copy the source along with the object code. |
| | | |
| | | 4. You may not copy, modify, sublicense, or distribute the Program |
| | | except as expressly provided under this License. Any attempt |
| | | otherwise to copy, modify, sublicense or distribute the Program is |
| | | void, and will automatically terminate your rights under this License. |
| | | However, parties who have received copies, or rights, from you under |
| | | this License will not have their licenses terminated so long as such |
| | | parties remain in full compliance. |
| | | |
| | | 5. You are not required to accept this License, since you have not |
| | | signed it. However, nothing else grants you permission to modify or |
| | | distribute the Program or its derivative works. These actions are |
| | | prohibited by law if you do not accept this License. Therefore, by |
| | | modifying or distributing the Program (or any work based on the |
| | | Program), you indicate your acceptance of this License to do so, and |
| | | all its terms and conditions for copying, distributing or modifying |
| | | the Program or works based on it. |
| | | |
| | | 6. Each time you redistribute the Program (or any work based on the |
| | | Program), the recipient automatically receives a license from the |
| | | original licensor to copy, distribute or modify the Program subject to |
| | | these terms and conditions. You may not impose any further |
| | | restrictions on the recipients' exercise of the rights granted herein. |
| | | You are not responsible for enforcing compliance by third parties to |
| | | this License. |
| | | |
| | | 7. If, as a consequence of a court judgment or allegation of patent |
| | | infringement or for any other reason (not limited to patent issues), |
| | | conditions are imposed on you (whether by court order, agreement or |
| | | otherwise) that contradict the conditions of this License, they do not |
| | | excuse you from the conditions of this License. If you cannot |
| | | distribute so as to satisfy simultaneously your obligations under this |
| | | License and any other pertinent obligations, then as a consequence you |
| | | may not distribute the Program at all. For example, if a patent |
| | | license would not permit royalty-free redistribution of the Program by |
| | | all those who receive copies directly or indirectly through you, then |
| | | the only way you could satisfy both it and this License would be to |
| | | refrain entirely from distribution of the Program. |
| | | |
| | | If any portion of this section is held invalid or unenforceable under |
| | | any particular circumstance, the balance of the section is intended to |
| | | apply and the section as a whole is intended to apply in other |
| | | circumstances. |
| | | |
| | | It is not the purpose of this section to induce you to infringe any |
| | | patents or other property right claims or to contest validity of any |
| | | such claims; this section has the sole purpose of protecting the |
| | | integrity of the free software distribution system, which is |
| | | implemented by public license practices. Many people have made |
| | | generous contributions to the wide range of software distributed |
| | | through that system in reliance on consistent application of that |
| | | system; it is up to the author/donor to decide if he or she is willing |
| | | to distribute software through any other system and a licensee cannot |
| | | impose that choice. |
| | | |
| | | This section is intended to make thoroughly clear what is believed to |
| | | be a consequence of the rest of this License. |
| | | |
| | | 8. If the distribution and/or use of the Program is restricted in |
| | | certain countries either by patents or by copyrighted interfaces, the |
| | | original copyright holder who places the Program under this License |
| | | may add an explicit geographical distribution limitation excluding |
| | | those countries, so that distribution is permitted only in or among |
| | | countries not thus excluded. In such case, this License incorporates |
| | | the limitation as if written in the body of this License. |
| | | |
| | | 9. The Free Software Foundation may publish revised and/or new versions |
| | | of the General Public License from time to time. Such new versions will |
| | | be similar in spirit to the present version, but may differ in detail to |
| | | address new problems or concerns. |
| | | |
| | | Each version is given a distinguishing version number. If the Program |
| | | specifies a version number of this License which applies to it and "any |
| | | later version", you have the option of following the terms and conditions |
| | | either of that version or of any later version published by the Free |
| | | Software Foundation. If the Program does not specify a version number of |
| | | this License, you may choose any version ever published by the Free Software |
| | | Foundation. |
| | | |
| | | 10. If you wish to incorporate parts of the Program into other free |
| | | programs whose distribution conditions are different, write to the author |
| | | to ask for permission. For software which is copyrighted by the Free |
| | | Software Foundation, write to the Free Software Foundation; we sometimes |
| | | make exceptions for this. Our decision will be guided by the two goals |
| | | of preserving the free status of all derivatives of our free software and |
| | | of promoting the sharing and reuse of software generally. |
| | | |
| | | NO WARRANTY |
| | | |
| | | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
| | | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
| | | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
| | | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
| | | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| | | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
| | | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
| | | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
| | | REPAIR OR CORRECTION. |
| | | |
| | | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
| | | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
| | | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
| | | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
| | | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
| | | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
| | | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
| | | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
| | | POSSIBILITY OF SUCH DAMAGES. |
| | | |
| | | END OF TERMS AND CONDITIONS |
| | | |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | include ../../make-rules/shared-macros.mk |
| | | |
| | | COMPONENT_NAME= httpd |
| | | COMPONENT_VERSION= 2.2.16 |
| | | COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION) |
| | | COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz |
| | | COMPONENT_ARCHIVE_HASH= sha1:6937bd8b127541d6700b870681120b2b4cc79ba9 |
| | | COMPONENT_ARCHIVE_URL= http://archive.apache.org/dist/httpd/$(COMPONENT_ARCHIVE) |
| | | |
| | | CONFIGURE_DEFAULT_DIRS=no |
| | | |
| | | include ../../make-rules/prep.mk |
| | | include ../../make-rules/configure.mk |
| | | include ../../make-rules/ips.mk |
| | | |
| | | PATCH_LEVEL=0 |
| | | |
| | | # Some patches need configure script re-creation. |
| | | COMPONENT_PREP_ACTION +=($(CP) mod_sed/* $(@D)/modules/filters); |
| | | COMPONENT_PREP_ACTION +=($(CP) mod_auth_gss/mod_auth_gss.c $(@D)/modules/aaa); |
| | | COMPONENT_PREP_ACTION +=($(CP) mod_auth_gss/mod_auth_gss.html $(@D)/docs/manual/mod); |
| | | COMPONENT_PREP_ACTION +=(cd $(@D); autoreconf); |
| | | |
| | | VARIANT_PREFORK = $(BUILD_DIR)/prefork |
| | | VARIANT_WORKER = $(BUILD_DIR)/worker |
| | | |
| | | VARIANTS = $(VARIANT_WORKER) $(VARIANT_PREFORK) |
| | | |
| | | BUILD_32 = $(VARIANTS:%=%/$(MACH32)/.built) |
| | | BUILD_64 = $(VARIANTS:%=%/$(MACH64)/.built) |
| | | |
| | | INSTALL_32 = $(VARIANTS:%=%/$(MACH32)/.installed) |
| | | INSTALL_64 = $(VARIANTS:%=%/$(MACH64)/.installed) |
| | | |
| | | $(VARIANT_PREFORK)/$(MACH64)/.configured: BITS=64 |
| | | $(VARIANT_WORKER)/$(MACH64)/.configured: BITS=64 |
| | | |
| | | $(VARIANT_PREFORK)/%/.configured: CONFIGURE_OPTIONS += --with-mpm=prefork |
| | | $(VARIANT_WORKER)/%/.configured: CONFIGURE_OPTIONS += --with-mpm=worker |
| | | |
| | | # pipefail wouldn't allow APR-util version check |
| | | CONFIGURE_ENV += SHELLOPTS= |
| | | |
| | | CONFIGURE_PREFIX = /usr/apache2/2.2 |
| | | |
| | | CONFIGURE_OPTIONS += --enable-mods-shared=all |
| | | CONFIGURE_OPTIONS += --enable-so |
| | | CONFIGURE_OPTIONS += --enable-suexec |
| | | CONFIGURE_OPTIONS += --with-suexec-caller=webservd |
| | | CONFIGURE_OPTIONS += --enable-proxy |
| | | CONFIGURE_OPTIONS += --enable-proxy-connect |
| | | CONFIGURE_OPTIONS += --enable-proxy-ftp |
| | | CONFIGURE_OPTIONS += --enable-proxy-http |
| | | CONFIGURE_OPTIONS += --enable-proxy-ajp |
| | | CONFIGURE_OPTIONS += --enable-proxy-balancer |
| | | CONFIGURE_OPTIONS += --enable-cache |
| | | CONFIGURE_OPTIONS += --enable-file-cache |
| | | CONFIGURE_OPTIONS += --enable-disk-cache |
| | | CONFIGURE_OPTIONS += --enable-mem-cache |
| | | CONFIGURE_OPTIONS += --enable-deflate |
| | | CONFIGURE_OPTIONS += --enable-cgid |
| | | CONFIGURE_OPTIONS += --enable-cgi |
| | | CONFIGURE_OPTIONS += --enable-authnz-ldap |
| | | CONFIGURE_OPTIONS += --enable-ldap |
| | | CONFIGURE_OPTIONS += --enable-ssl |
| | | CONFIGURE_OPTIONS += --enable-exception-hook |
| | | CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS) -DSSL_EXPERIMENTAL -DSSL_ENGINE" |
| | | CONFIGURE_OPTIONS += LTFLAGS="--silent --tag=CC" |
| | | CONFIGURE_OPTIONS.32 += --enable-layout=Solaris-Apache2 |
| | | CONFIGURE_OPTIONS.64 += --enable-layout=Solaris-Apache2-$(MACH64) |
| | | CONFIGURE_OPTIONS.32 += --with-apr=/usr/apr/1.3/bin/apr-1-config |
| | | CONFIGURE_OPTIONS.64 += --with-apr=/usr/apr/1.3/bin/$(MACH64)/apr-1-config |
| | | CONFIGURE_OPTIONS.32 += --with-apr-util=/usr/apr-util/1.3/bin/apu-1-config |
| | | CONFIGURE_OPTIONS.64 += --with-apr-util=/usr/apr-util/1.3/bin/$(MACH64)/apu-1-config |
| | | |
| | | PATH=$(SPRO_VROOT)/bin:/usr/bin:/usr/gnu/bin |
| | | |
| | | build: $(BUILD_32_and_64) |
| | | |
| | | AP_CONFIG_LAYOUT_H=include/ap_config_layout.h |
| | | |
| | | install: $(INSTALL_32_and_64) |
| | | # Some files installed in proto area need to be fixed. |
| | | $(KSH93) Solaris/customization.sh $(PROTO_DIR) $(MACH64) |
| | | # Common header files for 32 and 64 bit variants are needed. |
| | | /usr/bin/diff -D __$(MACH64) \ |
| | | $(VARIANT_PREFORK)/$(MACH32)/$(AP_CONFIG_LAYOUT_H) \ |
| | | $(VARIANT_PREFORK)/$(MACH64)/$(AP_CONFIG_LAYOUT_H) \ |
| | | > $(PROTO_DIR)$(CONFIGURE_PREFIX)/$(AP_CONFIG_LAYOUT_H) ; true |
| | | |
| | | test: $(NO_TESTS) |
| | | |
| | | BUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS) |
| | | |
| | | include ../../make-rules/depend.mk |
New file |
| | |
| | | '\" te |
| | | .\" Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. |
| | | .TH apache2 1M "May 2011" "SunOS 5.11" "System Administration Commands" |
| | | .SH NAME |
| | | apache2 \- Apache HTTP Server Version 2 overview |
| | | .SH SYNOPSIS |
| | | .LP |
| | | .nf |
| | | \fBapache2\fR |
| | | .fi |
| | | |
| | | .SH DESCRIPTION |
| | | .sp |
| | | .LP |
| | | Apache HTTP Server Version 2 (Apache 2) consists of a main server daemon, |
| | | loadable server modules, some additional support utilities, configuration |
| | | files, and documentation. |
| | | .sp |
| | | .LP |
| | | Both 32-bit and 64-bit versions of the servers are installed. It also |
| | | includes two of the most popular MPMs - Prefork and Worker. |
| | | .SH FILES |
| | | .sp |
| | | .LP |
| | | The following files specify the installation locations for Apache 2: |
| | | .LP |
| | | Note : |
| | | .RS +4 |
| | | .TP |
| | | .ie t \(bu |
| | | .el o |
| | | The string \fB[version]\fR should be expanded |
| | | to \fB"MAJOR.MINOR"\fR. For example, \fB/usr/apache2/2.2/*\fR. |
| | | .RE |
| | | .RS +4 |
| | | .TP |
| | | .ie t \(bu |
| | | .el o |
| | | \fB[isainfo]\fR represents the output of \fBisainfo |
| | | -n\fR on 64-bit platform. |
| | | .RE |
| | | .RS +4 |
| | | .TP |
| | | .ie t \(bu |
| | | .el o |
| | | To find the current version of Apache 2 installed on your |
| | | machine, type the following command: |
| | | .sp |
| | | .in +2 |
| | | .nf |
| | | $ /usr/apache2/[version]/bin/apachectl -v |
| | | .fi |
| | | .in -2 |
| | | .sp |
| | | |
| | | .RE |
| | | .RE |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/etc/apache2/[version]/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contains server configuration files. A newly-installed server |
| | | contains a default \fBhttpd.conf\fR file. This is the main configuration file. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/etc/apache2/[version]/conf.d/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contains additional server configuration files. |
| | | .sp |
| | | By default, server will load all the \fB\&.conf\fR files |
| | | placed under this directory. It also has 2 additional \fB\&.load\fR configuration |
| | | files-\fBmodules-32.load\fR and \fBmodules-64.load\fR which |
| | | contain \fBLoadModule\fR directives for loading the 32 and 64-bit |
| | | bundled Apache 2 modules respectively. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/etc/apache2/[version]/envvars\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | File for specifying the environment settings which the server uses at |
| | | startup. This is the user-editable version of the |
| | | /usr/apache2/[version]/bin/envvars file. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/etc/apache2/[version]/magic\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Magic data for \fBmod_mime_magic\fR Apache module as documented in the |
| | | .nf |
| | | \fB/usr/apache2/2.2/manual/mod/mod_mime_magic.html\fR file. |
| | | .fi |
| | | .nf |
| | | Editing this file is not recommended. |
| | | .fi |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/etc/apache2/[version]/mime.types\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Default MIME types file. This file sets the default list of |
| | | mappings from filename extensions to content types, changing this file is |
| | | not recommended. Use the \fBAddType\fR directive instead. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/etc/apache2/[version]/original/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contents under this directory are delivered as-is from the |
| | | apache distribution and these files are not meant to be read by the server. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/etc/apache2/[version]/sample-conf.d/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contains sample \fB\&.conf\fR files. These are |
| | | not included in the main configuration file. To use the sample file, copy |
| | | the file to \fBconf.d\fR directory and modify as per the need. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/usr/apache2/[version]/bin/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contains the 32-bit httpd (Prefork MPM) and httpd.worker (Worker |
| | | MPM) executable as well as other utility programs. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/usr/apache2/[version]/bin/[isainfo]/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contains the 64-bit httpd (Prefork MPM) and httpd.worker (Worker |
| | | MPM) executables as well as other utility programs. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/usr/apache2/[version]/bin/envvars\fR\fR |
| | | \fB\fB/usr/apache2/[version]/bin/[isainfo]/envvars\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contains the default environment settings that the server uses at startup. |
| | | .nf |
| | | Editing this file is not recommended. |
| | | .fi |
| | | Instead, user should use /etc/apache2/[version]/envvars file. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/usr/apache2/[version]/manual/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contains the Apache 2 manual in HTML format. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/usr/apache2/[version]/include/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contains the Apache 2 header files, which are needed for building |
| | | various optional server extensions with \fBapxs(8)\fR. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/usr/apache2/[version]/libexec/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contains 32-bit loadable modules (DSOs) supplied with the |
| | | server. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/usr/apache2/[version]/libexec/[isainfo]/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contains 64-bit loadable modules (DSOs) supplied with the |
| | | server. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/usr/apache2/[version]/man/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contains man pages for the server, utility programs, and \fBmod_perl\fR. |
| | | .sp |
| | | Add this directory to your MANPATH to read the Apache 2 man pages. See |
| | | Notes. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/usr/apache2/[version]/lib/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contains the 32-bit Apache 2 core libraries. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/usr/apache2/[version]/lib/[isainfo]/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contains the 64-bit Apache 2 core libraries. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/usr/apache2/[version]/lib/perl/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contains the 32-bit modules and library files used by the \fBmod_perl\fR extension to Apache 2. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/var/apache2/[version]/cgi-bin/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Default location for the CGI scripts. |
| | | .sp |
| | | This can be changed by altering the \fBhttpd.conf\fR file |
| | | and restarting the server. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/var/apache2/[version]/htdocs/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Default document root. |
| | | .sp |
| | | This can be changed by altering the \fBhttpd.conf\fR file |
| | | and restarting the server. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/var/apache2/[version]/icons/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Icons used by the server. |
| | | .sp |
| | | This should not be changed. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/var/apache2/[version]/libexec/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Place holder for 32-bit user Apache 2 modules. |
| | | .sp |
| | | Any 32-bit modules which are added using \fBapxs(8)\fR are |
| | | copied into this directory. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/var/apache2/[version]/libexec/[isainfo]/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Place holder for 64-bit user Apache 2 modules. |
| | | .sp |
| | | Any 64-bit modules which are added using \fBapxs(8)\fR are |
| | | copied into this directory. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/var/apache2/[version]/logs/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Contains server log files. |
| | | .sp |
| | | The formats, names, and locations of the files in this directory can |
| | | be altered by various configuration directives in the \fBhttpd.conf\fR file. |
| | | .RE |
| | | |
| | | .sp |
| | | .ne 2 |
| | | .mk |
| | | .na |
| | | \fB\fB/var/apache2/[version]/proxy/\fR\fR |
| | | .ad |
| | | .sp .6 |
| | | .RS 4n |
| | | Directory used to cache pages if the caching feature of \fBmod_proxy\fR is enabled in the \fBhttpd.conf\fR file. |
| | | .sp |
| | | The location of the cache can also be changed by changing the proxy |
| | | configuration in the \fBhttpd.conf\fR file. |
| | | .RE |
| | | |
| | | .SH SEE ALSO |
| | | .sp |
| | | .LP |
| | | \fBattributes(5)\fR, \fBhttpd(8)\fR, apachectl(8) |
| | | .sp |
| | | .LP |
| | | http://www.apache.org |
| | | .SH NOTES |
| | | .sp |
| | | .LP |
| | | In addition to the documentation and man pages included with Solaris, |
| | | more information is available at http://www.apache.org\&. |
| | | .sp |
| | | .LP |
| | | The Apache 2 man pages are provided with the programming modules. To |
| | | view the manual pages for the Apache 2 modules with the man command, add \fB/usr/apache2/[version]/man\fR to the MANPATH environment variable. |
| | | See \fBman(1)\fR for more information. Running \fBcatman(1M)\fR on |
| | | the Apache 2 manual pages is not supported. |
New file |
| | |
| | | #!/usr/bin/ksh93 |
| | | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | set -o errexit |
| | | |
| | | PROTO=$1 |
| | | MACH64=$2 |
| | | |
| | | CONFDIR=${PROTO}/etc/apache2/2.2 |
| | | MODULES_32_CONF=${CONFDIR}/conf.d/modules-32.load |
| | | MODULES_64_CONF=${CONFDIR}/conf.d/modules-64.load |
| | | APACHECTL64=${PROTO}/usr/apache2/2.2/bin/${MACH64}/apachectl |
| | | APACHE_BUILD_DIR32=${PROTO}/usr/apache2/2.2/build |
| | | APACHE_BUILD_DIR64=${PROTO}/usr/apache2/2.2/build/${MACH64} |
| | | |
| | | mkdir -p ${CONFDIR}/conf.d |
| | | mkdir -p ${CONFDIR}/samples-conf.d |
| | | mkdir -p ${PROTO}/lib/svc/method |
| | | |
| | | cp Solaris/modules-32.load Solaris/modules-64.load ${CONFDIR}/conf.d |
| | | |
| | | # Strip LoadModule directives from httpd.conf. |
| | | grep -v "^LoadModule " ${CONFDIR}/httpd.conf > ${CONFDIR}/original/httpd.conf |
| | | |
| | | # Strip the 32-bit LoadModule directives from httpd.conf and put them in a |
| | | # separate file. |
| | | grep "^LoadModule " ${CONFDIR}/httpd.conf >> ${MODULES_32_CONF} |
| | | sed -f Solaris/loadmodules.sed ${MODULES_32_CONF} > ${MODULES_32_CONF}.new |
| | | mv ${MODULES_32_CONF}.new ${MODULES_32_CONF} |
| | | |
| | | # Strip the 64-bit LoadModule directives from httpd.conf and put them in a |
| | | # separate file. |
| | | grep "^LoadModule " ${CONFDIR}/httpd.conf | sed -e "s;/;/64/;g" >> ${MODULES_64_CONF} |
| | | sed -f Solaris/loadmodules.sed ${MODULES_64_CONF} > ${MODULES_64_CONF}.new |
| | | mv ${MODULES_64_CONF}.new ${MODULES_64_CONF} |
| | | |
| | | # Remove the bundled but disabled (by default) modules from modules-32.load, |
| | | # modules-64.load and create a sample .conf file for each of them. |
| | | for i in `sed -e 's/#.*//' -e '/^$/ d' Solaris/disabled-module.list`; do |
| | | sed -e '/LoadModule.*'${i}'.so/ d' ${MODULES_32_CONF} > ${MODULES_32_CONF}.new |
| | | mv ${MODULES_32_CONF}.new ${MODULES_32_CONF} |
| | | sed -e '/LoadModule.*'${i}'.so/ d' ${MODULES_64_CONF} > ${MODULES_64_CONF}.new |
| | | mv ${MODULES_64_CONF}.new ${MODULES_64_CONF} |
| | | module_name=`echo ${i} | sed -e 's/^mod_//'` |
| | | sed -e 's/::MODULE_NAME::/'${module_name}'/g' Solaris/sample-module.tmpl \ |
| | | > ${CONFDIR}/samples-conf.d/${module_name}.conf |
| | | done |
| | | |
| | | # Add MACH64 specific dir info into SMF method. |
| | | sed "s/::ISAINFO::/\/${MACH64}/" Solaris/http-apache22 > ${PROTO}/lib/svc/method/http-apache22 |
| | | |
| | | # Add "-D 64" argument into 64 bit apachectl (if it's not there yet). |
| | | grep OPTS_64 ${APACHECTL64} > /dev/null || ( sed -e '/^case $ARGV in/i\ |
| | | OPTS_64="-D 64bit"\ |
| | | HTTPD="$HTTPD $OPTS_64"\ |
| | | ' ${APACHECTL64} > ${APACHECTL64}.new && mv ${APACHECTL64}.new ${APACHECTL64} ) |
| | | |
| | | # Since we are delivering mod_sed in separate package we don't want it in |
| | | # original httpd.conf file. |
| | | grep sed_module ${CONFDIR}/httpd.conf > /dev/null && \ |
| | | grep -v sed_module ${CONFDIR}/httpd.conf > ${CONFDIR}/httpd.conf.new && \ |
| | | mv ${CONFDIR}/httpd.conf.new ${CONFDIR}/httpd.conf |
| | | |
| | | # Remove CBE specific paths for C compiler. |
| | | for i in ${APACHE_BUILD_DIR32}/config.nice \ |
| | | ${APACHE_BUILD_DIR64}/config.nice \ |
| | | ${APACHE_BUILD_DIR32}/config_vars.mk \ |
| | | ${APACHE_BUILD_DIR64}/config_vars.mk; |
| | | do |
| | | sed -e '/^.*CC *=/s,/.*/,,' \ |
| | | -e '/^.*CXX *=/s,/.*/,,' \ |
| | | -e '/MKDEP *=/s,/.*/,,' \ |
| | | -e '/\/configure/s,/.*/,.\/,' < ${i} > ${i}.new |
| | | mv ${i}.new ${i} |
| | | done |
| | | |
| | | # 64 bit rules.mk and special.mk should refer also to 64 bit build files. |
| | | for i in ${APACHE_BUILD_DIR64}/rules.mk \ |
| | | ${APACHE_BUILD_DIR64}/special.mk |
| | | do |
| | | sed -e "s/build\/config_vars/build\/${MACH64}\/config_vars/" \ |
| | | -e "s/build\/rules/build\/${MACH64}\/rules/" \ |
| | | -e "s/build\/instdso/build\/${MACH64}\/instdso/" < ${i} > ${i}.new |
| | | mv ${i}.new ${i} |
| | | done |
| | | exit 0 |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | |
| | | # |
| | | # Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | # |
| | | # This is the list of apache modules which are bundled but disabled by default. |
| | | # i.e. modules not loaded at startup. |
| | | # There will be one sample .conf file (with a name '<module-name>.conf') |
| | | # for every module listed below. These config files will be placed in |
| | | # $(ETC_ROOT)/apache2/2.2/samples-conf.d/ directory. |
| | | # Each config file will have the "LoadModule" directive for the corresponding |
| | | # apache module |
| | | # |
| | | |
| | | mod_proxy_scgi |
| | | mod_reqtimeout |
| | | mod_sed |
New file |
| | |
| | | #!/sbin/sh |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # |
| | | # Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | . /lib/svc/share/smf_include.sh |
| | | |
| | | APACHE_VERSION= |
| | | APACHE_USR_ROOT=/usr/apache2 |
| | | APACHE_ETC_ROOT=/etc/apache2 |
| | | APACHE_VAR_ROOT=/var/apache2 |
| | | |
| | | #if startup options contain multiple arguments separated by a blank, |
| | | #then they should be specified as below |
| | | #e.g., %> svccfg -s apache22 setprop 'httpd/startup_options=("-f" "/etc/apache2/2.2/new.conf")' |
| | | # |
| | | STARTUP_OPTIONS= |
| | | |
| | | SERVER_TYPE=prefork |
| | | PLATFORM_DIR= |
| | | |
| | | getprop() { |
| | | PROPVAL="" |
| | | svcprop -q -p $1 ${SMF_FMRI} |
| | | if [ $? -eq 0 ] ; then |
| | | PROPVAL=`svcprop -p $1 ${SMF_FMRI}` |
| | | if [ "${PROPVAL}" = "\"\"" ] ; then |
| | | PROPVAL="" |
| | | fi |
| | | return |
| | | fi |
| | | return |
| | | } |
| | | |
| | | APACHE_VERSION=`echo ${SMF_FMRI} | sed 's/[^0-9]//g;s/./\.&/g;s/^\.//'` |
| | | if [ "x${APACHE_VERSION}" != "x" ]; then |
| | | echo "Apache version is ${APACHE_VERSION}" |
| | | APACHE_USR_ROOT=${APACHE_USR_ROOT}/${APACHE_VERSION} |
| | | APACHE_ETC_ROOT=${APACHE_ETC_ROOT}/${APACHE_VERSION} |
| | | APACHE_VAR_ROOT=${APACHE_VAR_ROOT}/${APACHE_VERSION} |
| | | fi |
| | | |
| | | getprop httpd/enable_64bit |
| | | if [ "${PROPVAL}" != "" ] ; then |
| | | case ${PROPVAL} in |
| | | true|1) |
| | | # Check if the system architecture supports 64-bit applications |
| | | PLATFORM=`isainfo -b` |
| | | if [ "${PLATFORM}" != "64" ]; then |
| | | echo "This system is not capable of supporting 64-bit applications." |
| | | echo "Set \"enable_64bit\" property value to \"false\" to start the 32-bit server." |
| | | exit $SMF_EXIT_ERR_CONFIG |
| | | fi |
| | | |
| | | # 64 bit Apache |
| | | PLATFORM_DIR=::ISAINFO:: |
| | | ;; |
| | | false|0) |
| | | # 32 bit Apache |
| | | PLATFORM_DIR= |
| | | ;; |
| | | *) |
| | | # Invalid value for "bitness" |
| | | echo "\"bitness\" property value is invalid. Starting the server in 32-bit mode" |
| | | PLATFORM_DIR= |
| | | ;; |
| | | esac |
| | | fi |
| | | |
| | | APACHE_HOME=${APACHE_USR_ROOT} |
| | | APACHE_BIN=${APACHE_HOME}/bin${PLATFORM_DIR} |
| | | |
| | | getprop httpd/startup_options |
| | | if [ "${PROPVAL}" != "" ] ; then |
| | | echo startupoptions set |
| | | echo val=${PROPVAL} |
| | | STARTUP_OPTIONS="${PROPVAL} -k" |
| | | fi |
| | | |
| | | getprop httpd/server_type |
| | | if [ "${PROPVAL}" != "" ] ; then |
| | | SERVER_TYPE=${PROPVAL} |
| | | fi |
| | | |
| | | case ${SERVER_TYPE} in |
| | | prefork) |
| | | # If HTTPD value is set in |
| | | # /etc/apache2/<version>/envvars file |
| | | # delete the line so that it defaults to prefork |
| | | # type |
| | | ALREADY_SET=`grep "HTTPD=" ${APACHE_ETC_ROOT}/envvars` |
| | | if [ "${ALREADY_SET}" != "" ]; then |
| | | sed -e '/^HTTPD=/ d' ${APACHE_ETC_ROOT}/envvars > ${APACHE_ETC_ROOT}/envvars.new |
| | | cp ${APACHE_ETC_ROOT}/envvars.new ${APACHE_ETC_ROOT}/envvars |
| | | rm ${APACHE_ETC_ROOT}/envvars.new |
| | | fi |
| | | ;; |
| | | worker) |
| | | # set HTTPD value to httpd.worker within |
| | | # /etc/apache2/<version>/envvars file |
| | | ALREADY_SET=`grep "HTTPD=" ${APACHE_ETC_ROOT}/envvars` |
| | | if [ "${ALREADY_SET}" != "" ]; then |
| | | sed -e '/^HTTPD=/c\ |
| | | HTTPD='${APACHE_BIN}'/httpd.worker' ${APACHE_ETC_ROOT}/envvars > ${APACHE_ETC_ROOT}/envvars.new |
| | | else |
| | | sed -e '$a\ |
| | | HTTPD='${APACHE_BIN}'/httpd.worker' ${APACHE_ETC_ROOT}/envvars > ${APACHE_ETC_ROOT}/envvars.new |
| | | fi |
| | | |
| | | cp ${APACHE_ETC_ROOT}/envvars.new ${APACHE_ETC_ROOT}/envvars |
| | | rm ${APACHE_ETC_ROOT}/envvars.new |
| | | ;; |
| | | *) |
| | | if [ "x${APACHE_VERSION}" != "x" ]; then |
| | | echo "Unknown server_type" |
| | | exit $SMF_EXIT_ERR_CONFIG |
| | | fi |
| | | ;; |
| | | esac |
| | | |
| | | |
| | | |
| | | case "$1" in |
| | | start) |
| | | cmd="start" |
| | | ;; |
| | | refresh) |
| | | cmd="graceful" |
| | | ;; |
| | | stop) |
| | | cmd="stop" |
| | | ;; |
| | | *) |
| | | echo "Usage: $0 {start|stop|refresh}" |
| | | exit $SMF_EXIT_ERR_CONFIG |
| | | ;; |
| | | esac |
| | | |
| | | ${APACHE_BIN}/apachectl ${STARTUP_OPTIONS} ${cmd} 2>&1 |
| | | |
| | | if [ $? -ne 0 ]; then |
| | | echo "Server failed to start. Check the error log (defaults to ${APACHE_VAR_ROOT}/logs/error_log) for more information, if any." |
| | | exit $SMF_EXIT_ERR_FATAL |
| | | fi |
| | | |
| | | exit $SMF_EXIT_OK |
New file |
| | |
| | | <?xml version="1.0"?> |
| | | <!-- |
| | | CDDL HEADER START |
| | | |
| | | The contents of this file are subject to the terms of the |
| | | Common Development and Distribution License (the "License"). |
| | | You may not use this file except in compliance with the License. |
| | | |
| | | You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | or http://www.opensolaris.org/os/licensing. |
| | | See the License for the specific language governing permissions |
| | | and limitations under the License. |
| | | |
| | | When distributing Covered Code, include this CDDL HEADER in each |
| | | file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | If applicable, add the following below this CDDL HEADER, with the |
| | | fields enclosed by brackets "[]" replaced with your own identifying |
| | | information: Portions Copyright [yyyy] [name of copyright owner] |
| | | |
| | | CDDL HEADER END |
| | | --> |
| | | |
| | | <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> |
| | | <!-- |
| | | Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. |
| | | --> |
| | | |
| | | <service_bundle type='manifest' name='SUNWapch22r:apache'> |
| | | |
| | | <service |
| | | name='network/http' |
| | | type='service' |
| | | version='1'> |
| | | |
| | | <!-- |
| | | Because we may have multiple instances of network/http |
| | | provided by different implementations, we keep dependencies |
| | | and methods within the instance. |
| | | --> |
| | | |
| | | <instance name='apache22' enabled='false'> |
| | | <!-- |
| | | Wait for network interfaces to be initialized. |
| | | --> |
| | | <dependency name='network' |
| | | grouping='require_all' |
| | | restart_on='error' |
| | | type='service'> |
| | | <service_fmri value='svc:/milestone/network:default'/> |
| | | </dependency> |
| | | |
| | | <!-- |
| | | Wait for all local filesystems to be mounted. |
| | | --> |
| | | <dependency name='filesystem-local' |
| | | grouping='require_all' |
| | | restart_on='none' |
| | | type='service'> |
| | | <service_fmri |
| | | value='svc:/system/filesystem/local:default'/> |
| | | </dependency> |
| | | |
| | | <!-- |
| | | Wait for automounting to be available, as we may be |
| | | serving data from home directories or other remote |
| | | filesystems. |
| | | --> |
| | | <dependency name='autofs' |
| | | grouping='optional_all' |
| | | restart_on='error' |
| | | type='service'> |
| | | <service_fmri |
| | | value='svc:/system/filesystem/autofs:default'/> |
| | | </dependency> |
| | | |
| | | <exec_method |
| | | type='method' |
| | | name='start' |
| | | exec='/lib/svc/method/http-apache22 start' |
| | | timeout_seconds='60' /> |
| | | |
| | | <exec_method |
| | | type='method' |
| | | name='stop' |
| | | exec='/lib/svc/method/http-apache22 stop' |
| | | timeout_seconds='60' /> |
| | | |
| | | <exec_method |
| | | type='method' |
| | | name='refresh' |
| | | exec='/lib/svc/method/http-apache22 refresh' |
| | | timeout_seconds='60' /> |
| | | |
| | | <property_group name='httpd' type='application'> |
| | | <stability value='Evolving' /> |
| | | <propval name='startup_options' type='astring' value='' /> |
| | | <propval name='server_type' type='astring' value='prefork' /> |
| | | <propval name='enable_64bit' type='boolean' value='false' /> |
| | | <propval name='value_authorization' type='astring' value='solaris.smf.value.http/apache22' /> |
| | | </property_group> |
| | | |
| | | <property_group name='general' type='framework'> |
| | | <propval name='action_authorization' type='astring' value='solaris.smf.manage.http/apache22' /> |
| | | <propval name='value_authorization' type='astring' value='solaris.smf.value.http/apache22' /> |
| | | </property_group> |
| | | |
| | | <property_group name='startd' type='framework'> |
| | | <!-- sub-process core dumps shouldn't restart |
| | | session --> |
| | | <propval name='ignore_error' type='astring' |
| | | value='core,signal' /> |
| | | </property_group> |
| | | |
| | | <template> |
| | | <common_name> |
| | | <loctext xml:lang='C'> |
| | | Apache 2.2 HTTP server |
| | | </loctext> |
| | | </common_name> |
| | | |
| | | <documentation> |
| | | <manpage title='httpd' section='8' |
| | | manpath='/usr/apache2/2.2/man' /> |
| | | <doc_link name='apache.org' |
| | | uri='http://httpd.apache.org' /> |
| | | </documentation> |
| | | </template> |
| | | |
| | | </instance> |
| | | |
| | | <stability value='Evolving' /> |
| | | |
| | | </service> |
| | | |
| | | </service_bundle> |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | |
| | | # |
| | | # Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | /IfModule/d |
| | | /LoadModule cgi_module /i\ |
| | | <IfModule prefork.c> |
| | | /LoadModule cgi_module /a\ |
| | | </IfModule> |
| | | /LoadModule cgid_module /i\ |
| | | <IfModule worker.c> |
| | | /LoadModule cgid_module /a\ |
| | | </IfModule> |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | |
| | | # |
| | | # Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | # |
| | | # 32-bit Dynamic Shared Object (DSO) Support |
| | | # |
| | | # To be able to use the functionality of a module which was built as a |
| | | # 32-bit DSO you have to place corresponding `LoadModule' lines at this |
| | | # location so the directives contained in it are actually available |
| | | # _before_ they are used. |
| | | # Statically compiled modules (those listed by `httpd -l') do not need |
| | | # to be loaded here. |
| | | # |
| | | # Example: |
| | | # LoadModule foo_module libexec/mod_foo.so |
| | | # |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | |
| | | # |
| | | # Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | # |
| | | # 64-bit Dynamic Shared Object (DSO) Support |
| | | # |
| | | # To be able to use the functionality of a module which was built as a |
| | | # 64-bit DSO you have to place corresponding `LoadModule' lines at this |
| | | # location so the directives contained in it are actually available |
| | | # _before_ they are used. |
| | | # Statically compiled modules (those listed by `httpd -l') do not need |
| | | # to be loaded here. |
| | | # |
| | | # Example: |
| | | # LoadModule foo_module libexec/64/mod_foo.so |
| | | # |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | |
| | | # |
| | | # Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | <IfDefine 64bit> |
| | | LoadModule ::MODULE_NAME::_module libexec/64/mod_::MODULE_NAME::.so |
| | | </IfDefine> |
| | | <IfDefine !64bit> |
| | | LoadModule ::MODULE_NAME::_module libexec/mod_::MODULE_NAME::.so |
| | | </IfDefine> |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | set name=pkg.fmri \ |
| | | value=pkg:/web/server/apache-22@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) |
| | | set name=pkg.summary \ |
| | | value="Apache Web Server V2.2" |
| | | set name=pkg.description \ |
| | | value="The Apache HTTP Server Version 2.2" |
| | | set name=info.classification \ |
| | | value="org.opensolaris.category.2008:Web Services/Application and Web Servers" |
| | | set name=info.upstream_url value="http://httpd.apache.org/" |
| | | set name=info.source_url value=$(COMPONENT_ARCHIVE_URL) |
| | | set name=opensolaris.arc_url \ |
| | | value=http://arc.opensolaris.org/caselog/LSARC/2009/565 |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | |
| | | license LICENSE license="Apache v2.0" |
| | | |
| | | dir path=etc |
| | | dir path=etc/apache2 |
| | | dir path=etc/apache2/2.2 |
| | | dir path=etc/apache2/2.2/conf.d |
| | | dir path=etc/apache2/2.2/original |
| | | dir path=etc/apache2/2.2/samples-conf.d |
| | | dir path=lib |
| | | dir path=lib/svc |
| | | dir path=lib/svc/manifest |
| | | dir path=lib/svc/manifest/network |
| | | dir path=lib/svc/method |
| | | dir path=usr |
| | | dir path=usr/apache2 |
| | | dir path=usr/apache2/2.2 |
| | | dir path=usr/apache2/2.2/bin |
| | | dir path=usr/apache2/2.2/bin/$(MACH64) |
| | | dir path=usr/apache2/2.2/build |
| | | dir path=usr/apache2/2.2/build/$(MACH64) |
| | | dir path=usr/apache2/2.2/include |
| | | dir path=usr/apache2/2.2/libexec |
| | | dir path=usr/apache2/2.2/libexec/$(MACH64) |
| | | dir path=usr/bin |
| | | dir path=usr/bin/$(MACH64) |
| | | dir path=var |
| | | dir path=var/apache2 |
| | | dir path=var/apache2/2.2 |
| | | dir path=var/apache2/2.2/cgi-bin |
| | | dir path=var/apache2/2.2/error |
| | | dir path=var/apache2/2.2/error/include |
| | | dir path=var/apache2/2.2/htdocs |
| | | dir path=var/apache2/2.2/icons |
| | | dir path=var/apache2/2.2/icons/small |
| | | dir path=var/apache2/2.2/libexec |
| | | dir path=var/apache2/2.2/libexec/$(MACH64) |
| | | dir path=var/apache2/2.2/logs |
| | | dir path=var/apache2/2.2/proxy group=webservd owner=webservd |
| | | file path=etc/apache2/2.2/conf.d/modules-32.load mode=0644 preserve=renamenew \ |
| | | original_name=SUNWapch22:etc/apache2/2.2/conf.d/modules-32.load |
| | | file path=etc/apache2/2.2/conf.d/modules-64.load mode=0644 preserve=renamenew \ |
| | | original_name=SUNWapch22:etc/apache2/2.2/conf.d/modules-64.load |
| | | file path=etc/apache2/2.2/envvars mode=0644 preserve=renamenew \ |
| | | original_name=SUNWapch22:etc/apache2/2.2/envvars |
| | | file etc/apache2/2.2/original/httpd.conf path=etc/apache2/2.2/httpd.conf mode=0644 preserve=renamenew \ |
| | | original_name=SUNWapch22:etc/apache2/2.2/httpd.conf |
| | | file path=etc/apache2/2.2/magic mode=0644 preserve=renamenew \ |
| | | original_name=SUNWapch22:etc/apache2/2.2/magic |
| | | file path=etc/apache2/2.2/mime.types mode=0644 preserve=renamenew \ |
| | | original_name=SUNWapch22:etc/apache2/2.2/mime.types |
| | | file etc/apache2/2.2/httpd.conf path=etc/apache2/2.2/original/httpd.conf |
| | | file etc/apache2/2.2/extra/httpd-autoindex.conf path=etc/apache2/2.2/samples-conf.d/autoindex.conf |
| | | file etc/apache2/2.2/extra/httpd-dav.conf path=etc/apache2/2.2/samples-conf.d/dav.conf |
| | | file etc/apache2/2.2/extra/httpd-default.conf path=etc/apache2/2.2/samples-conf.d/default.conf |
| | | file etc/apache2/2.2/extra/httpd-info.conf path=etc/apache2/2.2/samples-conf.d/info.conf |
| | | file etc/apache2/2.2/extra/httpd-languages.conf path=etc/apache2/2.2/samples-conf.d/languages.conf |
| | | file etc/apache2/2.2/extra/httpd-manual.conf path=etc/apache2/2.2/samples-conf.d/manual.conf |
| | | file etc/apache2/2.2/extra/httpd-mpm.conf path=etc/apache2/2.2/samples-conf.d/mpm.conf |
| | | file etc/apache2/2.2/extra/httpd-multilang-errordoc.conf path=etc/apache2/2.2/samples-conf.d/multilang-errordoc.conf |
| | | file path=etc/apache2/2.2/samples-conf.d/proxy_scgi.conf |
| | | file path=etc/apache2/2.2/samples-conf.d/reqtimeout.conf |
| | | file etc/apache2/2.2/extra/httpd-ssl.conf path=etc/apache2/2.2/samples-conf.d/ssl.conf |
| | | file etc/apache2/2.2/extra/httpd-userdir.conf path=etc/apache2/2.2/samples-conf.d/userdir.conf |
| | | file etc/apache2/2.2/extra/httpd-vhosts.conf path=etc/apache2/2.2/samples-conf.d/vhosts.conf |
| | | file Solaris/http-apache22.xml path=lib/svc/manifest/network/http-apache22.xml |
| | | file path=lib/svc/method/http-apache22 |
| | | file path=usr/apache2/2.2/bin/$(MACH64)/ab |
| | | file path=usr/apache2/2.2/bin/$(MACH64)/apachectl |
| | | file path=usr/apache2/2.2/bin/$(MACH64)/apxs |
| | | file path=usr/apache2/2.2/bin/$(MACH64)/checkgid |
| | | file path=usr/apache2/2.2/bin/$(MACH64)/dbmmanage |
| | | file path=usr/apache2/2.2/bin/$(MACH64)/envvars |
| | | file path=usr/apache2/2.2/bin/$(MACH64)/envvars-std |
| | | file path=usr/apache2/2.2/bin/$(MACH64)/htcacheclean |
| | | file path=usr/apache2/2.2/bin/$(MACH64)/htdbm |
| | | file path=usr/apache2/2.2/bin/$(MACH64)/htdigest |
| | | file path=usr/apache2/2.2/bin/$(MACH64)/htpasswd |
| | | file path=usr/apache2/2.2/bin/$(MACH64)/httpd |
| | | file build/worker/$(MACH64)/httpd path=usr/apache2/2.2/bin/$(MACH64)/httpd.worker |
| | | file path=usr/apache2/2.2/bin/$(MACH64)/httxt2dbm |
| | | file path=usr/apache2/2.2/bin/$(MACH64)/logresolve |
| | | file path=usr/apache2/2.2/bin/$(MACH64)/rotatelogs |
| | | file usr/apache2/2.2/bin/$(MACH64)/suexec path=usr/apache2/2.2/bin/$(MACH64)/suexec.disabled mode=0500 |
| | | file path=usr/apache2/2.2/bin/ab |
| | | file path=usr/apache2/2.2/bin/apachectl |
| | | file path=usr/apache2/2.2/bin/apxs |
| | | file path=usr/apache2/2.2/bin/checkgid |
| | | file path=usr/apache2/2.2/bin/dbmmanage |
| | | file path=usr/apache2/2.2/bin/envvars |
| | | file path=usr/apache2/2.2/bin/envvars-std |
| | | file path=usr/apache2/2.2/bin/htcacheclean |
| | | file path=usr/apache2/2.2/bin/htdbm |
| | | file path=usr/apache2/2.2/bin/htdigest |
| | | file path=usr/apache2/2.2/bin/htpasswd |
| | | file path=usr/apache2/2.2/bin/httpd |
| | | file build/worker/$(MACH32)/httpd path=usr/apache2/2.2/bin/httpd.worker |
| | | file path=usr/apache2/2.2/bin/httxt2dbm |
| | | file path=usr/apache2/2.2/bin/logresolve |
| | | file path=usr/apache2/2.2/bin/rotatelogs |
| | | file usr/apache2/2.2/bin/suexec path=usr/apache2/2.2/bin/suexec.disabled mode=0500 |
| | | file path=usr/apache2/2.2/build/$(MACH64)/config.nice |
| | | file path=usr/apache2/2.2/build/$(MACH64)/config_vars.mk |
| | | file path=usr/apache2/2.2/build/$(MACH64)/instdso.sh |
| | | file path=usr/apache2/2.2/build/$(MACH64)/library.mk |
| | | file path=usr/apache2/2.2/build/$(MACH64)/ltlib.mk |
| | | file path=usr/apache2/2.2/build/$(MACH64)/mkdir.sh |
| | | file path=usr/apache2/2.2/build/$(MACH64)/program.mk |
| | | file path=usr/apache2/2.2/build/$(MACH64)/rules.mk |
| | | file path=usr/apache2/2.2/build/$(MACH64)/special.mk |
| | | file path=usr/apache2/2.2/build/config.nice |
| | | file path=usr/apache2/2.2/build/config_vars.mk |
| | | file path=usr/apache2/2.2/build/instdso.sh |
| | | file path=usr/apache2/2.2/build/library.mk |
| | | file path=usr/apache2/2.2/build/ltlib.mk |
| | | file path=usr/apache2/2.2/build/mkdir.sh |
| | | file path=usr/apache2/2.2/build/program.mk |
| | | file path=usr/apache2/2.2/build/rules.mk |
| | | file path=usr/apache2/2.2/build/special.mk |
| | | file path=usr/apache2/2.2/include/ap_compat.h |
| | | file path=usr/apache2/2.2/include/ap_config.h |
| | | file path=usr/apache2/2.2/include/ap_config_auto.h |
| | | file path=usr/apache2/2.2/include/ap_config_layout.h |
| | | file path=usr/apache2/2.2/include/ap_listen.h |
| | | file path=usr/apache2/2.2/include/ap_mmn.h |
| | | file path=usr/apache2/2.2/include/ap_mpm.h |
| | | file path=usr/apache2/2.2/include/ap_provider.h |
| | | file path=usr/apache2/2.2/include/ap_regex.h |
| | | file path=usr/apache2/2.2/include/ap_regkey.h |
| | | file path=usr/apache2/2.2/include/ap_release.h |
| | | file path=usr/apache2/2.2/include/fdqueue.h |
| | | file path=usr/apache2/2.2/include/http_config.h |
| | | file path=usr/apache2/2.2/include/http_connection.h |
| | | file path=usr/apache2/2.2/include/http_core.h |
| | | file path=usr/apache2/2.2/include/http_log.h |
| | | file path=usr/apache2/2.2/include/http_main.h |
| | | file path=usr/apache2/2.2/include/http_protocol.h |
| | | file path=usr/apache2/2.2/include/http_request.h |
| | | file path=usr/apache2/2.2/include/http_vhost.h |
| | | file path=usr/apache2/2.2/include/httpd.h |
| | | file path=usr/apache2/2.2/include/mod_auth.h |
| | | file path=usr/apache2/2.2/include/mod_cgi.h |
| | | file path=usr/apache2/2.2/include/mod_core.h |
| | | file path=usr/apache2/2.2/include/mod_dav.h |
| | | file path=usr/apache2/2.2/include/mod_dbd.h |
| | | file path=usr/apache2/2.2/include/mod_include.h |
| | | file path=usr/apache2/2.2/include/mod_log_config.h |
| | | file path=usr/apache2/2.2/include/mod_proxy.h |
| | | file path=usr/apache2/2.2/include/mod_rewrite.h |
| | | file path=usr/apache2/2.2/include/mod_ssl.h |
| | | file path=usr/apache2/2.2/include/mod_status.h |
| | | file path=usr/apache2/2.2/include/mpm.h |
| | | file path=usr/apache2/2.2/include/mpm_common.h |
| | | file path=usr/apache2/2.2/include/mpm_default.h |
| | | file path=usr/apache2/2.2/include/os.h |
| | | file path=usr/apache2/2.2/include/pod.h |
| | | file path=usr/apache2/2.2/include/scoreboard.h |
| | | file path=usr/apache2/2.2/include/unixd.h |
| | | file path=usr/apache2/2.2/include/util_cfgtree.h |
| | | file path=usr/apache2/2.2/include/util_charset.h |
| | | file path=usr/apache2/2.2/include/util_ebcdic.h |
| | | file path=usr/apache2/2.2/include/util_filter.h |
| | | file path=usr/apache2/2.2/include/util_ldap.h |
| | | file path=usr/apache2/2.2/include/util_md5.h |
| | | file path=usr/apache2/2.2/include/util_script.h |
| | | file path=usr/apache2/2.2/include/util_time.h |
| | | file path=usr/apache2/2.2/include/util_xml.h |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/httpd.exp |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_actions.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_alias.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_asis.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_auth_basic.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_auth_digest.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_auth_gss.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authn_anon.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authn_dbd.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authn_dbm.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authn_default.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authn_file.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authnz_ldap.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authz_dbm.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authz_default.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authz_groupfile.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authz_host.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authz_owner.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_authz_user.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_autoindex.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_cache.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_cern_meta.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_cgi.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_cgid.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_dav.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_dav_fs.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_dbd.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_deflate.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_dir.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_disk_cache.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_dumpio.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_env.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_expires.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_ext_filter.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_file_cache.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_filter.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_headers.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_ident.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_imagemap.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_include.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_info.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_ldap.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_log_config.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_log_forensic.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_logio.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_mem_cache.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_mime.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_mime_magic.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_negotiation.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy_ajp.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy_balancer.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy_connect.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy_ftp.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy_http.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_proxy_scgi.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_reqtimeout.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_rewrite.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_setenvif.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_speling.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_ssl.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_status.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_substitute.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_suexec.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_unique_id.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_userdir.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_usertrack.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_version.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_vhost_alias.so |
| | | file path=usr/apache2/2.2/libexec/httpd.exp |
| | | file path=usr/apache2/2.2/libexec/mod_actions.so |
| | | file path=usr/apache2/2.2/libexec/mod_alias.so |
| | | file path=usr/apache2/2.2/libexec/mod_asis.so |
| | | file path=usr/apache2/2.2/libexec/mod_auth_basic.so |
| | | file path=usr/apache2/2.2/libexec/mod_auth_digest.so |
| | | file path=usr/apache2/2.2/libexec/mod_auth_gss.so |
| | | file path=usr/apache2/2.2/libexec/mod_authn_anon.so |
| | | file path=usr/apache2/2.2/libexec/mod_authn_dbd.so |
| | | file path=usr/apache2/2.2/libexec/mod_authn_dbm.so |
| | | file path=usr/apache2/2.2/libexec/mod_authn_default.so |
| | | file path=usr/apache2/2.2/libexec/mod_authn_file.so |
| | | file path=usr/apache2/2.2/libexec/mod_authnz_ldap.so |
| | | file path=usr/apache2/2.2/libexec/mod_authz_dbm.so |
| | | file path=usr/apache2/2.2/libexec/mod_authz_default.so |
| | | file path=usr/apache2/2.2/libexec/mod_authz_groupfile.so |
| | | file path=usr/apache2/2.2/libexec/mod_authz_host.so |
| | | file path=usr/apache2/2.2/libexec/mod_authz_owner.so |
| | | file path=usr/apache2/2.2/libexec/mod_authz_user.so |
| | | file path=usr/apache2/2.2/libexec/mod_autoindex.so |
| | | file path=usr/apache2/2.2/libexec/mod_cache.so |
| | | file path=usr/apache2/2.2/libexec/mod_cern_meta.so |
| | | file path=usr/apache2/2.2/libexec/mod_cgi.so |
| | | file path=usr/apache2/2.2/libexec/mod_cgid.so |
| | | file path=usr/apache2/2.2/libexec/mod_dav.so |
| | | file path=usr/apache2/2.2/libexec/mod_dav_fs.so |
| | | file path=usr/apache2/2.2/libexec/mod_dbd.so |
| | | file path=usr/apache2/2.2/libexec/mod_deflate.so |
| | | file path=usr/apache2/2.2/libexec/mod_dir.so |
| | | file path=usr/apache2/2.2/libexec/mod_disk_cache.so |
| | | file path=usr/apache2/2.2/libexec/mod_dumpio.so |
| | | file path=usr/apache2/2.2/libexec/mod_env.so |
| | | file path=usr/apache2/2.2/libexec/mod_expires.so |
| | | file path=usr/apache2/2.2/libexec/mod_ext_filter.so |
| | | file path=usr/apache2/2.2/libexec/mod_file_cache.so |
| | | file path=usr/apache2/2.2/libexec/mod_filter.so |
| | | file path=usr/apache2/2.2/libexec/mod_headers.so |
| | | file path=usr/apache2/2.2/libexec/mod_ident.so |
| | | file path=usr/apache2/2.2/libexec/mod_imagemap.so |
| | | file path=usr/apache2/2.2/libexec/mod_include.so |
| | | file path=usr/apache2/2.2/libexec/mod_info.so |
| | | file path=usr/apache2/2.2/libexec/mod_ldap.so |
| | | file path=usr/apache2/2.2/libexec/mod_log_config.so |
| | | file path=usr/apache2/2.2/libexec/mod_log_forensic.so |
| | | file path=usr/apache2/2.2/libexec/mod_logio.so |
| | | file path=usr/apache2/2.2/libexec/mod_mem_cache.so |
| | | file path=usr/apache2/2.2/libexec/mod_mime.so |
| | | file path=usr/apache2/2.2/libexec/mod_mime_magic.so |
| | | file path=usr/apache2/2.2/libexec/mod_negotiation.so |
| | | file path=usr/apache2/2.2/libexec/mod_proxy.so |
| | | file path=usr/apache2/2.2/libexec/mod_proxy_ajp.so |
| | | file path=usr/apache2/2.2/libexec/mod_proxy_balancer.so |
| | | file path=usr/apache2/2.2/libexec/mod_proxy_connect.so |
| | | file path=usr/apache2/2.2/libexec/mod_proxy_ftp.so |
| | | file path=usr/apache2/2.2/libexec/mod_proxy_http.so |
| | | file path=usr/apache2/2.2/libexec/mod_proxy_scgi.so |
| | | file path=usr/apache2/2.2/libexec/mod_reqtimeout.so |
| | | file path=usr/apache2/2.2/libexec/mod_rewrite.so |
| | | file path=usr/apache2/2.2/libexec/mod_setenvif.so |
| | | file path=usr/apache2/2.2/libexec/mod_speling.so |
| | | file path=usr/apache2/2.2/libexec/mod_ssl.so |
| | | file path=usr/apache2/2.2/libexec/mod_status.so |
| | | file path=usr/apache2/2.2/libexec/mod_substitute.so |
| | | file path=usr/apache2/2.2/libexec/mod_suexec.so |
| | | file path=usr/apache2/2.2/libexec/mod_unique_id.so |
| | | file path=usr/apache2/2.2/libexec/mod_userdir.so |
| | | file path=usr/apache2/2.2/libexec/mod_usertrack.so |
| | | file path=usr/apache2/2.2/libexec/mod_version.so |
| | | file path=usr/apache2/2.2/libexec/mod_vhost_alias.so |
| | | file path=var/apache2/2.2/cgi-bin/printenv pkg.depend.bypass-generate=.* |
| | | file path=var/apache2/2.2/cgi-bin/test-cgi |
| | | file path=var/apache2/2.2/error/HTTP_BAD_GATEWAY.html.var |
| | | file path=var/apache2/2.2/error/HTTP_BAD_REQUEST.html.var |
| | | file path=var/apache2/2.2/error/HTTP_FORBIDDEN.html.var |
| | | file path=var/apache2/2.2/error/HTTP_GONE.html.var |
| | | file path=var/apache2/2.2/error/HTTP_INTERNAL_SERVER_ERROR.html.var |
| | | file path=var/apache2/2.2/error/HTTP_LENGTH_REQUIRED.html.var |
| | | file path=var/apache2/2.2/error/HTTP_METHOD_NOT_ALLOWED.html.var |
| | | file path=var/apache2/2.2/error/HTTP_NOT_FOUND.html.var |
| | | file path=var/apache2/2.2/error/HTTP_NOT_IMPLEMENTED.html.var |
| | | file path=var/apache2/2.2/error/HTTP_PRECONDITION_FAILED.html.var |
| | | file path=var/apache2/2.2/error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var |
| | | file path=var/apache2/2.2/error/HTTP_REQUEST_TIME_OUT.html.var |
| | | file path=var/apache2/2.2/error/HTTP_REQUEST_URI_TOO_LARGE.html.var |
| | | file path=var/apache2/2.2/error/HTTP_SERVICE_UNAVAILABLE.html.var |
| | | file path=var/apache2/2.2/error/HTTP_UNAUTHORIZED.html.var |
| | | file path=var/apache2/2.2/error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var |
| | | file path=var/apache2/2.2/error/HTTP_VARIANT_ALSO_VARIES.html.var |
| | | file path=var/apache2/2.2/error/README |
| | | file path=var/apache2/2.2/error/contact.html.var |
| | | file path=var/apache2/2.2/error/include/bottom.html |
| | | file path=var/apache2/2.2/error/include/spacer.html |
| | | file path=var/apache2/2.2/error/include/top.html |
| | | file Solaris/favicon.gif path=var/apache2/2.2/htdocs/favicon.gif |
| | | file Solaris/favicon.ico path=var/apache2/2.2/htdocs/favicon.ico |
| | | file path=var/apache2/2.2/htdocs/index.html |
| | | file path=var/apache2/2.2/icons/README |
| | | file path=var/apache2/2.2/icons/README.html |
| | | file path=var/apache2/2.2/icons/a.gif |
| | | file path=var/apache2/2.2/icons/a.png |
| | | file path=var/apache2/2.2/icons/alert.black.gif |
| | | file path=var/apache2/2.2/icons/alert.black.png |
| | | file path=var/apache2/2.2/icons/alert.red.gif |
| | | file path=var/apache2/2.2/icons/alert.red.png |
| | | file path=var/apache2/2.2/icons/apache_pb.gif |
| | | file path=var/apache2/2.2/icons/apache_pb.png |
| | | file path=var/apache2/2.2/icons/apache_pb2.gif |
| | | file path=var/apache2/2.2/icons/apache_pb2.png |
| | | file path=var/apache2/2.2/icons/apache_pb2_ani.gif |
| | | file path=var/apache2/2.2/icons/back.gif |
| | | file path=var/apache2/2.2/icons/back.png |
| | | file path=var/apache2/2.2/icons/ball.gray.gif |
| | | file path=var/apache2/2.2/icons/ball.gray.png |
| | | file path=var/apache2/2.2/icons/ball.red.gif |
| | | file path=var/apache2/2.2/icons/ball.red.png |
| | | file path=var/apache2/2.2/icons/binary.gif |
| | | file path=var/apache2/2.2/icons/binary.png |
| | | file path=var/apache2/2.2/icons/binhex.gif |
| | | file path=var/apache2/2.2/icons/binhex.png |
| | | file path=var/apache2/2.2/icons/blank.gif |
| | | file path=var/apache2/2.2/icons/blank.png |
| | | file path=var/apache2/2.2/icons/bomb.gif |
| | | file path=var/apache2/2.2/icons/bomb.png |
| | | file path=var/apache2/2.2/icons/box1.gif |
| | | file path=var/apache2/2.2/icons/box1.png |
| | | file path=var/apache2/2.2/icons/box2.gif |
| | | file path=var/apache2/2.2/icons/box2.png |
| | | file path=var/apache2/2.2/icons/broken.gif |
| | | file path=var/apache2/2.2/icons/broken.png |
| | | file path=var/apache2/2.2/icons/burst.gif |
| | | file path=var/apache2/2.2/icons/burst.png |
| | | file path=var/apache2/2.2/icons/c.gif |
| | | file path=var/apache2/2.2/icons/c.png |
| | | file path=var/apache2/2.2/icons/comp.blue.gif |
| | | file path=var/apache2/2.2/icons/comp.blue.png |
| | | file path=var/apache2/2.2/icons/comp.gray.gif |
| | | file path=var/apache2/2.2/icons/comp.gray.png |
| | | file path=var/apache2/2.2/icons/compressed.gif |
| | | file path=var/apache2/2.2/icons/compressed.png |
| | | file path=var/apache2/2.2/icons/continued.gif |
| | | file path=var/apache2/2.2/icons/continued.png |
| | | file path=var/apache2/2.2/icons/dir.gif |
| | | file path=var/apache2/2.2/icons/dir.png |
| | | file path=var/apache2/2.2/icons/diskimg.gif |
| | | file path=var/apache2/2.2/icons/diskimg.png |
| | | file path=var/apache2/2.2/icons/down.gif |
| | | file path=var/apache2/2.2/icons/down.png |
| | | file path=var/apache2/2.2/icons/dvi.gif |
| | | file path=var/apache2/2.2/icons/dvi.png |
| | | file path=var/apache2/2.2/icons/f.gif |
| | | file path=var/apache2/2.2/icons/f.png |
| | | file path=var/apache2/2.2/icons/folder.gif |
| | | file path=var/apache2/2.2/icons/folder.open.gif |
| | | file path=var/apache2/2.2/icons/folder.open.png |
| | | file path=var/apache2/2.2/icons/folder.png |
| | | file path=var/apache2/2.2/icons/folder.sec.gif |
| | | file path=var/apache2/2.2/icons/folder.sec.png |
| | | file path=var/apache2/2.2/icons/forward.gif |
| | | file path=var/apache2/2.2/icons/forward.png |
| | | file path=var/apache2/2.2/icons/generic.gif |
| | | file path=var/apache2/2.2/icons/generic.png |
| | | file path=var/apache2/2.2/icons/generic.red.gif |
| | | file path=var/apache2/2.2/icons/generic.red.png |
| | | file path=var/apache2/2.2/icons/generic.sec.gif |
| | | file path=var/apache2/2.2/icons/generic.sec.png |
| | | file path=var/apache2/2.2/icons/hand.right.gif |
| | | file path=var/apache2/2.2/icons/hand.right.png |
| | | file path=var/apache2/2.2/icons/hand.up.gif |
| | | file path=var/apache2/2.2/icons/hand.up.png |
| | | file path=var/apache2/2.2/icons/icon.sheet.gif |
| | | file path=var/apache2/2.2/icons/icon.sheet.png |
| | | file path=var/apache2/2.2/icons/image1.gif |
| | | file path=var/apache2/2.2/icons/image1.png |
| | | file path=var/apache2/2.2/icons/image2.gif |
| | | file path=var/apache2/2.2/icons/image2.png |
| | | file path=var/apache2/2.2/icons/image3.gif |
| | | file path=var/apache2/2.2/icons/image3.png |
| | | file path=var/apache2/2.2/icons/index.gif |
| | | file path=var/apache2/2.2/icons/index.png |
| | | file path=var/apache2/2.2/icons/layout.gif |
| | | file path=var/apache2/2.2/icons/layout.png |
| | | file path=var/apache2/2.2/icons/left.gif |
| | | file path=var/apache2/2.2/icons/left.png |
| | | file path=var/apache2/2.2/icons/link.gif |
| | | file path=var/apache2/2.2/icons/link.png |
| | | file path=var/apache2/2.2/icons/movie.gif |
| | | file path=var/apache2/2.2/icons/movie.png |
| | | file path=var/apache2/2.2/icons/p.gif |
| | | file path=var/apache2/2.2/icons/p.png |
| | | file path=var/apache2/2.2/icons/patch.gif |
| | | file path=var/apache2/2.2/icons/patch.png |
| | | file path=var/apache2/2.2/icons/pdf.gif |
| | | file path=var/apache2/2.2/icons/pdf.png |
| | | file path=var/apache2/2.2/icons/pie0.gif |
| | | file path=var/apache2/2.2/icons/pie0.png |
| | | file path=var/apache2/2.2/icons/pie1.gif |
| | | file path=var/apache2/2.2/icons/pie1.png |
| | | file path=var/apache2/2.2/icons/pie2.gif |
| | | file path=var/apache2/2.2/icons/pie2.png |
| | | file path=var/apache2/2.2/icons/pie3.gif |
| | | file path=var/apache2/2.2/icons/pie3.png |
| | | file path=var/apache2/2.2/icons/pie4.gif |
| | | file path=var/apache2/2.2/icons/pie4.png |
| | | file path=var/apache2/2.2/icons/pie5.gif |
| | | file path=var/apache2/2.2/icons/pie5.png |
| | | file path=var/apache2/2.2/icons/pie6.gif |
| | | file path=var/apache2/2.2/icons/pie6.png |
| | | file path=var/apache2/2.2/icons/pie7.gif |
| | | file path=var/apache2/2.2/icons/pie7.png |
| | | file path=var/apache2/2.2/icons/pie8.gif |
| | | file path=var/apache2/2.2/icons/pie8.png |
| | | file path=var/apache2/2.2/icons/portal.gif |
| | | file path=var/apache2/2.2/icons/portal.png |
| | | file path=var/apache2/2.2/icons/ps.gif |
| | | file path=var/apache2/2.2/icons/ps.png |
| | | file path=var/apache2/2.2/icons/quill.gif |
| | | file path=var/apache2/2.2/icons/quill.png |
| | | file path=var/apache2/2.2/icons/right.gif |
| | | file path=var/apache2/2.2/icons/right.png |
| | | file path=var/apache2/2.2/icons/screw1.gif |
| | | file path=var/apache2/2.2/icons/screw1.png |
| | | file path=var/apache2/2.2/icons/screw2.gif |
| | | file path=var/apache2/2.2/icons/screw2.png |
| | | file path=var/apache2/2.2/icons/script.gif |
| | | file path=var/apache2/2.2/icons/script.png |
| | | file path=var/apache2/2.2/icons/small/back.gif |
| | | file path=var/apache2/2.2/icons/small/back.png |
| | | file path=var/apache2/2.2/icons/small/binary.gif |
| | | file path=var/apache2/2.2/icons/small/binary.png |
| | | file path=var/apache2/2.2/icons/small/binhex.gif |
| | | file path=var/apache2/2.2/icons/small/binhex.png |
| | | file path=var/apache2/2.2/icons/small/blank.gif |
| | | file path=var/apache2/2.2/icons/small/blank.png |
| | | file path=var/apache2/2.2/icons/small/broken.gif |
| | | file path=var/apache2/2.2/icons/small/broken.png |
| | | file path=var/apache2/2.2/icons/small/burst.gif |
| | | file path=var/apache2/2.2/icons/small/burst.png |
| | | file path=var/apache2/2.2/icons/small/comp1.gif |
| | | file path=var/apache2/2.2/icons/small/comp1.png |
| | | file path=var/apache2/2.2/icons/small/comp2.gif |
| | | file path=var/apache2/2.2/icons/small/comp2.png |
| | | file path=var/apache2/2.2/icons/small/compressed.gif |
| | | file path=var/apache2/2.2/icons/small/compressed.png |
| | | file path=var/apache2/2.2/icons/small/continued.gif |
| | | file path=var/apache2/2.2/icons/small/continued.png |
| | | file path=var/apache2/2.2/icons/small/dir.gif |
| | | file path=var/apache2/2.2/icons/small/dir.png |
| | | file path=var/apache2/2.2/icons/small/dir2.gif |
| | | file path=var/apache2/2.2/icons/small/dir2.png |
| | | file path=var/apache2/2.2/icons/small/doc.gif |
| | | file path=var/apache2/2.2/icons/small/doc.png |
| | | file path=var/apache2/2.2/icons/small/forward.gif |
| | | file path=var/apache2/2.2/icons/small/forward.png |
| | | file path=var/apache2/2.2/icons/small/generic.gif |
| | | file path=var/apache2/2.2/icons/small/generic.png |
| | | file path=var/apache2/2.2/icons/small/generic2.gif |
| | | file path=var/apache2/2.2/icons/small/generic2.png |
| | | file path=var/apache2/2.2/icons/small/generic3.gif |
| | | file path=var/apache2/2.2/icons/small/generic3.png |
| | | file path=var/apache2/2.2/icons/small/image.gif |
| | | file path=var/apache2/2.2/icons/small/image.png |
| | | file path=var/apache2/2.2/icons/small/image2.gif |
| | | file path=var/apache2/2.2/icons/small/image2.png |
| | | file path=var/apache2/2.2/icons/small/index.gif |
| | | file path=var/apache2/2.2/icons/small/index.png |
| | | file path=var/apache2/2.2/icons/small/key.gif |
| | | file path=var/apache2/2.2/icons/small/key.png |
| | | file path=var/apache2/2.2/icons/small/movie.gif |
| | | file path=var/apache2/2.2/icons/small/movie.png |
| | | file path=var/apache2/2.2/icons/small/patch.gif |
| | | file path=var/apache2/2.2/icons/small/patch.png |
| | | file path=var/apache2/2.2/icons/small/ps.gif |
| | | file path=var/apache2/2.2/icons/small/ps.png |
| | | file path=var/apache2/2.2/icons/small/rainbow.gif |
| | | file path=var/apache2/2.2/icons/small/rainbow.png |
| | | file path=var/apache2/2.2/icons/small/sound.gif |
| | | file path=var/apache2/2.2/icons/small/sound.png |
| | | file path=var/apache2/2.2/icons/small/sound2.gif |
| | | file path=var/apache2/2.2/icons/small/sound2.png |
| | | file path=var/apache2/2.2/icons/small/tar.gif |
| | | file path=var/apache2/2.2/icons/small/tar.png |
| | | file path=var/apache2/2.2/icons/small/text.gif |
| | | file path=var/apache2/2.2/icons/small/text.png |
| | | file path=var/apache2/2.2/icons/small/transfer.gif |
| | | file path=var/apache2/2.2/icons/small/transfer.png |
| | | file path=var/apache2/2.2/icons/small/unknown.gif |
| | | file path=var/apache2/2.2/icons/small/unknown.png |
| | | file path=var/apache2/2.2/icons/small/uu.gif |
| | | file path=var/apache2/2.2/icons/small/uu.png |
| | | file path=var/apache2/2.2/icons/sound1.gif |
| | | file path=var/apache2/2.2/icons/sound1.png |
| | | file path=var/apache2/2.2/icons/sound2.gif |
| | | file path=var/apache2/2.2/icons/sound2.png |
| | | file path=var/apache2/2.2/icons/sphere1.gif |
| | | file path=var/apache2/2.2/icons/sphere1.png |
| | | file path=var/apache2/2.2/icons/sphere2.gif |
| | | file path=var/apache2/2.2/icons/sphere2.png |
| | | file path=var/apache2/2.2/icons/tar.gif |
| | | file path=var/apache2/2.2/icons/tar.png |
| | | file path=var/apache2/2.2/icons/tex.gif |
| | | file path=var/apache2/2.2/icons/tex.png |
| | | file path=var/apache2/2.2/icons/text.gif |
| | | file path=var/apache2/2.2/icons/text.png |
| | | file path=var/apache2/2.2/icons/transfer.gif |
| | | file path=var/apache2/2.2/icons/transfer.png |
| | | file path=var/apache2/2.2/icons/unknown.gif |
| | | file path=var/apache2/2.2/icons/unknown.png |
| | | file path=var/apache2/2.2/icons/up.gif |
| | | file path=var/apache2/2.2/icons/up.png |
| | | file path=var/apache2/2.2/icons/uu.gif |
| | | file path=var/apache2/2.2/icons/uu.png |
| | | file path=var/apache2/2.2/icons/uuencoded.gif |
| | | file path=var/apache2/2.2/icons/uuencoded.png |
| | | file path=var/apache2/2.2/icons/world1.gif |
| | | file path=var/apache2/2.2/icons/world1.png |
| | | file path=var/apache2/2.2/icons/world2.gif |
| | | file path=var/apache2/2.2/icons/world2.png |
| | | link path=usr/apache2/2.2/bin/64 target=$(MACH64) |
| | | link path=usr/apache2/2.2/build/64 target=$(MACH64) |
| | | link path=usr/apache2/2.2/libexec/64 target=$(MACH64) |
| | | link path=usr/bin/$(MACH64)/ab target=../../apache2/2.2/bin/$(MACH64)/ab |
| | | link path=usr/bin/$(MACH64)/apxs target=../../apache2/2.2/bin/$(MACH64)/apxs |
| | | link path=usr/bin/$(MACH64)/dbmmanage target=../../apache2/2.2/bin/$(MACH64)/dbmmanage |
| | | link path=usr/bin/$(MACH64)/htcacheclean target=../../apache2/2.2/bin/$(MACH64)/htcacheclean |
| | | link path=usr/bin/$(MACH64)/htdbm target=../../apache2/2.2/bin/$(MACH64)/htdbm |
| | | link path=usr/bin/$(MACH64)/htdigest target=../../apache2/2.2/bin/$(MACH64)/htdigest |
| | | link path=usr/bin/$(MACH64)/htpasswd target=../../apache2/2.2/bin/$(MACH64)/htpasswd |
| | | link path=usr/bin/$(MACH64)/httxt2dbm target=../../apache2/2.2/bin/$(MACH64)/httxt2dbm |
| | | link path=usr/bin/$(MACH64)/logresolve target=../../apache2/2.2/bin/$(MACH64)/logresolve |
| | | link path=usr/bin/$(MACH64)/rotatelogs target=../../apache2/2.2/bin/$(MACH64)/rotatelogs |
| | | link path=usr/bin/ab target=../apache2/2.2/bin/ab |
| | | link path=usr/bin/apxs target=../apache2/2.2/bin/apxs |
| | | link path=usr/bin/dbmmanage target=../apache2/2.2/bin/dbmmanage |
| | | link path=usr/bin/htcacheclean target=../apache2/2.2/bin/htcacheclean |
| | | link path=usr/bin/htdbm target=../apache2/2.2/bin/htdbm |
| | | link path=usr/bin/htdigest target=../apache2/2.2/bin/htdigest |
| | | link path=usr/bin/htpasswd target=../apache2/2.2/bin/htpasswd |
| | | link path=usr/bin/httxt2dbm target=../apache2/2.2/bin/httxt2dbm |
| | | link path=usr/bin/logresolve target=../apache2/2.2/bin/logresolve |
| | | link path=usr/bin/rotatelogs target=../apache2/2.2/bin/rotatelogs |
| | | link path=var/apache2/2.2/libexec/64 target=$(MACH64) |
| | | |
| | | legacy pkg=SUNWapch22u \ |
| | | name="Apache Web Server V2.2 (usr)" \ |
| | | desc="The Apache HTTP Server Version 2.2 (usr components)" |
| | | |
| | | legacy pkg=SUNWapch22r \ |
| | | name="Apache Web Server V2.2 (root)" \ |
| | | desc="The Apache HTTP server Version 2.2 (root components)" |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | set name=pkg.fmri \ |
| | | value=pkg:/web/server/apache-22/module/apache-sed@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) |
| | | set name=pkg.summary \ |
| | | value="mod_sed plugin for Apache Web Server V2.2" |
| | | set name=pkg.description \ |
| | | value="mod_sed plugin for Apache Web Server Version 2.2" |
| | | set name=info.classification \ |
| | | value="org.opensolaris.category.2008:Web Services/Application and Web Servers" |
| | | set name=info.upstream_url value="http://httpd.apache.org/docs/2.3/mod/mod_sed.html" |
| | | set name=opensolaris.arc_url \ |
| | | value=http://arc.opensolaris.org/caselog/LSARC/2009/122 |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | |
| | | license LICENSE license="Apache v2.0" |
| | | |
| | | dir path=etc |
| | | dir path=etc/apache2 |
| | | dir path=etc/apache2/2.2 |
| | | dir path=etc/apache2/2.2/samples-conf.d |
| | | dir path=usr |
| | | dir path=usr/apache2 |
| | | dir path=usr/apache2/2.2 |
| | | dir path=usr/apache2/2.2/libexec |
| | | dir path=usr/apache2/2.2/libexec/$(MACH64) |
| | | file path=etc/apache2/2.2/samples-conf.d/sed.conf |
| | | file path=usr/apache2/2.2/libexec/mod_sed.so |
| | | file path=usr/apache2/2.2/libexec/$(MACH64)/mod_sed.so |
| | | |
| | | legacy pkg=SUNWapch22m-sed \ |
| | | name="mod_sed plugin for Apache Web Server V2.2" \ |
| | | desc="mod_sed plugin for Apache Web Server Version 2.2" |
| | | |
| | | legacy pkg=SUNWapch22r-sed \ |
| | | name="mod_sed plugin for Apache Web Server V2.2 (root)" \ |
| | | desc="mod_sed plugin for Apache Web Server Version 2.2 (root component)" |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted> |
| | | set name=pkg.fmri \ |
| | | value=pkg:/web/server/apache-22/documentation@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) |
| | | set name=pkg.summary \ |
| | | value="Apache Web Server V2.2 Documentation" |
| | | set name=pkg.description \ |
| | | value="The Apache HTTP Server Version 2.2 (documentation)" |
| | | set name=info.classification \ |
| | | value="org.opensolaris.category.2008:Web Services/Application and Web Servers" |
| | | set name=info.upstream_url value="http://httpd.apache.org/" |
| | | set name=info.source_url value=$(COMPONENT_ARCHIVE_URL) |
| | | set name=opensolaris.arc_url \ |
| | | value=http://arc.opensolaris.org/caselog/LSARC/2009/565 |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | |
| | | license LICENSE license="Apache v2.0" |
| | | |
| | | dir path=usr |
| | | dir path=usr/apache2 |
| | | dir path=usr/apache2/2.2 |
| | | dir path=usr/apache2/2.2/man |
| | | dir path=usr/apache2/2.2/man/man1 |
| | | dir path=usr/apache2/2.2/man/man8 |
| | | dir path=usr/apache2/2.2/manual |
| | | dir path=usr/apache2/2.2/manual/developer |
| | | dir path=usr/apache2/2.2/manual/faq |
| | | dir path=usr/apache2/2.2/manual/howto |
| | | dir path=usr/apache2/2.2/manual/images |
| | | dir path=usr/apache2/2.2/manual/misc |
| | | dir path=usr/apache2/2.2/manual/mod |
| | | dir path=usr/apache2/2.2/manual/platform |
| | | dir path=usr/apache2/2.2/manual/programs |
| | | dir path=usr/apache2/2.2/manual/rewrite |
| | | dir path=usr/apache2/2.2/manual/ssl |
| | | dir path=usr/apache2/2.2/manual/style |
| | | dir path=usr/apache2/2.2/manual/style/css |
| | | dir path=usr/apache2/2.2/manual/style/lang |
| | | dir path=usr/apache2/2.2/manual/style/latex |
| | | dir path=usr/apache2/2.2/manual/style/xsl |
| | | dir path=usr/apache2/2.2/manual/style/xsl/util |
| | | dir path=usr/apache2/2.2/manual/vhosts |
| | | dir path=usr/share |
| | | dir path=usr/share/man |
| | | dir path=usr/share/man/man1m |
| | | dir path=usr/share/man/man8 |
| | | file path=usr/apache2/2.2/man/man8/ab.8 |
| | | file path=usr/apache2/2.2/man/man8/apachectl.8 |
| | | file path=usr/apache2/2.2/man/man8/apxs.8 |
| | | file path=usr/apache2/2.2/man/man8/htcacheclean.8 |
| | | file path=usr/apache2/2.2/man/man8/httpd.8 |
| | | file path=usr/apache2/2.2/man/man8/logresolve.8 |
| | | file path=usr/apache2/2.2/man/man8/rotatelogs.8 |
| | | file path=usr/apache2/2.2/man/man8/suexec.8 |
| | | file path=usr/apache2/2.2/man/man1/htdigest.1 |
| | | file path=usr/apache2/2.2/man/man1/htpasswd.1 |
| | | file path=usr/apache2/2.2/man/man1/dbmmanage.1 |
| | | file path=usr/apache2/2.2/man/man1/htdbm.1 |
| | | file path=usr/apache2/2.2/manual/LICENSE |
| | | file path=usr/apache2/2.2/manual/bind.html |
| | | file path=usr/apache2/2.2/manual/bind.html.de |
| | | file path=usr/apache2/2.2/manual/bind.html.en |
| | | file path=usr/apache2/2.2/manual/bind.html.fr |
| | | file path=usr/apache2/2.2/manual/bind.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/bind.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/bind.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/caching.html |
| | | file path=usr/apache2/2.2/manual/caching.html.en |
| | | file path=usr/apache2/2.2/manual/caching.html.fr |
| | | file path=usr/apache2/2.2/manual/caching.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/configuring.html |
| | | file path=usr/apache2/2.2/manual/configuring.html.de |
| | | file path=usr/apache2/2.2/manual/configuring.html.en |
| | | file path=usr/apache2/2.2/manual/configuring.html.fr |
| | | file path=usr/apache2/2.2/manual/configuring.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/configuring.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/configuring.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/content-negotiation.html |
| | | file path=usr/apache2/2.2/manual/content-negotiation.html.en |
| | | file path=usr/apache2/2.2/manual/content-negotiation.html.fr |
| | | file path=usr/apache2/2.2/manual/content-negotiation.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/content-negotiation.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/content-negotiation.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/convenience.map |
| | | file path=usr/apache2/2.2/manual/mod/mod_charset_lite.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_dav.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_dav.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_dav.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_dav.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_dav_fs.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_dav_fs.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_dav_fs.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_dav_fs.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_dav_lock.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_dav_lock.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_dav_lock.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_dbd.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_dbd.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_deflate.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_deflate.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_deflate.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_deflate.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_dir.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_dir.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_dir.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_dir.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_dir.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_disk_cache.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_disk_cache.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_disk_cache.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_disk_cache.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_dumpio.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_dumpio.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_dumpio.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_echo.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_echo.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_echo.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_echo.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_env.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_env.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_env.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_env.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_env.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_example.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_example.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_example.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_expires.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_expires.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_expires.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_expires.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_ext_filter.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_ext_filter.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_ext_filter.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_ext_filter.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_file_cache.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_file_cache.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_file_cache.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_filter.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_filter.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_headers.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_headers.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_headers.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_headers.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_ident.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_ident.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_ident.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_ident.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_imagemap.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_imagemap.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_imagemap.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_include.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_include.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_include.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_info.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_info.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_info.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_info.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_isapi.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_isapi.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_isapi.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_ldap.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_ldap.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_log_config.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_log_config.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_log_config.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_log_config.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_log_config.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_log_forensic.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_log_forensic.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_log_forensic.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_log_forensic.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_logio.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_logio.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_logio.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_logio.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_logio.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_mem_cache.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_mem_cache.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_mem_cache.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_mem_cache.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_mime.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_mime.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_mime.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_mime_magic.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_mime_magic.html.en |
| | | file path=usr/apache2/2.2/manual/mod/directives.html.en |
| | | file path=usr/apache2/2.2/manual/mod/directives.html.es |
| | | file path=usr/apache2/2.2/manual/mod/directives.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/directives.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/directives.html.ru.koi8-r |
| | | file path=usr/apache2/2.2/manual/mod/directives.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/event.html |
| | | file path=usr/apache2/2.2/manual/mod/event.html.en |
| | | file path=usr/apache2/2.2/manual/mod/index.html |
| | | file path=usr/apache2/2.2/manual/mod/index.html.de |
| | | file path=usr/apache2/2.2/manual/mod/index.html.en |
| | | file path=usr/apache2/2.2/manual/mod/index.html.es |
| | | file path=usr/apache2/2.2/manual/mod/index.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/index.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/index.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_actions.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_actions.html.de |
| | | file path=usr/apache2/2.2/manual/mod/mod_actions.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_alias.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_alias.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_alias.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_alias.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_alias.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_asis.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_asis.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_asis.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_asis.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_auth_basic.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_auth_basic.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_auth_basic.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_auth_basic.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_auth_digest.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_auth_digest.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_auth_digest.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_alias.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_alias.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_anon.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_anon.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_anon.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_anon.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_dbd.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_dbd.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_dbm.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_dbm.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_dbm.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_dbm.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_default.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_default.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_default.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_default.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_file.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_file.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_file.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_authn_file.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_authnz_ldap.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_authnz_ldap.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_dbm.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_dbm.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_dbm.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_default.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_default.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_default.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_default.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_groupfile.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_groupfile.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_groupfile.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_groupfile.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_host.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_host.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_host.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_host.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_owner.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_owner.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_owner.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_owner.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_user.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_user.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_user.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_authz_user.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_autoindex.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_autoindex.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_autoindex.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_autoindex.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_autoindex.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_cache.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_cache.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_cache.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_cache.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_cern_meta.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_cern_meta.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_cern_meta.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_cgi.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_cgi.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_cgi.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_cgi.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_cgid.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_cgid.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_cgid.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_cgid.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_charset_lite.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_charset_lite.html.en |
| | | file path=usr/apache2/2.2/manual/images/caching_fig1.gif |
| | | file path=usr/apache2/2.2/manual/images/caching_fig1.png |
| | | file path=usr/apache2/2.2/manual/images/caching_fig1.tr.png |
| | | file path=usr/apache2/2.2/manual/images/custom_errordocs.png |
| | | file path=usr/apache2/2.2/manual/images/down.gif |
| | | file path=usr/apache2/2.2/manual/images/favicon.ico |
| | | file path=usr/apache2/2.2/manual/images/feather.gif |
| | | file path=usr/apache2/2.2/manual/images/feather.png |
| | | file path=usr/apache2/2.2/manual/images/filter_arch.png |
| | | file path=usr/apache2/2.2/manual/images/filter_arch.tr.png |
| | | file path=usr/apache2/2.2/manual/images/home.gif |
| | | file path=usr/apache2/2.2/manual/images/index.gif |
| | | file path=usr/apache2/2.2/manual/images/left.gif |
| | | file path=usr/apache2/2.2/manual/images/mod_filter_new.gif |
| | | file path=usr/apache2/2.2/manual/images/mod_filter_new.png |
| | | file path=usr/apache2/2.2/manual/images/mod_filter_new.tr.png |
| | | file path=usr/apache2/2.2/manual/images/mod_filter_old.gif |
| | | file path=usr/apache2/2.2/manual/images/mod_rewrite_fig1.gif |
| | | file path=usr/apache2/2.2/manual/images/mod_rewrite_fig1.png |
| | | file path=usr/apache2/2.2/manual/images/mod_rewrite_fig2.gif |
| | | file path=usr/apache2/2.2/manual/images/mod_rewrite_fig2.png |
| | | file path=usr/apache2/2.2/manual/images/pixel.gif |
| | | file path=usr/apache2/2.2/manual/images/right.gif |
| | | file path=usr/apache2/2.2/manual/images/ssl_intro_fig1.gif |
| | | file path=usr/apache2/2.2/manual/images/ssl_intro_fig1.png |
| | | file path=usr/apache2/2.2/manual/images/ssl_intro_fig2.gif |
| | | file path=usr/apache2/2.2/manual/images/ssl_intro_fig2.png |
| | | file path=usr/apache2/2.2/manual/images/ssl_intro_fig3.gif |
| | | file path=usr/apache2/2.2/manual/images/ssl_intro_fig3.png |
| | | file path=usr/apache2/2.2/manual/images/sub.gif |
| | | file path=usr/apache2/2.2/manual/images/up.gif |
| | | file path=usr/apache2/2.2/manual/index.html |
| | | file path=usr/apache2/2.2/manual/index.html.de |
| | | file path=usr/apache2/2.2/manual/index.html.en |
| | | file path=usr/apache2/2.2/manual/index.html.es |
| | | file path=usr/apache2/2.2/manual/index.html.fr |
| | | file path=usr/apache2/2.2/manual/index.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/index.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/index.html.pt-br |
| | | file path=usr/apache2/2.2/manual/index.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/install.html |
| | | file path=usr/apache2/2.2/manual/install.html.de |
| | | file path=usr/apache2/2.2/manual/install.html.en |
| | | file path=usr/apache2/2.2/manual/install.html.es |
| | | file path=usr/apache2/2.2/manual/install.html.fr |
| | | file path=usr/apache2/2.2/manual/install.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/install.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/install.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/invoking.html |
| | | file path=usr/apache2/2.2/manual/invoking.html.de |
| | | file path=usr/apache2/2.2/manual/invoking.html.en |
| | | file path=usr/apache2/2.2/manual/invoking.html.es |
| | | file path=usr/apache2/2.2/manual/invoking.html.fr |
| | | file path=usr/apache2/2.2/manual/invoking.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/invoking.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/invoking.html.ru.koi8-r |
| | | file path=usr/apache2/2.2/manual/invoking.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/license.html |
| | | file path=usr/apache2/2.2/manual/license.html.en |
| | | file path=usr/apache2/2.2/manual/logs.html |
| | | file path=usr/apache2/2.2/manual/logs.html.en |
| | | file path=usr/apache2/2.2/manual/logs.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/logs.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/logs.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/misc/index.html |
| | | file path=usr/apache2/2.2/manual/misc/index.html.en |
| | | file path=usr/apache2/2.2/manual/misc/index.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/misc/index.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/misc/password_encryptions.html |
| | | file path=usr/apache2/2.2/manual/misc/password_encryptions.html.en |
| | | file path=usr/apache2/2.2/manual/misc/perf-tuning.html |
| | | file path=usr/apache2/2.2/manual/misc/perf-tuning.html.en |
| | | file path=usr/apache2/2.2/manual/misc/perf-tuning.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/misc/perf-tuning.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/misc/relevant_standards.html |
| | | file path=usr/apache2/2.2/manual/misc/relevant_standards.html.en |
| | | file path=usr/apache2/2.2/manual/misc/relevant_standards.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/misc/rewriteguide.html |
| | | file path=usr/apache2/2.2/manual/misc/rewriteguide.html.en |
| | | file path=usr/apache2/2.2/manual/misc/rewriteguide.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/misc/security_tips.html |
| | | file path=usr/apache2/2.2/manual/misc/security_tips.html.en |
| | | file path=usr/apache2/2.2/manual/misc/security_tips.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/misc/security_tips.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/beos.html |
| | | file path=usr/apache2/2.2/manual/mod/beos.html.de |
| | | file path=usr/apache2/2.2/manual/mod/beos.html.en |
| | | file path=usr/apache2/2.2/manual/mod/beos.html.es |
| | | file path=usr/apache2/2.2/manual/mod/beos.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/core.html |
| | | file path=usr/apache2/2.2/manual/mod/core.html.de |
| | | file path=usr/apache2/2.2/manual/mod/core.html.en |
| | | file path=usr/apache2/2.2/manual/mod/core.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/core.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/directive-dict.html |
| | | file path=usr/apache2/2.2/manual/mod/directive-dict.html.en |
| | | file path=usr/apache2/2.2/manual/mod/directive-dict.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/directive-dict.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/directive-dict.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/directives.html |
| | | file path=usr/apache2/2.2/manual/mod/directives.html.de |
| | | file path=usr/apache2/2.2/manual/developer/documenting.html |
| | | file path=usr/apache2/2.2/manual/developer/API.html.en |
| | | file path=usr/apache2/2.2/manual/developer/documenting.html.en |
| | | file path=usr/apache2/2.2/manual/developer/filters.html.en |
| | | file path=usr/apache2/2.2/manual/custom-error.html |
| | | file path=usr/apache2/2.2/manual/custom-error.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/developer/debugging.html.en |
| | | file path=usr/apache2/2.2/manual/developer/filters.html |
| | | file path=usr/apache2/2.2/manual/developer/hooks.html |
| | | file path=usr/apache2/2.2/manual/custom-error.html.es |
| | | file path=usr/apache2/2.2/manual/custom-error.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/custom-error.html.en |
| | | file path=usr/apache2/2.2/manual/developer/API.html |
| | | file path=usr/apache2/2.2/manual/custom-error.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/developer/debugging.html |
| | | file path=usr/apache2/2.2/manual/developer/hooks.html.en |
| | | file path=usr/apache2/2.2/manual/developer/index.html |
| | | file path=usr/apache2/2.2/manual/developer/index.html.en |
| | | file path=usr/apache2/2.2/manual/developer/modules.html |
| | | file path=usr/apache2/2.2/manual/developer/modules.html.en |
| | | file path=usr/apache2/2.2/manual/developer/modules.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/developer/request.html |
| | | file path=usr/apache2/2.2/manual/developer/request.html.en |
| | | file path=usr/apache2/2.2/manual/developer/thread_safety.html |
| | | file path=usr/apache2/2.2/manual/developer/thread_safety.html.en |
| | | file path=usr/apache2/2.2/manual/dns-caveats.html |
| | | file path=usr/apache2/2.2/manual/dns-caveats.html.en |
| | | file path=usr/apache2/2.2/manual/dns-caveats.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/dns-caveats.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/dns-caveats.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/dso.html |
| | | file path=usr/apache2/2.2/manual/dso.html.en |
| | | file path=usr/apache2/2.2/manual/dso.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/dso.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/dso.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/env.html |
| | | file path=usr/apache2/2.2/manual/env.html.en |
| | | file path=usr/apache2/2.2/manual/env.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/env.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/env.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/faq/index.html |
| | | file path=usr/apache2/2.2/manual/faq/index.html.en |
| | | file path=usr/apache2/2.2/manual/faq/index.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/filter.html |
| | | file path=usr/apache2/2.2/manual/filter.html.en |
| | | file path=usr/apache2/2.2/manual/filter.html.es |
| | | file path=usr/apache2/2.2/manual/filter.html.fr |
| | | file path=usr/apache2/2.2/manual/filter.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/filter.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/filter.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/glossary.html |
| | | file path=usr/apache2/2.2/manual/glossary.html.de |
| | | file path=usr/apache2/2.2/manual/glossary.html.en |
| | | file path=usr/apache2/2.2/manual/glossary.html.es |
| | | file path=usr/apache2/2.2/manual/glossary.html.fr |
| | | file path=usr/apache2/2.2/manual/glossary.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/glossary.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/glossary.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/handler.html |
| | | file path=usr/apache2/2.2/manual/handler.html.en |
| | | file path=usr/apache2/2.2/manual/handler.html.es |
| | | file path=usr/apache2/2.2/manual/handler.html.fr |
| | | file path=usr/apache2/2.2/manual/handler.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/handler.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/handler.html.ru.koi8-r |
| | | file path=usr/apache2/2.2/manual/handler.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/howto/access.html |
| | | file path=usr/apache2/2.2/manual/howto/access.html.en |
| | | file path=usr/apache2/2.2/manual/howto/auth.html |
| | | file path=usr/apache2/2.2/manual/howto/auth.html.en |
| | | file path=usr/apache2/2.2/manual/howto/auth.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/howto/auth.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/howto/auth.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/howto/cgi.html |
| | | file path=usr/apache2/2.2/manual/howto/cgi.html.en |
| | | file path=usr/apache2/2.2/manual/howto/cgi.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/howto/cgi.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/howto/htaccess.html |
| | | file path=usr/apache2/2.2/manual/howto/htaccess.html.en |
| | | file path=usr/apache2/2.2/manual/howto/htaccess.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/howto/htaccess.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/howto/htaccess.html.pt-br |
| | | file path=usr/apache2/2.2/manual/howto/index.html |
| | | file path=usr/apache2/2.2/manual/howto/index.html.en |
| | | file path=usr/apache2/2.2/manual/howto/index.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/howto/index.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/howto/public_html.html |
| | | file path=usr/apache2/2.2/manual/howto/public_html.html.en |
| | | file path=usr/apache2/2.2/manual/howto/public_html.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/howto/public_html.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/howto/public_html.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/howto/ssi.html |
| | | file path=usr/apache2/2.2/manual/howto/ssi.html.en |
| | | file path=usr/apache2/2.2/manual/howto/ssi.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/howto/ssi.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/images/apache_header.gif |
| | | file path=usr/apache2/2.2/manual/mod/mod_actions.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_actions.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_negotiation.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_negotiation.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_negotiation.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_nw_ssl.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_nw_ssl.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy_ajp.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy_ajp.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy_ajp.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy_balancer.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy_balancer.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy_balancer.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy_connect.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy_connect.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy_connect.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy_ftp.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy_ftp.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy_http.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy_http.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy_scgi.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_proxy_scgi.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_reqtimeout.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_reqtimeout.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_rewrite.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_rewrite.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_setenvif.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_setenvif.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_setenvif.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_setenvif.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_setenvif.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_so.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_so.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_so.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_so.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_so.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_speling.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_speling.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_speling.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_speling.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_ssl.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_ssl.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_status.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_status.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_status.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_status.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_status.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_substitute.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_substitute.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_suexec.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_suexec.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_suexec.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_suexec.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_suexec.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_unique_id.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_unique_id.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_unique_id.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_unique_id.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_userdir.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_userdir.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_userdir.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_userdir.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_userdir.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_usertrack.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_usertrack.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_version.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_version.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_version.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mod_version.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/mod_vhost_alias.html |
| | | file path=usr/apache2/2.2/manual/mod/mod_vhost_alias.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mod_vhost_alias.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/module-dict.html |
| | | file path=usr/apache2/2.2/manual/mod/module-dict.html.en |
| | | file path=usr/apache2/2.2/manual/mod/module-dict.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/module-dict.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/module-dict.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mpm_common.html |
| | | file path=usr/apache2/2.2/manual/mod/mpm_common.html.de |
| | | file path=usr/apache2/2.2/manual/mod/mpm_common.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mpm_common.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mpm_common.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mpm_netware.html |
| | | file path=usr/apache2/2.2/manual/mod/mpm_netware.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mpm_winnt.html |
| | | file path=usr/apache2/2.2/manual/mod/mpm_winnt.html.de |
| | | file path=usr/apache2/2.2/manual/mod/mpm_winnt.html.en |
| | | file path=usr/apache2/2.2/manual/mod/mpm_winnt.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/mpmt_os2.html |
| | | file path=usr/apache2/2.2/manual/mod/mpmt_os2.html.en |
| | | file path=usr/apache2/2.2/manual/mod/prefork.html |
| | | file path=usr/apache2/2.2/manual/mod/prefork.html.de |
| | | file path=usr/apache2/2.2/manual/mod/prefork.html.en |
| | | file path=usr/apache2/2.2/manual/mod/prefork.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/prefork.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/quickreference.html |
| | | file path=usr/apache2/2.2/manual/mod/quickreference.html.de |
| | | file path=usr/apache2/2.2/manual/mod/quickreference.html.en |
| | | file path=usr/apache2/2.2/manual/mod/quickreference.html.es |
| | | file path=usr/apache2/2.2/manual/mod/quickreference.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/quickreference.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mod/quickreference.html.ru.koi8-r |
| | | file path=usr/apache2/2.2/manual/mod/quickreference.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/worker.html |
| | | file path=usr/apache2/2.2/manual/mod/worker.html.de |
| | | file path=usr/apache2/2.2/manual/mod/worker.html.en |
| | | file path=usr/apache2/2.2/manual/mod/worker.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mod/worker.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/mpm.html |
| | | file path=usr/apache2/2.2/manual/mpm.html.de |
| | | file path=usr/apache2/2.2/manual/mpm.html.en |
| | | file path=usr/apache2/2.2/manual/mpm.html.es |
| | | file path=usr/apache2/2.2/manual/mpm.html.fr |
| | | file path=usr/apache2/2.2/manual/mpm.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/mpm.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/mpm.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/new_features_2_0.html |
| | | file path=usr/apache2/2.2/manual/new_features_2_0.html.de |
| | | file path=usr/apache2/2.2/manual/new_features_2_0.html.en |
| | | file path=usr/apache2/2.2/manual/new_features_2_0.html.fr |
| | | file path=usr/apache2/2.2/manual/new_features_2_0.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/new_features_2_0.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/new_features_2_0.html.pt-br |
| | | file path=usr/apache2/2.2/manual/new_features_2_0.html.ru.koi8-r |
| | | file path=usr/apache2/2.2/manual/new_features_2_0.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/new_features_2_2.html |
| | | file path=usr/apache2/2.2/manual/new_features_2_2.html.en |
| | | file path=usr/apache2/2.2/manual/new_features_2_2.html.fr |
| | | file path=usr/apache2/2.2/manual/new_features_2_2.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/new_features_2_2.html.pt-br |
| | | file path=usr/apache2/2.2/manual/new_features_2_2.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/platform/ebcdic.html |
| | | file path=usr/apache2/2.2/manual/platform/ebcdic.html.en |
| | | file path=usr/apache2/2.2/manual/platform/ebcdic.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/platform/index.html |
| | | file path=usr/apache2/2.2/manual/platform/index.html.en |
| | | file path=usr/apache2/2.2/manual/platform/index.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/platform/netware.html |
| | | file path=usr/apache2/2.2/manual/platform/netware.html.en |
| | | file path=usr/apache2/2.2/manual/platform/netware.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/platform/perf-hp.html |
| | | file path=usr/apache2/2.2/manual/platform/perf-hp.html.en |
| | | file path=usr/apache2/2.2/manual/platform/perf-hp.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/platform/win_compiling.html |
| | | file path=usr/apache2/2.2/manual/platform/win_compiling.html.en |
| | | file path=usr/apache2/2.2/manual/platform/win_compiling.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/platform/windows.html |
| | | file path=usr/apache2/2.2/manual/platform/windows.html.en |
| | | file path=usr/apache2/2.2/manual/platform/windows.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/programs/ab.html |
| | | file path=usr/apache2/2.2/manual/programs/ab.html.en |
| | | file path=usr/apache2/2.2/manual/programs/ab.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/programs/ab.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/programs/apachectl.html |
| | | file path=usr/apache2/2.2/manual/programs/apachectl.html.en |
| | | file path=usr/apache2/2.2/manual/programs/apachectl.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/programs/apachectl.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/programs/apxs.html |
| | | file path=usr/apache2/2.2/manual/programs/apxs.html.en |
| | | file path=usr/apache2/2.2/manual/programs/apxs.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/programs/apxs.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/programs/configure.html |
| | | file path=usr/apache2/2.2/manual/programs/configure.html.en |
| | | file path=usr/apache2/2.2/manual/programs/configure.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/programs/configure.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/programs/dbmmanage.html |
| | | file path=usr/apache2/2.2/manual/programs/dbmmanage.html.en |
| | | file path=usr/apache2/2.2/manual/programs/dbmmanage.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/programs/dbmmanage.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/programs/htcacheclean.html |
| | | file path=usr/apache2/2.2/manual/programs/htcacheclean.html.en |
| | | file path=usr/apache2/2.2/manual/programs/htcacheclean.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/programs/htcacheclean.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/programs/htdbm.html |
| | | file path=usr/apache2/2.2/manual/programs/htdbm.html.en |
| | | file path=usr/apache2/2.2/manual/programs/htdbm.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/programs/htdigest.html |
| | | file path=usr/apache2/2.2/manual/programs/htdigest.html.en |
| | | file path=usr/apache2/2.2/manual/programs/htdigest.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/programs/htdigest.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/programs/htpasswd.html |
| | | file path=usr/apache2/2.2/manual/programs/htpasswd.html.en |
| | | file path=usr/apache2/2.2/manual/programs/htpasswd.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/programs/htpasswd.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/programs/httpd.html |
| | | file path=usr/apache2/2.2/manual/programs/httpd.html.en |
| | | file path=usr/apache2/2.2/manual/programs/httpd.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/programs/httpd.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/programs/httxt2dbm.html |
| | | file path=usr/apache2/2.2/manual/programs/httxt2dbm.html.en |
| | | file path=usr/apache2/2.2/manual/programs/httxt2dbm.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/programs/index.html |
| | | file path=usr/apache2/2.2/manual/programs/index.html.en |
| | | file path=usr/apache2/2.2/manual/programs/index.html.es |
| | | file path=usr/apache2/2.2/manual/programs/index.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/programs/index.html.ru.koi8-r |
| | | file path=usr/apache2/2.2/manual/programs/index.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/programs/logresolve.html |
| | | file path=usr/apache2/2.2/manual/programs/logresolve.html.en |
| | | file path=usr/apache2/2.2/manual/programs/logresolve.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/programs/logresolve.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/programs/other.html |
| | | file path=usr/apache2/2.2/manual/programs/other.html.en |
| | | file path=usr/apache2/2.2/manual/programs/other.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/programs/other.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/programs/rotatelogs.html |
| | | file path=usr/apache2/2.2/manual/programs/rotatelogs.html.en |
| | | file path=usr/apache2/2.2/manual/programs/rotatelogs.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/programs/rotatelogs.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/programs/suexec.html |
| | | file path=usr/apache2/2.2/manual/programs/suexec.html.en |
| | | file path=usr/apache2/2.2/manual/programs/suexec.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/programs/suexec.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/rewrite/index.html |
| | | file path=usr/apache2/2.2/manual/rewrite/index.html.en |
| | | file path=usr/apache2/2.2/manual/rewrite/index.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/rewrite/rewrite_flags.html |
| | | file path=usr/apache2/2.2/manual/rewrite/rewrite_flags.html.en |
| | | file path=usr/apache2/2.2/manual/rewrite/rewrite_guide.html |
| | | file path=usr/apache2/2.2/manual/rewrite/rewrite_guide.html.en |
| | | file path=usr/apache2/2.2/manual/rewrite/rewrite_guide_advanced.html |
| | | file path=usr/apache2/2.2/manual/rewrite/rewrite_guide_advanced.html.en |
| | | file path=usr/apache2/2.2/manual/rewrite/rewrite_intro.html |
| | | file path=usr/apache2/2.2/manual/rewrite/rewrite_intro.html.en |
| | | file path=usr/apache2/2.2/manual/rewrite/rewrite_tech.html |
| | | file path=usr/apache2/2.2/manual/rewrite/rewrite_tech.html.en |
| | | file path=usr/apache2/2.2/manual/sections.html |
| | | file path=usr/apache2/2.2/manual/sections.html.en |
| | | file path=usr/apache2/2.2/manual/sections.html.fr |
| | | file path=usr/apache2/2.2/manual/sections.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/sections.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/sections.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/server-wide.html |
| | | file path=usr/apache2/2.2/manual/server-wide.html.en |
| | | file path=usr/apache2/2.2/manual/server-wide.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/server-wide.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/server-wide.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/sitemap.html |
| | | file path=usr/apache2/2.2/manual/sitemap.html.de |
| | | file path=usr/apache2/2.2/manual/sitemap.html.en |
| | | file path=usr/apache2/2.2/manual/sitemap.html.es |
| | | file path=usr/apache2/2.2/manual/sitemap.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/sitemap.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/sitemap.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/ssl/index.html |
| | | file path=usr/apache2/2.2/manual/ssl/index.html.en |
| | | file path=usr/apache2/2.2/manual/ssl/index.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/ssl/index.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/ssl/ssl_compat.html |
| | | file path=usr/apache2/2.2/manual/ssl/ssl_compat.html.en |
| | | file path=usr/apache2/2.2/manual/ssl/ssl_faq.html |
| | | file path=usr/apache2/2.2/manual/ssl/ssl_faq.html.en |
| | | file path=usr/apache2/2.2/manual/ssl/ssl_howto.html |
| | | file path=usr/apache2/2.2/manual/ssl/ssl_howto.html.en |
| | | file path=usr/apache2/2.2/manual/ssl/ssl_intro.html |
| | | file path=usr/apache2/2.2/manual/ssl/ssl_intro.html.en |
| | | file path=usr/apache2/2.2/manual/ssl/ssl_intro.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/stopping.html |
| | | file path=usr/apache2/2.2/manual/stopping.html.de |
| | | file path=usr/apache2/2.2/manual/stopping.html.en |
| | | file path=usr/apache2/2.2/manual/stopping.html.es |
| | | file path=usr/apache2/2.2/manual/stopping.html.fr |
| | | file path=usr/apache2/2.2/manual/stopping.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/stopping.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/stopping.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/style/build.properties |
| | | file path=usr/apache2/2.2/manual/style/common.dtd |
| | | file path=usr/apache2/2.2/manual/style/css/manual-chm.css |
| | | file path=usr/apache2/2.2/manual/style/css/manual-loose-100pc.css |
| | | file path=usr/apache2/2.2/manual/style/css/manual-print.css |
| | | file path=usr/apache2/2.2/manual/style/css/manual-zip-100pc.css |
| | | file path=usr/apache2/2.2/manual/style/css/manual-zip.css |
| | | file path=usr/apache2/2.2/manual/style/css/manual.css |
| | | file path=usr/apache2/2.2/manual/style/faq.dtd |
| | | file path=usr/apache2/2.2/manual/style/lang.dtd |
| | | file path=usr/apache2/2.2/manual/style/latex/atbeginend.sty |
| | | file path=usr/apache2/2.2/manual/style/manualpage.dtd |
| | | file path=usr/apache2/2.2/manual/style/modulesynopsis.dtd |
| | | file path=usr/apache2/2.2/manual/style/sitemap.dtd |
| | | file path=usr/apache2/2.2/manual/style/version.ent |
| | | file path=usr/apache2/2.2/manual/suexec.html |
| | | file path=usr/apache2/2.2/manual/suexec.html.en |
| | | file path=usr/apache2/2.2/manual/suexec.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/suexec.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/suexec.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/upgrading.html |
| | | file path=usr/apache2/2.2/manual/upgrading.html.de |
| | | file path=usr/apache2/2.2/manual/upgrading.html.en |
| | | file path=usr/apache2/2.2/manual/upgrading.html.fr |
| | | file path=usr/apache2/2.2/manual/urlmapping.html |
| | | file path=usr/apache2/2.2/manual/urlmapping.html.en |
| | | file path=usr/apache2/2.2/manual/urlmapping.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/urlmapping.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/urlmapping.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/vhosts/details.html |
| | | file path=usr/apache2/2.2/manual/vhosts/details.html.en |
| | | file path=usr/apache2/2.2/manual/vhosts/details.html.fr |
| | | file path=usr/apache2/2.2/manual/vhosts/details.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/vhosts/details.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/vhosts/examples.html |
| | | file path=usr/apache2/2.2/manual/vhosts/examples.html.en |
| | | file path=usr/apache2/2.2/manual/vhosts/examples.html.fr |
| | | file path=usr/apache2/2.2/manual/vhosts/examples.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/vhosts/examples.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/vhosts/examples.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/vhosts/fd-limits.html |
| | | file path=usr/apache2/2.2/manual/vhosts/fd-limits.html.en |
| | | file path=usr/apache2/2.2/manual/vhosts/fd-limits.html.fr |
| | | file path=usr/apache2/2.2/manual/vhosts/fd-limits.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/vhosts/fd-limits.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/vhosts/fd-limits.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/vhosts/index.html |
| | | file path=usr/apache2/2.2/manual/vhosts/index.html.de |
| | | file path=usr/apache2/2.2/manual/vhosts/index.html.en |
| | | file path=usr/apache2/2.2/manual/vhosts/index.html.fr |
| | | file path=usr/apache2/2.2/manual/vhosts/index.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/vhosts/index.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/vhosts/index.html.ru.koi8-r |
| | | file path=usr/apache2/2.2/manual/vhosts/index.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/vhosts/ip-based.html |
| | | file path=usr/apache2/2.2/manual/vhosts/ip-based.html.en |
| | | file path=usr/apache2/2.2/manual/vhosts/ip-based.html.fr |
| | | file path=usr/apache2/2.2/manual/vhosts/ip-based.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/vhosts/ip-based.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/vhosts/ip-based.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/vhosts/mass.html |
| | | file path=usr/apache2/2.2/manual/vhosts/mass.html.en |
| | | file path=usr/apache2/2.2/manual/vhosts/mass.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/vhosts/mass.html.tr.utf8 |
| | | file path=usr/apache2/2.2/manual/vhosts/name-based.html |
| | | file path=usr/apache2/2.2/manual/vhosts/name-based.html.de |
| | | file path=usr/apache2/2.2/manual/vhosts/name-based.html.en |
| | | file path=usr/apache2/2.2/manual/vhosts/name-based.html.fr |
| | | file path=usr/apache2/2.2/manual/vhosts/name-based.html.ja.utf8 |
| | | file path=usr/apache2/2.2/manual/vhosts/name-based.html.ko.euc-kr |
| | | file path=usr/apache2/2.2/manual/vhosts/name-based.html.tr.utf8 |
| | | file Solaris/apache2.1m.sunman path=usr/share/man/man1m/apache2.1m |
| | | file usr/apache2/2.2/man/man8/ab.8 path=usr/share/man/man8/ab.8 |
| | | file usr/apache2/2.2/man/man8/apachectl.8 path=usr/share/man/man8/apachectl.8 |
| | | file usr/apache2/2.2/man/man8/apxs.8 path=usr/share/man/man8/apxs.8 |
| | | file usr/apache2/2.2/man/man8/htcacheclean.8 path=usr/share/man/man8/htcacheclean.8 |
| | | file usr/apache2/2.2/man/man8/httpd.8 path=usr/share/man/man8/httpd.8 |
| | | file usr/apache2/2.2/man/man8/logresolve.8 path=usr/share/man/man8/logresolve.8 |
| | | file usr/apache2/2.2/man/man8/rotatelogs.8 path=usr/share/man/man8/rotatelogs.8 |
| | | file usr/apache2/2.2/man/man8/suexec.8 path=usr/share/man/man8/suexec.8 |
| | | |
| | | legacy pkg=SUNWapch22d \ |
| | | name="Apache Web Server V2.2 Documentation" \ |
| | | desc="The Apache HTTP Server Version 2.2 (documentation)" |
New file |
| | |
| | | Instructions on testing the negotiateauth |
| | | mozilla extension with Apache. |
| | | |
| | | Introduction |
| | | ----------------- |
| | | mod_auth_gss (originally from http://modauthkerb.sourceforge.net/) is an |
| | | Apache module designed to provide GSSAPI authentication to the Apache |
| | | web server. Using the "Negotiate" Auth mechanism, which performs full |
| | | Kerberos authentication based on ticket exchanges and does not require |
| | | users to insert their passwords to the browser. In order to use the |
| | | Negotiate method you need a browser supporting it (currently standard IE6.0 or |
| | | Mozilla with the negotiateauth extension). |
| | | |
| | | The Negotiate mechanism can be only used with Kerberos v5. The module supports |
| | | both 1.x and 2.x versions of Apache. |
| | | |
| | | The use of SSL encryption is also recommended (but not required) if you are |
| | | using the Negotiate method. |
| | | |
| | | Installing mod_auth_gss |
| | | ------------------------ |
| | | |
| | | Prerequisites |
| | | * Apache server installed. |
| | | Both 1.x and 2.x series of Apache are supported (make sure the apache |
| | | installation contains the apxs command) |
| | | In Solaris - the necessary Apache 2.X libraries and headers are |
| | | usually found in /usr/apache2. |
| | | * Working C compiler. |
| | | * GSSAPI library (Solaris - /usr/lib/libgss.so.1) |
| | | |
| | | 1. Building the Apache module is simple. |
| | | Find the directory with the source code and Makefile for |
| | | mod_auth_gss.so. |
| | | $ make |
| | | |
| | | 2. Installing the Apache module requires 'root' privilege. |
| | | # cp mod_auth_gss.so /usr/apache2/libexec |
| | | |
| | | 3. Configure apache to use the new module. |
| | | Add following line to /etc/apache2/httpd.conf: |
| | | LoadModule auth_gss_module libexec/mod_auth_gss.so |
| | | |
| | | 4. Set permissions on the newly created keytab file so that only the |
| | | apache owner can read the file. For example, if the apache server |
| | | is configured to run as user "nobody": |
| | | |
| | | $ chown nobody /var/apache2/http.keytab |
| | | $ chmod 400 /var/apache2/http.keytab |
| | | |
| | | 5. Create a directory in the apache 'htdocs' tree that will be used |
| | | to test the GSSAPI/KerberosV5 authentication. |
| | | $ mkdir /var/apache2/htdocs/krb5 |
| | | |
| | | 6. Create a ".htaccess" file for the Kerberos directory (step 4), |
| | | it should contain the following entries: |
| | | AuthType GSSAPI |
| | | AuthGSSServiceName HTTP |
| | | AuthGSSKeytabFile /var/apache2/http.keytab |
| | | AuthGssDebug 1 |
| | | |
| | | * AuthGssDebug is only needed for testing purposes, it causes extra |
| | | DEBUG level messages to be displayed in the Apache error_log file |
| | | (/var/apache2/logs/error_log). |
| | | |
| | | 7. Put some content in the Kerberos web directory so the tester can |
| | | verify that they accessed the page correctly. |
| | | |
| | | 8. Set the "AllowOverride" parameter in /etc/apache2/httpd.conf |
| | | to "All" for the Kerberos directory created in step 5. |
| | | Ex: |
| | | <Location "/var/apache2/htdocs/krb5"> |
| | | Options Indexes FollowSymLinks MultiViews |
| | | AllowOverride All |
| | | Require valid-user |
| | | </Location> |
| | | |
| | | Configurating Kerberos |
| | | ----------------------- |
| | | |
| | | 1. Set up Kerberos Server (if you don't already have one). |
| | | Follow basic instructions given at docs.sun.com. Search for |
| | | "Configuring Kerberos" in the |
| | | "Solaris Administration Guide: Security Services" book. |
| | | |
| | | - The KDC should be a protected, standalone system. But for |
| | | internal testing purposes it may be hosted on the same system |
| | | as the Apache web server. |
| | | |
| | | 2. Create a Kerberos service key for the Apache server to use for |
| | | authenticating the clients. Also create a user principal testing |
| | | the browser later. |
| | | The "Negotiate" method used by IIS and IE is "HTTP/<hostname>@REALM". |
| | | To create this principal for use with the Apache module do the following: |
| | | [ As 'root', on the Apache server ] |
| | | a. /usr/sbin/kadmin |
| | | - this assumes the KDC setup procedure was followed (step 1). |
| | | b. kadmin: addprinc -randkey HTTP/<fully_qualified_host_name> |
| | | c. kadmin: ktadd -k /var/apache2/http.keytab HTTP/<fully_qualified_host_name> |
| | | d. kadmin: addprinc tester |
| | | e. kadmin: quit |
| | | |
| | | Testing the 'Negotiate' plugin with mozilla: |
| | | -------------------------------------------- |
| | | |
| | | 1. The client system must be configured to use Kerberos. |
| | | Setup /etc/krb5/krb5.conf to use the KDC created earlier |
| | | |
| | | 2. 'kinit' to get a TGT as the "tester" principal created |
| | | above in step 2d. |
| | | $ kinit tester |
| | | ( enter password ) |
| | | |
| | | 3. Use mozilla (with 'negotiateauth' extension installed) |
| | | to access the Kerberos protected page (created above |
| | | in steps 4-6). |
| | | |
| | | If the pages do not show up, its probably due to |
| | | a misconfigured Kerberos configuration on the client |
| | | or the server (or both). There is very little that |
| | | needs to be done for Mozilla or apache. |
| | | |
New file |
| | |
| | | /* |
| | | * Wyllys Ingersoll <wyllys.ingersoll@sun.com> |
| | | * |
| | | * Based on work by |
| | | * Daniel Kouril <kouril@users.sourceforge.net> |
| | | * James E. Robinson, III <james@ncstate.net> |
| | | * Daniel Henninger <daniel@ncsu.edu> |
| | | * Ludek Sulak <xsulak@fi.muni.cz> |
| | | */ |
| | | |
| | | /* ==================================================================== |
| | | * The Apache Software License, Version 1.1 |
| | | * |
| | | * Copyright (c) 2000-2003 The Apache Software Foundation. All rights |
| | | * reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions |
| | | * are met: |
| | | * |
| | | * 1. Redistributions of source code must retain the above copyright |
| | | * notice, this list of conditions and the following disclaimer. |
| | | * |
| | | * 2. Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in |
| | | * the documentation and/or other materials provided with the |
| | | * distribution. |
| | | * |
| | | * 3. The end-user documentation included with the redistribution, |
| | | * if any, must include the following acknowledgment: |
| | | * "This product includes software developed by the |
| | | * Apache Software Foundation (http://www.apache.org/)." |
| | | * Alternately, this acknowledgment may appear in the software itself, |
| | | * if and wherever such third-party acknowledgments normally appear. |
| | | * |
| | | * 4. The names "Apache" and "Apache Software Foundation" must |
| | | * not be used to endorse or promote products derived from this |
| | | * software without prior written permission. For written |
| | | * permission, please contact apache@apache.org. |
| | | * |
| | | * 5. Products derived from this software may not be called "Apache", |
| | | * nor may "Apache" appear in their name, without prior written |
| | | * permission of the Apache Software Foundation. |
| | | * |
| | | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
| | | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
| | | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| | | * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR |
| | | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| | | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| | | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
| | | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
| | | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
| | | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
| | | * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| | | * SUCH DAMAGE. |
| | | * ==================================================================== |
| | | * |
| | | * This software consists of voluntary contributions made by many |
| | | * individuals on behalf of the Apache Software Foundation. For more |
| | | * information on the Apache Software Foundation, please see |
| | | * <http://www.apache.org/>. |
| | | * |
| | | * Portions of this software are based upon public domain software |
| | | * originally written at the National Center for Supercomputing Applications, |
| | | * University of Illinois, Urbana-Champaign. |
| | | */ |
| | | |
| | | /* |
| | | * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. |
| | | */ |
| | | |
| | | |
| | | #include <sys/types.h> |
| | | #include <strings.h> |
| | | |
| | | #include "httpd.h" |
| | | #include "http_config.h" |
| | | #include "http_core.h" |
| | | #include "http_log.h" |
| | | #include "http_protocol.h" |
| | | #include "http_request.h" |
| | | #include "ap_config.h" |
| | | #include "apr_base64.h" |
| | | #include "apr_lib.h" |
| | | #include "apr_time.h" |
| | | #include "apr_errno.h" |
| | | #include "apr_global_mutex.h" |
| | | #include "apr_strings.h" |
| | | #include "ap_compat.h" |
| | | |
| | | #include <gssapi/gssapi.h> |
| | | #include <gssapi/gssapi_ext.h> |
| | | |
| | | module auth_gss_module; |
| | | |
| | | static void *gss_create_dir_config(apr_pool_t *, char *); |
| | | |
| | | int gss_authenticate(request_rec *); |
| | | |
| | | typedef struct { |
| | | char *gss_service_name; |
| | | char *keytab_file; |
| | | int gss_debug; |
| | | } gss_auth_config; |
| | | |
| | | static const char *set_service_name(cmd_parms *cmd, void *config, |
| | | const char *name) |
| | | { |
| | | ((gss_auth_config *) config)->gss_service_name = (char *)name; |
| | | return NULL; |
| | | } |
| | | |
| | | static const char *set_keytab_file(cmd_parms *cmd, void *config, |
| | | const char *file) |
| | | { |
| | | ((gss_auth_config *) config)->keytab_file = (char *)file; |
| | | return NULL; |
| | | } |
| | | |
| | | static const char *set_gss_debug(cmd_parms *cmd, void *config, |
| | | const char *debugflag) |
| | | { |
| | | ((gss_auth_config *) config)->gss_debug = atoi(debugflag); |
| | | return NULL; |
| | | } |
| | | |
| | | static const command_rec gss_auth_cmds[] = { |
| | | AP_INIT_TAKE1("AuthGSSServiceName", set_service_name, NULL, |
| | | OR_AUTHCFG, "Service name used for authentication."), |
| | | |
| | | AP_INIT_TAKE1("AuthGSSKeytabFile", set_keytab_file, NULL, |
| | | OR_AUTHCFG, |
| | | "Location of Kerberos V5 keytab file."), |
| | | |
| | | AP_INIT_TAKE1("AuthGssDebug", set_gss_debug, NULL, |
| | | OR_AUTHCFG, |
| | | "Enable debug logging in error_log"), |
| | | { NULL } |
| | | }; |
| | | |
| | | static void |
| | | gss_register_hooks(apr_pool_t *p) |
| | | { |
| | | ap_hook_check_user_id(gss_authenticate,NULL,NULL,APR_HOOK_MIDDLE); |
| | | } |
| | | |
| | | module AP_MODULE_DECLARE_DATA auth_gss_module = { |
| | | STANDARD20_MODULE_STUFF, |
| | | gss_create_dir_config, /* dir config creater */ |
| | | NULL, /* dir merger --- default is to override */ |
| | | NULL, /* server config */ |
| | | NULL, /* merge server config */ |
| | | gss_auth_cmds, /* command apr_table_t */ |
| | | gss_register_hooks /* register hooks */ |
| | | }; |
| | | |
| | | typedef struct { |
| | | gss_ctx_id_t context; |
| | | gss_cred_id_t server_creds; |
| | | } gss_connection_t; |
| | | |
| | | static gss_connection_t *gss_connection = NULL; |
| | | |
| | | static void * |
| | | gss_create_dir_config(apr_pool_t *p, char *d) |
| | | { |
| | | gss_auth_config *rec = |
| | | (gss_auth_config *) apr_pcalloc(p, sizeof(gss_auth_config)); |
| | | |
| | | ((gss_auth_config *)rec)->gss_service_name = "HTTP"; |
| | | ((gss_auth_config *)rec)->keytab_file = "/var/apache2/http.keytab"; |
| | | ((gss_auth_config *)rec)->gss_debug = 0; |
| | | |
| | | return rec; |
| | | } |
| | | |
| | | void log_rerror(const char *file, int line, int level, int status, |
| | | const request_rec *r, const char *fmt, ...) |
| | | { |
| | | char errstr[1024]; |
| | | va_list ap; |
| | | |
| | | va_start(ap, fmt); |
| | | vsnprintf(errstr, sizeof(errstr), fmt, ap); |
| | | va_end(ap); |
| | | |
| | | ap_log_rerror(file, line, level | APLOG_NOERRNO, NULL, r, "%s", errstr); |
| | | } |
| | | |
| | | /********************************************************************* |
| | | * GSSAPI Authentication |
| | | ********************************************************************/ |
| | | static const char * |
| | | gss_error_msg(apr_pool_t *p, OM_uint32 maj, OM_uint32 min, char *prefix) |
| | | { |
| | | OM_uint32 maj_stat, min_stat; |
| | | OM_uint32 msg_ctx = 0; |
| | | gss_buffer_desc msg; |
| | | |
| | | char *err_msg = (char *)apr_pstrdup(p, prefix); |
| | | |
| | | do { |
| | | maj_stat = gss_display_status (&min_stat, |
| | | maj, GSS_C_GSS_CODE, |
| | | GSS_C_NO_OID, &msg_ctx, |
| | | &msg); |
| | | if (GSS_ERROR(maj_stat)) |
| | | break; |
| | | |
| | | err_msg = apr_pstrcat(p, err_msg, ": ", (char*) msg.value, |
| | | NULL); |
| | | (void) gss_release_buffer(&min_stat, &msg); |
| | | |
| | | maj_stat = gss_display_status (&min_stat, |
| | | min, GSS_C_MECH_CODE, |
| | | GSS_C_NULL_OID, &msg_ctx, |
| | | &msg); |
| | | if (!GSS_ERROR(maj_stat)) { |
| | | err_msg = apr_pstrcat(p, err_msg, |
| | | " (", (char*) msg.value, ")", NULL); |
| | | (void) gss_release_buffer(&min_stat, &msg); |
| | | } |
| | | } while (!GSS_ERROR(maj_stat) && msg_ctx != 0); |
| | | |
| | | return (err_msg); |
| | | } |
| | | |
| | | static int |
| | | cleanup_gss_connection(void *data) |
| | | { |
| | | OM_uint32 ret; |
| | | OM_uint32 minor_status; |
| | | gss_connection_t *gss_conn = (gss_connection_t *)data; |
| | | |
| | | if (data == NULL) |
| | | return 0; |
| | | |
| | | if (gss_conn->context != GSS_C_NO_CONTEXT) { |
| | | (void) gss_delete_sec_context(&minor_status, |
| | | &gss_conn->context, |
| | | GSS_C_NO_BUFFER); |
| | | } |
| | | |
| | | if (gss_conn->server_creds != GSS_C_NO_CREDENTIAL) { |
| | | (void) gss_release_cred(&minor_status, &gss_conn->server_creds); |
| | | } |
| | | |
| | | gss_connection = NULL; |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | static int |
| | | acquire_server_creds(request_rec *r, |
| | | gss_auth_config *conf, |
| | | gss_OID_set mechset, |
| | | gss_cred_id_t *server_creds) |
| | | { |
| | | int ret = 0; |
| | | gss_buffer_desc input_token = GSS_C_EMPTY_BUFFER; |
| | | OM_uint32 major_status, minor_status, minor_status2; |
| | | gss_name_t server_name = GSS_C_NO_NAME; |
| | | char buf[1024]; |
| | | |
| | | snprintf(buf, sizeof(buf), "%s@%s", |
| | | conf->gss_service_name, r->hostname); |
| | | |
| | | if (conf->gss_debug) |
| | | log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, |
| | | "acquire_server_creds for %s", buf); |
| | | |
| | | input_token.value = buf; |
| | | input_token.length = strlen(buf) + 1; |
| | | |
| | | major_status = gss_import_name(&minor_status, &input_token, |
| | | GSS_C_NT_HOSTBASED_SERVICE, |
| | | &server_name); |
| | | |
| | | if (GSS_ERROR(major_status)) { |
| | | log_rerror(APLOG_MARK, APLOG_ERR, 0, r, |
| | | "%s", gss_error_msg(r->pool, major_status, minor_status, |
| | | "gss_import_name() failed")); |
| | | return (HTTP_INTERNAL_SERVER_ERROR); |
| | | } |
| | | |
| | | major_status = gss_acquire_cred(&minor_status, server_name, |
| | | GSS_C_INDEFINITE, |
| | | mechset, GSS_C_ACCEPT, |
| | | server_creds, NULL, NULL); |
| | | |
| | | if (GSS_ERROR(major_status)) { |
| | | log_rerror(APLOG_MARK, APLOG_ERR, 0, r, |
| | | "%s", gss_error_msg(r->pool, major_status, minor_status, |
| | | "gss_acquire_cred() failed")); |
| | | ret = HTTP_INTERNAL_SERVER_ERROR; |
| | | } |
| | | (void) gss_release_name(&minor_status2, &server_name); |
| | | |
| | | return (ret); |
| | | } |
| | | |
| | | static int |
| | | authenticate_user_gss(request_rec *r, gss_auth_config *conf, |
| | | const char *auth_line, char **negotiate_ret_value) |
| | | { |
| | | int ret = 0; |
| | | OM_uint32 major_status, minor_status, minor_status2; |
| | | gss_buffer_desc input_token = GSS_C_EMPTY_BUFFER; |
| | | gss_buffer_desc output_token = GSS_C_EMPTY_BUFFER; |
| | | const char *auth_param = NULL; |
| | | gss_name_t client_name = GSS_C_NO_NAME; |
| | | gss_cred_id_t delegated_cred = GSS_C_NO_CREDENTIAL; |
| | | |
| | | if (conf->gss_debug) |
| | | log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, |
| | | "authenticate_user_gss called"); |
| | | |
| | | *negotiate_ret_value = (char *)""; |
| | | |
| | | if (gss_connection == NULL) { |
| | | gss_connection = apr_pcalloc(r->connection->pool, sizeof(*gss_connection)); |
| | | if (gss_connection == NULL) { |
| | | log_rerror(APLOG_MARK, APLOG_ERR, 0, r, |
| | | "apr_pcalloc() failed (not enough memory)"); |
| | | ret = HTTP_INTERNAL_SERVER_ERROR; |
| | | goto end; |
| | | } |
| | | (void) memset(gss_connection, 0, sizeof(*gss_connection)); |
| | | apr_pool_cleanup_register(r->connection->pool, gss_connection, |
| | | cleanup_gss_connection, apr_pool_cleanup_null); |
| | | } |
| | | |
| | | if (conf->keytab_file) { |
| | | char *ktname; |
| | | /* |
| | | * We don't use the ap_* calls here, since the string |
| | | * passed to putenv() will become part of the enviroment |
| | | * and shouldn't be free()ed by apache. |
| | | */ |
| | | ktname = malloc(strlen("KRB5_KTNAME=") + strlen(conf->keytab_file) + 1); |
| | | if (ktname == NULL) { |
| | | log_rerror(APLOG_MARK, APLOG_ERR, 0, r, |
| | | "malloc() failed: not enough memory"); |
| | | ret = HTTP_INTERNAL_SERVER_ERROR; |
| | | goto end; |
| | | } |
| | | /* |
| | | * Put the keytab name in the environment so that Kerberos |
| | | * knows where to look later. |
| | | */ |
| | | sprintf(ktname, "KRB5_KTNAME=%s", conf->keytab_file); |
| | | putenv(ktname); |
| | | if (conf->gss_debug) |
| | | log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, "Using keytab: %s", ktname); |
| | | } |
| | | |
| | | /* ap_getword() shifts parameter */ |
| | | auth_param = ap_getword_white(r->pool, &auth_line); |
| | | if (auth_param == NULL) { |
| | | log_rerror(APLOG_MARK, APLOG_ERR, 0, r, |
| | | "No Authorization parameter in request from client"); |
| | | ret = HTTP_UNAUTHORIZED; |
| | | goto end; |
| | | } |
| | | |
| | | input_token.length = apr_base64_decode_len(auth_param) + 1; |
| | | input_token.value = apr_pcalloc(r->connection->pool, input_token.length); |
| | | |
| | | if (input_token.value == NULL) { |
| | | log_rerror(APLOG_MARK, APLOG_ERR, 0, r, |
| | | "apr_pcalloc() failed (not enough memory)"); |
| | | ret = HTTP_INTERNAL_SERVER_ERROR; |
| | | goto end; |
| | | } |
| | | input_token.length = apr_base64_decode(input_token.value, auth_param); |
| | | |
| | | if (gss_connection->server_creds == GSS_C_NO_CREDENTIAL) { |
| | | gss_OID_set_desc desiredMechs; |
| | | gss_OID_desc client_mech_desc; |
| | | gss_OID client_mechoid = &client_mech_desc; |
| | | char *mechstr = NULL; |
| | | |
| | | if (!__gss_get_mech_type(client_mechoid, &input_token)) { |
| | | mechstr = (char *)__gss_oid_to_mech(client_mechoid); |
| | | } |
| | | if (mechstr == NULL) { |
| | | client_mechoid = GSS_C_NULL_OID; |
| | | mechstr = "<unknown>"; |
| | | } |
| | | |
| | | if (conf->gss_debug) |
| | | log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, |
| | | "Client wants GSS mech: %s", mechstr); |
| | | |
| | | desiredMechs.count = 1; |
| | | desiredMechs.elements = client_mechoid; |
| | | |
| | | /* Get creds using the mechanism that the client requested */ |
| | | ret = acquire_server_creds(r, conf, &desiredMechs, |
| | | &gss_connection->server_creds); |
| | | if (ret) |
| | | goto end; |
| | | } |
| | | /* |
| | | * Try to display the server creds information. |
| | | */ |
| | | if (conf->gss_debug) { |
| | | gss_name_t sname; |
| | | gss_buffer_desc dname; |
| | | |
| | | major_status = gss_inquire_cred(&minor_status, |
| | | gss_connection->server_creds, |
| | | &sname, NULL, NULL, NULL); |
| | | if (major_status == GSS_S_COMPLETE) { |
| | | major_status = gss_display_name(&minor_status, |
| | | sname, &dname, NULL); |
| | | } |
| | | if (major_status == GSS_S_COMPLETE) { |
| | | log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, |
| | | "got server creds for: %.*s", |
| | | (int)dname.length, |
| | | (char *)dname.value); |
| | | (void) gss_release_name(&minor_status, &sname); |
| | | (void) gss_release_buffer(&minor_status, &dname); |
| | | } |
| | | } |
| | | |
| | | major_status = gss_accept_sec_context(&minor_status, |
| | | &gss_connection->context, |
| | | gss_connection->server_creds, |
| | | &input_token, |
| | | GSS_C_NO_CHANNEL_BINDINGS, |
| | | &client_name, |
| | | NULL, |
| | | &output_token, |
| | | NULL, |
| | | NULL, |
| | | &delegated_cred); |
| | | |
| | | if (output_token.length) { |
| | | char *token = NULL; |
| | | size_t len; |
| | | len = apr_base64_encode_len(output_token.length) + 1; |
| | | token = apr_pcalloc(r->connection->pool, len + 1); |
| | | if (token == NULL) { |
| | | log_rerror(APLOG_MARK, APLOG_ERR, 0, r, |
| | | "apr_pcalloc() failed (not enough memory)"); |
| | | ret = HTTP_INTERNAL_SERVER_ERROR; |
| | | gss_release_buffer(&minor_status2, &output_token); |
| | | goto end; |
| | | } |
| | | apr_base64_encode(token, output_token.value, output_token.length); |
| | | token[len] = '\0'; |
| | | *negotiate_ret_value = token; |
| | | } |
| | | |
| | | if (GSS_ERROR(major_status)) { |
| | | log_rerror(APLOG_MARK, APLOG_ERR, 0, r, |
| | | "%s", gss_error_msg(r->pool, major_status, minor_status, |
| | | "gss_accept_sec_context() failed")); |
| | | /* Don't offer the Negotiate method again if call to GSS layer failed */ |
| | | *negotiate_ret_value = NULL; |
| | | ret = HTTP_UNAUTHORIZED; |
| | | goto end; |
| | | } |
| | | |
| | | if (major_status == GSS_S_CONTINUE_NEEDED) { |
| | | /* |
| | | * Some GSSAPI mechanisms may require multiple iterations to |
| | | * establish authentication. Most notably, when MUTUAL_AUTHENTICATION |
| | | * flag is used, multiple round trips are needed. |
| | | */ |
| | | ret = HTTP_UNAUTHORIZED; |
| | | goto end; |
| | | } |
| | | |
| | | if (client_name != GSS_C_NO_NAME) { |
| | | gss_buffer_desc name_token = GSS_C_EMPTY_BUFFER; |
| | | major_status = gss_display_name(&minor_status, client_name, |
| | | &name_token, NULL); |
| | | |
| | | if (GSS_ERROR(major_status)) { |
| | | log_rerror(APLOG_MARK, APLOG_ERR, 0, r, |
| | | "%s", gss_error_msg(r->pool, major_status, |
| | | minor_status, |
| | | "gss_export_name() failed")); |
| | | ret = HTTP_INTERNAL_SERVER_ERROR; |
| | | goto end; |
| | | } |
| | | if (name_token.length) { |
| | | r->user = apr_pstrdup(r->pool, name_token.value); |
| | | gss_release_buffer(&minor_status, &name_token); |
| | | } |
| | | |
| | | if (conf->gss_debug) |
| | | log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, |
| | | "Authenticated user: %s", |
| | | r->user ? r->user : "<unknown>"); |
| | | } |
| | | r->ap_auth_type = "Negotiate"; |
| | | ret = OK; |
| | | end: |
| | | if (delegated_cred) |
| | | gss_release_cred(&minor_status, &delegated_cred); |
| | | |
| | | if (output_token.length) |
| | | gss_release_buffer(&minor_status, &output_token); |
| | | |
| | | if (client_name != GSS_C_NO_NAME) |
| | | gss_release_name(&minor_status, &client_name); |
| | | |
| | | cleanup_gss_connection(gss_connection); |
| | | |
| | | return ret; |
| | | } |
| | | |
| | | static int |
| | | already_succeeded(request_rec *r) |
| | | { |
| | | if (ap_is_initial_req(r) || r->ap_auth_type == NULL) |
| | | return 0; |
| | | |
| | | return (strcmp(r->ap_auth_type, "Negotiate") || |
| | | (strcmp(r->ap_auth_type, "Basic") && strchr(r->user, '@'))); |
| | | } |
| | | |
| | | static void |
| | | note_gss_auth_failure(request_rec *r, const gss_auth_config *conf, |
| | | char *negotiate_ret_value) |
| | | { |
| | | const char *auth_name = NULL; |
| | | int set_basic = 0; |
| | | char *negoauth_param; |
| | | |
| | | /* get the user realm specified in .htaccess */ |
| | | auth_name = ap_auth_name(r); |
| | | |
| | | if (conf->gss_debug) |
| | | log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, |
| | | "note_gss_auth_failure: auth_name = %s", |
| | | auth_name ? auth_name : "<undefined>"); |
| | | |
| | | if (negotiate_ret_value != NULL) { |
| | | negoauth_param = (*negotiate_ret_value == '\0') ? "Negotiate" : |
| | | apr_pstrcat(r->pool, "Negotiate ", negotiate_ret_value, NULL); |
| | | apr_table_add(r->err_headers_out, "WWW-Authenticate", negoauth_param); |
| | | } |
| | | } |
| | | |
| | | int |
| | | gss_authenticate(request_rec *r) |
| | | { |
| | | int ret; |
| | | gss_auth_config *conf = |
| | | (gss_auth_config *) ap_get_module_config(r->per_dir_config, |
| | | &auth_gss_module); |
| | | const char *auth_type = NULL; |
| | | const char *auth_line = NULL; |
| | | const char *type = NULL; |
| | | char *negotiate_ret_value; |
| | | static int last_return = HTTP_UNAUTHORIZED; |
| | | |
| | | /* get the type specified in .htaccess */ |
| | | type = ap_auth_type(r); |
| | | |
| | | if (conf->gss_debug) |
| | | log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, |
| | | "gss_authenticate: type = %s", type); |
| | | |
| | | if (type == NULL || (strcasecmp(type, "GSSAPI") != 0)) { |
| | | return DECLINED; |
| | | } |
| | | |
| | | /* get what the user sent us in the HTTP header */ |
| | | auth_line = apr_table_get(r->headers_in, "Authorization"); |
| | | |
| | | if (!auth_line) { |
| | | if (conf->gss_debug) |
| | | log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, |
| | | "No authentication data found"); |
| | | note_gss_auth_failure(r, conf, "\0"); |
| | | return HTTP_UNAUTHORIZED; |
| | | } |
| | | auth_type = ap_getword_white(r->pool, &auth_line); |
| | | |
| | | if (already_succeeded(r)) |
| | | return last_return; |
| | | |
| | | if (strcasecmp(auth_type, "Negotiate") == 0) { |
| | | ret = authenticate_user_gss(r, conf, auth_line, &negotiate_ret_value); |
| | | } else { |
| | | ret = HTTP_UNAUTHORIZED; |
| | | } |
| | | |
| | | if (ret == HTTP_UNAUTHORIZED) { |
| | | if (conf->gss_debug) |
| | | log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, |
| | | "Authentication failed."); |
| | | note_gss_auth_failure(r, conf, negotiate_ret_value); |
| | | } |
| | | |
| | | last_return = ret; |
| | | return ret; |
| | | } |
New file |
| | |
| | | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| | | "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| | | |
| | | <html xmlns="http://www.w3.org/1999/xhtml"> |
| | | <head> |
| | | <meta name="generator" content="HTML Tidy, see www.w3.org" /> |
| | | |
| | | <title>Apache module mod_auth_gss</title> |
| | | </head> |
| | | <!-- Background white, links blue (unvisited), navy (visited), red (active) --> |
| | | |
| | | <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" |
| | | vlink="#000080" alink="#FF0000"> |
| | | <div align="CENTER"> |
| | | <img src="../images/sub.gif" alt="[APACHE DOCUMENTATION]" /> |
| | | |
| | | <h3>Apache HTTP Server Version 1.3</h3> |
| | | </div> |
| | | |
| | | <h1 align="CENTER">Module mod_auth_gss</h1> |
| | | <p>This module provides for user authentication using GSSAPI Authentication.</p> |
| | | |
| | | <p><a href="module-dict.html#Status" |
| | | rel="Help"><strong>Status:</strong></a> Extension<br /> |
| | | <a href="module-dict.html#SourceFile" |
| | | rel="Help"><strong>Source File:</strong></a> mod_auth_gss.c<br /> |
| | | <a href="module-dict.html#ModuleIdentifier" |
| | | rel="Help"><strong>Module Identifier:</strong></a> |
| | | auth_gss_module<br /> |
| | | |
| | | <h2>Summary</h2> |
| | | |
| | | <p>This module implements GSSAPI authentication using the |
| | | "WWW-Authenticate: Negotiate" protocol. This typically |
| | | requires the client and the server systems to have support for |
| | | GSSAPI and a properly configured security mechanism (usually |
| | | Kerberos V5) to be used by GSSAPI. |
| | | |
| | | <h2>Directives</h2> |
| | | |
| | | <ul> |
| | | <li><a href="#authgssservicename">AuthGSSServiceName</a></li> |
| | | <li><a href="#authgsskeytabfile">AuthGSSKeytabFile</a></li> |
| | | <li><a href="#aughgssdebug">AuthGSSDebug</a></li> |
| | | </ul> |
| | | |
| | | <h2>Using GSSAPI Authentication</h2> |
| | | |
| | | <p>Before using GSSAPI authentication with Apache, the |
| | | system must already have been configured to use Kerberos V5 |
| | | authentication. All of the major Kerberos V5 |
| | | implementation (MIT KRB5, Heimdal, Sun, IBM, HP, Microsoft) |
| | | currently support Kerberos V5 GSSAPI mechanisms. |
| | | Configuring Kerberos is beyond the scope of this document. |
| | | Adding GSSAPI authentication support to the web extends |
| | | Single sign on capabilities to the intranet and reduces |
| | | the risks involved in having users constantly entering |
| | | username/password combinations when accessing websites. |
| | | <p> |
| | | <h3>Configure a Service Principal</h3> |
| | | <p>The default service principal that mod_auth_gss will |
| | | try to use is "HTTP/f.q.d.n". The key for this principal |
| | | must be stored in a keytab file that is readable by the |
| | | Apache server, but it should be protected from access |
| | | by anyone else, and should <b>definitely not</b> be |
| | | stored in an area that can be browsed by clients. |
| | | <p> |
| | | Example: the Apache server is on host "www.foo.com". |
| | | Create a principal called "HTTP/www.foo.com". |
| | | Store the key for this principal in a protected keytab |
| | | file. Using MIT Kerberos V5: |
| | | <br> |
| | | <pre> |
| | | $ kadmin |
| | | $ kadmin> ktadd -k /var/apache/http.keytab HTTP/www.foo.com |
| | | $ kadmin> quit |
| | | </pre> |
| | | |
| | | <p>Once the keys are created and stored, using GSSAPI |
| | | authentication is very simple. Set up the authentication |
| | | type for the directories being protected to be "GSSAPI". |
| | | If the keytab or service name chosen is not the defaults |
| | | ("HTTP" and "/var/apache/http.keytab", respectively), then |
| | | you may use the above mentioned directives to override |
| | | the default values. Example: |
| | | <br> |
| | | <pre> |
| | | <Directory /var/apache/htdocs/krb5> |
| | | AuthType GSSAPI |
| | | ServiceName HTTP |
| | | KeytabFile /var/apache/http.keytab |
| | | GssDebug 0 |
| | | Require valid-user |
| | | AllowOverride All |
| | | </Directory> |
| | | </pre> |
| | | |
| | | <p>GSSAPI authentication provides a more secure authentication |
| | | system, but only works with supporting browsers. As of this writing |
| | | (April 2004), the only major browsers which support digest |
| | | authentication are <a href="http://www.mozilla.org">Mozilla 1.7 |
| | | (and later)</a>, and <a href="http://www.microsoft.com/windows/ie/">MS Internet |
| | | Explorer 5.0</a>. |
| | | |
| | | <p>It is recommended that this authentication method be combined |
| | | with TLS security (mod_ssl, for example) to further secure the |
| | | authentication data being exchanged. |
| | | |
| | | <h2><a id="authgssservicename" |
| | | name="authgssservicename">AuthGSSServiceName</a> directive</h2> |
| | | <a href="directive-dict.html#Syntax" |
| | | rel="Help"><strong>Syntax:</strong></a> AuthGSSServiceName |
| | | <em>name</em><br /> |
| | | <a href="directive-dict.html#Context" |
| | | rel="Help"><strong>Context:</strong></a> directory, |
| | | .htaccess<br /> |
| | | <a href="directive-dict.html#Override" |
| | | rel="Help"><strong>Override:</strong></a> FileInfo, Indexes, Limit, Options<br /> |
| | | <a href="directive-dict.html#Status" |
| | | rel="Help"><strong>Status:</strong></a> Extension<br /> |
| | | <a href="directive-dict.html#Module" |
| | | rel="Help"><strong>Module:</strong></a> mod_auth_gss |
| | | |
| | | <p>The AuthGSSServiceName directive sets the name of Kerberos service |
| | | principal that the server uses to authenticate the client requests. |
| | | The name given is appended with the fully qualified host name to |
| | | make the complete service principal name. Ex: <b>HTTP/www.fooc.om</b> |
| | | </p> |
| | | |
| | | <h2><a id="authgsskeytabfile" |
| | | name="authgsskeytabfile">AuthGSSKeytabFile</a> directive</h2> |
| | | <a href="directive-dict.html#Syntax" |
| | | rel="Help"><strong>Syntax:</strong></a> AuthGSSKeytabFile |
| | | <em>filename</em><br /> |
| | | <a href="directive-dict.html#Context" |
| | | rel="Help"><strong>Context:</strong></a> directory, |
| | | .htaccess<br /> |
| | | <a href="directive-dict.html#Override" |
| | | rel="Help"><strong>Override:</strong></a> FileInfo, Indexes, Limit, Options<br /> |
| | | <a href="directive-dict.html#Status" |
| | | rel="Help"><strong>Status:</strong></a> Extension<br /> |
| | | <a href="directive-dict.html#Module" |
| | | rel="Help"><strong>Module:</strong></a> mod_auth_gss |
| | | |
| | | <p>The AuthGSSKeytabFile directive sets the filename of the |
| | | file where the Apache server's Kerberos credentials are stored. |
| | | |
| | | <h2><a id="authgssdebug" |
| | | name="authgsskeytabfile">AuthGSSDebug</a> directive</h2> |
| | | <a href="directive-dict.html#Syntax" |
| | | rel="Help"><strong>Syntax:</strong></a> AuthGSSDebug |
| | | <em>0 | 1</em><br /> |
| | | <a href="directive-dict.html#Context" |
| | | rel="Help"><strong>Context:</strong></a> directory, |
| | | .htaccess<br /> |
| | | <a href="directive-dict.html#Override" |
| | | rel="Help"><strong>Override:</strong></a> FileInfo, Indexes, Limit, Options<br /> |
| | | <a href="directive-dict.html#Status" |
| | | rel="Help"><strong>Status:</strong></a> Extension<br /> |
| | | <a href="directive-dict.html#Module" |
| | | rel="Help"><strong>Module:</strong></a> mod_auth_gss |
| | | |
| | | <p>The AuthGSSDebug directive toggles the debug logging |
| | | facility used by the GSSAPI authentication module. 0 disables |
| | | debug logging, 1 enables it. |
| | | |
| | | <hr /> |
| | | <h3 align="CENTER">Apache HTTP Server Version 1.3</h3> |
| | | <a href="./"><img src="../images/index.gif" alt="Index" /></a> |
| | | <a href="../"><img src="../images/home.gif" alt="Home" /></a> |
| | | |
| | | </body> |
| | | </html> |
| | | |
New file |
| | |
| | | /* |
| | | * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved. |
| | | * Use is subject to license terms. |
| | | * |
| | | * Copyright (c) 1984 AT&T |
| | | * All Rights Reserved |
| | | * |
| | | * Licensed 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 LIBSED_H |
| | | #define LIBSED_H |
| | | |
| | | #ifdef __cplusplus |
| | | extern "C" { |
| | | #endif |
| | | |
| | | #include <limits.h> |
| | | |
| | | #include "apr_file_io.h" |
| | | #ifndef PATH_MAX |
| | | #define PATH_MAX MAX_PATH |
| | | #endif |
| | | |
| | | #define SED_NLINES 256 |
| | | #define SED_DEPTH 20 |
| | | #define SED_LABSIZE 50 |
| | | #define SED_ABUFSIZE 20 |
| | | |
| | | typedef struct sed_reptr_s sed_reptr_t; |
| | | |
| | | struct sed_reptr_s { |
| | | sed_reptr_t *next; |
| | | char *ad1; |
| | | char *ad2; |
| | | char *re1; |
| | | sed_reptr_t *lb1; |
| | | char *rhs; |
| | | int findex; |
| | | char command; |
| | | int gfl; |
| | | char pfl; |
| | | char negfl; |
| | | int nrep; |
| | | }; |
| | | |
| | | typedef struct sed_label_s sed_label_t; |
| | | |
| | | struct sed_label_s { |
| | | char asc[9]; |
| | | sed_reptr_t *chain; |
| | | sed_reptr_t *address; |
| | | }; |
| | | |
| | | typedef apr_status_t (sed_err_fn_t)(void *data, const char *error); |
| | | typedef apr_status_t (sed_write_fn_t)(void *ctx, char *buf, int sz); |
| | | |
| | | typedef struct sed_commands_s sed_commands_t; |
| | | #define NWFILES 11 /* 10 plus one for standard output */ |
| | | |
| | | struct sed_commands_s { |
| | | sed_err_fn_t *errfn; |
| | | void *data; |
| | | |
| | | unsigned lsize; |
| | | char *linebuf; |
| | | char *lbend; |
| | | const char *saveq; |
| | | |
| | | char *cp; |
| | | char *lastre; |
| | | char *respace; |
| | | char sseof; |
| | | char *reend; |
| | | const char *earg; |
| | | int eflag; |
| | | int gflag; |
| | | int nflag; |
| | | apr_int64_t tlno[SED_NLINES]; |
| | | int nlno; |
| | | int depth; |
| | | |
| | | char *fname[NWFILES]; |
| | | int nfiles; |
| | | |
| | | sed_label_t ltab[SED_LABSIZE]; |
| | | sed_label_t *labtab; |
| | | sed_label_t *lab; |
| | | sed_label_t *labend; |
| | | |
| | | sed_reptr_t **cmpend[SED_DEPTH]; |
| | | sed_reptr_t *ptrspace; |
| | | sed_reptr_t *ptrend; |
| | | sed_reptr_t *rep; |
| | | int nrep; |
| | | apr_pool_t *pool; |
| | | int canbefinal; |
| | | }; |
| | | |
| | | typedef struct sed_eval_s sed_eval_t; |
| | | |
| | | struct sed_eval_s { |
| | | sed_err_fn_t *errfn; |
| | | sed_write_fn_t *writefn; |
| | | void *data; |
| | | |
| | | sed_commands_t *commands; |
| | | |
| | | apr_int64_t lnum; |
| | | void *fout; |
| | | |
| | | unsigned lsize; |
| | | char *linebuf; |
| | | char *lspend; |
| | | |
| | | unsigned hsize; |
| | | char *holdbuf; |
| | | char *hspend; |
| | | |
| | | unsigned gsize; |
| | | char *genbuf; |
| | | char *lcomend; |
| | | |
| | | apr_file_t *fcode[NWFILES]; |
| | | sed_reptr_t *abuf[SED_ABUFSIZE]; |
| | | sed_reptr_t **aptr; |
| | | sed_reptr_t *pending; |
| | | unsigned char *inar; |
| | | int nrep; |
| | | |
| | | int dolflag; |
| | | int sflag; |
| | | int jflag; |
| | | int delflag; |
| | | int lreadyflag; |
| | | int quitflag; |
| | | int finalflag; |
| | | int numpass; |
| | | int nullmatch; |
| | | int col; |
| | | apr_pool_t *pool; |
| | | }; |
| | | |
| | | apr_status_t sed_init_commands(sed_commands_t *commands, sed_err_fn_t *errfn, void *data, |
| | | apr_pool_t *p); |
| | | apr_status_t sed_compile_string(sed_commands_t *commands, const char *s); |
| | | apr_status_t sed_compile_file(sed_commands_t *commands, apr_file_t *fin); |
| | | char* sed_get_finalize_error(const sed_commands_t *commands, apr_pool_t* pool); |
| | | int sed_canbe_finalized(const sed_commands_t *commands); |
| | | void sed_destroy_commands(sed_commands_t *commands); |
| | | |
| | | apr_status_t sed_init_eval(sed_eval_t *eval, sed_commands_t *commands, |
| | | sed_err_fn_t *errfn, void *data, |
| | | sed_write_fn_t *writefn, apr_pool_t *p); |
| | | apr_status_t sed_reset_eval(sed_eval_t *eval, sed_commands_t *commands, sed_err_fn_t *errfn, void *data); |
| | | apr_status_t sed_eval_buffer(sed_eval_t *eval, const char *buf, int bufsz, void *fout); |
| | | apr_status_t sed_eval_file(sed_eval_t *eval, apr_file_t *fin, void *fout); |
| | | apr_status_t sed_finalize_eval(sed_eval_t *eval, void *f); |
| | | void sed_destroy_eval(sed_eval_t *eval); |
| | | |
| | | #ifdef __cplusplus |
| | | } |
| | | #endif |
| | | |
| | | #endif /* LIBSED_H */ |
New file |
| | |
| | | /* |
| | | * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved. |
| | | * Use is subject to license terms. |
| | | * |
| | | * Licensed 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_config.h" |
| | | #include "http_log.h" |
| | | #include "apr_strings.h" |
| | | #include "apr_general.h" |
| | | #include "util_filter.h" |
| | | #include "apr_buckets.h" |
| | | #include "http_request.h" |
| | | #include "libsed.h" |
| | | |
| | | static const char *sed_filter_name = "Sed"; |
| | | #define MODSED_OUTBUF_SIZE 8000 |
| | | #define MAX_TRANSIENT_BUCKETS 50 |
| | | |
| | | typedef struct sed_expr_config |
| | | { |
| | | sed_commands_t *sed_cmds; |
| | | const char *last_error; |
| | | } sed_expr_config; |
| | | |
| | | typedef struct sed_config |
| | | { |
| | | sed_expr_config output; |
| | | sed_expr_config input; |
| | | } sed_config; |
| | | |
| | | /* Context for filter invocation for single HTTP request */ |
| | | typedef struct sed_filter_ctxt |
| | | { |
| | | sed_eval_t eval; |
| | | ap_filter_t *f; |
| | | request_rec *r; |
| | | apr_bucket_brigade *bb; |
| | | char *outbuf; |
| | | char *curoutbuf; |
| | | int bufsize; |
| | | apr_pool_t *tpool; |
| | | int numbuckets; |
| | | } sed_filter_ctxt; |
| | | |
| | | module AP_MODULE_DECLARE_DATA sed_module; |
| | | |
| | | /* This function will be call back from libsed functions if there is any error |
| | | * happend during execution of sed scripts |
| | | */ |
| | | static apr_status_t log_sed_errf(void *data, const char *error) |
| | | { |
| | | request_rec *r = (request_rec *) data; |
| | | ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, error); |
| | | return APR_SUCCESS; |
| | | } |
| | | |
| | | /* This function will be call back from libsed functions if there is any |
| | | * compilation error. |
| | | */ |
| | | static apr_status_t sed_compile_errf(void *data, const char *error) |
| | | { |
| | | sed_expr_config *sed_cfg = (sed_expr_config *) data; |
| | | sed_cfg->last_error = error; |
| | | return APR_SUCCESS; |
| | | } |
| | | |
| | | /* clear the temporary pool (used for transient buckets) |
| | | */ |
| | | static void clear_ctxpool(sed_filter_ctxt* ctx) |
| | | { |
| | | apr_pool_clear(ctx->tpool); |
| | | ctx->outbuf = NULL; |
| | | ctx->curoutbuf = NULL; |
| | | ctx->numbuckets = 0; |
| | | } |
| | | |
| | | /* alloc_outbuf |
| | | * allocate output buffer |
| | | */ |
| | | static void alloc_outbuf(sed_filter_ctxt* ctx) |
| | | { |
| | | ctx->outbuf = apr_palloc(ctx->tpool, ctx->bufsize + 1); |
| | | ctx->curoutbuf = ctx->outbuf; |
| | | } |
| | | |
| | | /* append_bucket |
| | | * Allocate a new bucket from buf and sz and append to ctx->bb |
| | | */ |
| | | static apr_status_t append_bucket(sed_filter_ctxt* ctx, char* buf, int sz) |
| | | { |
| | | apr_status_t status = APR_SUCCESS; |
| | | apr_bucket *b; |
| | | if (ctx->tpool == ctx->r->pool) { |
| | | /* We are not using transient bucket */ |
| | | b = apr_bucket_pool_create(buf, sz, ctx->r->pool, |
| | | ctx->r->connection->bucket_alloc); |
| | | APR_BRIGADE_INSERT_TAIL(ctx->bb, b); |
| | | } |
| | | else { |
| | | /* We are using transient bucket */ |
| | | b = apr_bucket_transient_create(buf, sz, |
| | | ctx->r->connection->bucket_alloc); |
| | | APR_BRIGADE_INSERT_TAIL(ctx->bb, b); |
| | | ctx->numbuckets++; |
| | | if (ctx->numbuckets >= MAX_TRANSIENT_BUCKETS) { |
| | | b = apr_bucket_flush_create(ctx->r->connection->bucket_alloc); |
| | | APR_BRIGADE_INSERT_TAIL(ctx->bb, b); |
| | | status = ap_pass_brigade(ctx->f->next, ctx->bb); |
| | | apr_brigade_cleanup(ctx->bb); |
| | | clear_ctxpool(ctx); |
| | | } |
| | | } |
| | | return status; |
| | | } |
| | | |
| | | /* |
| | | * flush_output_buffer |
| | | * Flush the output data (stored in ctx->outbuf) |
| | | */ |
| | | static apr_status_t flush_output_buffer(sed_filter_ctxt *ctx) |
| | | { |
| | | int size = ctx->curoutbuf - ctx->outbuf; |
| | | char *out; |
| | | apr_status_t status = APR_SUCCESS; |
| | | if ((ctx->outbuf == NULL) || (size <=0)) |
| | | return status; |
| | | out = apr_palloc(ctx->tpool, size); |
| | | memcpy(out, ctx->outbuf, size); |
| | | status = append_bucket(ctx, out, size); |
| | | ctx->curoutbuf = ctx->outbuf; |
| | | return status; |
| | | } |
| | | |
| | | /* This is a call back function. When libsed wants to generate the output, |
| | | * this function will be invoked. |
| | | */ |
| | | static apr_status_t sed_write_output(void *dummy, char *buf, int sz) |
| | | { |
| | | /* dummy is basically filter context. Context is passed during invocation |
| | | * of sed_eval_buffer |
| | | */ |
| | | int remainbytes = 0; |
| | | apr_status_t status = APR_SUCCESS; |
| | | sed_filter_ctxt *ctx = (sed_filter_ctxt *) dummy; |
| | | if (ctx->outbuf == NULL) { |
| | | alloc_outbuf(ctx); |
| | | } |
| | | remainbytes = ctx->bufsize - (ctx->curoutbuf - ctx->outbuf); |
| | | if (sz >= remainbytes) { |
| | | if (remainbytes > 0) { |
| | | memcpy(ctx->curoutbuf, buf, remainbytes); |
| | | buf += remainbytes; |
| | | sz -= remainbytes; |
| | | ctx->curoutbuf += remainbytes; |
| | | } |
| | | /* buffer is now full */ |
| | | status = append_bucket(ctx, ctx->outbuf, ctx->bufsize); |
| | | /* old buffer is now used so allocate new buffer */ |
| | | alloc_outbuf(ctx); |
| | | /* if size is bigger than the allocated buffer directly add to output |
| | | * brigade */ |
| | | if ((status == APR_SUCCESS) && (sz >= ctx->bufsize)) { |
| | | char* newbuf = apr_palloc(ctx->tpool, sz); |
| | | memcpy(newbuf, buf, sz); |
| | | status = append_bucket(ctx, newbuf, sz); |
| | | /* pool might get clear after append_bucket */ |
| | | if (ctx->outbuf == NULL) { |
| | | alloc_outbuf(ctx); |
| | | } |
| | | } |
| | | else { |
| | | memcpy(ctx->curoutbuf, buf, sz); |
| | | ctx->curoutbuf += sz; |
| | | } |
| | | } |
| | | else { |
| | | memcpy(ctx->curoutbuf, buf, sz); |
| | | ctx->curoutbuf += sz; |
| | | } |
| | | return status; |
| | | } |
| | | |
| | | /* Compile a sed expression. Compiled context is saved in sed_cfg->sed_cmds. |
| | | * Memory required for compilation context is allocated from cmd->pool. |
| | | */ |
| | | static apr_status_t compile_sed_expr(sed_expr_config *sed_cfg, |
| | | cmd_parms *cmd, |
| | | const char *expr) |
| | | { |
| | | apr_status_t status = APR_SUCCESS; |
| | | |
| | | if (!sed_cfg->sed_cmds) { |
| | | sed_commands_t *sed_cmds; |
| | | sed_cmds = apr_pcalloc(cmd->pool, sizeof(sed_commands_t)); |
| | | status = sed_init_commands(sed_cmds, sed_compile_errf, sed_cfg, |
| | | cmd->pool); |
| | | if (status != APR_SUCCESS) { |
| | | sed_destroy_commands(sed_cmds); |
| | | return status; |
| | | } |
| | | sed_cfg->sed_cmds = sed_cmds; |
| | | } |
| | | status = sed_compile_string(sed_cfg->sed_cmds, expr); |
| | | if (status != APR_SUCCESS) { |
| | | sed_destroy_commands(sed_cfg->sed_cmds); |
| | | sed_cfg->sed_cmds = NULL; |
| | | } |
| | | return status; |
| | | } |
| | | |
| | | /* sed eval cleanup function */ |
| | | static apr_status_t sed_eval_cleanup(void *data) |
| | | { |
| | | sed_eval_t *eval = (sed_eval_t *) data; |
| | | sed_destroy_eval(eval); |
| | | return APR_SUCCESS; |
| | | } |
| | | |
| | | /* Initialize sed filter context. If successful then context is set in f->ctx |
| | | */ |
| | | static apr_status_t init_context(ap_filter_t *f, sed_expr_config *sed_cfg, int usetpool) |
| | | { |
| | | apr_status_t status; |
| | | sed_filter_ctxt* ctx; |
| | | request_rec *r = f->r; |
| | | /* Create the context. Call sed_init_eval. libsed will generated |
| | | * output by calling sed_write_output and generates any error by |
| | | * invoking log_sed_errf. |
| | | */ |
| | | ctx = apr_pcalloc(r->pool, sizeof(sed_filter_ctxt)); |
| | | ctx->r = r; |
| | | ctx->bb = NULL; |
| | | ctx->numbuckets = 0; |
| | | ctx->f = f; |
| | | status = sed_init_eval(&ctx->eval, sed_cfg->sed_cmds, log_sed_errf, |
| | | r, &sed_write_output, r->pool); |
| | | if (status != APR_SUCCESS) { |
| | | return status; |
| | | } |
| | | apr_pool_cleanup_register(r->pool, &ctx->eval, sed_eval_cleanup, |
| | | apr_pool_cleanup_null); |
| | | ctx->bufsize = MODSED_OUTBUF_SIZE; |
| | | if (usetpool) { |
| | | apr_pool_create(&(ctx->tpool), r->pool); |
| | | } |
| | | else { |
| | | ctx->tpool = r->pool; |
| | | } |
| | | alloc_outbuf(ctx); |
| | | f->ctx = ctx; |
| | | return APR_SUCCESS; |
| | | } |
| | | |
| | | /* Entry function for Sed output filter */ |
| | | static apr_status_t sed_response_filter(ap_filter_t *f, |
| | | apr_bucket_brigade *bb) |
| | | { |
| | | apr_bucket *b; |
| | | apr_status_t status; |
| | | sed_config *cfg = ap_get_module_config(f->r->per_dir_config, |
| | | &sed_module); |
| | | sed_filter_ctxt *ctx = f->ctx; |
| | | sed_expr_config *sed_cfg = &cfg->output; |
| | | |
| | | if ((sed_cfg == NULL) || (sed_cfg->sed_cmds == NULL)) { |
| | | /* No sed expressions */ |
| | | ap_remove_output_filter(f); |
| | | return ap_pass_brigade(f->next, bb); |
| | | } |
| | | |
| | | if (ctx == NULL) { |
| | | |
| | | if (APR_BUCKET_IS_EOS(APR_BRIGADE_FIRST(bb))) { |
| | | /* no need to run sed filter for Head requests */ |
| | | ap_remove_output_filter(f); |
| | | return ap_pass_brigade(f->next, bb); |
| | | } |
| | | |
| | | status = init_context(f, sed_cfg, 1); |
| | | if (status != APR_SUCCESS) |
| | | return status; |
| | | ctx = f->ctx; |
| | | apr_table_unset(f->r->headers_out, "Content-Length"); |
| | | } |
| | | |
| | | ctx->bb = apr_brigade_create(f->r->pool, f->c->bucket_alloc); |
| | | |
| | | /* Here is the main logic. Iterate through all the buckets, read the |
| | | * content of the bucket, call sed_eval_buffer on the data. |
| | | * sed_eval_buffer will read the data line by line, run filters on each |
| | | * line. sed_eval_buffer will generates the output by calling |
| | | * sed_write_output which will add the output to ctx->bb. At the end of |
| | | * the loop, ctx->bb is passed to the next filter in chain. At the end of |
| | | * the data, if new line is not found then sed_eval_buffer will store the |
| | | * data in it's own buffer. |
| | | * |
| | | * Once eos bucket is found then sed_finalize_eval will flush the rest of |
| | | * the data. If there is no new line in last line of data, new line is |
| | | * appended (that is a solaris sed behavior). libsed's internal memory for |
| | | * evaluation is allocated on request's pool so it will be cleared once |
| | | * request is over. |
| | | * |
| | | * If flush bucket is found then append the the flush bucket to ctx->bb |
| | | * and pass it to next filter. There may be some data which will still be |
| | | * in sed's internal buffer which can't be flushed until new line |
| | | * character is arrived. |
| | | */ |
| | | for (b = APR_BRIGADE_FIRST(bb); b != APR_BRIGADE_SENTINEL(bb);) { |
| | | const char *buf = NULL; |
| | | apr_size_t bytes = 0; |
| | | if (APR_BUCKET_IS_EOS(b)) { |
| | | apr_bucket *b1 = APR_BUCKET_NEXT(b); |
| | | /* Now clean up the internal sed buffer */ |
| | | sed_finalize_eval(&ctx->eval, ctx); |
| | | status = flush_output_buffer(ctx); |
| | | if (status != APR_SUCCESS) { |
| | | clear_ctxpool(ctx); |
| | | return status; |
| | | } |
| | | APR_BUCKET_REMOVE(b); |
| | | /* Insert the eos bucket to ctx->bb brigade */ |
| | | APR_BRIGADE_INSERT_TAIL(ctx->bb, b); |
| | | b = b1; |
| | | } |
| | | else if (APR_BUCKET_IS_FLUSH(b)) { |
| | | apr_bucket *b1 = APR_BUCKET_NEXT(b); |
| | | APR_BUCKET_REMOVE(b); |
| | | status = flush_output_buffer(ctx); |
| | | if (status != APR_SUCCESS) { |
| | | clear_ctxpool(ctx); |
| | | return status; |
| | | } |
| | | APR_BRIGADE_INSERT_TAIL(ctx->bb, b); |
| | | b = b1; |
| | | } |
| | | else if (APR_BUCKET_IS_METADATA(b)) { |
| | | b = APR_BUCKET_NEXT(b); |
| | | } |
| | | else if (apr_bucket_read(b, &buf, &bytes, APR_BLOCK_READ) |
| | | == APR_SUCCESS) { |
| | | apr_bucket *b1 = APR_BUCKET_NEXT(b); |
| | | status = sed_eval_buffer(&ctx->eval, buf, bytes, ctx); |
| | | if (status != APR_SUCCESS) { |
| | | clear_ctxpool(ctx); |
| | | return status; |
| | | } |
| | | APR_BUCKET_REMOVE(b); |
| | | apr_bucket_delete(b); |
| | | b = b1; |
| | | } |
| | | else { |
| | | apr_bucket *b1 = APR_BUCKET_NEXT(b); |
| | | APR_BUCKET_REMOVE(b); |
| | | b = b1; |
| | | } |
| | | } |
| | | apr_brigade_cleanup(bb); |
| | | status = flush_output_buffer(ctx); |
| | | if (status != APR_SUCCESS) { |
| | | clear_ctxpool(ctx); |
| | | return status; |
| | | } |
| | | if (!APR_BRIGADE_EMPTY(ctx->bb)) { |
| | | status = ap_pass_brigade(f->next, ctx->bb); |
| | | apr_brigade_cleanup(ctx->bb); |
| | | } |
| | | clear_ctxpool(ctx); |
| | | return status; |
| | | } |
| | | |
| | | /* Entry function for Sed input filter */ |
| | | static apr_status_t sed_request_filter(ap_filter_t *f, |
| | | apr_bucket_brigade *bb, |
| | | ap_input_mode_t mode, |
| | | apr_read_type_e block, |
| | | apr_off_t readbytes) |
| | | { |
| | | sed_config *cfg = ap_get_module_config(f->r->per_dir_config, |
| | | &sed_module); |
| | | sed_filter_ctxt *ctx = f->ctx; |
| | | apr_status_t status; |
| | | sed_expr_config *sed_cfg = &cfg->input; |
| | | |
| | | if (mode != AP_MODE_READBYTES) { |
| | | return ap_get_brigade(f->next, bb, mode, block, readbytes); |
| | | } |
| | | |
| | | if ((sed_cfg == NULL) || (sed_cfg->sed_cmds == NULL)) { |
| | | /* No sed expression */ |
| | | return ap_get_brigade(f->next, bb, mode, block, readbytes); |
| | | } |
| | | |
| | | if (!ctx) { |
| | | if (!ap_is_initial_req(f->r)) { |
| | | ap_remove_input_filter(f); |
| | | /* XXX : Should we filter the sub requests too */ |
| | | return ap_get_brigade(f->next, bb, mode, block, readbytes); |
| | | } |
| | | status = init_context(f, sed_cfg, 0); |
| | | if (status != APR_SUCCESS) |
| | | return status; |
| | | ctx = f->ctx; |
| | | ctx->bb = apr_brigade_create(f->r->pool, f->c->bucket_alloc); |
| | | } |
| | | |
| | | /* Here is the logic : |
| | | * Read the readbytes data from next level fiter into bbinp. Loop through |
| | | * the buckets in bbinp and read the data from buckets and invoke |
| | | * sed_eval_buffer on the data. libsed will generate it's output using |
| | | * sed_write_output which will add data in ctx->bb. Do it until it have |
| | | * atleast one bucket bucket in ctx->bb. At the end of data eos bucket |
| | | * should be there. |
| | | * |
| | | * Once eos bucket is seen, then invoke sed_finalize_eval to clear the |
| | | * output. If the last byte of data is not a new line character then sed |
| | | * will add a new line to the data that is default sed behaviour. Note |
| | | * that using this filter with POST data, caller may not expect this |
| | | * behaviour. |
| | | * |
| | | * If next level fiter generate the flush bucket, we can't do much about |
| | | * it. If we want to return the flush bucket in brigade bb (to the caller) |
| | | * the question is where to add it? |
| | | */ |
| | | while (APR_BRIGADE_EMPTY(ctx->bb)) { |
| | | apr_bucket_brigade *bbinp; |
| | | apr_bucket *b; |
| | | |
| | | /* read the bytes from next level filter */ |
| | | bbinp = apr_brigade_create(f->r->pool, f->c->bucket_alloc); |
| | | status = ap_get_brigade(f->next, bbinp, mode, block, readbytes); |
| | | if (status != APR_SUCCESS) { |
| | | return status; |
| | | } |
| | | for (b = APR_BRIGADE_FIRST(bbinp); b != APR_BRIGADE_SENTINEL(bbinp); |
| | | b = APR_BUCKET_NEXT(b)) { |
| | | const char *buf = NULL; |
| | | apr_size_t bytes; |
| | | |
| | | if (APR_BUCKET_IS_EOS(b)) { |
| | | /* eos bucket. Clear the internal sed buffers */ |
| | | sed_finalize_eval(&ctx->eval, ctx); |
| | | flush_output_buffer(ctx); |
| | | APR_BUCKET_REMOVE(b); |
| | | APR_BRIGADE_INSERT_TAIL(ctx->bb, b); |
| | | break; |
| | | } |
| | | else if (APR_BUCKET_IS_FLUSH(b)) { |
| | | /* What should we do with flush bucket */ |
| | | continue; |
| | | } |
| | | if (apr_bucket_read(b, &buf, &bytes, APR_BLOCK_READ) |
| | | == APR_SUCCESS) { |
| | | status = sed_eval_buffer(&ctx->eval, buf, bytes, ctx); |
| | | if (status != APR_SUCCESS) |
| | | return status; |
| | | flush_output_buffer(ctx); |
| | | } |
| | | } |
| | | apr_brigade_cleanup(bbinp); |
| | | apr_brigade_destroy(bbinp); |
| | | } |
| | | |
| | | if (!APR_BRIGADE_EMPTY(ctx->bb)) { |
| | | apr_bucket_brigade *newbb = NULL; |
| | | apr_bucket *b = NULL; |
| | | |
| | | /* This may return APR_INCOMPLETE which should be fine */ |
| | | apr_brigade_partition(ctx->bb, readbytes, &b); |
| | | |
| | | newbb = apr_brigade_split(ctx->bb, b); |
| | | APR_BRIGADE_CONCAT(bb, ctx->bb); |
| | | APR_BRIGADE_CONCAT(ctx->bb, newbb); |
| | | } |
| | | return APR_SUCCESS; |
| | | } |
| | | |
| | | static const char *sed_add_expr(cmd_parms *cmd, void *cfg, const char *arg) |
| | | { |
| | | int offset = (int) (long) cmd->info; |
| | | sed_expr_config *sed_cfg = |
| | | (sed_expr_config *) (((char *) cfg) + offset); |
| | | if (compile_sed_expr(sed_cfg, cmd, arg) != APR_SUCCESS) { |
| | | return apr_psprintf(cmd->temp_pool, |
| | | "Failed to compile sed expression. %s", |
| | | sed_cfg->last_error); |
| | | } |
| | | return NULL; |
| | | } |
| | | |
| | | static void *create_sed_dir_config(apr_pool_t *p, char *s) |
| | | { |
| | | sed_config *cfg = apr_pcalloc(p, sizeof(sed_config)); |
| | | return cfg; |
| | | } |
| | | |
| | | static const command_rec sed_filter_cmds[] = { |
| | | AP_INIT_TAKE1("OutputSed", sed_add_expr, |
| | | (void *) APR_OFFSETOF(sed_config, output), |
| | | ACCESS_CONF, |
| | | "Sed regular expression for Response"), |
| | | AP_INIT_TAKE1("InputSed", sed_add_expr, |
| | | (void *) APR_OFFSETOF(sed_config, input), |
| | | ACCESS_CONF, |
| | | "Sed regular expression for Request"), |
| | | {NULL} |
| | | }; |
| | | |
| | | static void register_hooks(apr_pool_t *p) |
| | | { |
| | | ap_register_output_filter(sed_filter_name, sed_response_filter, NULL, |
| | | AP_FTYPE_RESOURCE); |
| | | ap_register_input_filter(sed_filter_name, sed_request_filter, NULL, |
| | | AP_FTYPE_RESOURCE); |
| | | } |
| | | |
| | | module AP_MODULE_DECLARE_DATA sed_module = { |
| | | STANDARD20_MODULE_STUFF, |
| | | create_sed_dir_config, /* dir config creater */ |
| | | NULL, /* dir merger --- default is to override */ |
| | | NULL, /* server config */ |
| | | NULL, /* merge server config */ |
| | | sed_filter_cmds, /* command table */ |
| | | register_hooks /* register hooks */ |
| | | }; |
New file |
| | |
| | | /* |
| | | * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved. |
| | | * Use is subject to license terms. |
| | | * |
| | | * Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T |
| | | * All Rights Reserved |
| | | * |
| | | * University Copyright- Copyright (c) 1982, 1986, 1988 |
| | | * The Regents of the University of California |
| | | * All Rights Reserved |
| | | * |
| | | * University Acknowledgment- Portions of this document are derived from |
| | | * software developed by the University of California, Berkeley, and its |
| | | * contributors. |
| | | * |
| | | * Licensed 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. |
| | | */ |
| | | |
| | | /* Code moved from regexp.h */ |
| | | |
| | | #include "apr.h" |
| | | #include "apr_lib.h" |
| | | #ifdef APR_HAVE_LIMITS_H |
| | | #include <limits.h> |
| | | #endif |
| | | #if APR_HAVE_STDLIB_H |
| | | #include <stdlib.h> |
| | | #endif |
| | | #include "libsed.h" |
| | | #include "regexp.h" |
| | | #include "sed.h" |
| | | |
| | | #define GETC() ((unsigned char)*sp++) |
| | | #define PEEKC() ((unsigned char)*sp) |
| | | #define UNGETC(c) (--sp) |
| | | #define SEDCOMPILE_ERROR(c) { \ |
| | | regerrno = c; \ |
| | | goto out; \ |
| | | } |
| | | #define ecmp(s1, s2, n) (strncmp(s1, s2, n) == 0) |
| | | #define uletter(c) (isalpha(c) || c == '_') |
| | | |
| | | |
| | | static unsigned char bittab[] = { 1, 2, 4, 8, 16, 32, 64, 128 }; |
| | | |
| | | static int regerr(sed_commands_t *commands, int err); |
| | | static void comperr(sed_commands_t *commands, char *msg); |
| | | static void getrnge(char *str, step_vars_storage *vars); |
| | | static int _advance(char *, char *, step_vars_storage *); |
| | | extern int sed_step(char *p1, char *p2, int circf, step_vars_storage *vars); |
| | | |
| | | |
| | | static void comperr(sed_commands_t *commands, char *msg) |
| | | { |
| | | command_errf(commands, msg, commands->linebuf); |
| | | } |
| | | |
| | | /* |
| | | */ |
| | | static int regerr(sed_commands_t *commands, int err) |
| | | { |
| | | switch(err) { |
| | | case 0: |
| | | /* No error */ |
| | | break; |
| | | case 11: |
| | | comperr(commands, "Range endpoint too large: %s"); |
| | | break; |
| | | |
| | | case 16: |
| | | comperr(commands, "Bad number: %s"); |
| | | break; |
| | | |
| | | case 25: |
| | | comperr(commands, "``\\digit'' out of range: %s"); |
| | | break; |
| | | |
| | | case 36: |
| | | comperr(commands, "Illegal or missing delimiter: %s"); |
| | | break; |
| | | |
| | | case 41: |
| | | comperr(commands, "No remembered search string: %s"); |
| | | break; |
| | | |
| | | case 42: |
| | | comperr(commands, "\\( \\) imbalance: %s"); |
| | | break; |
| | | |
| | | case 43: |
| | | comperr(commands, "Too many \\(: %s"); |
| | | break; |
| | | |
| | | case 44: |
| | | comperr(commands, "More than 2 numbers given in \\{ \\}: %s"); |
| | | break; |
| | | |
| | | case 45: |
| | | comperr(commands, "} expected after \\: %s"); |
| | | break; |
| | | |
| | | case 46: |
| | | comperr(commands, "First number exceeds second in \\{ \\}: %s"); |
| | | break; |
| | | |
| | | case 49: |
| | | comperr(commands, "[ ] imbalance: %s"); |
| | | break; |
| | | |
| | | case 50: |
| | | comperr(commands, SEDERR_TMMES); |
| | | break; |
| | | |
| | | default: |
| | | comperr(commands, "Unknown regexp error code %s\n"); |
| | | break; |
| | | } |
| | | return (0); |
| | | } |
| | | |
| | | |
| | | char *sed_compile(sed_commands_t *commands, sed_comp_args *compargs, |
| | | char *ep, char *endbuf, int seof) |
| | | { |
| | | int c; |
| | | int eof = seof; |
| | | char *lastep; |
| | | int cclcnt; |
| | | char bracket[NBRA], *bracketp; |
| | | int closed; |
| | | int neg; |
| | | int lc; |
| | | int i, cflg; |
| | | int iflag; /* used for non-ascii characters in brackets */ |
| | | int nodelim = 0; |
| | | char *sp = commands->cp; |
| | | int regerrno = 0; |
| | | |
| | | lastep = 0; |
| | | if ((c = GETC()) == eof || c == '\n') { |
| | | if (c == '\n') { |
| | | UNGETC(c); |
| | | nodelim = 1; |
| | | } |
| | | commands->cp = sp; |
| | | goto out; |
| | | } |
| | | bracketp = bracket; |
| | | compargs->circf = closed = compargs->nbra = 0; |
| | | if (c == '^') |
| | | compargs->circf++; |
| | | else |
| | | UNGETC(c); |
| | | while (1) { |
| | | if (ep >= endbuf) |
| | | SEDCOMPILE_ERROR(50); |
| | | c = GETC(); |
| | | if (c != '*' && ((c != '\\') || (PEEKC() != '{'))) |
| | | lastep = ep; |
| | | if (c == eof) { |
| | | *ep++ = CCEOF; |
| | | if (bracketp != bracket) |
| | | SEDCOMPILE_ERROR(42); |
| | | commands->cp = sp; |
| | | goto out; |
| | | } |
| | | switch (c) { |
| | | |
| | | case '.': |
| | | *ep++ = CDOT; |
| | | continue; |
| | | |
| | | case '\n': |
| | | SEDCOMPILE_ERROR(36); |
| | | commands->cp = sp; |
| | | goto out; |
| | | case '*': |
| | | if (lastep == 0 || *lastep == CBRA || *lastep == CKET) |
| | | goto defchar; |
| | | *lastep |= STAR; |
| | | continue; |
| | | |
| | | case '$': |
| | | if (PEEKC() != eof && PEEKC() != '\n') |
| | | goto defchar; |
| | | *ep++ = CDOL; |
| | | continue; |
| | | |
| | | case '[': |
| | | if (&ep[17] >= endbuf) |
| | | SEDCOMPILE_ERROR(50); |
| | | |
| | | *ep++ = CCL; |
| | | lc = 0; |
| | | for (i = 0; i < 16; i++) |
| | | ep[i] = 0; |
| | | |
| | | neg = 0; |
| | | if ((c = GETC()) == '^') { |
| | | neg = 1; |
| | | c = GETC(); |
| | | } |
| | | iflag = 1; |
| | | do { |
| | | c &= 0377; |
| | | if (c == '\0' || c == '\n') |
| | | SEDCOMPILE_ERROR(49); |
| | | if ((c & 0200) && iflag) { |
| | | iflag = 0; |
| | | if (&ep[32] >= endbuf) |
| | | SEDCOMPILE_ERROR(50); |
| | | ep[-1] = CXCL; |
| | | for (i = 16; i < 32; i++) |
| | | ep[i] = 0; |
| | | } |
| | | if (c == '-' && lc != 0) { |
| | | if ((c = GETC()) == ']') { |
| | | PLACE('-'); |
| | | break; |
| | | } |
| | | if ((c & 0200) && iflag) { |
| | | iflag = 0; |
| | | if (&ep[32] >= endbuf) |
| | | SEDCOMPILE_ERROR(50); |
| | | ep[-1] = CXCL; |
| | | for (i = 16; i < 32; i++) |
| | | ep[i] = 0; |
| | | } |
| | | while (lc < c) { |
| | | PLACE(lc); |
| | | lc++; |
| | | } |
| | | } |
| | | lc = c; |
| | | PLACE(c); |
| | | } while ((c = GETC()) != ']'); |
| | | |
| | | if (iflag) |
| | | iflag = 16; |
| | | else |
| | | iflag = 32; |
| | | |
| | | if (neg) { |
| | | if (iflag == 32) { |
| | | for (cclcnt = 0; cclcnt < iflag; |
| | | cclcnt++) |
| | | ep[cclcnt] ^= 0377; |
| | | ep[0] &= 0376; |
| | | } else { |
| | | ep[-1] = NCCL; |
| | | /* make nulls match so test fails */ |
| | | ep[0] |= 01; |
| | | } |
| | | } |
| | | |
| | | ep += iflag; |
| | | |
| | | continue; |
| | | |
| | | case '\\': |
| | | switch (c = GETC()) { |
| | | |
| | | case '(': |
| | | if (compargs->nbra >= NBRA) |
| | | SEDCOMPILE_ERROR(43); |
| | | *bracketp++ = compargs->nbra; |
| | | *ep++ = CBRA; |
| | | *ep++ = compargs->nbra++; |
| | | continue; |
| | | |
| | | case ')': |
| | | if (bracketp <= bracket) |
| | | SEDCOMPILE_ERROR(42); |
| | | *ep++ = CKET; |
| | | *ep++ = *--bracketp; |
| | | closed++; |
| | | continue; |
| | | |
| | | case '{': |
| | | if (lastep == (char *) 0) |
| | | goto defchar; |
| | | *lastep |= RNGE; |
| | | cflg = 0; |
| | | nlim: |
| | | c = GETC(); |
| | | i = 0; |
| | | do { |
| | | if ('0' <= c && c <= '9') |
| | | i = 10 * i + c - '0'; |
| | | else |
| | | SEDCOMPILE_ERROR(16); |
| | | } while (((c = GETC()) != '\\') && (c != ',')); |
| | | if (i >= 255) |
| | | SEDCOMPILE_ERROR(11); |
| | | *ep++ = i; |
| | | if (c == ',') { |
| | | if (cflg++) |
| | | SEDCOMPILE_ERROR(44); |
| | | if ((c = GETC()) == '\\') |
| | | *ep++ = (char) 255; |
| | | else { |
| | | UNGETC(c); |
| | | goto nlim; |
| | | /* get 2'nd number */ |
| | | } |
| | | } |
| | | if (GETC() != '}') |
| | | SEDCOMPILE_ERROR(45); |
| | | if (!cflg) /* one number */ |
| | | *ep++ = i; |
| | | else if ((ep[-1] & 0377) < (ep[-2] & 0377)) |
| | | SEDCOMPILE_ERROR(46); |
| | | continue; |
| | | |
| | | case '\n': |
| | | SEDCOMPILE_ERROR(36); |
| | | |
| | | case 'n': |
| | | c = '\n'; |
| | | goto defchar; |
| | | |
| | | default: |
| | | if (c >= '1' && c <= '9') { |
| | | if ((c -= '1') >= closed) |
| | | SEDCOMPILE_ERROR(25); |
| | | *ep++ = CBACK; |
| | | *ep++ = c; |
| | | continue; |
| | | } |
| | | } |
| | | /* Drop through to default to use \ to turn off special chars */ |
| | | |
| | | defchar: |
| | | default: |
| | | lastep = ep; |
| | | *ep++ = CCHR; |
| | | *ep++ = c; |
| | | } |
| | | } |
| | | out: |
| | | if (regerrno) { |
| | | regerr(commands, regerrno); |
| | | return (char*) NULL; |
| | | } |
| | | /* XXX : Basant : what extra */ |
| | | /* int reglength = (int)(ep - expbuf); */ |
| | | return ep; |
| | | } |
| | | |
| | | int sed_step(char *p1, char *p2, int circf, step_vars_storage *vars) |
| | | { |
| | | int c; |
| | | |
| | | |
| | | if (circf) { |
| | | vars->loc1 = p1; |
| | | return (_advance(p1, p2, vars)); |
| | | } |
| | | /* fast check for first character */ |
| | | if (*p2 == CCHR) { |
| | | c = p2[1]; |
| | | do { |
| | | if (*p1 != c) |
| | | continue; |
| | | if (_advance(p1, p2, vars)) { |
| | | vars->loc1 = p1; |
| | | return (1); |
| | | } |
| | | } while (*p1++); |
| | | return (0); |
| | | } |
| | | /* regular algorithm */ |
| | | do { |
| | | if (_advance(p1, p2, vars)) { |
| | | vars->loc1 = p1; |
| | | return (1); |
| | | } |
| | | } while (*p1++); |
| | | return (0); |
| | | } |
| | | |
| | | static int _advance(char *lp, char *ep, step_vars_storage *vars) |
| | | { |
| | | char *curlp; |
| | | int c; |
| | | char *bbeg; |
| | | char neg; |
| | | int ct; |
| | | int epint; /* int value of *ep */ |
| | | |
| | | while (1) { |
| | | neg = 0; |
| | | switch (*ep++) { |
| | | |
| | | case CCHR: |
| | | if (*ep++ == *lp++) |
| | | continue; |
| | | return (0); |
| | | |
| | | case CDOT: |
| | | if (*lp++) |
| | | continue; |
| | | return (0); |
| | | |
| | | case CDOL: |
| | | if (*lp == 0) |
| | | continue; |
| | | return (0); |
| | | |
| | | case CCEOF: |
| | | vars->loc2 = lp; |
| | | return (1); |
| | | |
| | | case CXCL: |
| | | c = (unsigned char)*lp++; |
| | | if (ISTHERE(c)) { |
| | | ep += 32; |
| | | continue; |
| | | } |
| | | return (0); |
| | | |
| | | case NCCL: |
| | | neg = 1; |
| | | |
| | | case CCL: |
| | | c = *lp++; |
| | | if (((c & 0200) == 0 && ISTHERE(c)) ^ neg) { |
| | | ep += 16; |
| | | continue; |
| | | } |
| | | return (0); |
| | | |
| | | case CBRA: |
| | | epint = (int) *ep; |
| | | vars->braslist[epint] = lp; |
| | | ep++; |
| | | continue; |
| | | |
| | | case CKET: |
| | | epint = (int) *ep; |
| | | vars->braelist[epint] = lp; |
| | | ep++; |
| | | continue; |
| | | |
| | | case CCHR | RNGE: |
| | | c = *ep++; |
| | | getrnge(ep, vars); |
| | | while (vars->low--) |
| | | if (*lp++ != c) |
| | | return (0); |
| | | curlp = lp; |
| | | while (vars->size--) |
| | | if (*lp++ != c) |
| | | break; |
| | | if (vars->size < 0) |
| | | lp++; |
| | | ep += 2; |
| | | goto star; |
| | | |
| | | case CDOT | RNGE: |
| | | getrnge(ep, vars); |
| | | while (vars->low--) |
| | | if (*lp++ == '\0') |
| | | return (0); |
| | | curlp = lp; |
| | | while (vars->size--) |
| | | if (*lp++ == '\0') |
| | | break; |
| | | if (vars->size < 0) |
| | | lp++; |
| | | ep += 2; |
| | | goto star; |
| | | |
| | | case CXCL | RNGE: |
| | | getrnge(ep + 32, vars); |
| | | while (vars->low--) { |
| | | c = (unsigned char)*lp++; |
| | | if (!ISTHERE(c)) |
| | | return (0); |
| | | } |
| | | curlp = lp; |
| | | while (vars->size--) { |
| | | c = (unsigned char)*lp++; |
| | | if (!ISTHERE(c)) |
| | | break; |
| | | } |
| | | if (vars->size < 0) |
| | | lp++; |
| | | ep += 34; /* 32 + 2 */ |
| | | goto star; |
| | | |
| | | case NCCL | RNGE: |
| | | neg = 1; |
| | | |
| | | case CCL | RNGE: |
| | | getrnge(ep + 16, vars); |
| | | while (vars->low--) { |
| | | c = *lp++; |
| | | if (((c & 0200) || !ISTHERE(c)) ^ neg) |
| | | return (0); |
| | | } |
| | | curlp = lp; |
| | | while (vars->size--) { |
| | | c = *lp++; |
| | | if (((c & 0200) || !ISTHERE(c)) ^ neg) |
| | | break; |
| | | } |
| | | if (vars->size < 0) |
| | | lp++; |
| | | ep += 18; /* 16 + 2 */ |
| | | goto star; |
| | | |
| | | case CBACK: |
| | | epint = (int) *ep; |
| | | bbeg = vars->braslist[epint]; |
| | | ct = vars->braelist[epint] - bbeg; |
| | | ep++; |
| | | |
| | | if (ecmp(bbeg, lp, ct)) { |
| | | lp += ct; |
| | | continue; |
| | | } |
| | | return (0); |
| | | |
| | | case CBACK | STAR: |
| | | epint = (int) *ep; |
| | | bbeg = vars->braslist[epint]; |
| | | ct = vars->braelist[epint] - bbeg; |
| | | ep++; |
| | | curlp = lp; |
| | | while (ecmp(bbeg, lp, ct)) |
| | | lp += ct; |
| | | |
| | | while (lp >= curlp) { |
| | | if (_advance(lp, ep, vars)) |
| | | return (1); |
| | | lp -= ct; |
| | | } |
| | | return (0); |
| | | |
| | | |
| | | case CDOT | STAR: |
| | | curlp = lp; |
| | | while (*lp++); |
| | | goto star; |
| | | |
| | | case CCHR | STAR: |
| | | curlp = lp; |
| | | while (*lp++ == *ep); |
| | | ep++; |
| | | goto star; |
| | | |
| | | case CXCL | STAR: |
| | | curlp = lp; |
| | | do { |
| | | c = (unsigned char)*lp++; |
| | | } while (ISTHERE(c)); |
| | | ep += 32; |
| | | goto star; |
| | | |
| | | case NCCL | STAR: |
| | | neg = 1; |
| | | |
| | | case CCL | STAR: |
| | | curlp = lp; |
| | | do { |
| | | c = *lp++; |
| | | } while (((c & 0200) == 0 && ISTHERE(c)) ^ neg); |
| | | ep += 16; |
| | | goto star; |
| | | |
| | | star: |
| | | do { |
| | | if (--lp == vars->locs) |
| | | break; |
| | | if (_advance(lp, ep, vars)) |
| | | return (1); |
| | | } while (lp > curlp); |
| | | return (0); |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | static void getrnge(char *str, step_vars_storage *vars) |
| | | { |
| | | vars->low = *str++ & 0377; |
| | | vars->size = ((*str & 0377) == 255)? 20000: (*str &0377) - vars->low; |
| | | } |
| | | |
| | | |
New file |
| | |
| | | /* |
| | | * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved. |
| | | * Use is subject to license terms. |
| | | * |
| | | * Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T |
| | | * All Rights Reserved |
| | | * |
| | | * University Copyright- Copyright (c) 1982, 1986, 1988 |
| | | * The Regents of the University of California |
| | | * All Rights Reserved |
| | | * |
| | | * University Acknowledgment- Portions of this document are derived from |
| | | * software developed by the University of California, Berkeley, and its |
| | | * contributors. |
| | | * |
| | | * Licensed 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 _REGEXP_H |
| | | #define _REGEXP_H |
| | | |
| | | #include "libsed.h" |
| | | |
| | | #ifdef __cplusplus |
| | | extern "C" { |
| | | #endif |
| | | |
| | | #define CBRA 2 |
| | | #define CCHR 4 |
| | | #define CDOT 8 |
| | | #define CCL 12 |
| | | #define CXCL 16 |
| | | #define CDOL 20 |
| | | #define CCEOF 22 |
| | | #define CKET 24 |
| | | #define CBACK 36 |
| | | #define NCCL 40 |
| | | |
| | | #define STAR 01 |
| | | #define RNGE 03 |
| | | |
| | | #define NBRA 9 |
| | | |
| | | #define PLACE(c) ep[c >> 3] |= bittab[c & 07] |
| | | #define ISTHERE(c) (ep[c >> 3] & bittab[c & 07]) |
| | | |
| | | typedef struct _step_vars_storage { |
| | | char *loc1, *loc2, *locs; |
| | | char *braslist[NBRA]; |
| | | char *braelist[NBRA]; |
| | | int low; |
| | | int size; |
| | | } step_vars_storage; |
| | | |
| | | typedef struct _sed_comp_args { |
| | | int circf; /* Regular expression starts with ^ */ |
| | | int nbra; /* braces count */ |
| | | } sed_comp_args; |
| | | |
| | | extern char *sed_compile(sed_commands_t *commands, sed_comp_args *compargs, |
| | | char *ep, char *endbuf, int seof); |
| | | extern void command_errf(sed_commands_t *commands, const char *fmt, ...); |
| | | |
| | | #define SEDERR_CGMES "command garbled: %s" |
| | | #define SEDERR_SMMES "Space missing before filename: %s" |
| | | #define SEDERR_TMMES "too much command text: %s" |
| | | #define SEDERR_LTLMES "label too long: %s" |
| | | #define SEDERR_ULMES "undefined label: %s" |
| | | #define SEDERR_DLMES "duplicate labels: %s" |
| | | #define SEDERR_TMLMES "too many labels: %s" |
| | | #define SEDERR_AD0MES "no addresses allowed: %s" |
| | | #define SEDERR_AD1MES "only one address allowed: %s" |
| | | #define SEDERR_TOOBIG "suffix too large: %s" |
| | | #define SEDERR_OOMMES "out of memory" |
| | | #define SEDERR_COPFMES "cannot open pattern file: %s" |
| | | #define SEDERR_COIFMES "cannot open input file: %s" |
| | | #define SEDERR_TMOMES "too many {'s" |
| | | #define SEDERR_TMCMES "too many }'s" |
| | | #define SEDERR_NRMES "first RE may not be null" |
| | | #define SEDERR_UCMES "unrecognized command: %s" |
| | | #define SEDERR_TMWFMES "too many files in w commands" |
| | | #define SEDERR_COMES "cannot open %s" |
| | | #define SEDERR_CCMES "cannot create %s" |
| | | #define SEDERR_TMLNMES "too many line numbers" |
| | | #define SEDERR_TMAMES "too many appends after line %lld" |
| | | #define SEDERR_TMRMES "too many reads after line %lld" |
| | | #define SEDERR_DOORNG "``\\digit'' out of range: %s" |
| | | #define SEDERR_EDMOSUB "ending delimiter missing on substitution: %s" |
| | | #define SEDERR_EDMOSTR "ending delimiter missing on string: %s" |
| | | #define SEDERR_FNTL "file name too long: %s" |
| | | #define SEDERR_CLTL "command line too long" |
| | | #define SEDERR_TSNTSS "transform strings not the same size: %s" |
| | | #define SEDERR_OLTL "output line too long." |
| | | #define SEDERR_HSOVERFLOW "hold space overflowed." |
| | | #define SEDERR_INTERNAL "internal sed error" |
| | | |
| | | #ifdef __cplusplus |
| | | } |
| | | #endif |
| | | |
| | | #endif /* _REGEXP_H */ |
New file |
| | |
| | | /* |
| | | * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved. |
| | | * Use is subject to license terms. |
| | | * |
| | | * Copyright (c) 1984 AT&T |
| | | * All Rights Reserved |
| | | * |
| | | * Licensed 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 _SED_H |
| | | #define _SED_H |
| | | |
| | | #include <stdlib.h> |
| | | #include <limits.h> |
| | | |
| | | #define CEND 16 |
| | | #define CLNUM 14 |
| | | |
| | | #define RESIZE 10000 |
| | | #define LBSIZE 1000 |
| | | |
| | | #define ACOM 01 |
| | | #define BCOM 020 |
| | | #define CCOM 02 |
| | | #define CDCOM 025 |
| | | #define CNCOM 022 |
| | | #define COCOM 017 |
| | | #define CPCOM 023 |
| | | #define DCOM 03 |
| | | #define ECOM 015 |
| | | #define EQCOM 013 |
| | | #define FCOM 016 |
| | | #define GCOM 027 |
| | | #define CGCOM 030 |
| | | #define HCOM 031 |
| | | #define CHCOM 032 |
| | | #define ICOM 04 |
| | | #define LCOM 05 |
| | | #define NCOM 012 |
| | | #define PCOM 010 |
| | | #define QCOM 011 |
| | | #define RCOM 06 |
| | | #define SCOM 07 |
| | | #define TCOM 021 |
| | | #define WCOM 014 |
| | | #define CWCOM 024 |
| | | #define YCOM 026 |
| | | #define XCOM 033 |
| | | |
| | | #endif /* _SED_H */ |
New file |
| | |
| | | /* |
| | | * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved. |
| | | * Use is subject to license terms. |
| | | * |
| | | * Copyright (c) 1984 AT&T |
| | | * All Rights Reserved |
| | | * |
| | | * Licensed 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 "apr.h" |
| | | #include "apr_strings.h" |
| | | #include "libsed.h" |
| | | #include "sed.h" |
| | | #include "regexp.h" |
| | | |
| | | #define CCEOF 22 |
| | | |
| | | static int fcomp(sed_commands_t *commands, apr_file_t *fin); |
| | | static char *compsub(sed_commands_t *commands, |
| | | sed_comp_args *compargs, char *rhsbuf); |
| | | static int rline(sed_commands_t *commands, apr_file_t *fin, |
| | | char *lbuf, char *lbend); |
| | | static char *address(sed_commands_t *commands, char *expbuf, |
| | | apr_status_t* status); |
| | | static char *text(sed_commands_t *commands, char *textbuf, char *endbuf); |
| | | static sed_label_t *search(sed_commands_t *commands); |
| | | static char *ycomp(sed_commands_t *commands, char *expbuf); |
| | | static char *comple(sed_commands_t *commands, sed_comp_args *compargs, |
| | | char *x1, char *ep, char *x3, char x4); |
| | | static sed_reptr_t *alloc_reptr(sed_commands_t *commands); |
| | | static int check_finalized(const sed_commands_t *commands); |
| | | |
| | | void command_errf(sed_commands_t *commands, const char *fmt, ...) |
| | | { |
| | | if (commands->errfn && commands->pool) { |
| | | va_list args; |
| | | const char* error; |
| | | va_start(args, fmt); |
| | | error = apr_pvsprintf(commands->pool, fmt, args); |
| | | commands->errfn(commands->data, error); |
| | | va_end(args); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * sed_init_commands |
| | | */ |
| | | apr_status_t sed_init_commands(sed_commands_t *commands, sed_err_fn_t *errfn, void *data, |
| | | apr_pool_t *p) |
| | | { |
| | | memset(commands, 0, sizeof(*commands)); |
| | | |
| | | commands->errfn = errfn; |
| | | commands->data = data; |
| | | |
| | | commands->labtab = commands->ltab; |
| | | commands->lab = commands->labtab + 1; |
| | | commands->pool = p; |
| | | |
| | | commands->respace = apr_pcalloc(p, RESIZE); |
| | | if (commands->respace == NULL) { |
| | | command_errf(commands, SEDERR_OOMMES); |
| | | return APR_EGENERAL; |
| | | } |
| | | |
| | | commands->rep = alloc_reptr(commands); |
| | | if (commands->rep == NULL) |
| | | return APR_EGENERAL; |
| | | |
| | | commands->rep->ad1 = commands->respace; |
| | | commands->reend = &commands->respace[RESIZE - 1]; |
| | | commands->labend = &commands->labtab[SED_LABSIZE]; |
| | | commands->canbefinal = 1; |
| | | |
| | | return APR_SUCCESS; |
| | | } |
| | | |
| | | /* |
| | | * sed_destroy_commands |
| | | */ |
| | | void sed_destroy_commands(sed_commands_t *commands) |
| | | { |
| | | } |
| | | |
| | | /* |
| | | * sed_compile_string |
| | | */ |
| | | apr_status_t sed_compile_string(sed_commands_t *commands, const char *s) |
| | | { |
| | | apr_status_t rv; |
| | | |
| | | commands->earg = s; |
| | | commands->eflag = 1; |
| | | |
| | | rv = fcomp(commands, NULL); |
| | | if (rv == APR_SUCCESS) |
| | | commands->canbefinal = check_finalized(commands); |
| | | |
| | | commands->eflag = 0; |
| | | |
| | | return (rv != 0 ? APR_EGENERAL : APR_SUCCESS); |
| | | } |
| | | |
| | | /* |
| | | * sed_compile_file |
| | | */ |
| | | apr_status_t sed_compile_file(sed_commands_t *commands, apr_file_t *fin) |
| | | { |
| | | apr_status_t rv = fcomp(commands, fin); |
| | | return (rv != 0 ? APR_EGENERAL : APR_SUCCESS); |
| | | } |
| | | |
| | | /* |
| | | * sed_get_finalize_error |
| | | */ |
| | | char* sed_get_finalize_error(const sed_commands_t *commands, apr_pool_t* pool) |
| | | { |
| | | const sed_label_t *lab; |
| | | if (commands->depth) { |
| | | return SEDERR_TMOMES; |
| | | } |
| | | |
| | | /* Empty branch chain is not a issue */ |
| | | for (lab = commands->labtab + 1; lab < commands->lab; lab++) { |
| | | char *error; |
| | | if (lab->address == 0) { |
| | | error = apr_psprintf(pool, SEDERR_ULMES, lab->asc); |
| | | return error; |
| | | } |
| | | |
| | | if (lab->chain) { |
| | | return SEDERR_INTERNAL; |
| | | } |
| | | } |
| | | return NULL; |
| | | } |
| | | |
| | | /* |
| | | * sed_canbe_finalized |
| | | */ |
| | | int sed_canbe_finalized(const sed_commands_t *commands) |
| | | { |
| | | return commands->canbefinal; |
| | | } |
| | | |
| | | /* |
| | | * check_finalized |
| | | */ |
| | | static int check_finalized(const sed_commands_t *commands) |
| | | { |
| | | const sed_label_t *lab; |
| | | if (commands->depth) { |
| | | return 0; |
| | | } |
| | | |
| | | /* Empty branch chain is not a issue */ |
| | | for (lab = commands->labtab + 1; lab < commands->lab; lab++) { |
| | | if (lab->address == 0 || (lab->chain)) { |
| | | return 0; |
| | | } |
| | | } |
| | | return 1; |
| | | } |
| | | |
| | | /* |
| | | * dechain |
| | | */ |
| | | static void dechain(sed_label_t *lpt, sed_reptr_t *address) |
| | | { |
| | | sed_reptr_t *rep; |
| | | if ((lpt == NULL) || (lpt->chain == NULL) || (address == NULL)) |
| | | return; |
| | | rep = lpt->chain; |
| | | while (rep->lb1) { |
| | | sed_reptr_t *next; |
| | | |
| | | next = rep->lb1; |
| | | rep->lb1 = address; |
| | | rep = next; |
| | | } |
| | | rep->lb1 = address; |
| | | lpt->chain = NULL; |
| | | } |
| | | |
| | | /* |
| | | * fcomp |
| | | */ |
| | | static int fcomp(sed_commands_t *commands, apr_file_t *fin) |
| | | { |
| | | char *p, *op, *tp; |
| | | sed_reptr_t *pt, *pt1; |
| | | int i, ii; |
| | | sed_label_t *lpt; |
| | | char fnamebuf[APR_PATH_MAX]; |
| | | apr_status_t status; |
| | | sed_comp_args compargs; |
| | | |
| | | op = commands->lastre; |
| | | if (!commands->linebuf) { |
| | | commands->linebuf = apr_pcalloc(commands->pool, LBSIZE + 1); |
| | | } |
| | | |
| | | if (rline(commands, fin, commands->linebuf, |
| | | (commands->linebuf + LBSIZE + 1)) < 0) |
| | | return 0; |
| | | if (*commands->linebuf == '#') { |
| | | if (commands->linebuf[1] == 'n') |
| | | commands->nflag = 1; |
| | | } |
| | | else { |
| | | commands->cp = commands->linebuf; |
| | | goto comploop; |
| | | } |
| | | |
| | | for (;;) { |
| | | if (rline(commands, fin, commands->linebuf, |
| | | (commands->linebuf + LBSIZE + 1)) < 0) |
| | | break; |
| | | |
| | | commands->cp = commands->linebuf; |
| | | |
| | | comploop: |
| | | while (*commands->cp == ' ' || *commands->cp == '\t') |
| | | commands->cp++; |
| | | if (*commands->cp == '\0' || *commands->cp == '#') |
| | | continue; |
| | | if (*commands->cp == ';') { |
| | | commands->cp++; |
| | | goto comploop; |
| | | } |
| | | |
| | | p = address(commands, commands->rep->ad1, &status); |
| | | if (status != APR_SUCCESS) { |
| | | command_errf(commands, SEDERR_CGMES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | |
| | | if (p == commands->rep->ad1) { |
| | | if (op) |
| | | commands->rep->ad1 = op; |
| | | else { |
| | | command_errf(commands, SEDERR_NRMES); |
| | | return -1; |
| | | } |
| | | } else if (p == 0) { |
| | | p = commands->rep->ad1; |
| | | commands->rep->ad1 = 0; |
| | | } else { |
| | | op = commands->rep->ad1; |
| | | if (*commands->cp == ',' || *commands->cp == ';') { |
| | | commands->cp++; |
| | | commands->rep->ad2 = p; |
| | | p = address(commands, commands->rep->ad2, &status); |
| | | if ((status != APR_SUCCESS) || (p == 0)) { |
| | | command_errf(commands, SEDERR_CGMES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | if (p == commands->rep->ad2) |
| | | commands->rep->ad2 = op; |
| | | else |
| | | op = commands->rep->ad2; |
| | | } else |
| | | commands->rep->ad2 = 0; |
| | | } |
| | | |
| | | if(p > &commands->respace[RESIZE-1]) { |
| | | command_errf(commands, SEDERR_TMMES); |
| | | return -1; |
| | | } |
| | | |
| | | while (*commands->cp == ' ' || *commands->cp == '\t') |
| | | commands->cp++; |
| | | |
| | | swit: |
| | | switch(*commands->cp++) { |
| | | default: |
| | | command_errf(commands, SEDERR_UCMES, commands->linebuf); |
| | | return -1; |
| | | |
| | | case '!': |
| | | commands->rep->negfl = 1; |
| | | goto swit; |
| | | |
| | | case '{': |
| | | commands->rep->command = BCOM; |
| | | commands->rep->negfl = !(commands->rep->negfl); |
| | | commands->cmpend[commands->depth++] = &commands->rep->lb1; |
| | | commands->rep = alloc_reptr(commands); |
| | | commands->rep->ad1 = p; |
| | | if (*commands->cp == '\0') |
| | | continue; |
| | | goto comploop; |
| | | |
| | | case '}': |
| | | if (commands->rep->ad1) { |
| | | command_errf(commands, SEDERR_AD0MES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | |
| | | if (--commands->depth < 0) { |
| | | command_errf(commands, SEDERR_TMCMES); |
| | | return -1; |
| | | } |
| | | *commands->cmpend[commands->depth] = commands->rep; |
| | | |
| | | commands->rep->ad1 = p; |
| | | continue; |
| | | |
| | | case '=': |
| | | commands->rep->command = EQCOM; |
| | | if (commands->rep->ad2) { |
| | | command_errf(commands, SEDERR_AD1MES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | break; |
| | | |
| | | case ':': |
| | | if (commands->rep->ad1) { |
| | | command_errf(commands, SEDERR_AD0MES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | |
| | | while (*commands->cp++ == ' '); |
| | | commands->cp--; |
| | | |
| | | tp = commands->lab->asc; |
| | | while ((*tp++ = *commands->cp++)) { |
| | | if (tp >= &(commands->lab->asc[8])) { |
| | | command_errf(commands, SEDERR_LTLMES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | } |
| | | *--tp = '\0'; |
| | | |
| | | if ((lpt = search(commands)) != NULL) { |
| | | if (lpt->address) { |
| | | command_errf(commands, SEDERR_DLMES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | dechain(lpt, commands->rep); |
| | | } else { |
| | | commands->lab->chain = 0; |
| | | lpt = commands->lab; |
| | | if (++commands->lab >= commands->labend) { |
| | | command_errf(commands, SEDERR_TMLMES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | } |
| | | lpt->address = commands->rep; |
| | | commands->rep->ad1 = p; |
| | | |
| | | continue; |
| | | |
| | | case 'a': |
| | | commands->rep->command = ACOM; |
| | | if (commands->rep->ad2) { |
| | | command_errf(commands, SEDERR_AD1MES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | if (*commands->cp == '\\') |
| | | commands->cp++; |
| | | if (*commands->cp++ != '\n') { |
| | | command_errf(commands, SEDERR_CGMES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | commands->rep->re1 = p; |
| | | p = text(commands, commands->rep->re1, commands->reend); |
| | | if (p == NULL) |
| | | return -1; |
| | | break; |
| | | |
| | | case 'c': |
| | | commands->rep->command = CCOM; |
| | | if (*commands->cp == '\\') commands->cp++; |
| | | if (*commands->cp++ != ('\n')) { |
| | | command_errf(commands, SEDERR_CGMES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | commands->rep->re1 = p; |
| | | p = text(commands, commands->rep->re1, commands->reend); |
| | | if (p == NULL) |
| | | return -1; |
| | | break; |
| | | |
| | | case 'i': |
| | | commands->rep->command = ICOM; |
| | | if (commands->rep->ad2) { |
| | | command_errf(commands, SEDERR_AD1MES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | if (*commands->cp == '\\') commands->cp++; |
| | | if (*commands->cp++ != ('\n')) { |
| | | command_errf(commands, SEDERR_CGMES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | commands->rep->re1 = p; |
| | | p = text(commands, commands->rep->re1, commands->reend); |
| | | if (p == NULL) |
| | | return -1; |
| | | break; |
| | | |
| | | case 'g': |
| | | commands->rep->command = GCOM; |
| | | break; |
| | | |
| | | case 'G': |
| | | commands->rep->command = CGCOM; |
| | | break; |
| | | |
| | | case 'h': |
| | | commands->rep->command = HCOM; |
| | | break; |
| | | |
| | | case 'H': |
| | | commands->rep->command = CHCOM; |
| | | break; |
| | | |
| | | case 't': |
| | | commands->rep->command = TCOM; |
| | | goto jtcommon; |
| | | |
| | | case 'b': |
| | | commands->rep->command = BCOM; |
| | | jtcommon: |
| | | while (*commands->cp++ == ' '); |
| | | commands->cp--; |
| | | |
| | | if (*commands->cp == '\0') { |
| | | if ((pt = commands->labtab->chain) != NULL) { |
| | | while ((pt1 = pt->lb1) != NULL) |
| | | pt = pt1; |
| | | pt->lb1 = commands->rep; |
| | | } else |
| | | commands->labtab->chain = commands->rep; |
| | | break; |
| | | } |
| | | tp = commands->lab->asc; |
| | | while ((*tp++ = *commands->cp++)) |
| | | if (tp >= &(commands->lab->asc[8])) { |
| | | command_errf(commands, SEDERR_LTLMES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | commands->cp--; |
| | | *--tp = '\0'; |
| | | |
| | | if ((lpt = search(commands)) != NULL) { |
| | | if (lpt->address) { |
| | | commands->rep->lb1 = lpt->address; |
| | | } else { |
| | | pt = lpt->chain; |
| | | while ((pt1 = pt->lb1) != NULL) |
| | | pt = pt1; |
| | | pt->lb1 = commands->rep; |
| | | } |
| | | } else { |
| | | commands->lab->chain = commands->rep; |
| | | commands->lab->address = 0; |
| | | if (++commands->lab >= commands->labend) { |
| | | command_errf(commands, SEDERR_TMLMES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | } |
| | | break; |
| | | |
| | | case 'n': |
| | | commands->rep->command = NCOM; |
| | | break; |
| | | |
| | | case 'N': |
| | | commands->rep->command = CNCOM; |
| | | break; |
| | | |
| | | case 'p': |
| | | commands->rep->command = PCOM; |
| | | break; |
| | | |
| | | case 'P': |
| | | commands->rep->command = CPCOM; |
| | | break; |
| | | |
| | | case 'r': |
| | | commands->rep->command = RCOM; |
| | | if (commands->rep->ad2) { |
| | | command_errf(commands, SEDERR_AD1MES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | if (*commands->cp++ != ' ') { |
| | | command_errf(commands, SEDERR_CGMES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | commands->rep->re1 = p; |
| | | p = text(commands, commands->rep->re1, commands->reend); |
| | | if (p == NULL) |
| | | return -1; |
| | | break; |
| | | |
| | | case 'd': |
| | | commands->rep->command = DCOM; |
| | | break; |
| | | |
| | | case 'D': |
| | | commands->rep->command = CDCOM; |
| | | commands->rep->lb1 = commands->ptrspace; |
| | | break; |
| | | |
| | | case 'q': |
| | | commands->rep->command = QCOM; |
| | | if (commands->rep->ad2) { |
| | | command_errf(commands, SEDERR_AD1MES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | break; |
| | | |
| | | case 'l': |
| | | commands->rep->command = LCOM; |
| | | break; |
| | | |
| | | case 's': |
| | | commands->rep->command = SCOM; |
| | | commands->sseof = *commands->cp++; |
| | | commands->rep->re1 = p; |
| | | p = comple(commands, &compargs, (char *) 0, commands->rep->re1, |
| | | commands->reend, commands->sseof); |
| | | if (p == NULL) |
| | | return -1; |
| | | if (p == commands->rep->re1) { |
| | | if (op) |
| | | commands->rep->re1 = op; |
| | | else { |
| | | command_errf(commands, SEDERR_NRMES); |
| | | return -1; |
| | | } |
| | | } else |
| | | op = commands->rep->re1; |
| | | commands->rep->rhs = p; |
| | | |
| | | p = compsub(commands, &compargs, commands->rep->rhs); |
| | | if ((p) == NULL) |
| | | return -1; |
| | | |
| | | if (*commands->cp == 'g') { |
| | | commands->cp++; |
| | | commands->rep->gfl = 999; |
| | | } else if (commands->gflag) |
| | | commands->rep->gfl = 999; |
| | | |
| | | if (*commands->cp >= '1' && *commands->cp <= '9') { |
| | | i = *commands->cp - '0'; |
| | | commands->cp++; |
| | | while (1) { |
| | | ii = *commands->cp; |
| | | if (ii < '0' || ii > '9') |
| | | break; |
| | | i = i*10 + ii - '0'; |
| | | if (i > 512) { |
| | | command_errf(commands, SEDERR_TOOBIG, commands->linebuf); |
| | | return -1; |
| | | } |
| | | commands->cp++; |
| | | } |
| | | commands->rep->gfl = i; |
| | | } |
| | | |
| | | if (*commands->cp == 'p') { |
| | | commands->cp++; |
| | | commands->rep->pfl = 1; |
| | | } |
| | | |
| | | if (*commands->cp == 'P') { |
| | | commands->cp++; |
| | | commands->rep->pfl = 2; |
| | | } |
| | | |
| | | if (*commands->cp == 'w') { |
| | | commands->cp++; |
| | | if (*commands->cp++ != ' ') { |
| | | command_errf(commands, SEDERR_SMMES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | if (text(commands, fnamebuf, &fnamebuf[APR_PATH_MAX]) == NULL) { |
| | | command_errf(commands, SEDERR_FNTL, commands->linebuf); |
| | | return -1; |
| | | } |
| | | for (i = commands->nfiles - 1; i >= 0; i--) |
| | | if (strcmp(fnamebuf,commands->fname[i]) == 0) { |
| | | commands->rep->findex = i; |
| | | goto done; |
| | | } |
| | | if (commands->nfiles >= NWFILES) { |
| | | command_errf(commands, SEDERR_TMWFMES); |
| | | return -1; |
| | | } |
| | | commands->fname[commands->nfiles] = |
| | | apr_pstrdup(commands->pool, fnamebuf); |
| | | if (commands->fname[commands->nfiles] == NULL) { |
| | | command_errf(commands, SEDERR_OOMMES); |
| | | return -1; |
| | | } |
| | | commands->rep->findex = commands->nfiles++; |
| | | } |
| | | break; |
| | | |
| | | case 'w': |
| | | commands->rep->command = WCOM; |
| | | if (*commands->cp++ != ' ') { |
| | | command_errf(commands, SEDERR_SMMES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | if (text(commands, fnamebuf, &fnamebuf[APR_PATH_MAX]) == NULL) { |
| | | command_errf(commands, SEDERR_FNTL, commands->linebuf); |
| | | return -1; |
| | | } |
| | | for (i = commands->nfiles - 1; i >= 0; i--) |
| | | if (strcmp(fnamebuf, commands->fname[i]) == 0) { |
| | | commands->rep->findex = i; |
| | | goto done; |
| | | } |
| | | if (commands->nfiles >= NWFILES) { |
| | | command_errf(commands, SEDERR_TMWFMES); |
| | | return -1; |
| | | } |
| | | if ((commands->fname[commands->nfiles] = |
| | | apr_pstrdup(commands->pool, fnamebuf)) == NULL) { |
| | | command_errf(commands, SEDERR_OOMMES); |
| | | return -1; |
| | | } |
| | | |
| | | commands->rep->findex = commands->nfiles++; |
| | | break; |
| | | |
| | | case 'x': |
| | | commands->rep->command = XCOM; |
| | | break; |
| | | |
| | | case 'y': |
| | | commands->rep->command = YCOM; |
| | | commands->sseof = *commands->cp++; |
| | | commands->rep->re1 = p; |
| | | p = ycomp(commands, commands->rep->re1); |
| | | if (p == NULL) |
| | | return -1; |
| | | break; |
| | | } |
| | | done: |
| | | commands->rep = alloc_reptr(commands); |
| | | |
| | | commands->rep->ad1 = p; |
| | | |
| | | if (*commands->cp++ != '\0') { |
| | | if (commands->cp[-1] == ';') |
| | | goto comploop; |
| | | command_errf(commands, SEDERR_CGMES, commands->linebuf); |
| | | return -1; |
| | | } |
| | | } |
| | | commands->rep->command = 0; |
| | | commands->lastre = op; |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | static char *compsub(sed_commands_t *commands, |
| | | sed_comp_args *compargs, char *rhsbuf) |
| | | { |
| | | char *p, *q; |
| | | |
| | | p = rhsbuf; |
| | | q = commands->cp; |
| | | for(;;) { |
| | | if(p > &commands->respace[RESIZE-1]) { |
| | | command_errf(commands, SEDERR_TMMES, commands->linebuf); |
| | | return NULL; |
| | | } |
| | | if((*p = *q++) == '\\') { |
| | | p++; |
| | | if(p > &commands->respace[RESIZE-1]) { |
| | | command_errf(commands, SEDERR_TMMES, commands->linebuf); |
| | | return NULL; |
| | | } |
| | | *p = *q++; |
| | | if(*p > compargs->nbra + '0' && *p <= '9') { |
| | | command_errf(commands, SEDERR_DOORNG, commands->linebuf); |
| | | return NULL; |
| | | } |
| | | p++; |
| | | continue; |
| | | } |
| | | if(*p == commands->sseof) { |
| | | *p++ = '\0'; |
| | | commands->cp = q; |
| | | return(p); |
| | | } |
| | | if(*p++ == '\0') { |
| | | command_errf(commands, SEDERR_EDMOSUB, commands->linebuf); |
| | | return NULL; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * rline |
| | | */ |
| | | static int rline(sed_commands_t *commands, apr_file_t *fin, |
| | | char *lbuf, char *lbend) |
| | | { |
| | | char *p; |
| | | const char *q; |
| | | int t; |
| | | apr_size_t bytes_read; |
| | | |
| | | p = lbuf; |
| | | |
| | | if(commands->eflag) { |
| | | if(commands->eflag > 0) { |
| | | commands->eflag = -1; |
| | | q = commands->earg; |
| | | while((t = *q++) != '\0') { |
| | | if(t == '\n') { |
| | | commands->saveq = q; |
| | | goto out1; |
| | | } |
| | | if (p < lbend) |
| | | *p++ = t; |
| | | if(t == '\\') { |
| | | if((t = *q++) == '\0') { |
| | | commands->saveq = NULL; |
| | | return(-1); |
| | | } |
| | | if (p < lbend) |
| | | *p++ = t; |
| | | } |
| | | } |
| | | commands->saveq = NULL; |
| | | |
| | | out1: |
| | | if (p == lbend) { |
| | | command_errf(commands, SEDERR_CLTL, commands->linebuf); |
| | | return -1; |
| | | } |
| | | *p = '\0'; |
| | | return(1); |
| | | } |
| | | if((q = commands->saveq) == 0) return(-1); |
| | | |
| | | while((t = *q++) != '\0') { |
| | | if(t == '\n') { |
| | | commands->saveq = q; |
| | | goto out2; |
| | | } |
| | | if(p < lbend) |
| | | *p++ = t; |
| | | if(t == '\\') { |
| | | if((t = *q++) == '\0') { |
| | | commands->saveq = NULL; |
| | | return(-1); |
| | | } |
| | | if (p < lbend) |
| | | *p++ = t; |
| | | } |
| | | } |
| | | commands->saveq = NULL; |
| | | |
| | | out2: |
| | | if (p == lbend) { |
| | | command_errf(commands, SEDERR_CLTL, commands->linebuf); |
| | | return -1; |
| | | } |
| | | *p = '\0'; |
| | | return(1); |
| | | } |
| | | |
| | | bytes_read = 1; |
| | | /* XXX extremely inefficient 1 byte reads */ |
| | | while (apr_file_read(fin, &t, &bytes_read) != APR_SUCCESS) { |
| | | if(t == '\n') { |
| | | if (p == lbend) { |
| | | command_errf(commands, SEDERR_CLTL, commands->linebuf); |
| | | return -1; |
| | | } |
| | | *p = '\0'; |
| | | return(1); |
| | | } |
| | | if (p < lbend) |
| | | *p++ = t; |
| | | if(t == '\\') { |
| | | bytes_read = 1; |
| | | if (apr_file_read(fin, &t, &bytes_read) != APR_SUCCESS) { |
| | | return -1; |
| | | } |
| | | if(p < lbend) |
| | | *p++ = t; |
| | | } |
| | | bytes_read = 1; |
| | | } |
| | | return(-1); |
| | | } |
| | | |
| | | /* |
| | | * address |
| | | */ |
| | | static char *address(sed_commands_t *commands, char *expbuf, |
| | | apr_status_t* status) |
| | | { |
| | | char *rcp; |
| | | apr_int64_t lno; |
| | | sed_comp_args compargs; |
| | | |
| | | *status = APR_SUCCESS; |
| | | if(*commands->cp == '$') { |
| | | if (expbuf > &commands->respace[RESIZE-2]) { |
| | | command_errf(commands, SEDERR_TMMES, commands->linebuf); |
| | | *status = APR_EGENERAL; |
| | | return NULL; |
| | | } |
| | | commands->cp++; |
| | | *expbuf++ = CEND; |
| | | *expbuf++ = CCEOF; |
| | | return(expbuf); |
| | | } |
| | | if (*commands->cp == '/' || *commands->cp == '\\' ) { |
| | | if ( *commands->cp == '\\' ) |
| | | commands->cp++; |
| | | commands->sseof = *commands->cp++; |
| | | return(comple(commands, &compargs, (char *) 0, expbuf, commands->reend, |
| | | commands->sseof)); |
| | | } |
| | | |
| | | rcp = commands->cp; |
| | | lno = 0; |
| | | |
| | | while(*rcp >= '0' && *rcp <= '9') |
| | | lno = lno*10 + *rcp++ - '0'; |
| | | |
| | | if(rcp > commands->cp) { |
| | | if (expbuf > &commands->respace[RESIZE-3]) { |
| | | command_errf(commands, SEDERR_TMMES, commands->linebuf); |
| | | *status = APR_EGENERAL; |
| | | return NULL; |
| | | } |
| | | *expbuf++ = CLNUM; |
| | | *expbuf++ = commands->nlno; |
| | | commands->tlno[commands->nlno++] = lno; |
| | | if(commands->nlno >= SED_NLINES) { |
| | | command_errf(commands, SEDERR_TMLNMES, commands->linebuf); |
| | | *status = APR_EGENERAL; |
| | | return NULL; |
| | | } |
| | | *expbuf++ = CCEOF; |
| | | commands->cp = rcp; |
| | | return(expbuf); |
| | | } |
| | | return(NULL); |
| | | } |
| | | |
| | | /* |
| | | * text |
| | | */ |
| | | static char *text(sed_commands_t *commands, char *textbuf, char *tbend) |
| | | { |
| | | char *p, *q; |
| | | |
| | | p = textbuf; |
| | | q = commands->cp; |
| | | #ifndef S5EMUL |
| | | /* |
| | | * Strip off indentation from text to be inserted. |
| | | */ |
| | | while(*q == '\t' || *q == ' ') q++; |
| | | #endif |
| | | for(;;) { |
| | | |
| | | if(p > tbend) |
| | | return(NULL); /* overflowed the buffer */ |
| | | if((*p = *q++) == '\\') |
| | | *p = *q++; |
| | | if(*p == '\0') { |
| | | commands->cp = --q; |
| | | return(++p); |
| | | } |
| | | #ifndef S5EMUL |
| | | /* |
| | | * Strip off indentation from text to be inserted. |
| | | */ |
| | | if(*p == '\n') { |
| | | while(*q == '\t' || *q == ' ') q++; |
| | | } |
| | | #endif |
| | | p++; |
| | | } |
| | | } |
| | | |
| | | |
| | | /* |
| | | * search |
| | | */ |
| | | static sed_label_t *search(sed_commands_t *commands) |
| | | { |
| | | sed_label_t *rp; |
| | | sed_label_t *ptr; |
| | | |
| | | rp = commands->labtab; |
| | | ptr = commands->lab; |
| | | while (rp < ptr) { |
| | | if (strcmp(rp->asc, ptr->asc) == 0) |
| | | return rp; |
| | | rp++; |
| | | } |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | /* |
| | | * ycomp |
| | | */ |
| | | static char *ycomp(sed_commands_t *commands, char *expbuf) |
| | | { |
| | | char c; |
| | | int cint; /* integer value of char c */ |
| | | char *ep, *tsp; |
| | | int i; |
| | | char *sp; |
| | | |
| | | ep = expbuf; |
| | | if(ep + 0377 > &commands->respace[RESIZE-1]) { |
| | | command_errf(commands, SEDERR_TMMES, commands->linebuf); |
| | | return NULL; |
| | | } |
| | | sp = commands->cp; |
| | | for(tsp = commands->cp; (c = *tsp) != commands->sseof; tsp++) { |
| | | if(c == '\\') |
| | | tsp++; |
| | | if(c == '\0' || c == '\n') { |
| | | command_errf(commands, SEDERR_EDMOSTR, commands->linebuf); |
| | | return NULL; |
| | | } |
| | | } |
| | | tsp++; |
| | | memset(ep, 0, 0400); |
| | | |
| | | while((c = *sp++) != commands->sseof) { |
| | | c &= 0377; |
| | | if(c == '\\' && *sp == 'n') { |
| | | sp++; |
| | | c = '\n'; |
| | | } |
| | | cint = (int) c; |
| | | if((ep[cint] = *tsp++) == '\\' && *tsp == 'n') { |
| | | ep[cint] = '\n'; |
| | | tsp++; |
| | | } |
| | | if(ep[cint] == commands->sseof || ep[cint] == '\0') { |
| | | command_errf(commands, SEDERR_TSNTSS, commands->linebuf); |
| | | } |
| | | } |
| | | if(*tsp != commands->sseof) { |
| | | if(*tsp == '\0') { |
| | | command_errf(commands, SEDERR_EDMOSTR, commands->linebuf); |
| | | } |
| | | else { |
| | | command_errf(commands, SEDERR_TSNTSS, commands->linebuf); |
| | | } |
| | | return NULL; |
| | | } |
| | | commands->cp = ++tsp; |
| | | |
| | | for(i = 0; i < 0400; i++) |
| | | if(ep[i] == 0) |
| | | ep[i] = i; |
| | | |
| | | return(ep + 0400); |
| | | } |
| | | |
| | | /* |
| | | * comple |
| | | */ |
| | | static char *comple(sed_commands_t *commands, sed_comp_args *compargs, |
| | | char *x1, char *ep, char *x3, char x4) |
| | | { |
| | | char *p; |
| | | |
| | | p = sed_compile(commands, compargs, ep + 1, x3, x4); |
| | | if(p == ep + 1) |
| | | return(ep); |
| | | *ep = compargs->circf; |
| | | return(p); |
| | | } |
| | | |
| | | /* |
| | | * alloc_reptr |
| | | */ |
| | | static sed_reptr_t *alloc_reptr(sed_commands_t *commands) |
| | | { |
| | | sed_reptr_t *var; |
| | | |
| | | var = apr_pcalloc(commands->pool, sizeof(sed_reptr_t)); |
| | | if (var == NULL) { |
| | | command_errf(commands, SEDERR_OOMMES); |
| | | return 0; |
| | | } |
| | | |
| | | var->nrep = commands->nrep; |
| | | var->findex = -1; |
| | | commands->nrep++; |
| | | |
| | | if (commands->ptrspace == NULL) |
| | | commands->ptrspace = var; |
| | | else |
| | | commands->ptrend->next = var; |
| | | |
| | | commands->ptrend = var; |
| | | commands->labtab->address = var; |
| | | return var; |
| | | } |
| | | |
| | | |
New file |
| | |
| | | /* |
| | | * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved. |
| | | * Use is subject to license terms. |
| | | * |
| | | * Copyright (c) 1984 AT&T |
| | | * All Rights Reserved |
| | | * |
| | | * Licensed 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 "apr.h" |
| | | #include "apr_lib.h" |
| | | #include "libsed.h" |
| | | #include "sed.h" |
| | | #include "apr_strings.h" |
| | | #include "regexp.h" |
| | | |
| | | char *trans[040] = { |
| | | "\\01", |
| | | "\\02", |
| | | "\\03", |
| | | "\\04", |
| | | "\\05", |
| | | "\\06", |
| | | "\\07", |
| | | "\\10", |
| | | "\\11", |
| | | "\n", |
| | | "\\13", |
| | | "\\14", |
| | | "\\15", |
| | | "\\16", |
| | | "\\17", |
| | | "\\20", |
| | | "\\21", |
| | | "\\22", |
| | | "\\23", |
| | | "\\24", |
| | | "\\25", |
| | | "\\26", |
| | | "\\27", |
| | | "\\30", |
| | | "\\31", |
| | | "\\32", |
| | | "\\33", |
| | | "\\34", |
| | | "\\35", |
| | | "\\36", |
| | | "\\37" |
| | | }; |
| | | char rub[] = {"\\177"}; |
| | | |
| | | extern int sed_step(char *p1, char *p2, int circf, step_vars_storage *vars); |
| | | static int substitute(sed_eval_t *eval, sed_reptr_t *ipc, |
| | | step_vars_storage *step_vars); |
| | | static apr_status_t execute(sed_eval_t *eval); |
| | | static int match(sed_eval_t *eval, char *expbuf, int gf, |
| | | step_vars_storage *step_vars); |
| | | static apr_status_t dosub(sed_eval_t *eval, char *rhsbuf, int n, |
| | | step_vars_storage *step_vars); |
| | | static char *place(sed_eval_t *eval, char *asp, char *al1, char *al2); |
| | | static apr_status_t command(sed_eval_t *eval, sed_reptr_t *ipc, |
| | | step_vars_storage *step_vars); |
| | | static apr_status_t wline(sed_eval_t *eval, char *buf, int sz); |
| | | static apr_status_t arout(sed_eval_t *eval); |
| | | |
| | | static void eval_errf(sed_eval_t *eval, const char *fmt, ...) |
| | | { |
| | | if (eval->errfn && eval->pool) { |
| | | va_list args; |
| | | const char* error; |
| | | va_start(args, fmt); |
| | | error = apr_pvsprintf(eval->pool, fmt, args); |
| | | eval->errfn(eval->data, error); |
| | | va_end(args); |
| | | } |
| | | } |
| | | |
| | | #define INIT_BUF_SIZE 1024 |
| | | |
| | | /* |
| | | * grow_buffer |
| | | */ |
| | | static void grow_buffer(apr_pool_t *pool, char **buffer, |
| | | char **spend, unsigned int *cursize, |
| | | unsigned int newsize) |
| | | { |
| | | char* newbuffer = NULL; |
| | | int spendsize = 0; |
| | | if (*cursize >= newsize) |
| | | return; |
| | | /* Avoid number of times realloc is called. It could cause huge memory |
| | | * requirement if line size is huge e.g 2 MB */ |
| | | if (newsize < *cursize * 2) { |
| | | newsize = *cursize * 2; |
| | | } |
| | | |
| | | /* Align it to 4 KB boundary */ |
| | | newsize = (newsize + ((1 << 12) - 1)) & ~((1 << 12) -1); |
| | | newbuffer = apr_pcalloc(pool, newsize); |
| | | if (*spend && *buffer && (*cursize > 0)) { |
| | | spendsize = *spend - *buffer; |
| | | } |
| | | if ((*cursize > 0) && *buffer) { |
| | | memcpy(newbuffer, *buffer, *cursize); |
| | | } |
| | | *buffer = newbuffer; |
| | | *cursize = newsize; |
| | | if (spend != buffer) { |
| | | *spend = *buffer + spendsize; |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * grow_line_buffer |
| | | */ |
| | | static void grow_line_buffer(sed_eval_t *eval, int newsize) |
| | | { |
| | | grow_buffer(eval->pool, &eval->linebuf, &eval->lspend, |
| | | &eval->lsize, newsize); |
| | | } |
| | | |
| | | /* |
| | | * grow_hold_buffer |
| | | */ |
| | | static void grow_hold_buffer(sed_eval_t *eval, int newsize) |
| | | { |
| | | grow_buffer(eval->pool, &eval->holdbuf, &eval->hspend, |
| | | &eval->hsize, newsize); |
| | | } |
| | | |
| | | /* |
| | | * grow_gen_buffer |
| | | */ |
| | | static void grow_gen_buffer(sed_eval_t *eval, int newsize, |
| | | char **gspend) |
| | | { |
| | | if (gspend == NULL) { |
| | | gspend = &eval->genbuf; |
| | | } |
| | | grow_buffer(eval->pool, &eval->genbuf, gspend, |
| | | &eval->gsize, newsize); |
| | | eval->lcomend = &eval->genbuf[71]; |
| | | } |
| | | |
| | | /* |
| | | * appendmem_to_linebuf |
| | | */ |
| | | static void appendmem_to_linebuf(sed_eval_t *eval, const char* sz, int len) |
| | | { |
| | | unsigned int reqsize = (eval->lspend - eval->linebuf) + len; |
| | | if (eval->lsize < reqsize) { |
| | | grow_line_buffer(eval, reqsize); |
| | | } |
| | | memcpy(eval->lspend, sz, len); |
| | | eval->lspend += len; |
| | | } |
| | | |
| | | /* |
| | | * append_to_linebuf |
| | | */ |
| | | static void append_to_linebuf(sed_eval_t *eval, const char* sz) |
| | | { |
| | | int len = strlen(sz); |
| | | /* Copy string including null character */ |
| | | appendmem_to_linebuf(eval, sz, len + 1); |
| | | --eval->lspend; /* lspend will now point to NULL character */ |
| | | } |
| | | |
| | | /* |
| | | * copy_to_linebuf |
| | | */ |
| | | static void copy_to_linebuf(sed_eval_t *eval, const char* sz) |
| | | { |
| | | eval->lspend = eval->linebuf; |
| | | append_to_linebuf(eval, sz); |
| | | } |
| | | |
| | | /* |
| | | * append_to_holdbuf |
| | | */ |
| | | static void append_to_holdbuf(sed_eval_t *eval, const char* sz) |
| | | { |
| | | int len = strlen(sz); |
| | | unsigned int reqsize = (eval->hspend - eval->holdbuf) + len + 1; |
| | | if (eval->hsize <= reqsize) { |
| | | grow_hold_buffer(eval, reqsize); |
| | | } |
| | | strcpy(eval->hspend, sz); |
| | | /* hspend will now point to NULL character */ |
| | | eval->hspend += len; |
| | | } |
| | | |
| | | /* |
| | | * copy_to_holdbuf |
| | | */ |
| | | static void copy_to_holdbuf(sed_eval_t *eval, const char* sz) |
| | | { |
| | | eval->hspend = eval->holdbuf; |
| | | append_to_holdbuf(eval, sz); |
| | | } |
| | | |
| | | /* |
| | | * append_to_genbuf |
| | | */ |
| | | static void append_to_genbuf(sed_eval_t *eval, const char* sz, char **gspend) |
| | | { |
| | | int len = strlen(sz); |
| | | unsigned int reqsize = (*gspend - eval->genbuf) + len + 1; |
| | | if (eval->gsize < reqsize) { |
| | | grow_gen_buffer(eval, reqsize, gspend); |
| | | } |
| | | strcpy(*gspend, sz); |
| | | /* *gspend will now point to NULL character */ |
| | | *gspend += len; |
| | | } |
| | | |
| | | /* |
| | | * copy_to_genbuf |
| | | */ |
| | | static void copy_to_genbuf(sed_eval_t *eval, const char* sz) |
| | | { |
| | | int len = strlen(sz); |
| | | unsigned int reqsize = len + 1; |
| | | if (eval->gsize < reqsize) { |
| | | grow_gen_buffer(eval, reqsize, NULL); |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * sed_init_eval |
| | | */ |
| | | apr_status_t sed_init_eval(sed_eval_t *eval, sed_commands_t *commands, sed_err_fn_t *errfn, void *data, sed_write_fn_t *writefn, apr_pool_t* p) |
| | | { |
| | | memset(eval, 0, sizeof(*eval)); |
| | | eval->pool = p; |
| | | eval->writefn = writefn; |
| | | return sed_reset_eval(eval, commands, errfn, data); |
| | | } |
| | | |
| | | /* |
| | | * sed_reset_eval |
| | | */ |
| | | apr_status_t sed_reset_eval(sed_eval_t *eval, sed_commands_t *commands, sed_err_fn_t *errfn, void *data) |
| | | { |
| | | int i; |
| | | |
| | | eval->errfn = errfn; |
| | | eval->data = data; |
| | | |
| | | eval->commands = commands; |
| | | |
| | | eval->lnum = 0; |
| | | eval->fout = NULL; |
| | | |
| | | if (eval->linebuf == NULL) { |
| | | eval->lsize = INIT_BUF_SIZE; |
| | | eval->linebuf = apr_pcalloc(eval->pool, eval->lsize); |
| | | } |
| | | if (eval->holdbuf == NULL) { |
| | | eval->hsize = INIT_BUF_SIZE; |
| | | eval->holdbuf = apr_pcalloc(eval->pool, eval->hsize); |
| | | } |
| | | if (eval->genbuf == NULL) { |
| | | eval->gsize = INIT_BUF_SIZE; |
| | | eval->genbuf = apr_pcalloc(eval->pool, eval->gsize); |
| | | } |
| | | eval->lspend = eval->linebuf; |
| | | eval->hspend = eval->holdbuf; |
| | | eval->lcomend = &eval->genbuf[71]; |
| | | |
| | | for (i = 0; i < sizeof(eval->abuf) / sizeof(eval->abuf[0]); i++) |
| | | eval->abuf[i] = NULL; |
| | | eval->aptr = eval->abuf; |
| | | eval->pending = NULL; |
| | | eval->inar = apr_pcalloc(eval->pool, commands->nrep * sizeof(unsigned char)); |
| | | eval->nrep = commands->nrep; |
| | | |
| | | eval->dolflag = 0; |
| | | eval->sflag = 0; |
| | | eval->jflag = 0; |
| | | eval->delflag = 0; |
| | | eval->lreadyflag = 0; |
| | | eval->quitflag = 0; |
| | | eval->finalflag = 1; /* assume we're evaluating only one file/stream */ |
| | | eval->numpass = 0; |
| | | eval->nullmatch = 0; |
| | | eval->col = 0; |
| | | |
| | | for (i = 0; i < commands->nfiles; i++) { |
| | | const char* filename = commands->fname[i]; |
| | | if (apr_file_open(&eval->fcode[i], filename, |
| | | APR_WRITE | APR_CREATE, APR_OS_DEFAULT, |
| | | eval->pool) != APR_SUCCESS) { |
| | | eval_errf(eval, SEDERR_COMES, filename); |
| | | return APR_EGENERAL; |
| | | } |
| | | } |
| | | |
| | | return APR_SUCCESS; |
| | | } |
| | | |
| | | /* |
| | | * sed_destroy_eval |
| | | */ |
| | | void sed_destroy_eval(sed_eval_t *eval) |
| | | { |
| | | int i; |
| | | /* eval->linebuf, eval->holdbuf, eval->genbuf and eval->inar are allocated |
| | | * on pool. It will be freed when pool will be freed */ |
| | | for (i = 0; i < eval->commands->nfiles; i++) { |
| | | if (eval->fcode[i] != NULL) { |
| | | apr_file_close(eval->fcode[i]); |
| | | eval->fcode[i] = NULL; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * sed_eval_file |
| | | */ |
| | | apr_status_t sed_eval_file(sed_eval_t *eval, apr_file_t *fin, void *fout) |
| | | { |
| | | for (;;) { |
| | | char buf[1024]; |
| | | apr_size_t read_bytes = 0; |
| | | |
| | | read_bytes = sizeof(buf); |
| | | if (apr_file_read(fin, buf, &read_bytes) != APR_SUCCESS) |
| | | break; |
| | | |
| | | if (sed_eval_buffer(eval, buf, read_bytes, fout) != APR_SUCCESS) |
| | | return APR_EGENERAL; |
| | | |
| | | if (eval->quitflag) |
| | | return APR_SUCCESS; |
| | | } |
| | | |
| | | return sed_finalize_eval(eval, fout); |
| | | } |
| | | |
| | | /* |
| | | * sed_eval_buffer |
| | | */ |
| | | apr_status_t sed_eval_buffer(sed_eval_t *eval, const char *buf, int bufsz, void *fout) |
| | | { |
| | | apr_status_t rv; |
| | | |
| | | if (eval->quitflag) |
| | | return APR_SUCCESS; |
| | | |
| | | if (!sed_canbe_finalized(eval->commands)) { |
| | | /* Commands were not finalized properly. */ |
| | | const char* error = sed_get_finalize_error(eval->commands, eval->pool); |
| | | if (error) { |
| | | eval_errf(eval, error); |
| | | return APR_EGENERAL; |
| | | } |
| | | } |
| | | |
| | | eval->fout = fout; |
| | | |
| | | /* Process leftovers */ |
| | | if (bufsz && eval->lreadyflag) { |
| | | eval->lreadyflag = 0; |
| | | eval->lspend--; |
| | | *eval->lspend = '\0'; |
| | | rv = execute(eval); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | } |
| | | |
| | | while (bufsz) { |
| | | char *n; |
| | | int llen; |
| | | |
| | | n = memchr(buf, '\n', bufsz); |
| | | if (n == NULL) |
| | | break; |
| | | |
| | | llen = n - buf; |
| | | if (llen == bufsz - 1) { |
| | | /* This might be the last line; delay its processing */ |
| | | eval->lreadyflag = 1; |
| | | break; |
| | | } |
| | | |
| | | appendmem_to_linebuf(eval, buf, llen + 1); |
| | | --eval->lspend; |
| | | /* replace new line character with NULL */ |
| | | *eval->lspend = '\0'; |
| | | buf += (llen + 1); |
| | | bufsz -= (llen + 1); |
| | | rv = execute(eval); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | if (eval->quitflag) |
| | | break; |
| | | } |
| | | |
| | | /* Save the leftovers for later */ |
| | | if (bufsz) { |
| | | appendmem_to_linebuf(eval, buf, bufsz); |
| | | } |
| | | |
| | | return APR_SUCCESS; |
| | | } |
| | | |
| | | /* |
| | | * sed_finalize_eval |
| | | */ |
| | | apr_status_t sed_finalize_eval(sed_eval_t *eval, void *fout) |
| | | { |
| | | if (eval->quitflag) |
| | | return APR_SUCCESS; |
| | | |
| | | if (eval->finalflag) |
| | | eval->dolflag = 1; |
| | | |
| | | eval->fout = fout; |
| | | |
| | | /* Process leftovers */ |
| | | if (eval->lspend > eval->linebuf) { |
| | | apr_status_t rv; |
| | | |
| | | if (eval->lreadyflag) { |
| | | eval->lreadyflag = 0; |
| | | eval->lspend--; |
| | | } else { |
| | | /* Code can probably reach here when last character in output |
| | | * buffer is not a newline. |
| | | */ |
| | | /* Assure space for NULL */ |
| | | append_to_linebuf(eval, ""); |
| | | } |
| | | |
| | | *eval->lspend = '\0'; |
| | | rv = execute(eval); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | } |
| | | |
| | | eval->quitflag = 1; |
| | | |
| | | return APR_SUCCESS; |
| | | } |
| | | |
| | | /* |
| | | * execute |
| | | */ |
| | | static apr_status_t execute(sed_eval_t *eval) |
| | | { |
| | | sed_reptr_t *ipc = eval->commands->ptrspace; |
| | | step_vars_storage step_vars; |
| | | apr_status_t rv = APR_SUCCESS; |
| | | |
| | | eval->lnum++; |
| | | |
| | | eval->sflag = 0; |
| | | |
| | | if (eval->pending) { |
| | | ipc = eval->pending; |
| | | eval->pending = NULL; |
| | | } |
| | | |
| | | memset(&step_vars, 0, sizeof(step_vars)); |
| | | |
| | | while (ipc->command) { |
| | | char *p1; |
| | | char *p2; |
| | | int c; |
| | | |
| | | p1 = ipc->ad1; |
| | | p2 = ipc->ad2; |
| | | |
| | | if (p1) { |
| | | |
| | | if (eval->inar[ipc->nrep]) { |
| | | if (*p2 == CEND) { |
| | | p1 = 0; |
| | | } else if (*p2 == CLNUM) { |
| | | c = (unsigned char)p2[1]; |
| | | if (eval->lnum > eval->commands->tlno[c]) { |
| | | eval->inar[ipc->nrep] = 0; |
| | | if (ipc->negfl) |
| | | goto yes; |
| | | ipc = ipc->next; |
| | | continue; |
| | | } |
| | | if (eval->lnum == eval->commands->tlno[c]) { |
| | | eval->inar[ipc->nrep] = 0; |
| | | } |
| | | } else if (match(eval, p2, 0, &step_vars)) { |
| | | eval->inar[ipc->nrep] = 0; |
| | | } |
| | | } else if (*p1 == CEND) { |
| | | if (!eval->dolflag) { |
| | | if (ipc->negfl) |
| | | goto yes; |
| | | ipc = ipc->next; |
| | | continue; |
| | | } |
| | | } else if (*p1 == CLNUM) { |
| | | c = (unsigned char)p1[1]; |
| | | if (eval->lnum != eval->commands->tlno[c]) { |
| | | if (ipc->negfl) |
| | | goto yes; |
| | | ipc = ipc->next; |
| | | continue; |
| | | } |
| | | if (p2) |
| | | eval->inar[ipc->nrep] = 1; |
| | | } else if (match(eval, p1, 0, &step_vars)) { |
| | | if (p2) |
| | | eval->inar[ipc->nrep] = 1; |
| | | } else { |
| | | if (ipc->negfl) |
| | | goto yes; |
| | | ipc = ipc->next; |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | if (ipc->negfl) { |
| | | ipc = ipc->next; |
| | | continue; |
| | | } |
| | | |
| | | yes: |
| | | rv = command(eval, ipc, &step_vars); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | |
| | | if (eval->quitflag) |
| | | return APR_SUCCESS; |
| | | |
| | | if (eval->pending) |
| | | return APR_SUCCESS; |
| | | |
| | | if (eval->delflag) |
| | | break; |
| | | |
| | | if (eval->jflag) { |
| | | eval->jflag = 0; |
| | | if ((ipc = ipc->lb1) == 0) { |
| | | ipc = eval->commands->ptrspace; |
| | | break; |
| | | } |
| | | } else |
| | | ipc = ipc->next; |
| | | } |
| | | |
| | | if (!eval->commands->nflag && !eval->delflag) { |
| | | rv = wline(eval, eval->linebuf, eval->lspend - eval->linebuf); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | } |
| | | |
| | | if (eval->aptr > eval->abuf) |
| | | rv = arout(eval); |
| | | |
| | | eval->delflag = 0; |
| | | |
| | | eval->lspend = eval->linebuf; |
| | | |
| | | return rv; |
| | | } |
| | | |
| | | /* |
| | | * match |
| | | */ |
| | | static int match(sed_eval_t *eval, char *expbuf, int gf, |
| | | step_vars_storage *step_vars) |
| | | { |
| | | char *p1; |
| | | int circf; |
| | | |
| | | if(gf) { |
| | | if(*expbuf) return(0); |
| | | step_vars->locs = p1 = step_vars->loc2; |
| | | } else { |
| | | p1 = eval->linebuf; |
| | | step_vars->locs = 0; |
| | | } |
| | | |
| | | circf = *expbuf++; |
| | | return(sed_step(p1, expbuf, circf, step_vars)); |
| | | } |
| | | |
| | | /* |
| | | * substitute |
| | | */ |
| | | static int substitute(sed_eval_t *eval, sed_reptr_t *ipc, |
| | | step_vars_storage *step_vars) |
| | | { |
| | | if(match(eval, ipc->re1, 0, step_vars) == 0) return(0); |
| | | |
| | | eval->numpass = 0; |
| | | eval->sflag = 0; /* Flags if any substitution was made */ |
| | | if (dosub(eval, ipc->rhs, ipc->gfl, step_vars) != APR_SUCCESS) |
| | | return -1; |
| | | |
| | | if(ipc->gfl) { |
| | | while(*step_vars->loc2) { |
| | | if(match(eval, ipc->re1, 1, step_vars) == 0) break; |
| | | if (dosub(eval, ipc->rhs, ipc->gfl, step_vars) != APR_SUCCESS) |
| | | return -1; |
| | | } |
| | | } |
| | | return(eval->sflag); |
| | | } |
| | | |
| | | /* |
| | | * dosub |
| | | */ |
| | | static apr_status_t dosub(sed_eval_t *eval, char *rhsbuf, int n, |
| | | step_vars_storage *step_vars) |
| | | { |
| | | char *lp, *sp, *rp; |
| | | int c; |
| | | apr_status_t rv = APR_SUCCESS; |
| | | |
| | | if(n > 0 && n < 999) { |
| | | eval->numpass++; |
| | | if(n != eval->numpass) return APR_SUCCESS; |
| | | } |
| | | eval->sflag = 1; |
| | | lp = eval->linebuf; |
| | | sp = eval->genbuf; |
| | | rp = rhsbuf; |
| | | sp = place(eval, sp, lp, step_vars->loc1); |
| | | while ((c = *rp++) != 0) { |
| | | if (c == '&') { |
| | | sp = place(eval, sp, step_vars->loc1, step_vars->loc2); |
| | | if (sp == NULL) |
| | | return APR_EGENERAL; |
| | | } |
| | | else if (c == '\\') { |
| | | c = *rp++; |
| | | if (c >= '1' && c < NBRA+'1') { |
| | | sp = place(eval, sp, step_vars->braslist[c-'1'], |
| | | step_vars->braelist[c-'1']); |
| | | if (sp == NULL) |
| | | return APR_EGENERAL; |
| | | } |
| | | else |
| | | *sp++ = c; |
| | | } else |
| | | *sp++ = c; |
| | | if (sp >= eval->genbuf + eval->gsize) { |
| | | /* expand genbuf and set the sp appropriately */ |
| | | grow_gen_buffer(eval, eval->gsize + 1024, &sp); |
| | | } |
| | | } |
| | | lp = step_vars->loc2; |
| | | step_vars->loc2 = sp - eval->genbuf + eval->linebuf; |
| | | append_to_genbuf(eval, lp, &sp); |
| | | copy_to_linebuf(eval, eval->genbuf); |
| | | return rv; |
| | | } |
| | | |
| | | /* |
| | | * place |
| | | */ |
| | | static char *place(sed_eval_t *eval, char *asp, char *al1, char *al2) |
| | | { |
| | | char *sp = asp; |
| | | int n = al2 - al1; |
| | | unsigned int reqsize = (sp - eval->genbuf) + n + 1; |
| | | |
| | | if (eval->gsize < reqsize) { |
| | | grow_gen_buffer(eval, reqsize, &sp); |
| | | } |
| | | memcpy(sp, al1, n); |
| | | return sp + n; |
| | | } |
| | | |
| | | /* |
| | | * command |
| | | */ |
| | | static apr_status_t command(sed_eval_t *eval, sed_reptr_t *ipc, |
| | | step_vars_storage *step_vars) |
| | | { |
| | | int i; |
| | | char *p1, *p2, *p3; |
| | | int length; |
| | | char sz[32]; /* 32 bytes enough to store 64 bit integer in decimal */ |
| | | apr_status_t rv = APR_SUCCESS; |
| | | |
| | | |
| | | switch(ipc->command) { |
| | | |
| | | case ACOM: |
| | | if(eval->aptr >= &eval->abuf[SED_ABUFSIZE]) { |
| | | eval_errf(eval, SEDERR_TMAMES, eval->lnum); |
| | | } else { |
| | | *eval->aptr++ = ipc; |
| | | *eval->aptr = NULL; |
| | | } |
| | | break; |
| | | |
| | | case CCOM: |
| | | eval->delflag = 1; |
| | | if(!eval->inar[ipc->nrep] || eval->dolflag) { |
| | | for (p1 = ipc->re1; *p1; p1++) |
| | | ; |
| | | rv = wline(eval, ipc->re1, p1 - ipc->re1); |
| | | } |
| | | break; |
| | | case DCOM: |
| | | eval->delflag++; |
| | | break; |
| | | case CDCOM: |
| | | p1 = eval->linebuf; |
| | | |
| | | while(*p1 != '\n') { |
| | | if(*p1++ == 0) { |
| | | eval->delflag++; |
| | | return APR_SUCCESS; |
| | | } |
| | | } |
| | | |
| | | p1++; |
| | | copy_to_linebuf(eval, p1); |
| | | eval->jflag++; |
| | | break; |
| | | |
| | | case EQCOM: |
| | | length = apr_snprintf(sz, sizeof(sz), "%d", (int) eval->lnum); |
| | | rv = wline(eval, sz, length); |
| | | break; |
| | | |
| | | case GCOM: |
| | | copy_to_linebuf(eval, eval->holdbuf); |
| | | break; |
| | | |
| | | case CGCOM: |
| | | append_to_linebuf(eval, "\n"); |
| | | append_to_linebuf(eval, eval->holdbuf); |
| | | break; |
| | | |
| | | case HCOM: |
| | | copy_to_holdbuf(eval, eval->linebuf); |
| | | break; |
| | | |
| | | case CHCOM: |
| | | append_to_holdbuf(eval, "\n"); |
| | | append_to_holdbuf(eval, eval->linebuf); |
| | | break; |
| | | |
| | | case ICOM: |
| | | for (p1 = ipc->re1; *p1; p1++); |
| | | rv = wline(eval, ipc->re1, p1 - ipc->re1); |
| | | break; |
| | | |
| | | case BCOM: |
| | | eval->jflag = 1; |
| | | break; |
| | | |
| | | |
| | | case LCOM: |
| | | p1 = eval->linebuf; |
| | | p2 = eval->genbuf; |
| | | eval->genbuf[72] = 0; |
| | | while(*p1) |
| | | if((unsigned char)*p1 >= 040) { |
| | | if(*p1 == 0177) { |
| | | p3 = rub; |
| | | while ((*p2++ = *p3++) != 0) |
| | | if(p2 >= eval->lcomend) { |
| | | *p2 = '\\'; |
| | | rv = wline(eval, eval->genbuf, |
| | | strlen(eval->genbuf)); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | p2 = eval->genbuf; |
| | | } |
| | | p2--; |
| | | p1++; |
| | | continue; |
| | | } |
| | | if(!isprint(*p1 & 0377)) { |
| | | *p2++ = '\\'; |
| | | if(p2 >= eval->lcomend) { |
| | | *p2 = '\\'; |
| | | rv = wline(eval, eval->genbuf, |
| | | strlen(eval->genbuf)); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | p2 = eval->genbuf; |
| | | } |
| | | *p2++ = (*p1 >> 6) + '0'; |
| | | if(p2 >= eval->lcomend) { |
| | | *p2 = '\\'; |
| | | rv = wline(eval, eval->genbuf, |
| | | strlen(eval->genbuf)); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | p2 = eval->genbuf; |
| | | } |
| | | *p2++ = ((*p1 >> 3) & 07) + '0'; |
| | | if(p2 >= eval->lcomend) { |
| | | *p2 = '\\'; |
| | | rv = wline(eval, eval->genbuf, |
| | | strlen(eval->genbuf)); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | p2 = eval->genbuf; |
| | | } |
| | | *p2++ = (*p1++ & 07) + '0'; |
| | | if(p2 >= eval->lcomend) { |
| | | *p2 = '\\'; |
| | | rv = wline(eval, eval->genbuf, |
| | | strlen(eval->genbuf)); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | p2 = eval->genbuf; |
| | | } |
| | | } else { |
| | | *p2++ = *p1++; |
| | | if(p2 >= eval->lcomend) { |
| | | *p2 = '\\'; |
| | | rv = wline(eval, eval->genbuf, |
| | | strlen(eval->genbuf)); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | p2 = eval->genbuf; |
| | | } |
| | | } |
| | | } else { |
| | | p3 = trans[(unsigned char)*p1-1]; |
| | | while ((*p2++ = *p3++) != 0) |
| | | if(p2 >= eval->lcomend) { |
| | | *p2 = '\\'; |
| | | rv = wline(eval, eval->genbuf, |
| | | strlen(eval->genbuf)); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | p2 = eval->genbuf; |
| | | } |
| | | p2--; |
| | | p1++; |
| | | } |
| | | *p2 = 0; |
| | | rv = wline(eval, eval->genbuf, strlen(eval->genbuf)); |
| | | break; |
| | | |
| | | case NCOM: |
| | | if(!eval->commands->nflag) { |
| | | rv = wline(eval, eval->linebuf, eval->lspend - eval->linebuf); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | } |
| | | |
| | | if(eval->aptr > eval->abuf) { |
| | | rv = arout(eval); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | } |
| | | eval->lspend = eval->linebuf; |
| | | eval->pending = ipc->next; |
| | | |
| | | break; |
| | | case CNCOM: |
| | | if(eval->aptr > eval->abuf) { |
| | | rv = arout(eval); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | } |
| | | append_to_linebuf(eval, "\n"); |
| | | eval->pending = ipc->next; |
| | | break; |
| | | |
| | | case PCOM: |
| | | rv = wline(eval, eval->linebuf, eval->lspend - eval->linebuf); |
| | | break; |
| | | case CPCOM: |
| | | for (p1 = eval->linebuf; *p1 != '\n' && *p1 != '\0'; p1++); |
| | | rv = wline(eval, eval->linebuf, p1 - eval->linebuf); |
| | | break; |
| | | |
| | | case QCOM: |
| | | if (!eval->commands->nflag) { |
| | | rv = wline(eval, eval->linebuf, eval->lspend - eval->linebuf); |
| | | if (rv != APR_SUCCESS) |
| | | break; |
| | | } |
| | | |
| | | if(eval->aptr > eval->abuf) { |
| | | rv = arout(eval); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | } |
| | | |
| | | eval->quitflag = 1; |
| | | break; |
| | | case RCOM: |
| | | if(eval->aptr >= &eval->abuf[SED_ABUFSIZE]) { |
| | | eval_errf(eval, SEDERR_TMRMES, eval->lnum); |
| | | } else { |
| | | *eval->aptr++ = ipc; |
| | | *eval->aptr = NULL; |
| | | } |
| | | break; |
| | | |
| | | case SCOM: |
| | | i = substitute(eval, ipc, step_vars); |
| | | if (i == -1) { |
| | | return APR_EGENERAL; |
| | | } |
| | | if(ipc->pfl && eval->commands->nflag && i) { |
| | | if(ipc->pfl == 1) { |
| | | rv = wline(eval, eval->linebuf, eval->lspend - |
| | | eval->linebuf); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | } else { |
| | | for (p1 = eval->linebuf; *p1 != '\n' && *p1 != '\0'; p1++); |
| | | rv = wline(eval, eval->linebuf, p1 - eval->linebuf); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | } |
| | | } |
| | | if (i && (ipc->findex >= 0) && eval->fcode[ipc->findex]) |
| | | apr_file_printf(eval->fcode[ipc->findex], "%s\n", |
| | | eval->linebuf); |
| | | break; |
| | | |
| | | case TCOM: |
| | | if(eval->sflag == 0) break; |
| | | eval->sflag = 0; |
| | | eval->jflag = 1; |
| | | break; |
| | | |
| | | case WCOM: |
| | | if (ipc->findex >= 0) |
| | | apr_file_printf(eval->fcode[ipc->findex], "%s\n", |
| | | eval->linebuf); |
| | | break; |
| | | case XCOM: |
| | | copy_to_genbuf(eval, eval->linebuf); |
| | | copy_to_linebuf(eval, eval->holdbuf); |
| | | copy_to_holdbuf(eval, eval->genbuf); |
| | | break; |
| | | |
| | | case YCOM: |
| | | p1 = eval->linebuf; |
| | | p2 = ipc->re1; |
| | | while((*p1 = p2[(unsigned char)*p1]) != 0) p1++; |
| | | break; |
| | | } |
| | | return rv; |
| | | } |
| | | |
| | | /* |
| | | * arout |
| | | */ |
| | | static apr_status_t arout(sed_eval_t *eval) |
| | | { |
| | | apr_status_t rv = APR_SUCCESS; |
| | | eval->aptr = eval->abuf - 1; |
| | | while (*++eval->aptr) { |
| | | if ((*eval->aptr)->command == ACOM) { |
| | | char *p1; |
| | | |
| | | for (p1 = (*eval->aptr)->re1; *p1; p1++); |
| | | rv = wline(eval, (*eval->aptr)->re1, p1 - (*eval->aptr)->re1); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | } else { |
| | | apr_file_t *fi = NULL; |
| | | char buf[512]; |
| | | apr_size_t n = sizeof(buf); |
| | | |
| | | if (apr_file_open(&fi, (*eval->aptr)->re1, APR_READ, 0, eval->pool) |
| | | != APR_SUCCESS) |
| | | continue; |
| | | while ((apr_file_read(fi, buf, &n)) == APR_SUCCESS) { |
| | | if (n == 0) |
| | | break; |
| | | rv = eval->writefn(eval->fout, buf, n); |
| | | if (rv != APR_SUCCESS) { |
| | | apr_file_close(fi); |
| | | return rv; |
| | | } |
| | | n = sizeof(buf); |
| | | } |
| | | apr_file_close(fi); |
| | | } |
| | | } |
| | | eval->aptr = eval->abuf; |
| | | *eval->aptr = NULL; |
| | | return rv; |
| | | } |
| | | |
| | | /* |
| | | * wline |
| | | */ |
| | | static apr_status_t wline(sed_eval_t *eval, char *buf, int sz) |
| | | { |
| | | apr_status_t rv = APR_SUCCESS; |
| | | rv = eval->writefn(eval->fout, buf, sz); |
| | | if (rv != APR_SUCCESS) |
| | | return rv; |
| | | rv = eval->writefn(eval->fout, "\n", 1); |
| | | return rv; |
| | | } |
| | | |
New file |
| | |
| | | --- Makefile.in Tue Nov 25 12:24:49 2008 |
| | | +++ Makefile.in Thu May 19 08:09:10 2011 |
| | | @@ -49,6 +49,9 @@ |
| | | -e 's#@@Port@@#$(PORT)#g' \ |
| | | -e 's#@@SSLPort@@#$(SSLPORT)#g' \ |
| | | -e '/@@LoadModule@@/d' \ |
| | | + -e 's#@@SysconfDir@@#$(sysconfdir)#g' \ |
| | | + -e 's#@@RuntimeDir@@#$(runtimedir)#g' \ |
| | | + -e 's#@@DataDir@@#$(datadir)#g' \ |
| | | < $$i; \ |
| | | else \ |
| | | sed -n -e '/@@LoadModule@@/q' \ |
| | | @@ -87,6 +90,12 @@ |
| | | cp -p envvars-std $(DESTDIR)$(sbindir)/envvars ; \ |
| | | fi ; \ |
| | | fi |
| | | + @if ! grep "$(sysconfdir)/envvars" $(DESTDIR)$(sbindir)/envvars > /dev/null; then \ |
| | | + echo 'if [ -f $(sysconfdir)/envvars ]; then' >> $(DESTDIR)$(sbindir)/envvars ; \ |
| | | + echo '. $(sysconfdir)/envvars' >> $(DESTDIR)$(sbindir)/envvars ; \ |
| | | + echo 'fi' >> $(DESTDIR)$(sbindir)/envvars ; \ |
| | | + fi |
| | | + @grep "^#" $(top_builddir)/support/envvars-std > $(DESTDIR)$(sysconfdir)/envvars |
| | | |
| | | # Create a sanitized config_vars.mk |
| | | build/config_vars.out: build/config_vars.mk |
| | | @@ -165,7 +174,6 @@ |
| | | |
| | | install-other: |
| | | @test -d $(DESTDIR)$(logfiledir) || $(MKINSTALLDIRS) $(DESTDIR)$(logfiledir) |
| | | - @test -d $(DESTDIR)$(runtimedir) || $(MKINSTALLDIRS) $(DESTDIR)$(runtimedir) |
| | | @for ext in dll x; do \ |
| | | file=apachecore.$$ext; \ |
| | | if test -f $$file; then \ |
New file |
| | |
| | | --- support/apachectl.in.orig Tue Jul 11 20:38:44 2006 |
| | | +++ support/apachectl.in Tue Feb 12 02:24:17 2008 |
| | | @@ -75,6 +75,12 @@ |
| | | ARGV="-h" |
| | | fi |
| | | |
| | | +if [ ! -d "@exp_runtimedir@" ]; then |
| | | + mkdir -p @exp_runtimedir@ |
| | | + chown -R webservd @exp_runtimedir@ |
| | | + chgrp -R webservd @exp_runtimedir@ |
| | | +fi |
| | | + |
| | | case $ARGV in |
| | | start|stop|restart|graceful|graceful-stop) |
| | | $HTTPD -k $ARGV |
New file |
| | |
| | | === This is added to fix the MKDEP value for Sun Studio compiler |
| | | --- build/apr_common.m4.orig Sat Dec 6 07:17:56 2008 |
| | | +++ build/apr_common.m4 Mon Jan 5 02:28:50 2009 |
| | | @@ -948,7 +948,7 @@ |
| | | int main() { return 0; } |
| | | EOF |
| | | MKDEP="true" |
| | | - for i in "$CC -MM" "$CC -M" "$CPP -MM" "$CPP -M" "cpp -M"; do |
| | | + for i in "$CC -MM" "$CC -M" "$CC -xM" "$CPP -MM" "$CPP -M" "$CPP -xM" "cpp -M"; do |
| | | AC_MSG_CHECKING([if $i can create proper make dependencies]) |
| | | if $i conftest.c 2>/dev/null | grep 'conftest.o: conftest.c' >/dev/null; then |
| | | MKDEP=$i |
New file |
| | |
| | | --- config.layout.orig Thu Apr 28 06:36:28 2011 |
| | | +++ config.layout Thu Apr 28 06:41:37 2011 |
| | | @@ -322,3 +322,73 @@ |
| | | installbuilddir: ${prefix}/etc/apache2/build |
| | | errordir: ${datadir}/error |
| | | </Layout> |
| | | + |
| | | +# Solaris Layout for Apache 2 |
| | | +<Layout Solaris-Apache2> |
| | | + prefix: /usr/apache2/2.2 |
| | | + exec_prefix: ${prefix} |
| | | + bindir: ${exec_prefix}/bin |
| | | + sbindir: ${exec_prefix}/bin |
| | | + libdir: ${exec_prefix}/lib |
| | | + libexecdir: ${exec_prefix}/libexec |
| | | + mandir: ${exec_prefix}/man |
| | | + sysconfdir: /etc/apache2/2.2 |
| | | + datadir: /var/apache2/2.2 |
| | | + installbuilddir: ${prefix}/build |
| | | + errordir: ${datadir}/error |
| | | + iconsdir: ${datadir}/icons |
| | | + htdocsdir: ${datadir}/htdocs |
| | | + manualdir: ${prefix}/manual |
| | | + cgidir: ${datadir}/cgi-bin |
| | | + includedir: ${exec_prefix}/include |
| | | + localstatedir: ${prefix} |
| | | + runtimedir: /var/run/apache2/2.2 |
| | | + logfiledir: ${datadir}/logs |
| | | + proxycachedir: ${datadir}/proxy |
| | | +</Layout> |
| | | + |
| | | +<Layout Solaris-Apache2-amd64> |
| | | + prefix: /usr/apache2/2.2 |
| | | + exec_prefix: ${prefix} |
| | | + bindir: ${exec_prefix}/bin/amd64 |
| | | + sbindir: ${exec_prefix}/bin/amd64 |
| | | + libdir: ${exec_prefix}/lib/amd64 |
| | | + libexecdir: ${exec_prefix}/libexec/amd64 |
| | | + mandir: ${exec_prefix}/man |
| | | + sysconfdir: /etc/apache2/2.2 |
| | | + datadir: /var/apache2/2.2 |
| | | + installbuilddir: ${prefix}/build/amd64 |
| | | + errordir: ${datadir}/error |
| | | + iconsdir: ${datadir}/icons |
| | | + htdocsdir: ${datadir}/htdocs |
| | | + manualdir: ${prefix}/manual |
| | | + cgidir: ${datadir}/cgi-bin |
| | | + includedir: ${exec_prefix}/include |
| | | + localstatedir: ${prefix} |
| | | + runtimedir: /var/run/apache2/2.2 |
| | | + logfiledir: ${datadir}/logs |
| | | + proxycachedir: ${datadir}/proxy |
| | | +</Layout> |
| | | + |
| | | +<Layout Solaris-Apache2-sparcv9> |
| | | + prefix: /usr/apache2/2.2 |
| | | + exec_prefix: ${prefix} |
| | | + bindir: ${exec_prefix}/bin/sparcv9 |
| | | + sbindir: ${exec_prefix}/bin/sparcv9 |
| | | + libdir: ${exec_prefix}/lib/sparcv9 |
| | | + libexecdir: ${exec_prefix}/libexec/sparcv9 |
| | | + mandir: ${exec_prefix}/man |
| | | + sysconfdir: /etc/apache2/2.2 |
| | | + datadir: /var/apache2/2.2 |
| | | + installbuilddir: ${prefix}/build/sparcv9 |
| | | + errordir: ${datadir}/error |
| | | + iconsdir: ${datadir}/icons |
| | | + htdocsdir: ${datadir}/htdocs |
| | | + manualdir: ${prefix}/manual |
| | | + cgidir: ${datadir}/cgi-bin |
| | | + includedir: ${exec_prefix}/include |
| | | + localstatedir: ${prefix} |
| | | + runtimedir: /var/run/apache2/2.2 |
| | | + logfiledir: ${datadir}/logs |
| | | + proxycachedir: ${datadir}/proxy |
| | | +</Layout> |
New file |
| | |
| | | --- docs/conf/extra/httpd-dav.conf.in.orig Fri Nov 28 13:53:24 2008 |
| | | +++ docs/conf/extra/httpd-dav.conf.in Fri Nov 28 14:02:50 2008 |
| | | @@ -12,11 +12,11 @@ |
| | | # on the directory where the DavLockDB is placed and on any directory where |
| | | # "Dav On" is specified. |
| | | |
| | | -DavLockDB "@@ServerRoot@@/var/DavLock" |
| | | +DavLockDB "@@RuntimeDir@@/DavLock" |
| | | |
| | | -Alias /uploads "@@ServerRoot@@/uploads" |
| | | +Alias /uploads "@@DataDir@@/uploads" |
| | | |
| | | -<Directory "@@ServerRoot@@/uploads"> |
| | | +<Directory "@@DataDir@@/uploads"> |
| | | Dav On |
| | | |
| | | Order Allow,Deny |
| | | @@ -26,8 +26,8 @@ |
| | | AuthName DAV-upload |
| | | |
| | | # You can use the htdigest program to create the password database: |
| | | - # htdigest -c "@@ServerRoot@@/user.passwd" DAV-upload admin |
| | | - AuthUserFile "@@ServerRoot@@/user.passwd" |
| | | + # htdigest -c "@@SysconfDir@@/user.passwd" DAV-upload admin |
| | | + AuthUserFile "@@SysconfDir@@/user.passwd" |
| | | AuthDigestProvider file |
| | | |
| | | # Allow universal read-access, but writes are restricted |
New file |
| | |
| | | --- modules/filters/config.m4.orig Mon May 9 09:31:02 2011 |
| | | +++ modules/filters/config.m4 Mon May 9 09:32:22 2011 |
| | | @@ -10,6 +10,9 @@ |
| | | APACHE_MODULE(filter, Smart Filtering, , , yes) |
| | | APACHE_MODULE(substitute, response content rewrite-like filtering, , , most) |
| | | |
| | | +sed_obj="mod_sed.lo sed0.lo sed1.lo regexp.lo" |
| | | +APACHE_MODULE(sed, filter request and/or response bodies through sed, $sed_obj) |
| | | + |
| | | if test "$ac_cv_ebcdic" = "yes"; then |
| | | # mod_charset_lite can be very useful on an ebcdic system, |
| | | # so include it by default |
| | | --- modules/aaa/config.m4.orig Mon May 9 13:55:46 2011 |
| | | +++ modules/aaa/config.m4 Mon May 9 14:07:47 2011 |
| | | @@ -54,5 +54,9 @@ |
| | | enable_auth_digest="no" |
| | | fi |
| | | ]) |
| | | +APACHE_MODULE(auth_gss, GSS based authentication, , , yes, [ |
| | | + MOD_AUTH_GSS_LDADD="-lgss" |
| | | + AC_SUBST(MOD_AUTH_GSS_LDADD) |
| | | +]) |
| | | |
| | | APACHE_MODPATH_FINISH |
New file |
| | |
| | | --- docs/conf/httpd.conf.in Fri Dec 21 03:43:00 2007 |
| | | +++ docs/conf/httpd.conf.in Mon May 16 06:47:52 2011 |
| | | @@ -6,6 +6,12 @@ |
| | | # <URL:http://httpd.apache.org/docs/2.2/mod/directives.html> |
| | | # for a discussion of each configuration directive. |
| | | # |
| | | +# Solaris Quick Configuration Information |
| | | +# |
| | | +# 1. Set ServerName if necessary (default is 127.0.0.1) |
| | | +# 2. Set ServerAdmin to a valid email address |
| | | +# |
| | | +# |
| | | # Do NOT simply read the instructions in here without understanding |
| | | # what they do. They're here only as hints or reminders. If you are unsure |
| | | # consult the online docs. You have been warned. |
| | | @@ -43,14 +49,17 @@ |
| | | # Dynamic Shared Object (DSO) Support |
| | | # |
| | | # To be able to use the functionality of a module which was built as a DSO you |
| | | -# have to place corresponding `LoadModule' lines at this location so the |
| | | -# directives contained in it are actually available _before_ they are used. |
| | | -# Statically compiled modules (those listed by `httpd -l') do not need |
| | | -# to be loaded here. |
| | | +# have to place corresponding `LoadModule' lines within the appropriate |
| | | +# (32-bit or 64-bit module) @rel_sysconfdir@/conf.d/modules-*.load file so that |
| | | +# the directives contained in it are actually available _before_ they are used. |
| | | # |
| | | -# Example: |
| | | -# LoadModule foo_module modules/mod_foo.so |
| | | -# |
| | | +<IfDefine 64bit> |
| | | +Include @rel_sysconfdir@/conf.d/modules-64.load |
| | | +</IfDefine> |
| | | +<IfDefine !64bit> |
| | | +Include @rel_sysconfdir@/conf.d/modules-32.load |
| | | +</IfDefine> |
| | | + |
| | | @@LoadModule@@ |
| | | |
| | | <IfModule !mpm_netware_module> |
| | | @@ -63,8 +72,8 @@ |
| | | # It is usually good practice to create a dedicated user and group for |
| | | # running httpd, as with most system services. |
| | | # |
| | | -User daemon |
| | | -Group daemon |
| | | +User webservd |
| | | +Group webservd |
| | | |
| | | </IfModule> |
| | | </IfModule> |
| | | @@ -86,7 +95,7 @@ |
| | | # e-mailed. This address appears on some server-generated pages, such |
| | | # as error documents. e.g. admin@your-domain.com |
| | | # |
| | | -ServerAdmin you@example.com |
| | | +ServerAdmin you@yourhost.com |
| | | |
| | | # |
| | | # ServerName gives the name and port that the server uses to identify itself. |
| | | @@ -95,7 +104,7 @@ |
| | | # |
| | | # If your host doesn't have a registered DNS name, enter its IP address here. |
| | | # |
| | | -#ServerName www.example.com:@@Port@@ |
| | | +ServerName 127.0.0.1 |
| | | |
| | | # |
| | | # DocumentRoot: The directory out of which you will serve your |
| | | @@ -329,6 +338,10 @@ |
| | | # |
| | | #AddType text/html .shtml |
| | | #AddOutputFilter INCLUDES .shtml |
| | | + |
| | | + # Add a new mime.type for .p5i file extension so that clicking on |
| | | + # this file type on a web page launches PackageManager in a Webinstall mode. |
| | | + AddType application/vnd.pkg5.info .p5i |
| | | </IfModule> |
| | | |
| | | # |
| | | @@ -362,43 +375,22 @@ |
| | | |
| | | # Supplemental configuration |
| | | # |
| | | -# The configuration files in the @rel_sysconfdir@/extra/ directory can be |
| | | -# included to add extra features or to modify the default configuration of |
| | | -# the server, or you may simply copy their contents here and change as |
| | | +# Include all the .conf configuration files in the |
| | | +# @rel_sysconfdir@/conf.d/ directory. |
| | | +# |
| | | +# You can place additional configuration files in the |
| | | +# @rel_sysconfdir@/conf.d/ directory to add extra features |
| | | +# or to modify the default configuration of the server, |
| | | +# or you may simply copy their contents here and change as |
| | | # necessary. |
| | | +# |
| | | +# Sample configuration files are in the |
| | | +# @rel_sysconfdir@/samples-conf.d directory. To use a |
| | | +# sample .conf file, copy it to @rel_sysconfdir@/conf.d |
| | | +# directory and modify as required. |
| | | +# |
| | | +Include @rel_sysconfdir@/conf.d/*.conf |
| | | |
| | | -# Server-pool management (MPM specific) |
| | | -#Include @rel_sysconfdir@/extra/httpd-mpm.conf |
| | | - |
| | | -# Multi-language error messages |
| | | -#Include @rel_sysconfdir@/extra/httpd-multilang-errordoc.conf |
| | | - |
| | | -# Fancy directory listings |
| | | -#Include @rel_sysconfdir@/extra/httpd-autoindex.conf |
| | | - |
| | | -# Language settings |
| | | -#Include @rel_sysconfdir@/extra/httpd-languages.conf |
| | | - |
| | | -# User home directories |
| | | -#Include @rel_sysconfdir@/extra/httpd-userdir.conf |
| | | - |
| | | -# Real-time info on requests and configuration |
| | | -#Include @rel_sysconfdir@/extra/httpd-info.conf |
| | | - |
| | | -# Virtual hosts |
| | | -#Include @rel_sysconfdir@/extra/httpd-vhosts.conf |
| | | - |
| | | -# Local access to the Apache HTTP Server Manual |
| | | -#Include @rel_sysconfdir@/extra/httpd-manual.conf |
| | | - |
| | | -# Distributed authoring and versioning (WebDAV) |
| | | -#Include @rel_sysconfdir@/extra/httpd-dav.conf |
| | | - |
| | | -# Various default settings |
| | | -#Include @rel_sysconfdir@/extra/httpd-default.conf |
| | | - |
| | | -# Secure (SSL/TLS) connections |
| | | -#Include @rel_sysconfdir@/extra/httpd-ssl.conf |
| | | # |
| | | # Note: The following must must be present to support |
| | | # starting without SSL on platforms with no /dev/random equivalent |
New file |
| | |
| | | --- docs/conf/extra/httpd-info.conf.in.orig Fri Nov 28 13:44:23 2008 |
| | | +++ docs/conf/extra/httpd-info.conf.in Fri Nov 28 13:47:18 2008 |
| | | @@ -10,11 +10,15 @@ |
| | | # with the URL of http://servername/server-status |
| | | # Change the ".example.com" to match your domain to enable. |
| | | |
| | | +<IfModule mod_status.c> |
| | | <Location /server-status> |
| | | SetHandler server-status |
| | | Order deny,allow |
| | | Deny from all |
| | | - Allow from .example.com |
| | | + #Allow from .example.com |
| | | + |
| | | + # Allow access from localhost |
| | | + Allow from 127.0.0.1 |
| | | </Location> |
| | | |
| | | # |
| | | @@ -24,14 +28,21 @@ |
| | | # |
| | | #ExtendedStatus On |
| | | |
| | | +</IfModule> |
| | | + |
| | | # |
| | | # Allow remote server configuration reports, with the URL of |
| | | # http://servername/server-info (requires that mod_info.c be loaded). |
| | | # Change the ".example.com" to match your domain to enable. |
| | | # |
| | | +<IfModule mod_info.c> |
| | | <Location /server-info> |
| | | SetHandler server-info |
| | | Order deny,allow |
| | | Deny from all |
| | | - Allow from .example.com |
| | | + #Allow from .example.com |
| | | + |
| | | + # Allow access from localhost |
| | | + Allow from 127.0.0.1 |
| | | </Location> |
| | | +</IfModule> |
New file |
| | |
| | | --- docs/conf/extra/httpd-ssl.conf.in.orig Thu May 12 11:44:53 2011 |
| | | +++ docs/conf/extra/httpd-ssl.conf.in Thu May 12 11:46:45 2011 |
| | | @@ -22,9 +22,10 @@ |
| | | # Manual for more details. |
| | | # |
| | | #SSLRandomSeed startup file:/dev/random 512 |
| | | -#SSLRandomSeed startup file:/dev/urandom 512 |
| | | +SSLRandomSeed startup file:/dev/urandom 512 |
| | | #SSLRandomSeed connect file:/dev/random 512 |
| | | -#SSLRandomSeed connect file:/dev/urandom 512 |
| | | +SSLRandomSeed connect file:/dev/urandom 512 |
| | | +SSLCryptoDevice pkcs11 |
| | | |
| | | |
| | | # |
| | | @@ -75,7 +76,7 @@ |
| | | |
| | | # General setup for the virtual host |
| | | DocumentRoot "@exp_htdocsdir@" |
| | | -ServerName www.example.com:@@SSLPort@@ |
| | | +ServerName 127.0.0.1:@@SSLPort@@ |
| | | ServerAdmin you@example.com |
| | | ErrorLog "@exp_logfiledir@/error_log" |
| | | TransferLog "@exp_logfiledir@/access_log" |
| | | @@ -87,8 +88,12 @@ |
| | | # SSL Cipher Suite: |
| | | # List the ciphers that the client is permitted to negotiate. |
| | | # See the mod_ssl documentation for a complete list. |
| | | -SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL |
| | | +# AES with keylengths > 128 bit is not supported by default on Solaris. |
| | | +# To operate with AES256 you must install the SUNWcry and SUNWcryr |
| | | +# packages from the Solaris 10 Data Encryption Kit. |
| | | +SSLCipherSuite ALL:!ADH:!EXPORT56:-AES256-SHA:-DHE-RSA-AES256-SHA:-DHE-DSS-AES256-SHA:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL |
| | | |
| | | + |
| | | # Server Certificate: |
| | | # Point SSLCertificateFile at a PEM encoded certificate. If |
| | | # the certificate is encrypted, then you will be prompted for a |
| | |
| | | COMPONENT_ARCHIVE_HASH= sha1:fd2a76352353e6bc2f7cc7da80e2ab3842795199 |
| | | COMPONENT_ARCHIVE_URL= http://archive.apache.org/dist/apr/$(COMPONENT_ARCHIVE) |
| | | |
| | | CONFIGURE_DEFAULT_DIRS=no |
| | | |
| | | include ../../make-rules/prep.mk |
| | | include ../../make-rules/configure.mk |
| | | include ../../make-rules/ips.mk |
| | |
| | | COMPONENT_ARCHIVE_HASH= sha1:3ad0099ee9fb684e118590bf0acf937639e00611 |
| | | COMPONENT_ARCHIVE_URL= http://archive.apache.org/dist/apr/$(COMPONENT_ARCHIVE) |
| | | |
| | | CONFIGURE_DEFAULT_DIRS=no |
| | | |
| | | include ../../make-rules/prep.mk |
| | | include ../../make-rules/configure.mk |
| | | include ../../make-rules/ips.mk |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | set name=pkg.fmri value=pkg:/SUNWapch22@2.2.14,5.11-0.133 |
| | | set name=pkg.renamed value=true |
| | | |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | depend fmri=web/server/apache-22@2.2.14-0.133 type=require |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | set name=pkg.fmri value=pkg:/SUNWapch22d@2.2.14,5.11-0.133 |
| | | set name=pkg.renamed value=true |
| | | |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | depend fmri=web/server/apache-22/documentation@2.2.14-0.133 type=require |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | set name=pkg.fmri value=pkg:/SUNWapch22m-dtrace@0.3.1,5.11-0.133 |
| | | set name=pkg.renamed value=true |
| | | |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | depend fmri=web/server/apache-22/plugin/plugin-dtrace@0.3.1-0.133 type=require |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | set name=pkg.fmri value=pkg:/SUNWapch22m-fcgid@2.3.4,5.11-0.133 |
| | | set name=pkg.renamed value=true |
| | | |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | depend fmri=web/server/apache-22/plugin/plugin-fastcgi@2.3.4-0.133 type=require |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | set name=pkg.fmri value=pkg:/SUNWapch22m-jk@1.2.28,5.11-0.133 |
| | | set name=pkg.renamed value=true |
| | | |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | depend fmri=web/server/apache-22/plugin/plugin-tomcat@1.2.28-0.133 type=require |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | set name=pkg.fmri value=pkg:/SUNWapch22m-proxy-html@3.1.1,5.11-0.133 |
| | | set name=pkg.renamed value=true |
| | | |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | depend fmri=web/server/apache-22/plugin/plugin-html-plugin@3.1.1-0.133 type=require |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | set name=pkg.fmri value=pkg:/SUNWapch22m-security@2.5.9,5.11-0.133 |
| | | set name=pkg.renamed value=true |
| | | |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | depend fmri=web/server/apache-22/plugin/plugin-security@2.5.9-0.133 type=require |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | set name=pkg.fmri value=pkg:/SUNWapch22m-sed@2.2.14,5.11-0.133 |
| | | set name=pkg.renamed value=true |
| | | |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | depend fmri=web/server/apache-22/plugin/plugin-sed@2.2.14-0.133 type=require |
New file |
| | |
| | | # |
| | | # CDDL HEADER START |
| | | # |
| | | # The contents of this file are subject to the terms of the |
| | | # Common Development and Distribution License (the "License"). |
| | | # You may not use this file except in compliance with the License. |
| | | # |
| | | # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| | | # or http://www.opensolaris.org/os/licensing. |
| | | # See the License for the specific language governing permissions |
| | | # and limitations under the License. |
| | | # |
| | | # When distributing Covered Code, include this CDDL HEADER in each |
| | | # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| | | # If applicable, add the following below this CDDL HEADER, with the |
| | | # fields enclosed by brackets "[]" replaced with your own identifying |
| | | # information: Portions Copyright [yyyy] [name of copyright owner] |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | |
| | | set name=pkg.fmri value=pkg:/SUNWapch22m-xml2enc@1.0.1,5.11-0.133 |
| | | set name=pkg.renamed value=true |
| | | |
| | | set name=org.opensolaris.consolidation value=$(CONSOLIDATION) |
| | | |
| | | depend fmri=web/server/apache-22/plugin/plugin-xml2enc@1.0.1-0.133 type=require |
| | |
| | | |
| | | CONFIGURE_ENV = CONFIG_SHELL="$(CONFIG_SHELL)" |
| | | |
| | | CONFIGURE_DEFAULT_DIRS?=yes |
| | | |
| | | CONFIGURE_OPTIONS += CC="$(CC)" |
| | | CONFIGURE_OPTIONS += CXX="$(CXX)" |
| | | CONFIGURE_OPTIONS += --prefix=$(CONFIGURE_PREFIX) |
| | | ifeq ($(CONFIGURE_DEFAULT_DIRS),yes) |
| | | CONFIGURE_OPTIONS += --mandir=$(CONFIGURE_MANDIR) |
| | | CONFIGURE_OPTIONS += --bindir=$(CONFIGURE_BINDIR.$(BITS)) |
| | | CONFIGURE_OPTIONS += --libdir=$(CONFIGURE_LIBDIR.$(BITS)) |
| | | CONFIGURE_OPTIONS += --sbindir=$(CONFIGURE_SBINDIR.$(BITS)) |
| | | endif |
| | | CONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.$(BITS)) |
| | | |
| | | COMPONENT_INSTALL_ARGS += DESTDIR=$(PROTO_DIR) |
| | |
| | | # COMPONENT_BUILD_TARGETS, COMPONENT_INSTALL_TARGETS |
| | | # |
| | | |
| | | COMPONENT_INSTALL_ARGS += DESTDIR=$(PROTO_DIR) |
| | | |
| | | # build the configured source |
| | | $(BUILD_DIR)/%/.built: $(SOURCE_DIR)/.prep |
| | | $(RM) -r $(@D) ; $(MKDIR) $(@D) |