[mod_log_post] update for httpd 2.4 (patch by Jan Kaluza, #809714)
jorton
jorton at fedoraproject.org
Mon Apr 16 13:46:04 UTC 2012
commit f9e258615da842fd5707cd74f3f3a7f66f128a97
Author: Joe Orton <jorton at redhat.com>
Date: Mon Apr 16 14:45:52 2012 +0100
update for httpd 2.4 (patch by Jan Kaluza, #809714)
Resolves: rhbz#809714
.gitignore | 1 +
mod_log_post-0.1.0-httpd24.patch | 65 ++++++++++++++++++++++++++++++++++++++
mod_log_post.spec | 31 ++++++++++++++++--
3 files changed, 93 insertions(+), 4 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 81f14e6..519182d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
mod_log_post-0.1.0.tar.gz
+/mod_log_post-0.?.?
diff --git a/mod_log_post-0.1.0-httpd24.patch b/mod_log_post-0.1.0-httpd24.patch
new file mode 100644
index 0000000..583cb0b
--- /dev/null
+++ b/mod_log_post-0.1.0-httpd24.patch
@@ -0,0 +1,65 @@
+--- a/mod_log_post.c
++++ a/mod_log_post.c
+@@ -1045,7 +1045,7 @@ const char *get_variable(modsec_rec *msr, variable *v, int var_type) {
+ break;
+
+ case VAR_REMOTE_ADDR :
+- result = r->connection->remote_ip;
++ result = r->useragent_ip;
+ break;
+
+ case VAR_REMOTE_HOST :
+@@ -1108,7 +1108,7 @@ const char *get_variable(modsec_rec *msr, variable *v, int var_type) {
+ break;
+
+ case VAR_SERVER_SOFTWARE :
+- result = ap_get_server_version();
++ result = ap_get_server_banner();
+ break;
+
+ case VAR_API_VERSION :
+@@ -1973,7 +1973,7 @@ static int read_post_payload(modsec_rec *msr) {
+
+ folder = get_temp_folder(r->pool);
+
+- ctx->tmp_file_name = apr_psprintf(r->pool, "%s/%s-%s-request_body-XXXXXX", folder, current_filetime(r), r->connection->remote_ip);
++ ctx->tmp_file_name = apr_psprintf(r->pool, "%s/%s-%s-request_body-XXXXXX", folder, current_filetime(r), r->useragent_ip);
+ if (ctx->tmp_file_name == NULL) {
+ msr->_post_payload = NULL;
+ sec_debug_log(r, 1, "read_post_payload: Memory allocation failed");
+@@ -3064,7 +3064,7 @@ static char *construct_log_vcombinedus(request_rec *r, request_rec *origr) {
+ if (user_agent == NULL) user_agent = "-";
+
+ return apr_psprintf(r->pool, "%s %s %s %s [%s] \"%s\" %i %" APR_OFF_T_FMT " \"%s\" \"%s\" %s \"%s\"",
+- ap_get_server_name(r), r->connection->remote_ip, log_escape(r->pool, remote_user),
++ ap_get_server_name(r), r->useragent_ip, log_escape(r->pool, remote_user),
+ log_escape(r->pool, local_user), current_logtime(r),
+ ((origr->the_request == NULL) ? "" : log_escape(r->pool, origr->the_request)),
+ origr->status, r->bytes_sent, log_escape(r->pool, referer), log_escape(r->pool, user_agent),
+@@ -3477,7 +3477,7 @@ static void sec_debug_log(request_rec *r, int level, const char *text, ...) {
+ if (hostname != NULL) hostname = apr_psprintf(r->pool, " [hostname \"%s\"]", log_escape(r->pool, hostname));
+ else hostname = "";
+
+- ap_log_error(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO, 0, r->server, "[client %s] mod_log_post: %s%s [uri \"%s\"]%s", r->connection->remote_ip, str1, hostname, log_escape(r->pool, r->unparsed_uri), unique_id);
++ ap_log_error(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO, 0, r->server, "[client %s] mod_log_post: %s%s [uri \"%s\"]%s", r->useragent_ip, str1, hostname, log_escape(r->pool, r->unparsed_uri), unique_id);
+ }
+
+ va_end(ap);
+@@ -3592,7 +3592,7 @@ char *construct_put_filename(modsec_rec *msr) {
+
+ tmp_dir = get_temp_folder(msr->r->pool);
+
+- return apr_psprintf(msr->r->pool, "%s/%s-%s-%s", tmp_dir, current_filetime(msr->r), msr->r->connection->remote_ip, put_file_name);
++ return apr_psprintf(msr->r->pool, "%s/%s-%s-%s", tmp_dir, current_filetime(msr->r), msr->r->useragent_ip, put_file_name);
+ }
+
+ apr_status_t request_body_file_cleanup(void *data) {
+@@ -4546,7 +4546,7 @@ static int sec_init(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_r
+ }
+
+ #ifdef __SET_MUTEX_PERMS
+- rv = unixd_set_global_mutex_perms(modsec_auditlog_lock);
++ rv = ap_unixd_set_global_mutex_perms(modsec_auditlog_lock);
+ if (rv != APR_SUCCESS) {
+ ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, "mod_log_post: Could not set permissions on modsec_auditlog_lock; check User and Group directives");
+ return HTTP_INTERNAL_SERVER_ERROR;
diff --git a/mod_log_post.spec b/mod_log_post.spec
index a024521..f8a67ab 100644
--- a/mod_log_post.spec
+++ b/mod_log_post.spec
@@ -1,14 +1,22 @@
+# /usr/sbin/apxs with httpd < 2.4 and defined as /usr/bin/apxs with httpd >= 2.4
+%{!?_httpd_apxs: %{expand: %%global _httpd_apxs %%{_sbindir}/apxs}}
+%{!?_httpd_mmn: %{expand: %%global _httpd_mmn %%(cat %{_includedir}/httpd/.mmn || echo missing-httpd-devel)}}
+%{!?_httpd_confdir: %{expand: %%global _httpd_confdir %%{_sysconfdir}/httpd/conf.d}}
+# /etc/httpd/conf.d with httpd < 2.4 and defined as /etc/httpd/conf.modules.d with httpd >= 2.4
+%{!?_httpd_modconfdir: %{expand: %%global _httpd_modconfdir %%{_sysconfdir}/httpd/conf.d}}
+
Summary: Module for the Apache web server to log all HTTP POST messages
Summary(de): Modul für den Apache Webserver zur Protokollierung von HTTP POST
Name: mod_log_post
Version: 0.1.0
-Release: 4%{?dist}
+Release: 5%{?dist}
Group: System Environment/Daemons
License: GPLv2 with exceptions
URL: http://ftp.robert-scheck.de/linux/%{name}/
Source: http://ftp.robert-scheck.de/linux/%{name}/%{name}-%{version}.tar.gz
BuildRequires: httpd-devel >= 2.0.39
-Requires: httpd-mmn = %(cat %{_includedir}/httpd/.mmn || echo missing httpd-devel)
+Requires: httpd-mmn = %{_httpd_mmn}
+Patch0: mod_log_post-0.1.0-httpd24.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
@@ -30,15 +38,24 @@ SSL an den Apache Webserver übermittelt worden sind.
%prep
%setup -q
+%patch0 -p1 -b .httpd24
%build
-%configure
+%configure --with-apxs=%{_httpd_apxs}
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install
+%if "%{_httpd_modconfdir}" != "%{_httpd_confdir}"
+# Adapt for 2.4-style module configuration
+mkdir -p $RPM_BUILD_ROOT%{_httpd_modconfdir}
+sed -n /^LoadModule/p $RPM_BUILD_ROOT%{_httpd_confdir}/log_post.conf \
+ >> $RPM_BUILD_ROOT%{_httpd_modconfdir}/10-log_post.conf
+sed -i /^LoadModule/d $RPM_BUILD_ROOT%{_httpd_confdir}/log_post.conf
+%endif
+
%clean
rm -rf $RPM_BUILD_ROOT
@@ -46,9 +63,15 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-,root,root,-)
%doc ChangeLog COPYING LICENSING_EXCEPTION README
%{_libdir}/httpd/modules/%{name}.so
-%config(noreplace) %{_sysconfdir}/httpd/conf.d/log_post.conf
+%if "%{_httpd_modconfdir}" != "%{_httpd_confdir}"
+%config(noreplace) %{_httpd_modconfdir}/10-log_post.conf
+%endif
+%config(noreplace) %{_httpd_confdir}/log_post.conf
%changelog
+* Mon Apr 16 2012 Joe Orton <jorton at redhat.com> - 0.1.0-5
+- update for httpd 2.4 (patch by Jan Kaluza, #809714)
+
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.1.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
More information about the scm-commits
mailing list