[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