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) {
  
  
  

Reply via email to