@@ -13,12 +13,17 @@ class StreamingResponse extends PassThrough {
1313 outgoingMessage
1414 METADATA_BOUNDARY = `___x_nf-metadata_boundary-${ Date . now ( ) } `
1515
16- constructor ( url ) {
16+ constructor ( url , ip ) {
1717 super ( )
1818 // eslint-disable-next-line node/no-unsupported-features/node-builtins
1919 const parsedUrl = new URL ( url )
20- this . outgoingMessage =
21- parsedUrl . protocol === 'https:' ? https . request ( url , { method : 'POST' } ) : http . request ( url , { method : 'POST' } )
20+ const options = {
21+ lookup : ( address , options , callback ) => {
22+ callback ( null , ip )
23+ } ,
24+ method : 'POST' ,
25+ }
26+ this . outgoingMessage = parsedUrl . protocol === 'https:' ? https . request ( url , options ) : http . request ( url , options )
2227 this . outgoingMessage . setHeader ( 'x-nf-metadata-boundary' , this . METADATA_BOUNDARY )
2328 this . pipe ( this . outgoingMessage )
2429 }
@@ -62,9 +67,9 @@ const wrapHandler =
6267 */
6368 ( event , context , callback ) => {
6469 console . log ( { event } )
65- const callbackUrl = event . queryStringParameters . callbackURL
70+ const { callback_url : callbackUrl , target_ipv4 : callbackIP } = event . streaming
6671
67- if ( ! callbackUrl ) {
72+ if ( ! callbackUrl || ! callbackIP ) {
6873 return {
6974 statusCode : 422 ,
7075 body : 'Missing callback URL' ,
@@ -75,7 +80,7 @@ const wrapHandler =
7580 let res
7681
7782 try {
78- res = new StreamingResponse ( callbackUrl )
83+ res = new StreamingResponse ( callbackUrl , callbackIP )
7984 } catch ( error ) {
8085 console . error ( error )
8186 return {
0 commit comments