Skip to content

Commit

Permalink
Add rest of NR-234826 for build test 2
Browse files Browse the repository at this point in the history
  • Loading branch information
cdillard-NewRelic committed Dec 12, 2024
1 parent e1fe7db commit 893f543
Showing 1 changed file with 49 additions and 39 deletions.
88 changes: 49 additions & 39 deletions Agent/Instrumentation/NSURLSession/NRMAURLSessionOverride.m
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,13 @@

void NRMA__instanceSwizzleIfNotSwizzled(Class clazz, SEL selector, IMP newImplementation);

@interface PayloadHolder : NSObject
@property (nonatomic, retain) NRMAPayloadContainer *cppPayload;
@end

@implementation PayloadHolder
@end

@interface NRMAIMPContainer : NSObject
@property(readonly) IMP imp;
- (instancetype) initWithImp:(IMP)imp;
Expand Down Expand Up @@ -208,13 +215,12 @@ + (void)swizzleURLSessionTask
IMP originalImp = NRMAOriginal__dataTaskWithRequest;

NSMutableURLRequest* mutableRequest = [NRMAHTTPUtilities addCrossProcessIdentifier:request];
NRMAPayloadContainer* payload = [NRMAHTTPUtilities addConnectivityHeader:mutableRequest];

NSURLSessionTask* task = ((id(*)(id,SEL,NSURLRequest*))originalImp)(self,_cmd,request);

[NRMAHTTPUtilities attachPayload:payload
to:task.originalRequest];


NRMAPayloadContainer* payload = [NRMAHTTPUtilities addConnectivityHeader:mutableRequest];
[NRMAHTTPUtilities attachPayload:payload
to:task.originalRequest];

// Try to override the methods of the private class that is returned by this method.
[NRMAURLSessionTaskOverride instrumentConcreteClass:[task class]];

Expand Down Expand Up @@ -243,31 +249,30 @@ + (void)swizzleURLSessionTask
}

NSMutableURLRequest* mutableRequest = [NRMAHTTPUtilities addCrossProcessIdentifier:request];
NRMAPayloadContainer* payload = [NRMAHTTPUtilities addConnectivityHeader:mutableRequest];
__block NSURLSessionTask* task = nil;

PayloadHolder *payloadHolder = [[PayloadHolder alloc] init];
payloadHolder.cppPayload = ([NRMAHTTPUtilities addConnectivityHeader:mutableRequest]);

if (completionHandler == nil) {
task = ((id(*)(id,SEL,NSURLRequest*,void(^)(NSData*,NSURLResponse*,NSError*)))originalImp)(self,_cmd,mutableRequest,completionHandler);

NSURLSessionDataTask* task = ((id(*)(id,SEL,NSURLRequest*,void(^)(NSData*,NSURLResponse*,NSError*)))originalImp)(self,_cmd,mutableRequest,completionHandler);

[NRMAHTTPUtilities attachPayload:payload
to:task.originalRequest];
[NRMAHTTPUtilities attachPayload:payloadHolder.cppPayload to:task.originalRequest];

[NRMAURLSessionTaskOverride instrumentConcreteClass:[task class]];
return task;
}

__block NSURLSessionTask* task = nil;

task = ((id(*)(id,SEL,NSURLRequest*,void(^)(NSData*,NSURLResponse*,NSError*)))originalImp)(self,_cmd,mutableRequest,^(NSData* data, NSURLResponse* response, NSError* error){

[NRMAHTTPUtilities attachPayload:payload
to:task.originalRequest];
[NRMAHTTPUtilities attachPayload:payloadHolder.cppPayload to:task.originalRequest];

NRMA__recordTask(task,data,response,error);

completionHandler(data,response,error);
});


// Try to override the methods of the private class that is returned by this method.
[NRMAURLSessionTaskOverride instrumentConcreteClass:[task class]];

Expand Down Expand Up @@ -306,11 +311,11 @@ + (void)swizzleURLSessionTask
}

NSMutableURLRequest* mutableRequest = [NRMAHTTPUtilities addCrossProcessIdentifier:request];
NRMAPayloadContainer* payload = [NRMAHTTPUtilities addConnectivityHeader:mutableRequest];
NSURLSessionTask* task = ((NSURLSessionTask*(*)(id,SEL,NSURLRequest*,NSURL*))originalImp)(self,_cmd,mutableRequest,fileURL);

[NRMAHTTPUtilities attachPayload:payload
to:task.originalRequest];
NRMAPayloadContainer* payload = [NRMAHTTPUtilities addConnectivityHeader:mutableRequest];
[NRMAHTTPUtilities attachPayload:payload
to:task.originalRequest];

[NRMAURLSessionTaskOverride instrumentConcreteClass:[task class]];

Expand All @@ -329,11 +334,9 @@ + (void)swizzleURLSessionTask
}

NSMutableURLRequest* mutableRequest = [NRMAHTTPUtilities addCrossProcessIdentifier:request];

NRMAPayloadContainer* payload = [NRMAHTTPUtilities addConnectivityHeader:mutableRequest];

NSURLSessionTask* task = ((NSURLSessionTask*(*)(id,SEL,NSURLRequest*,NSData*))originalImp)(self, _cmd, mutableRequest, data);

NRMAPayloadContainer* payload = [NRMAHTTPUtilities addConnectivityHeader:mutableRequest];
[NRMAHTTPUtilities attachPayload:payload to:task.originalRequest];

[NRMAURLSessionTaskOverride instrumentConcreteClass:[task class]];
Expand Down Expand Up @@ -370,29 +373,32 @@ + (void)swizzleURLSessionTask
}

NSMutableURLRequest* mutableRequest = [NRMAHTTPUtilities addCrossProcessIdentifier:request];
NRMAPayloadContainer* payload = [NRMAHTTPUtilities addConnectivityHeader:mutableRequest];
__block NSURLSessionUploadTask* task = nil;
PayloadHolder *payloadHolder = [[PayloadHolder alloc] init];

payloadHolder.cppPayload = ([NRMAHTTPUtilities addConnectivityHeader:mutableRequest]);

if (completionHandler == nil) {
NSURLSessionUploadTask* task = ((NSURLSessionUploadTask*(*)(id,SEL,NSURLRequest*,NSURL*,void(^)(NSData*,NSURLResponse*,NSError*)))originalIMP)(self,_cmd,mutableRequest,fileURL,completionHandler);
task = ((NSURLSessionUploadTask*(*)(id,SEL,NSURLRequest*,NSURL*,void(^)(NSData*,NSURLResponse*,NSError*)))originalIMP)(self,_cmd,mutableRequest,fileURL,completionHandler);


[NRMAHTTPUtilities attachPayload:payloadHolder.cppPayload to:task.originalRequest];

[NRMAURLSessionTaskOverride instrumentConcreteClass:[task class]];
[NRMAHTTPUtilities attachPayload:payload
to:task.originalRequest];
return task;
}

__block NSURLSessionUploadTask* task = nil;

task = ((NSURLSessionUploadTask*(*)(id,SEL,NSURLRequest*,NSURL*,void(^)(NSData*,NSURLResponse*,NSError*)))originalIMP)(self,_cmd,mutableRequest,fileURL,^(NSData* data,
NSURLResponse* response,
NSError* error){

[NRMAHTTPUtilities attachPayload:payload
to:task.originalRequest];
[NRMAHTTPUtilities attachPayload:payloadHolder.cppPayload to:task.originalRequest];

NRMA__recordTask(task,data,response,error);

completionHandler(data,response,error);
});

// Try to override the methods of the private class that is returned by this method.
[NRMAURLSessionTaskOverride instrumentConcreteClass:[task class]];
return task;
Expand All @@ -410,28 +416,32 @@ + (void)swizzleURLSessionTask
}

NSMutableURLRequest* mutableRequest = [NRMAHTTPUtilities addCrossProcessIdentifier:request];
NRMAPayloadContainer* payload = [NRMAHTTPUtilities addConnectivityHeader:mutableRequest];
__block NSURLSessionUploadTask* task = nil;

PayloadHolder *payloadHolder = [[PayloadHolder alloc] init];

payloadHolder.cppPayload = ([NRMAHTTPUtilities addConnectivityHeader:mutableRequest]);

if (completionHandler == nil) {
NSURLSessionUploadTask* task = ((NSURLSessionUploadTask*(*)(id,SEL,NSURLRequest*,NSData*,void(^)(NSData*,NSURLResponse*,NSError*)))originalIMP)(self,_cmd,mutableRequest,bodyData,completionHandler);
task = ((NSURLSessionUploadTask*(*)(id,SEL,NSURLRequest*,NSData*,void(^)(NSData*,NSURLResponse*,NSError*)))originalIMP)(self,_cmd,mutableRequest,bodyData,completionHandler);

[NRMAHTTPUtilities attachPayload:payload
to:task.originalRequest];

[NRMAHTTPUtilities attachPayload:payloadHolder.cppPayload to:task.originalRequest];

[NRMAURLSessionTaskOverride instrumentConcreteClass:[task class]];
return task;
}

__block NSURLSessionUploadTask* task = nil;

task = ((NSURLSessionUploadTask*(*)(id,SEL,NSURLRequest*,NSData*,void(^)(NSData*,NSURLResponse*,NSError*)))originalIMP)(self,_cmd,mutableRequest,bodyData,^(NSData* data, NSURLResponse* response, NSError* error){

[NRMAHTTPUtilities attachPayload:payload
to:task.originalRequest];

[NRMAHTTPUtilities attachPayload:payloadHolder.cppPayload to:task.originalRequest];

NRMA__recordTask(task,data,response,error);

completionHandler(data,response,error);
});

// Try to override the methods of the private class that is returned by this method.
[NRMAURLSessionTaskOverride instrumentConcreteClass:[task class]];
return task;
Expand Down

0 comments on commit 893f543

Please sign in to comment.