File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -658,7 +658,7 @@ internals.Info = class {
658658 if ( ! this . _remoteAddress ) {
659659 const ipv6Prefix = '::ffff:' ;
660660 const socketAddress = this . _request . raw . req . socket . remoteAddress ;
661- if ( socketAddress . startsWith ( ipv6Prefix ) && socketAddress . includes ( '.' , ipv6Prefix . length ) ) {
661+ if ( socketAddress && socketAddress . startsWith ( ipv6Prefix ) && socketAddress . includes ( '.' , ipv6Prefix . length ) ) {
662662 // Normalize IPv4-mapped IPv6 address, e.g. ::ffff:127.0.0.1 -> 127.0.0.1
663663 this . _remoteAddress = socketAddress . slice ( ipv6Prefix . length ) ;
664664 }
Original file line number Diff line number Diff line change @@ -222,6 +222,43 @@ describe('Request', () => {
222222 expect ( payload . toString ( ) ) . to . equal ( '100.100.100.100' ) ;
223223 } ) ;
224224
225+ it ( 'sets client address to nothing when not available' , async ( flags ) => {
226+
227+ const server = Hapi . server ( ) ;
228+ const abortedReqTeam = new Teamwork . Team ( ) ;
229+ let remoteAddr = 'not executed' ;
230+
231+ server . route ( {
232+ method : 'GET' ,
233+ path : '/' ,
234+ options : {
235+ handler : async ( request , h ) => {
236+
237+ req . destroy ( ) ;
238+
239+ while ( request . active ( ) ) {
240+ await Hoek . wait ( 5 ) ;
241+ }
242+
243+ abortedReqTeam . attend ( ) ;
244+
245+ remoteAddr = request . info . remoteAddress ;
246+ return null ;
247+ }
248+ }
249+ } ) ;
250+
251+ await server . start ( ) ;
252+ flags . onCleanup = ( ) => server . stop ( ) ;
253+
254+ const req = Http . get ( server . info . uri , Hoek . ignore ) ;
255+ req . on ( 'error' , Hoek . ignore ) ;
256+
257+ await abortedReqTeam . work ;
258+
259+ expect ( remoteAddr ) . to . equal ( undefined ) ;
260+ } ) ;
261+
225262 it ( 'sets port to nothing when not available' , async ( ) => {
226263
227264 const server = Hapi . server ( { debug : false } ) ;
You can’t perform that action at this time.
0 commit comments