mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Service/HTTP: stubbed InitializeConnectionSession
This commit is contained in:
		
							parent
							
								
									65c7ed8445
								
							
						
					
					
						commit
						32155cd683
					
				
					 2 changed files with 36 additions and 2 deletions
				
			
		|  | @ -98,6 +98,29 @@ void HTTP_C::CloseContext(Kernel::HLERequestContext& ctx) { | ||||||
|     rb.Push(RESULT_SUCCESS); |     rb.Push(RESULT_SUCCESS); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void HTTP_C::InitializeConnectionSession(Kernel::HLERequestContext& ctx) { | ||||||
|  |     IPC::RequestParser rp(ctx, 0x8, 1, 2); | ||||||
|  |     const u32 context_handle = rp.Pop<u32>(); | ||||||
|  |     rp.PopPID(); | ||||||
|  | 
 | ||||||
|  |     auto itr = contexts.find(context_handle); | ||||||
|  |     if (itr == contexts.end()) { | ||||||
|  |         IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); | ||||||
|  |         rb.Push(ERROR_CONTEXT_ERROR); | ||||||
|  |         LOG_ERROR(Service_HTTP, "called, context {} not found", context_handle); | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     // TODO(Subv): What happens if you try to initalize a context that's currently being used?
 | ||||||
|  |     ASSERT(itr->second.state == RequestState::NotStarted); | ||||||
|  | 
 | ||||||
|  |     // TODO(B3N30): Check what gets initalized
 | ||||||
|  | 
 | ||||||
|  |     IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); | ||||||
|  |     rb.Push(RESULT_SUCCESS); | ||||||
|  |     LOG_WARNING(Service_HTTP, "(STUBBED) called, context_id={}", context_handle); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| void HTTP_C::AddRequestHeader(Kernel::HLERequestContext& ctx) { | void HTTP_C::AddRequestHeader(Kernel::HLERequestContext& ctx) { | ||||||
|     IPC::RequestParser rp(ctx, 0x11, 3, 4); |     IPC::RequestParser rp(ctx, 0x11, 3, 4); | ||||||
|     const u32 context_handle = rp.Pop<u32>(); |     const u32 context_handle = rp.Pop<u32>(); | ||||||
|  | @ -123,7 +146,7 @@ void HTTP_C::AddRequestHeader(Kernel::HLERequestContext& ctx) { | ||||||
|                             return m.name == name; |                             return m.name == name; | ||||||
|                         }) == itr->second.headers.end()); |                         }) == itr->second.headers.end()); | ||||||
| 
 | 
 | ||||||
|     itr->second.headers.push_back(Context::RequestHeader{name, value}); |     itr->second.headers.emplace_back(name, value); | ||||||
| 
 | 
 | ||||||
|     IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); |     IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); | ||||||
|     rb.Push(RESULT_SUCCESS); |     rb.Push(RESULT_SUCCESS); | ||||||
|  | @ -142,7 +165,7 @@ HTTP_C::HTTP_C() : ServiceFramework("http:C", 32) { | ||||||
|         {0x00050040, nullptr, "GetRequestState"}, |         {0x00050040, nullptr, "GetRequestState"}, | ||||||
|         {0x00060040, nullptr, "GetDownloadSizeState"}, |         {0x00060040, nullptr, "GetDownloadSizeState"}, | ||||||
|         {0x00070040, nullptr, "GetRequestError"}, |         {0x00070040, nullptr, "GetRequestError"}, | ||||||
|         {0x00080042, nullptr, "InitializeConnectionSession"}, |         {0x00080042, &HTTP_C::InitializeConnectionSession, "InitializeConnectionSession"}, | ||||||
|         {0x00090040, nullptr, "BeginRequest"}, |         {0x00090040, nullptr, "BeginRequest"}, | ||||||
|         {0x000A0040, nullptr, "BeginRequestAsync"}, |         {0x000A0040, nullptr, "BeginRequestAsync"}, | ||||||
|         {0x000B0082, nullptr, "ReceiveData"}, |         {0x000B0082, nullptr, "ReceiveData"}, | ||||||
|  |  | ||||||
|  | @ -141,6 +141,17 @@ private: | ||||||
|      */ |      */ | ||||||
|     void CloseContext(Kernel::HLERequestContext& ctx); |     void CloseContext(Kernel::HLERequestContext& ctx); | ||||||
| 
 | 
 | ||||||
|  |     /**
 | ||||||
|  |      * HTTP_C::InitializeConnectionSession service function | ||||||
|  |      *  Inputs: | ||||||
|  |      *      1 : HTTP context handle | ||||||
|  |      *      2 : 0x20, processID translate-header for the ARM11-kernel | ||||||
|  |      *      3 : processID set by the ARM11-kernel | ||||||
|  |      *  Outputs: | ||||||
|  |      *      1 : Result of function, 0 on success, otherwise error code | ||||||
|  |      */ | ||||||
|  |     void InitializeConnectionSession(Kernel::HLERequestContext& ctx); | ||||||
|  | 
 | ||||||
|     /**
 |     /**
 | ||||||
|      * HTTP_C::AddRequestHeader service function |      * HTTP_C::AddRequestHeader service function | ||||||
|      *  Inputs: |      *  Inputs: | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue