SOGo - BTS - SOGo Connector
View Issue Details
0002311SOGo Connectorwith external serverpublic2013-05-09 12:142014-02-07 08:38
MichelR 
ludovic 
normalblockalways
closedfixed 
 
24.0.4 
0002311: Sogo doesn't handle a 403 response after a REPORT request
The problem appeared with IceWarp server and Connector v17.0.5. Here is the process :

-1- Sogo makes a PROPFIND request
-2- icewarp answers with a list of possible requests (specially
"sync-collection")
-3- if "sync-collection" is supported, then sogo makes a REPORT request with a sync-token (sent by icewarp in a previous synchro and stored in sogo)
-4- icewarp answers : default behavior is an empty answer with 403 error code
-5- 2 problems :
    - Sogo does nothing, while the RFC says that Sogo should send another request to perform a full sync
    - Sogo keeps the request in an instable state : the request is not closed and no other sync request can be performed
I'm a dev and currently working on this bug.
where should I send patches ? Who should I contact for a code review ?
Cheers
No tags attached.
patch icewarp_403.patch (1,199) 2013-05-28 04:33
https://sogo.nu/bugs/file_download.php?file_id=872&type=bug
Issue History
2013-05-09 12:14MichelRNew Issue
2013-05-10 05:56onofabioNote Added: 0005573
2013-05-10 10:35Christian MackNote Added: 0005575
2013-05-24 07:40ludovicNote Added: 0005609
2013-05-28 04:33MichelRFile Added: icewarp_403.patch
2013-05-28 04:39MichelRNote Added: 0005616
2013-09-17 15:37jrabyStatusnew => assigned
2013-09-17 15:37jrabyAssigned To => jraby
2014-02-07 08:38ludovicNote Added: 0006520
2014-02-07 08:38ludovicStatusassigned => closed
2014-02-07 08:38ludovicAssigned Tojraby => ludovic
2014-02-07 08:38ludovicResolutionopen => fixed
2014-02-07 08:38ludovicFixed in Version => 24.0.4

Notes
(0005573)
onofabio   
2013-05-10 05:56   
I have similar problem with PHP-Push-2 project.
When I try contact sync, the server response is 403 on REPORT query.

I've changed query in PROPFIND and sync seems work correctly.... but I think this is not a solution.
(0005575)
Christian Mack   
2013-05-10 10:35   
@MichelR
Add patches to this bug report
(0005609)
ludovic   
2013-05-24 07:40   
Any updates on the patches?
(0005616)
MichelR   
2013-05-28 04:39   
Please find the file "icewarp_403.patch"
I don't know if the added line "this.abort()" is correct, or if "abort()" needs to be modified to handle this new case.

In a similar way, I have a question about the "onServerHashQueryComplete" method (/chrome/content/sogo-connector/general/sync.addressbook.groupdav.js) :

current version :
------------------------------------------------------------------
    onServerHashQueryComplete: function(status, jsonResponse) {
        
        ...
        if (jsonResponse) {
            if (status > 199 && status < 400) {
                ...
            }
            else
                this.abort();
        }
        else
            dump("onServerHashQueryComlete: the server returned an empty response\n");
    },
------------------------------------------------------------------





Shouldn't it need a "abort()" when there is no json response ?
------------------------------------------------------------------
    onServerHashQueryComplete: function(status, jsonResponse) {
        
        ...
        if (jsonResponse) {
            if (status > 199 && status < 400) {
                ...
            }
            else
                this.abort();
        }
        else
        {
            dump("onServerHashQueryComlete: the server returned an empty response\n");
            this.abort();
        }
    },
------------------------------------------------------------------
(0006520)
ludovic   
2014-02-07 08:38   
Patch pushed: https://github.com/inverse-inc/sogo-connector.tb24/commit/e90acfbe7de32992e61108a446fd34eed9978765 [^]

I don't understand your command #5616 - that's exactly what the patch does!