Skip to content

Commit 3afdc65

Browse files
authored
Fix async cookies (#27)
1 parent 71a9fa5 commit 3afdc65

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

generate.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,28 @@ sed -i 's/Minor update/Automated deployment/' src/VRChat.API/VRChat.API.csproj
5454
sed -i '/PackageTags/a \ <PackageReadmeFile>README.md<\/PackageReadmeFile>' src/VRChat.API/VRChat.API.csproj
5555
sed -i '/System.ComponentModel.Annotations/a \ <None Include="..\\README.md" Pack="true" PackagePath="\\"/>' src/VRChat.API/VRChat.API.csproj
5656

57+
sed -i '/var baseUrl = configuration\.GetOperationServerUrl(options\.Operation, options\.OperationIndex) ?? _baseUrl;/,/\};/c \
58+
var baseUrl = configuration.GetOperationServerUrl(options.Operation, options.OperationIndex) ?? _baseUrl;\
59+
\
60+
var cookies = CookieContainer;\
61+
\
62+
if (options.Cookies != null && options.Cookies.Count > 0)\
63+
{\
64+
foreach (var cookie in options.Cookies)\
65+
{\
66+
cookies.Add(new Cookie(cookie.Name, cookie.Value, cookie.Path, cookie.Domain));\
67+
}\
68+
}\
69+
\
70+
var clientOptions = new RestClientOptions(baseUrl)\
71+
{\
72+
ClientCertificates = configuration.ClientCertificates,\
73+
CookieContainer = cookies,\
74+
MaxTimeout = configuration.Timeout,\
75+
Proxy = configuration.Proxy,\
76+
UserAgent = configuration.UserAgent\
77+
};' src/VRChat.API/Client/ApiClient.cs
78+
5779
# Remove messily pasted markdown at top of every file
5880
for i in src/VRChat.API/*/*.cs; do
5981
sed -i '/VRChat API Banner/d' $i

src/VRChat.API/Client/ApiClient.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -545,10 +545,21 @@ private ApiResponse<T> Exec<T>(RestRequest req, RequestOptions options, IReadabl
545545
private async Task<ApiResponse<T>> ExecAsync<T>(RestRequest req, RequestOptions options, IReadableConfiguration configuration, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken))
546546
{
547547
var baseUrl = configuration.GetOperationServerUrl(options.Operation, options.OperationIndex) ?? _baseUrl;
548-
548+
549+
var cookies = CookieContainer;
550+
551+
if (options.Cookies != null && options.Cookies.Count > 0)
552+
{
553+
foreach (var cookie in options.Cookies)
554+
{
555+
cookies.Add(new Cookie(cookie.Name, cookie.Value, cookie.Path, cookie.Domain));
556+
}
557+
}
558+
549559
var clientOptions = new RestClientOptions(baseUrl)
550560
{
551561
ClientCertificates = configuration.ClientCertificates,
562+
CookieContainer = cookies,
552563
MaxTimeout = configuration.Timeout,
553564
Proxy = configuration.Proxy,
554565
UserAgent = configuration.UserAgent

0 commit comments

Comments
 (0)