matrix-org / matrix-android-sdk

The Matrix SDK for Android - DEPRECATED
Apache License 2.0
370 stars 132 forks source link

Wrong Sync timeout configuration #551

Open bagolysz opened 4 years ago

bagolysz commented 4 years ago

When setting the syncDelay to a custom value, the sync timeout parameter is no longer set to desired value.

Description

The sync requests are made expected, with the default timeout value (after the first sync): https://mybaseurl/_matrix/client/r0/sync?filter=%7B%7D&set_presence=offline&timeout=0 https://mybaseurl/_matrix/client/r0/sync?filter=1&set_presence=offline&timeout=30000&since=s94606_169438_162_1_1_1_1_22183_1

The sync requests now are sending the parameter timeout with value 0 all the time (not only for first sync): https://mybaseurl/_matrix/client/r0/sync?filter=%7B%7D&set_presence=offline&timeout=0 https://mybaseurl/_matrix/client/r0/sync?filter=1&set_presence=offline&timeout=0&since=s94605_169415_162_1_1_1_1_22182_1

the timeout param in the request still remains the default one: https://mybaseurl/_matrix/client/r0/sync?filter=1&set_presence=offline&timeout=30000&since=s94606_169438_162_1_1_1_1_22183_1

Additional information Matrix-Android-Sdk version: v0.9.35 Android Studio version: 4.0.0

bagolysz commented 4 years ago

Actually, I can see that the server long poll timeout will always be set to at least 30 seconds:

    private static final int DEFAULT_SERVER_TIMEOUT_MS = 30000;

    /**
     * Update the long poll timeout.
     *
     * @param ms the timeout in ms
     */
    public void setServerLongPollTimeout(int ms) {
        mDefaultServerTimeoutms = Math.max(ms, DEFAULT_SERVER_TIMEOUT_MS);
        Log.d(LOG_TAG, "setServerLongPollTimeout : " + mDefaultServerTimeoutms);

    }

Is there any plan to extend the functionality to support lower timeout values as well?