[mod_limitipconn] update for 2.4 (patch from Jan Kaluza, #809730)
jorton
jorton at fedoraproject.org
Tue Apr 17 12:22:54 UTC 2012
commit f43b499a414491d4c1b42be63fd515a198eec591
Author: Joe Orton <jorton at redhat.com>
Date: Tue Apr 17 13:22:16 2012 +0100
update for 2.4 (patch from Jan Kaluza, #809730)
Resolves: rhbz#809730
mod_limitipconn-0.23-httpd24.patch | 46 ++++++++++++++++++++++++++++++++++++
mod_limitipconn.spec | 30 +++++++++++++++++------
2 files changed, 68 insertions(+), 8 deletions(-)
---
diff --git a/mod_limitipconn-0.23-httpd24.patch b/mod_limitipconn-0.23-httpd24.patch
new file mode 100644
index 0000000..951dbdc
--- /dev/null
+++ b/mod_limitipconn-0.23-httpd24.patch
@@ -0,0 +1,46 @@
+
+https://bugzilla.redhat.com/show_bug.cgi?id=809730
+
+diff --git a/mod_limitipconn.c b/mod_limitipconn.c
+index d8d2f9a..6262797 100644
+--- mod_limitipconn-0.23/mod_limitipconn.c.httpd24
++++ mod_limitipconn-0.23/mod_limitipconn.c
+@@ -104,7 +104,11 @@ static int check_limit(request_rec *r, l
+ return DECLINED;
+ }
+
++#if AP_MODULE_MAGIC_AT_LEAST(20111130,0)
++ address = r->useragent_ip;
++#else
+ address = r->connection->remote_ip;
++#endif
+
+ /* Only check the MIME-type if we have MIME-type stuff in our config.
+ The extra subreq can be quite expensive. */
+@@ -116,7 +120,14 @@ static int check_limit(request_rec *r, l
+
+ /* If there's no Content-type, use the default. */
+ if (!content_type) {
++#if !AP_MODULE_MAGIC_AT_LEAST(20090131, 0)
+ content_type = ap_default_type(r);
++#else
++ /* With 2.4, there no default type => this must be exempt. */
++ ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
++ "mod_limitipconn: OK: no content-type configured");
++ return DECLINED;
++#endif
+ }
+
+ ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
+@@ -160,7 +171,11 @@ static int check_limit(request_rec *r, l
+ * this IP address */
+ for (i = 0; i < server_limit; ++i) {
+ for (j = 0; j < thread_limit; ++j) {
++#if AP_MODULE_MAGIC_AT_LEAST(20071023, 0)
++ ws_record = ap_get_scoreboard_worker_from_indexes(i, j);
++#else
+ ws_record = ap_get_scoreboard_worker(i, j);
++#endif
+ switch (ws_record->status) {
+ case SERVER_BUSY_READ:
+ case SERVER_BUSY_WRITE:
diff --git a/mod_limitipconn.spec b/mod_limitipconn.spec
index f92f266..da962be 100644
--- a/mod_limitipconn.spec
+++ b/mod_limitipconn.spec
@@ -1,19 +1,21 @@
-%{!?_httpd_apxs: %global _httpd_apxs apxs}
-%{!?_httpd_moddir: %global _httpd_moddir %{_libdir}/httpd/modules}
-%{!?_httpd_confdir: %global _httpd_confdir %{_sysconfdir}/httpd/conf.d}
+%{!?_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: Simultaneous connection limiting module for Apache
Name: mod_limitipconn
Version: 0.23
-Release: 6%{?dist}
+Release: 7%{?dist}
Group: System Environment/Daemons
License: ASL 2.0
URL: http://dominia.org/djao/limitipconn2.html
Source0: http://dominia.org/djao/limit/mod_limitipconn-%{version}.tar.bz2
Source1: mod_limitipconn.conf
+Patch0: mod_limitipconn-0.23-httpd24.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
-Requires: httpd
-Requires: httpd-mmn = %([ -a %{_includedir}/httpd/.mmn ] && cat %{_includedir}/httpd/.mmn || echo missing)
+Requires: httpd-mmn = %{_httpd_mmn}
BuildRequires: httpd-devel
%description
@@ -23,6 +25,7 @@ simultaneous downloads permitted from a single IP address.
%prep
%setup -q
+%patch0 -p1 -b .httpd24
%build
%{_httpd_apxs} -Wc,"%{optflags}" -c mod_limitipconn.c
@@ -30,8 +33,16 @@ simultaneous downloads permitted from a single IP address.
%install
rm -rf %{buildroot}
+
+%if "%{_httpd_modconfdir}" == "%{_httpd_confdir}"
+# httpd <= 2.2.x
+install -D -p -m 0644 %{SOURCE1} \
+ %{buildroot}%{_httpd_modconfdir}/limitipconn.conf
+%else
+# httpd >= 2.4.x
install -D -p -m 0644 %{SOURCE1} \
- %{buildroot}%{_httpd_confdir}/limitipconn.conf
+ %{buildroot}%{_httpd_modconfdir}/10-limitipconn.conf
+%endif
install -D -p -m 0755 .libs/mod_limitipconn.so \
%{buildroot}%{_httpd_moddir}/mod_limitipconn.so
@@ -43,11 +54,14 @@ rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%doc README INSTALL LICENSE
-%config(noreplace) %{_httpd_confdir}/limitipconn.conf
+%config(noreplace) %{_httpd_modconfdir}/*.conf
%{_httpd_moddir}/mod_limitipconn.so
%changelog
+* Tue Apr 17 2012 Joe Orton <jorton at redhat.com> - 0.23-7
+- update for 2.4 (patch from Jan Kaluza, #809730)
+
* Thu Mar 29 2012 Matthias Saou <http://freshrpms.net/> 0.23-6
- Rebuild for new apache httpd... not, we will require patching.
- Use rpm macros provided by the httpd-devel package, with sane fallbacks.
More information about the scm-commits
mailing list