On Wed, Jul 16, 2014 at 2:12 AM, Patrick Ohly <patrick.ohly@intel.com> wrote:
On Tue, 2014-07-15 at 23:37 +0800, Emfox Zhou wrote:

> It output many lines such as:
>
>
>
> <d:href>/carddav/v1/principals/emfoxzhou@gmail.com/lists/default/xxxxxxx</d:href>
>   <d:propstat>
>    <d:status>HTTP/1.1 200 OK</d:status>
>    <d:prop>
>     <d:getetag>"2011-07-29T01:34:21.127-07:00"</d:getetag>
>     <d:resourcetype/>
>    </d:prop>
>   </d:propstat>
>  </d:response>

That means it is talking to the server and credentials were okay.

Now try

SYNCEVOLUTION_DEBUG=1 syncevolution --daemon=no --export /dev/null loglevel=4 c102 addressbook

Does that work repeatedly without authentication errors?

The log in last mail is not so correct, that time I didn't wait that long, in fact it's
reading my hundred contacts, here is the real last lines:

Header Name: [content-type], Value: [text/html; charset=UTF-8]
[hdr] Date: Wed, 16 Jul 2014 03:36:20 GMT
Header Name: [date], Value: [Wed, 16 Jul 2014 03:36:20 GMT]
[hdr] Expires: Wed, 16 Jul 2014 03:36:20 GMT
Header Name: [expires], Value: [Wed, 16 Jul 2014 03:36:20 GMT]
[hdr] Cache-Control: private, max-age=0
Header Name: [cache-control], Value: [private, max-age=0]
[hdr] X-Content-Type-Options: nosniff
Header Name: [x-content-type-options], Value: [nosniff]
[hdr] X-Frame-Options: SAMEORIGIN
Header Name: [x-frame-options], Value: [SAMEORIGIN]
[hdr] X-XSS-Protection: 1; mode=block
Header Name: [x-xss-protection], Value: [1; mode=block]
[hdr] Server: GSE
Header Name: [server], Value: [GSE]
[hdr] Alternate-Protocol: 443:quic
Header Name: [alternate-protocol], Value: [443:quic]
[hdr] Transfer-Encoding: chunked
Header Name: [transfer-encoding], Value: [chunked]
[hdr]
End of headers.
Running post_headers hooks
[chunk] < 13
Got chunk size: 19
Reading 19 bytes of response body.
Got 19 bytes.
Read block (19 bytes):
[Invalid Credentials]
[chunk] < 0
Got chunk size: 0
[hdr]
End of headers.
Running post_send hooks
ah_post_send (#0), code is 401 (want 401), WWW-Authenticate is GoogleLogin realm="https://accounts.google.com/ClientLogin", service="cp"
auth: Got challenge (code 401).
auth: Ignored parameter: realm = "https://accounts.google.com/ClientLogin
auth: Ignored parameter: service = "cp
auth: No challenges accepted.
Request ends, status 401 class 4xx, error line:
Could not authenticate to server: ignored GoogleLogin challenge
[DEBUG 00:04:45] credential error due to throttling (?), retry
[DEBUG 00:04:45] GET: Neon error code 3 = NE_AUTH, HTTP status 401: Could not authenticate to server: ignored GoogleLogin challenge, might retry
[DEBUG 00:04:45] retry GET in 4.9s, attempt #1
[INFO 00:04:45] operation temporarily (?) failed, going to retry in 4.9s before giving up in 299.9s: GET: Neon error code 3 = NE_AUTH, HTTP status 401: Could not authenticate to server: ignored GoogleLogin challenge

 
I'm starting to suspect that you run into temporary requests by Google
to log into their web form. SyncEvolution should work around that by
resending requests with plain authentication.

In your second sync output from two emails ago, the sync did proceed to
the "download data" phase and the only unusual output were INFO
messages, not ERRORs:

[INFO] sync: /org/syncevolution/Session/15756214181405429789: operation
temporarily (?) failed, going to retry in 4.8s before giving up in
299.8s: GET: Neon error code 3 = NE_AUTH, HTTP status 401: Could not
authenticate to server: ignored GoogleLogin challenge

How did that sync end? Successfully or with a failure?

Google stopped supporting plain text authentication. At some point
you'll have to get OAuth-based authentication working; unfortunately
that is not easy on a headless server.



--
Emfox Zhou

GnuPG Public Key: 0xF7142EC2