Apache2::Request is a derived class of Apache2::RequestRec, so what you're doing is perfectly ok.
> >From: Douglas Sims <ratsb...@gmail.com> >To: modperl <modperl@perl.apache.org> >Sent: Thursday, August 20, 2009 3:20:59 AM >Subject: Confusion over Apache2::Request and Apache2::RequestRec > > >I'm confused about something and I wonder if anyone can help me to understand >what's going on. The code shown below works fine but as I was looking over >this before changing something else I realized that it probably shouldn't. >I'm using an Apache2::Request object to return a connection object to get the >remote_ip but the documentation for Apache2::Request doesn't show a connection >method - that's in Apache2::RequestRec. > >Why does connection() work on an Apache2::Request object? > >Thanks! > >-Doug > > >Apache2::Request: >http://httpd.apache.org/apreq/docs/libapreq2/group__apreq__xs__request.html >>Apache2::RequestRec: >>http://perl.apache.org/docs/2.0/api/Apache2/RequestRec.html#C_connection_ > > >In the PerlResponseHandler: > > my $requestrec = shift if $ENV{MOD_PERL}; > my $request = Apache2::Request->new($requestrec); > my $session = Sessions->new($request, $mysql); > > > >{package Sessions; > > sub new { > my $class=shift; >> my $self={}; > bless ($self, $class); > > $self->{REQUEST}=shift; > $self->{DBH}=shift; > >{...snip...} > > $self->{DBH}->do('INSERT INTO failedloginattempts (username, password, > ip, session, attempttime) VALUES > ('.$self->{DBH}->quote($username).','.$self->{DBH}->quote($password).', > INET_ATON('.$self->{DBH}->quote($self->{REQUEST}->connection()->remote_ip).'), > '.$self->{DBH}->quote($self->{SESSION}).', NOW())'); > > >