dougm 01/05/03 22:53:49
Modified: xs/Apache/Log Apache__Log.h
Log:
cleanup a bit and support Apache::Server->log_error
Revision Changes Path
1.7 +27 -21 modperl-2.0/xs/Apache/Log/Apache__Log.h
Index: Apache__Log.h
===================================================================
RCS file: /home/cvs/modperl-2.0/xs/Apache/Log/Apache__Log.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Apache__Log.h 2001/05/04 04:21:52 1.6
+++ Apache__Log.h 2001/05/04 05:53:49 1.7
@@ -249,31 +249,37 @@
SV *sv = Nullsv;
STRLEN n_a;
- if ((items > 1) &&
- (r = modperl_xs_sv2request_rec(aTHX_ ST(0),
- "Apache::RequestRec", cv)))
- {
- s = r->server;
- i=1;
- }
- else if ((items > 1) && sv_isa(ST(0), "Apache::Server")) {
- s = (server_rec *)SvObjIV(ST(0));
- i=1;
- }
- else {
- if (r) {
+ /*
+ * we support the following:
+ * Apache::warn
+ * Apache->warn
+ * $r->warn
+ * $r->log_error
+ * Apache::Server->log_error
+ * $s->log_error
+ * Apache::Server->warn
+ * $s->warn
+ */
+
+ if (items > 1) {
+ if ((r = modperl_xs_sv2request_rec(aTHX_ ST(0),
+ "Apache::RequestRec", cv)))
+ {
s = r->server;
}
- else {
-#if 0
- /*XXX*/
- s = perl_get_startup_server();
-#endif
+ else if (sv_isa(ST(0), "Apache::Server")) {
+ s = (server_rec *)SvObjIV(ST(0));
}
+ else if (SvPOK(ST(0)) && strEQ(SvPVX(ST(0)), "Apache::Server")) {
+ s = modperl_global_get_server_rec();
+ }
}
-
- if (!s) {
- Perl_croak(aTHX_ "%s::%s no server_rec!", mpxs_cv_name());
+
+ if (s) {
+ i=1;
+ }
+ else {
+ s = modperl_global_get_server_rec();
}
if (items > 1+i) {