Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
T
Titanium-Web-Proxy
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Titanium-Web-Proxy
Commits
9ee26d14
Commit
9ee26d14
authored
May 10, 2017
by
Honfika
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Inconsistent naming fixes 2
parent
ee3513c1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
52 additions
and
52 deletions
+52
-52
ExternalProxy.cs
Titanium.Web.Proxy/Models/ExternalProxy.cs
+5
-5
WinCertificateMaker.cs
...nium.Web.Proxy/Network/Certificate/WinCertificateMaker.cs
+38
-38
ProxyServer.cs
Titanium.Web.Proxy/ProxyServer.cs
+1
-1
RequestHandler.cs
Titanium.Web.Proxy/RequestHandler.cs
+6
-6
ResponseHandler.cs
Titanium.Web.Proxy/ResponseHandler.cs
+2
-2
No files found.
Titanium.Web.Proxy/Models/ExternalProxy.cs
View file @
9ee26d14
...
@@ -8,7 +8,7 @@ namespace Titanium.Web.Proxy.Models
...
@@ -8,7 +8,7 @@ namespace Titanium.Web.Proxy.Models
/// </summary>
/// </summary>
public
class
ExternalProxy
public
class
ExternalProxy
{
{
private
static
readonly
Lazy
<
NetworkCredential
>
D
efaultCredentials
=
new
Lazy
<
NetworkCredential
>(()
=>
CredentialCache
.
DefaultNetworkCredentials
);
private
static
readonly
Lazy
<
NetworkCredential
>
d
efaultCredentials
=
new
Lazy
<
NetworkCredential
>(()
=>
CredentialCache
.
DefaultNetworkCredentials
);
private
string
userName
;
private
string
userName
;
private
string
password
;
private
string
password
;
...
@@ -27,12 +27,12 @@ namespace Titanium.Web.Proxy.Models
...
@@ -27,12 +27,12 @@ namespace Titanium.Web.Proxy.Models
/// Username.
/// Username.
/// </summary>
/// </summary>
public
string
UserName
{
public
string
UserName
{
get
{
return
UseDefaultCredentials
?
D
efaultCredentials
.
Value
.
UserName
:
userName
;
}
get
{
return
UseDefaultCredentials
?
d
efaultCredentials
.
Value
.
UserName
:
userName
;
}
set
set
{
{
userName
=
value
;
userName
=
value
;
if
(
D
efaultCredentials
.
Value
.
UserName
!=
userName
)
if
(
d
efaultCredentials
.
Value
.
UserName
!=
userName
)
{
{
UseDefaultCredentials
=
false
;
UseDefaultCredentials
=
false
;
}
}
...
@@ -44,12 +44,12 @@ namespace Titanium.Web.Proxy.Models
...
@@ -44,12 +44,12 @@ namespace Titanium.Web.Proxy.Models
/// </summary>
/// </summary>
public
string
Password
public
string
Password
{
{
get
{
return
UseDefaultCredentials
?
D
efaultCredentials
.
Value
.
Password
:
password
;
}
get
{
return
UseDefaultCredentials
?
d
efaultCredentials
.
Value
.
Password
:
password
;
}
set
set
{
{
password
=
value
;
password
=
value
;
if
(
D
efaultCredentials
.
Value
.
Password
!=
password
)
if
(
d
efaultCredentials
.
Value
.
Password
!=
password
)
{
{
UseDefaultCredentials
=
false
;
UseDefaultCredentials
=
false
;
}
}
...
...
Titanium.Web.Proxy/Network/Certificate/WinCertificateMaker.cs
View file @
9ee26d14
...
@@ -42,7 +42,7 @@ namespace Titanium.Web.Proxy.Network.Certificate
...
@@ -42,7 +42,7 @@ namespace Titanium.Web.Proxy.Network.Certificate
private
readonly
string
sProviderName
=
"Microsoft Enhanced Cryptographic Provider v1.0"
;
private
readonly
string
sProviderName
=
"Microsoft Enhanced Cryptographic Provider v1.0"
;
private
object
_S
haredPrivateKey
;
private
object
s
haredPrivateKey
;
/// <summary>
/// <summary>
/// Constructor.
/// Constructor.
...
@@ -105,7 +105,7 @@ namespace Titanium.Web.Proxy.Network.Certificate
...
@@ -105,7 +105,7 @@ namespace Titanium.Web.Proxy.Network.Certificate
if
(!
isRoot
)
if
(!
isRoot
)
{
{
sharedPrivateKey
=
_S
haredPrivateKey
;
sharedPrivateKey
=
this
.
s
haredPrivateKey
;
}
}
if
(
sharedPrivateKey
==
null
)
if
(
sharedPrivateKey
==
null
)
...
@@ -130,52 +130,52 @@ namespace Titanium.Web.Proxy.Network.Certificate
...
@@ -130,52 +130,52 @@ namespace Titanium.Web.Proxy.Network.Certificate
if
(!
isRoot
)
if
(!
isRoot
)
{
{
_S
haredPrivateKey
=
sharedPrivateKey
;
this
.
s
haredPrivateKey
=
sharedPrivateKey
;
}
}
}
}
typeValue
=
new
object
[
1
];
typeValue
=
new
object
[
1
];
var
OID
=
Activator
.
CreateInstance
(
typeOID
);
var
oid
=
Activator
.
CreateInstance
(
typeOID
);
typeValue
[
0
]
=
"1.3.6.1.5.5.7.3.1"
;
typeValue
[
0
]
=
"1.3.6.1.5.5.7.3.1"
;
typeOID
.
InvokeMember
(
"InitializeFromValue"
,
BindingFlags
.
InvokeMethod
,
null
,
OID
,
typeValue
);
typeOID
.
InvokeMember
(
"InitializeFromValue"
,
BindingFlags
.
InvokeMethod
,
null
,
oid
,
typeValue
);
var
OIDS
=
Activator
.
CreateInstance
(
typeOIDS
);
var
oids
=
Activator
.
CreateInstance
(
typeOIDS
);
typeValue
[
0
]
=
OID
;
typeValue
[
0
]
=
oid
;
typeOIDS
.
InvokeMember
(
"Add"
,
BindingFlags
.
InvokeMethod
,
null
,
OIDS
,
typeValue
);
typeOIDS
.
InvokeMember
(
"Add"
,
BindingFlags
.
InvokeMethod
,
null
,
oids
,
typeValue
);
var
EKU
Ext
=
Activator
.
CreateInstance
(
typeEKUExt
);
var
eku
Ext
=
Activator
.
CreateInstance
(
typeEKUExt
);
typeValue
[
0
]
=
OIDS
;
typeValue
[
0
]
=
oids
;
typeEKUExt
.
InvokeMember
(
"InitializeEncode"
,
BindingFlags
.
InvokeMethod
,
null
,
EKU
Ext
,
typeValue
);
typeEKUExt
.
InvokeMember
(
"InitializeEncode"
,
BindingFlags
.
InvokeMethod
,
null
,
eku
Ext
,
typeValue
);
var
R
equestCert
=
Activator
.
CreateInstance
(
typeRequestCert
);
var
r
equestCert
=
Activator
.
CreateInstance
(
typeRequestCert
);
typeValue
=
new
[]
{
1
,
sharedPrivateKey
,
string
.
Empty
};
typeValue
=
new
[]
{
1
,
sharedPrivateKey
,
string
.
Empty
};
typeRequestCert
.
InvokeMember
(
"InitializeFromPrivateKey"
,
BindingFlags
.
InvokeMethod
,
null
,
R
equestCert
,
typeValue
);
typeRequestCert
.
InvokeMember
(
"InitializeFromPrivateKey"
,
BindingFlags
.
InvokeMethod
,
null
,
r
equestCert
,
typeValue
);
typeValue
=
new
[]
{
x500CertDN
};
typeValue
=
new
[]
{
x500CertDN
};
typeRequestCert
.
InvokeMember
(
"Subject"
,
BindingFlags
.
PutDispProperty
,
null
,
R
equestCert
,
typeValue
);
typeRequestCert
.
InvokeMember
(
"Subject"
,
BindingFlags
.
PutDispProperty
,
null
,
r
equestCert
,
typeValue
);
typeValue
[
0
]
=
x500RootCertDN
;
typeValue
[
0
]
=
x500RootCertDN
;
typeRequestCert
.
InvokeMember
(
"Issuer"
,
BindingFlags
.
PutDispProperty
,
null
,
R
equestCert
,
typeValue
);
typeRequestCert
.
InvokeMember
(
"Issuer"
,
BindingFlags
.
PutDispProperty
,
null
,
r
equestCert
,
typeValue
);
typeValue
[
0
]
=
validFrom
;
typeValue
[
0
]
=
validFrom
;
typeRequestCert
.
InvokeMember
(
"NotBefore"
,
BindingFlags
.
PutDispProperty
,
null
,
R
equestCert
,
typeValue
);
typeRequestCert
.
InvokeMember
(
"NotBefore"
,
BindingFlags
.
PutDispProperty
,
null
,
r
equestCert
,
typeValue
);
typeValue
[
0
]
=
validTo
;
typeValue
[
0
]
=
validTo
;
typeRequestCert
.
InvokeMember
(
"NotAfter"
,
BindingFlags
.
PutDispProperty
,
null
,
R
equestCert
,
typeValue
);
typeRequestCert
.
InvokeMember
(
"NotAfter"
,
BindingFlags
.
PutDispProperty
,
null
,
r
equestCert
,
typeValue
);
var
KU
Ext
=
Activator
.
CreateInstance
(
typeKUExt
);
var
ku
Ext
=
Activator
.
CreateInstance
(
typeKUExt
);
typeValue
[
0
]
=
176
;
typeValue
[
0
]
=
176
;
typeKUExt
.
InvokeMember
(
"InitializeEncode"
,
BindingFlags
.
InvokeMethod
,
null
,
KU
Ext
,
typeValue
);
typeKUExt
.
InvokeMember
(
"InitializeEncode"
,
BindingFlags
.
InvokeMethod
,
null
,
ku
Ext
,
typeValue
);
var
certificate
=
typeRequestCert
.
InvokeMember
(
"X509Extensions"
,
BindingFlags
.
GetProperty
,
null
,
R
equestCert
,
null
);
var
certificate
=
typeRequestCert
.
InvokeMember
(
"X509Extensions"
,
BindingFlags
.
GetProperty
,
null
,
r
equestCert
,
null
);
typeValue
=
new
object
[
1
];
typeValue
=
new
object
[
1
];
if
(!
isRoot
)
if
(!
isRoot
)
{
{
typeValue
[
0
]
=
KU
Ext
;
typeValue
[
0
]
=
ku
Ext
;
typeX509Extensions
.
InvokeMember
(
"Add"
,
BindingFlags
.
InvokeMethod
,
null
,
certificate
,
typeValue
);
typeX509Extensions
.
InvokeMember
(
"Add"
,
BindingFlags
.
InvokeMethod
,
null
,
certificate
,
typeValue
);
}
}
typeValue
[
0
]
=
EKU
Ext
;
typeValue
[
0
]
=
eku
Ext
;
typeX509Extensions
.
InvokeMember
(
"Add"
,
BindingFlags
.
InvokeMethod
,
null
,
certificate
,
typeValue
);
typeX509Extensions
.
InvokeMember
(
"Add"
,
BindingFlags
.
InvokeMethod
,
null
,
certificate
,
typeValue
);
if
(!
isRoot
)
if
(!
isRoot
)
...
@@ -203,12 +203,12 @@ namespace Titanium.Web.Proxy.Network.Certificate
...
@@ -203,12 +203,12 @@ namespace Titanium.Web.Proxy.Network.Certificate
if
(!
isRoot
)
if
(!
isRoot
)
{
{
var
S
ignerCertificate
=
Activator
.
CreateInstance
(
typeSignerCertificate
);
var
s
ignerCertificate
=
Activator
.
CreateInstance
(
typeSignerCertificate
);
typeValue
=
new
object
[]
{
0
,
0
,
12
,
signingCertificate
.
Thumbprint
};
typeValue
=
new
object
[]
{
0
,
0
,
12
,
signingCertificate
.
Thumbprint
};
typeSignerCertificate
.
InvokeMember
(
"Initialize"
,
BindingFlags
.
InvokeMethod
,
null
,
S
ignerCertificate
,
typeValue
);
typeSignerCertificate
.
InvokeMember
(
"Initialize"
,
BindingFlags
.
InvokeMethod
,
null
,
s
ignerCertificate
,
typeValue
);
typeValue
=
new
[]
{
S
ignerCertificate
};
typeValue
=
new
[]
{
s
ignerCertificate
};
typeRequestCert
.
InvokeMember
(
"SignerCertificate"
,
BindingFlags
.
PutDispProperty
,
null
,
R
equestCert
,
typeValue
);
typeRequestCert
.
InvokeMember
(
"SignerCertificate"
,
BindingFlags
.
PutDispProperty
,
null
,
r
equestCert
,
typeValue
);
}
}
else
else
{
{
...
@@ -220,24 +220,24 @@ namespace Titanium.Web.Proxy.Network.Certificate
...
@@ -220,24 +220,24 @@ namespace Titanium.Web.Proxy.Network.Certificate
typeX509Extensions
.
InvokeMember
(
"Add"
,
BindingFlags
.
InvokeMethod
,
null
,
certificate
,
typeValue
);
typeX509Extensions
.
InvokeMember
(
"Add"
,
BindingFlags
.
InvokeMethod
,
null
,
certificate
,
typeValue
);
}
}
OID
=
Activator
.
CreateInstance
(
typeOID
);
oid
=
Activator
.
CreateInstance
(
typeOID
);
typeValue
=
new
object
[]
{
1
,
0
,
0
,
hashAlg
};
typeValue
=
new
object
[]
{
1
,
0
,
0
,
hashAlg
};
typeOID
.
InvokeMember
(
"InitializeFromAlgorithmName"
,
BindingFlags
.
InvokeMethod
,
null
,
OID
,
typeValue
);
typeOID
.
InvokeMember
(
"InitializeFromAlgorithmName"
,
BindingFlags
.
InvokeMethod
,
null
,
oid
,
typeValue
);
typeValue
=
new
[]
{
OID
};
typeValue
=
new
[]
{
oid
};
typeRequestCert
.
InvokeMember
(
"HashAlgorithm"
,
BindingFlags
.
PutDispProperty
,
null
,
R
equestCert
,
typeValue
);
typeRequestCert
.
InvokeMember
(
"HashAlgorithm"
,
BindingFlags
.
PutDispProperty
,
null
,
r
equestCert
,
typeValue
);
typeRequestCert
.
InvokeMember
(
"Encode"
,
BindingFlags
.
InvokeMethod
,
null
,
R
equestCert
,
null
);
typeRequestCert
.
InvokeMember
(
"Encode"
,
BindingFlags
.
InvokeMethod
,
null
,
r
equestCert
,
null
);
var
X
509Enrollment
=
Activator
.
CreateInstance
(
typeX509Enrollment
);
var
x
509Enrollment
=
Activator
.
CreateInstance
(
typeX509Enrollment
);
typeValue
[
0
]
=
R
equestCert
;
typeValue
[
0
]
=
r
equestCert
;
typeX509Enrollment
.
InvokeMember
(
"InitializeFromRequest"
,
BindingFlags
.
InvokeMethod
,
null
,
X
509Enrollment
,
typeValue
);
typeX509Enrollment
.
InvokeMember
(
"InitializeFromRequest"
,
BindingFlags
.
InvokeMethod
,
null
,
x
509Enrollment
,
typeValue
);
if
(
isRoot
)
if
(
isRoot
)
{
{
typeValue
[
0
]
=
fullSubject
;
typeValue
[
0
]
=
fullSubject
;
typeX509Enrollment
.
InvokeMember
(
"CertificateFriendlyName"
,
BindingFlags
.
PutDispProperty
,
null
,
X
509Enrollment
,
typeValue
);
typeX509Enrollment
.
InvokeMember
(
"CertificateFriendlyName"
,
BindingFlags
.
PutDispProperty
,
null
,
x
509Enrollment
,
typeValue
);
}
}
...
@@ -245,15 +245,15 @@ namespace Titanium.Web.Proxy.Network.Certificate
...
@@ -245,15 +245,15 @@ namespace Titanium.Web.Proxy.Network.Certificate
typeValue
[
0
]
=
0
;
typeValue
[
0
]
=
0
;
var
createCertRequest
=
typeX509Enrollment
.
InvokeMember
(
"CreateRequest"
,
BindingFlags
.
InvokeMethod
,
null
,
X
509Enrollment
,
typeValue
);
var
createCertRequest
=
typeX509Enrollment
.
InvokeMember
(
"CreateRequest"
,
BindingFlags
.
InvokeMethod
,
null
,
x
509Enrollment
,
typeValue
);
typeValue
=
new
[]
{
2
,
createCertRequest
,
0
,
string
.
Empty
};
typeValue
=
new
[]
{
2
,
createCertRequest
,
0
,
string
.
Empty
};
typeX509Enrollment
.
InvokeMember
(
"InstallResponse"
,
BindingFlags
.
InvokeMethod
,
null
,
X
509Enrollment
,
typeValue
);
typeX509Enrollment
.
InvokeMember
(
"InstallResponse"
,
BindingFlags
.
InvokeMethod
,
null
,
x
509Enrollment
,
typeValue
);
typeValue
=
new
object
[]
{
null
,
0
,
1
};
typeValue
=
new
object
[]
{
null
,
0
,
1
};
try
try
{
{
var
empty
=
(
string
)
typeX509Enrollment
.
InvokeMember
(
"CreatePFX"
,
BindingFlags
.
InvokeMethod
,
null
,
X
509Enrollment
,
typeValue
);
var
empty
=
(
string
)
typeX509Enrollment
.
InvokeMember
(
"CreatePFX"
,
BindingFlags
.
InvokeMethod
,
null
,
x
509Enrollment
,
typeValue
);
return
new
X509Certificate2
(
Convert
.
FromBase64String
(
empty
),
string
.
Empty
,
X509KeyStorageFlags
.
Exportable
);
return
new
X509Certificate2
(
Convert
.
FromBase64String
(
empty
),
string
.
Empty
,
X509KeyStorageFlags
.
Exportable
);
}
}
catch
(
Exception
)
catch
(
Exception
)
...
...
Titanium.Web.Proxy/ProxyServer.cs
View file @
9ee26d14
...
@@ -67,7 +67,7 @@ namespace Titanium.Web.Proxy
...
@@ -67,7 +67,7 @@ namespace Titanium.Web.Proxy
/// <summary>
/// <summary>
/// Buffer size used throughout this proxy
/// Buffer size used throughout this proxy
/// </summary>
/// </summary>
public
int
B
UFFER_SIZE
{
get
;
set
;
}
=
8192
;
public
int
B
ufferSize
{
get
;
set
;
}
=
8192
;
/// <summary>
/// <summary>
/// The root certificate
/// The root certificate
...
...
Titanium.Web.Proxy/RequestHandler.cs
View file @
9ee26d14
...
@@ -147,7 +147,7 @@ namespace Titanium.Web.Proxy
...
@@ -147,7 +147,7 @@ namespace Titanium.Web.Proxy
//write back successfull CONNECT response
//write back successfull CONNECT response
await
WriteConnectResponse
(
clientStreamWriter
,
version
);
await
WriteConnectResponse
(
clientStreamWriter
,
version
);
await
TcpHelper
.
SendRaw
(
B
UFFER_SIZE
,
ConnectionTimeOutSeconds
,
httpRemoteUri
.
Host
,
httpRemoteUri
.
Port
,
await
TcpHelper
.
SendRaw
(
B
ufferSize
,
ConnectionTimeOutSeconds
,
httpRemoteUri
.
Host
,
httpRemoteUri
.
Port
,
null
,
version
,
null
,
null
,
version
,
null
,
false
,
SupportedSslProtocols
,
false
,
SupportedSslProtocols
,
ValidateServerCertificate
,
ValidateServerCertificate
,
...
@@ -245,7 +245,7 @@ namespace Titanium.Web.Proxy
...
@@ -245,7 +245,7 @@ namespace Titanium.Web.Proxy
args
.
CustomUpStreamHttpProxyUsed
=
customUpStreamHttpProxy
;
args
.
CustomUpStreamHttpProxyUsed
=
customUpStreamHttpProxy
;
args
.
CustomUpStreamHttpsProxyUsed
=
customUpStreamHttpsProxy
;
args
.
CustomUpStreamHttpsProxyUsed
=
customUpStreamHttpsProxy
;
connection
=
await
tcpConnectionFactory
.
CreateClient
(
B
UFFER_SIZE
,
ConnectionTimeOutSeconds
,
connection
=
await
tcpConnectionFactory
.
CreateClient
(
B
ufferSize
,
ConnectionTimeOutSeconds
,
args
.
WebSession
.
Request
.
RequestUri
.
Host
,
args
.
WebSession
.
Request
.
RequestUri
.
Port
,
args
.
WebSession
.
Request
.
HttpVersion
,
args
.
WebSession
.
Request
.
RequestUri
.
Host
,
args
.
WebSession
.
Request
.
RequestUri
.
Port
,
args
.
WebSession
.
Request
.
HttpVersion
,
args
.
IsHttps
,
SupportedSslProtocols
,
args
.
IsHttps
,
SupportedSslProtocols
,
ValidateServerCertificate
,
ValidateServerCertificate
,
...
@@ -378,7 +378,7 @@ namespace Titanium.Web.Proxy
...
@@ -378,7 +378,7 @@ namespace Titanium.Web.Proxy
}
}
var
args
=
var
args
=
new
SessionEventArgs
(
B
UFFER_SIZE
,
HandleHttpSessionResponse
)
new
SessionEventArgs
(
B
ufferSize
,
HandleHttpSessionResponse
)
{
{
ProxyClient
=
{
TcpClient
=
client
},
ProxyClient
=
{
TcpClient
=
client
},
WebSession
=
{
ConnectHeaders
=
connectHeaders
}
WebSession
=
{
ConnectHeaders
=
connectHeaders
}
...
@@ -487,7 +487,7 @@ namespace Titanium.Web.Proxy
...
@@ -487,7 +487,7 @@ namespace Titanium.Web.Proxy
//if upgrading to websocket then relay the requet without reading the contents
//if upgrading to websocket then relay the requet without reading the contents
if
(
args
.
WebSession
.
Request
.
UpgradeToWebSocket
)
if
(
args
.
WebSession
.
Request
.
UpgradeToWebSocket
)
{
{
await
TcpHelper
.
SendRaw
(
B
UFFER_SIZE
,
ConnectionTimeOutSeconds
,
httpRemoteUri
.
Host
,
httpRemoteUri
.
Port
,
await
TcpHelper
.
SendRaw
(
B
ufferSize
,
ConnectionTimeOutSeconds
,
httpRemoteUri
.
Host
,
httpRemoteUri
.
Port
,
httpCmd
,
httpVersion
,
args
.
WebSession
.
Request
.
RequestHeaders
,
args
.
IsHttps
,
httpCmd
,
httpVersion
,
args
.
WebSession
.
Request
.
RequestHeaders
,
args
.
IsHttps
,
SupportedSslProtocols
,
ValidateServerCertificate
,
SupportedSslProtocols
,
ValidateServerCertificate
,
SelectClientCertificate
,
SelectClientCertificate
,
...
@@ -581,14 +581,14 @@ namespace Titanium.Web.Proxy
...
@@ -581,14 +581,14 @@ namespace Titanium.Web.Proxy
//send the request body bytes to server
//send the request body bytes to server
if
(
args
.
WebSession
.
Request
.
ContentLength
>
0
)
if
(
args
.
WebSession
.
Request
.
ContentLength
>
0
)
{
{
await
args
.
ProxyClient
.
ClientStreamReader
.
CopyBytesToStream
(
B
UFFER_SIZE
,
postStream
,
args
.
WebSession
.
Request
.
ContentLength
);
await
args
.
ProxyClient
.
ClientStreamReader
.
CopyBytesToStream
(
B
ufferSize
,
postStream
,
args
.
WebSession
.
Request
.
ContentLength
);
}
}
//Need to revist, find any potential bugs
//Need to revist, find any potential bugs
//send the request body bytes to server in chunks
//send the request body bytes to server in chunks
else
if
(
args
.
WebSession
.
Request
.
IsChunked
)
else
if
(
args
.
WebSession
.
Request
.
IsChunked
)
{
{
await
args
.
ProxyClient
.
ClientStreamReader
.
CopyBytesToStreamChunked
(
B
UFFER_SIZE
,
postStream
);
await
args
.
ProxyClient
.
ClientStreamReader
.
CopyBytesToStreamChunked
(
B
ufferSize
,
postStream
);
}
}
}
}
}
}
...
...
Titanium.Web.Proxy/ResponseHandler.cs
View file @
9ee26d14
...
@@ -108,7 +108,7 @@ namespace Titanium.Web.Proxy
...
@@ -108,7 +108,7 @@ namespace Titanium.Web.Proxy
||
!
args
.
WebSession
.
Response
.
ResponseKeepAlive
)
||
!
args
.
WebSession
.
Response
.
ResponseKeepAlive
)
{
{
await
args
.
WebSession
.
ServerConnection
.
StreamReader
await
args
.
WebSession
.
ServerConnection
.
StreamReader
.
WriteResponseBody
(
B
UFFER_SIZE
,
args
.
ProxyClient
.
ClientStream
,
args
.
WebSession
.
Response
.
IsChunked
,
.
WriteResponseBody
(
B
ufferSize
,
args
.
ProxyClient
.
ClientStream
,
args
.
WebSession
.
Response
.
IsChunked
,
args
.
WebSession
.
Response
.
ContentLength
);
args
.
WebSession
.
Response
.
ContentLength
);
}
}
//write response if connection:keep-alive header exist and when version is http/1.0
//write response if connection:keep-alive header exist and when version is http/1.0
...
@@ -116,7 +116,7 @@ namespace Titanium.Web.Proxy
...
@@ -116,7 +116,7 @@ namespace Titanium.Web.Proxy
else
if
(
args
.
WebSession
.
Response
.
ResponseKeepAlive
&&
args
.
WebSession
.
Response
.
HttpVersion
.
Minor
==
0
)
else
if
(
args
.
WebSession
.
Response
.
ResponseKeepAlive
&&
args
.
WebSession
.
Response
.
HttpVersion
.
Minor
==
0
)
{
{
await
args
.
WebSession
.
ServerConnection
.
StreamReader
await
args
.
WebSession
.
ServerConnection
.
StreamReader
.
WriteResponseBody
(
B
UFFER_SIZE
,
args
.
ProxyClient
.
ClientStream
,
args
.
WebSession
.
Response
.
IsChunked
,
.
WriteResponseBody
(
B
ufferSize
,
args
.
ProxyClient
.
ClientStream
,
args
.
WebSession
.
Response
.
IsChunked
,
args
.
WebSession
.
Response
.
ContentLength
);
args
.
WebSession
.
Response
.
ContentLength
);
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment