Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
apk
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
apk
Commits
5bed3fb6
Commit
5bed3fb6
authored
Jul 16, 2014
by
DrKLO
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Try to login in different DC if current is unavailable
parent
feaf6c32
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
52 additions
and
51 deletions
+52
-51
build.gradle
TMessagesProj/build.gradle
+1
-1
ConnectionsManager.java
.../main/java/org/telegram/messenger/ConnectionsManager.java
+49
-49
RPCRequest.java
...Proj/src/main/java/org/telegram/messenger/RPCRequest.java
+1
-0
LoginActivityPhoneView.java
...src/main/java/org/telegram/ui/LoginActivityPhoneView.java
+1
-1
No files found.
TMessagesProj/build.gradle
View file @
5bed3fb6
...
@@ -83,7 +83,7 @@ android {
...
@@ -83,7 +83,7 @@ android {
defaultConfig
{
defaultConfig
{
minSdkVersion
8
minSdkVersion
8
targetSdkVersion
19
targetSdkVersion
19
versionCode
28
0
versionCode
28
1
versionName
"1.6.0"
versionName
"1.6.0"
}
}
}
}
TMessagesProj/src/main/java/org/telegram/messenger/ConnectionsManager.java
View file @
5bed3fb6
...
@@ -781,7 +781,7 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
...
@@ -781,7 +781,7 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
}
}
updatingDcSettings
=
false
;
updatingDcSettings
=
false
;
}
}
},
null
,
true
,
RPCRequest
.
RPCRequestClassEnableUnauthorized
|
RPCRequest
.
RPCRequestClassGeneric
|
RPCRequest
.
RPCRequestClassWithoutLogin
,
dcNum
==
0
?
currentDatacenterId
:
dcNum
);
},
null
,
true
,
RPCRequest
.
RPCRequestClassEnableUnauthorized
|
RPCRequest
.
RPCRequestClassGeneric
|
RPCRequest
.
RPCRequestClassWithoutLogin
|
RPCRequest
.
RPCRequestClassTryDifferentDc
,
dcNum
==
0
?
currentDatacenterId
:
dcNum
);
}
}
private
TLObject
wrapInLayer
(
TLObject
object
,
int
datacenterId
,
RPCRequest
request
)
{
private
TLObject
wrapInLayer
(
TLObject
object
,
int
datacenterId
,
RPCRequest
request
)
{
...
@@ -996,20 +996,6 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
...
@@ -996,20 +996,6 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
for
(
int
i
=
0
;
i
<
runningRequests
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
runningRequests
.
size
();
i
++)
{
RPCRequest
request
=
runningRequests
.
get
(
i
);
RPCRequest
request
=
runningRequests
.
get
(
i
);
if
(
datacenters
.
size
()
>
1
)
{
if
(
updatingDcSettings
&&
request
.
rawRequest
instanceof
TLRPC
.
TL_help_getConfig
)
{
if
(
updatingDcStartTime
<
currentTime
-
60
)
{
FileLog
.
e
(
"tmessages"
,
"move TL_help_getConfig to requestQueue"
);
requestQueue
.
add
(
request
);
runningRequests
.
remove
(
i
);
i
--;
continue
;
}
}
else
if
(
request
.
rawRequest
instanceof
TLRPC
.
TL_auth_sendCode
||
request
.
rawRequest
instanceof
TLRPC
.
TL_auth_signIn
||
request
.
rawRequest
instanceof
TLRPC
.
TL_auth_signUp
)
{
}
}
int
datacenterId
=
request
.
runningDatacenterId
;
int
datacenterId
=
request
.
runningDatacenterId
;
if
(
datacenterId
==
DEFAULT_DATACENTER_ID
)
{
if
(
datacenterId
==
DEFAULT_DATACENTER_ID
)
{
if
(
movingToDatacenterId
!=
DEFAULT_DATACENTER_ID
)
{
if
(
movingToDatacenterId
!=
DEFAULT_DATACENTER_ID
)
{
...
@@ -1018,6 +1004,22 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
...
@@ -1018,6 +1004,22 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
datacenterId
=
currentDatacenterId
;
datacenterId
=
currentDatacenterId
;
}
}
if
(
datacenters
.
size
()
>
1
&&
(
request
.
flags
&
RPCRequest
.
RPCRequestClassTryDifferentDc
)
!=
0
)
{
int
requestStartTime
=
request
.
runningStartTime
;
int
timeout
=
30
;
if
(
updatingDcSettings
&&
request
.
rawRequest
instanceof
TLRPC
.
TL_help_getConfig
)
{
requestStartTime
=
updatingDcStartTime
;
timeout
=
60
;
}
if
(
requestStartTime
!=
0
&&
requestStartTime
<
currentTime
-
timeout
)
{
FileLog
.
e
(
"tmessages"
,
"move "
+
request
.
rawRequest
+
" to requestQueue"
);
requestQueue
.
add
(
request
);
runningRequests
.
remove
(
i
);
i
--;
continue
;
}
}
Datacenter
requestDatacenter
=
datacenterWithId
(
datacenterId
);
Datacenter
requestDatacenter
=
datacenterWithId
(
datacenterId
);
if
(!
request
.
initRequest
&&
requestDatacenter
.
lastInitVersion
!=
currentAppVersion
)
{
if
(!
request
.
initRequest
&&
requestDatacenter
.
lastInitVersion
!=
currentAppVersion
)
{
request
.
rpcRequest
=
wrapInLayer
(
request
.
rawRequest
,
requestDatacenter
.
datacenterId
,
request
);
request
.
rpcRequest
=
wrapInLayer
(
request
.
rawRequest
,
requestDatacenter
.
datacenterId
,
request
);
...
@@ -1124,10 +1126,7 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
...
@@ -1124,10 +1126,7 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
}
}
}
}
boolean
updatingState
=
MessagesController
.
getInstance
().
updatingState
;
if
(
genericConnection
!=
null
&&
genericConnection
.
channelToken
!=
0
)
{
if
(
genericConnection
!=
null
&&
genericConnection
.
channelToken
!=
0
)
{
if
(!
updatingState
)
{
Datacenter
currentDatacenter
=
datacenterWithId
(
currentDatacenterId
);
Datacenter
currentDatacenter
=
datacenterWithId
(
currentDatacenterId
);
for
(
Long
it
:
sessionsToDestroy
)
{
for
(
Long
it
:
sessionsToDestroy
)
{
...
@@ -1148,7 +1147,6 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
...
@@ -1148,7 +1147,6 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
}
}
}
}
}
}
}
int
genericRunningRequestCount
=
0
;
int
genericRunningRequestCount
=
0
;
int
uploadRunningRequestCount
=
0
;
int
uploadRunningRequestCount
=
0
;
...
@@ -1172,30 +1170,36 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
...
@@ -1172,30 +1170,36 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
continue
;
continue
;
}
}
if
(
updatingDcSettings
&&
datacenters
.
size
()
>
1
&&
request
.
rawRequest
instanceof
TLRPC
.
TL_help_getConfig
)
{
int
datacenterId
=
request
.
runningDatacenterId
;
if
(
updatingDcStartTime
<
currentTime
-
60
)
{
if
(
datacenterId
==
DEFAULT_DATACENTER_ID
)
{
if
(
movingToDatacenterId
!=
DEFAULT_DATACENTER_ID
&&
(
request
.
flags
&
RPCRequest
.
RPCRequestClassEnableUnauthorized
)
==
0
)
{
continue
;
}
datacenterId
=
currentDatacenterId
;
}
if
(
datacenters
.
size
()
>
1
&&
(
request
.
flags
&
RPCRequest
.
RPCRequestClassTryDifferentDc
)
!=
0
)
{
int
requestStartTime
=
request
.
runningStartTime
;
int
timeout
=
30
;
if
(
updatingDcSettings
&&
request
.
rawRequest
instanceof
TLRPC
.
TL_help_getConfig
)
{
requestStartTime
=
updatingDcStartTime
;
updatingDcStartTime
=
currentTime
;
updatingDcStartTime
=
currentTime
;
timeout
=
60
;
}
if
(
requestStartTime
!=
0
&&
requestStartTime
<
currentTime
-
timeout
)
{
ArrayList
<
Datacenter
>
allDc
=
new
ArrayList
<
Datacenter
>(
datacenters
.
values
());
ArrayList
<
Datacenter
>
allDc
=
new
ArrayList
<
Datacenter
>(
datacenters
.
values
());
for
(
int
a
=
0
;
a
<
allDc
.
size
();
a
++)
{
for
(
int
a
=
0
;
a
<
allDc
.
size
();
a
++)
{
Datacenter
dc
=
allDc
.
get
(
a
);
Datacenter
dc
=
allDc
.
get
(
a
);
if
(
dc
.
datacenterId
==
request
.
runningD
atacenterId
)
{
if
(
dc
.
datacenterId
==
d
atacenterId
)
{
allDc
.
remove
(
a
);
allDc
.
remove
(
a
);
break
;
break
;
}
}
}
}
Datacenter
newDc
=
allDc
.
get
(
Math
.
abs
(
Utilities
.
random
.
nextInt
()
%
allDc
.
size
()));
Datacenter
newDc
=
allDc
.
get
(
Math
.
abs
(
Utilities
.
random
.
nextInt
()
%
allDc
.
size
()));
request
.
runningDatacenterId
=
newDc
.
datacenterId
;
datacenterId
=
request
.
runningDatacenterId
=
newDc
.
datacenterId
;
}
}
}
}
int
datacenterId
=
request
.
runningDatacenterId
;
if
(
datacenterId
==
DEFAULT_DATACENTER_ID
)
{
if
(
movingToDatacenterId
!=
DEFAULT_DATACENTER_ID
&&
(
request
.
flags
&
RPCRequest
.
RPCRequestClassEnableUnauthorized
)
==
0
)
{
continue
;
}
datacenterId
=
currentDatacenterId
;
}
Datacenter
requestDatacenter
=
datacenterWithId
(
datacenterId
);
Datacenter
requestDatacenter
=
datacenterWithId
(
datacenterId
);
if
(!
request
.
initRequest
&&
requestDatacenter
.
lastInitVersion
!=
currentAppVersion
)
{
if
(!
request
.
initRequest
&&
requestDatacenter
.
lastInitVersion
!=
currentAppVersion
)
{
request
.
rpcRequest
=
wrapInLayer
(
request
.
rawRequest
,
requestDatacenter
.
datacenterId
,
request
);
request
.
rpcRequest
=
wrapInLayer
(
request
.
rawRequest
,
requestDatacenter
.
datacenterId
,
request
);
...
@@ -1225,10 +1229,6 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
...
@@ -1225,10 +1229,6 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection.
continue
;
continue
;
}
}
if
(
updatingState
&&
(
request
.
rawRequest
instanceof
TLRPC
.
TL_account_updateStatus
||
request
.
rawRequest
instanceof
TLRPC
.
TL_account_registerDevice
))
{
continue
;
}
if
(
request
.
requiresCompletion
)
{
if
(
request
.
requiresCompletion
)
{
if
((
request
.
flags
&
RPCRequest
.
RPCRequestClassGeneric
)
!=
0
)
{
if
((
request
.
flags
&
RPCRequest
.
RPCRequestClassGeneric
)
!=
0
)
{
if
(
genericRunningRequestCount
>=
60
)
{
if
(
genericRunningRequestCount
>=
60
)
{
...
...
TMessagesProj/src/main/java/org/telegram/messenger/RPCRequest.java
View file @
5bed3fb6
...
@@ -26,6 +26,7 @@ public class RPCRequest {
...
@@ -26,6 +26,7 @@ public class RPCRequest {
public
static
int
RPCRequestClassCanCompress
=
32
;
public
static
int
RPCRequestClassCanCompress
=
32
;
public
static
int
RPCRequestClassPush
=
64
;
public
static
int
RPCRequestClassPush
=
64
;
public
static
int
RPCRequestClassWithoutLogin
=
128
;
public
static
int
RPCRequestClassWithoutLogin
=
128
;
public
static
int
RPCRequestClassTryDifferentDc
=
256
;
static
int
RPCRequestClassTransportMask
=
(
RPCRequestClassGeneric
|
RPCRequestClassDownloadMedia
|
RPCRequestClassUploadMedia
);
static
int
RPCRequestClassTransportMask
=
(
RPCRequestClassGeneric
|
RPCRequestClassDownloadMedia
|
RPCRequestClassUploadMedia
);
...
...
TMessagesProj/src/main/java/org/telegram/ui/LoginActivityPhoneView.java
View file @
5bed3fb6
...
@@ -390,7 +390,7 @@ public class LoginActivityPhoneView extends SlideView implements AdapterView.OnI
...
@@ -390,7 +390,7 @@ public class LoginActivityPhoneView extends SlideView implements AdapterView.OnI
}
}
});
});
}
}
},
true
,
RPCRequest
.
RPCRequestClassGeneric
|
RPCRequest
.
RPCRequestClassFailOnServerErrors
|
RPCRequest
.
RPCRequestClassWithoutLogin
);
},
true
,
RPCRequest
.
RPCRequestClassGeneric
|
RPCRequest
.
RPCRequestClassFailOnServerErrors
|
RPCRequest
.
RPCRequestClassWithoutLogin
|
RPCRequest
.
RPCRequestClassTryDifferentDc
|
RPCRequest
.
RPCRequestClassEnableUnauthorized
);
}
}
@Override
@Override
...
...
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