On 05/22/2018 10:49 AM, Zhivko Vasilev wrote:
Hello Bron, Ken, To clarify, that I do not use official FastMail server. I've built Cyrus sever from https://github.com/cyrusimap/cyrus-imapdWith JMAP and HTTP/2 support enabled. Assume this is the closest implementation to the JMAP RFC?Seem the problem is with HTTP/2 settings frame. Client and server exchange their settings frame, but on the first data frame, the server reset the stream with PROTOCOL_ERROR 0x1. From the source, I saw that Cyrus uses nghttp2 and they provide sample http/2 server, so I'll try to use it to see what happens.So most probably it is a http/2 compatibility issue.After dig the Cyrus code seems HTTP/2 callback code is located in http_h2.c and there are syslog calls , but cannot make it log.Thanks a lot, Zhivko Vasilev On Tue, May 22, 2018, at 7:19 AM, Ken Murchison wrote:I am just back home after a holiday. I will look into this sometime today or tomorrow after I catch up on other items.On 05/21/2018 01:47 PM, Zhivko Vasilev wrote:Hello Everyone, I hope you can help me. I'm implementing a JMAP client and try to use Cyrus as reference server. Send and Receive via IMAP/SMTP work fine.But when I try to connect via HTTP/2 , connection is reset by HTTP/2 reset stream command.imapd.log file show only "starttls: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits new) no authentication"My http2 call is POST https:// <https://my.ip.address:443/jmap>cyrus.mailtemi.com <mailto:u...@cyrus.mailtemi.com>:443/jmap <https://my.ip.address:443/jmap>HEADERS: "accept", "application/json" "content-type", "application/json" "Authorization", "base64 encoded user name:pass" BODY: {"methodCalls":[["Mailbox/get",{},"#1"]],"using":["jmap-core","jmap-mail"]} Is there a way to turn on HTTP log to track what I do incorrectly.I tried to track with curl the server allways reponded with HTTP error 301.The command I've tried was "curl --verbose --http2 -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ --user u...@cyrus.mailtemi.com <mailto:u...@cyrus.mailtemi.com>:q \-d '[["Mailbox/get", {}, "#1"],"using":["jmap-core","jmap-mail"]]' \ http:// <http://35.192.121.94/jmap>35.192.121.94:443 <https://my.ip.address:443/jmap>/jmap <http://35.192.121.94/jmap>"returned * Connected to 35.192.121.94 (35.192.121.94) port 80 (#0)* Server auth using Basic with user 'u...@cyrus.mailtemi.com <mailto:u...@cyrus.mailtemi.com>'> POST /jmap HTTP/1.1 > Host: 35.192.121.94 > Authorization: Basic dTFAY3lydXMubWFpbHRlbWkuY29tOnE= > User-Agent: curl/7.58.0 > Connection: Upgrade, HTTP2-Settings > Upgrade: h2c > HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA > Content-Type: application/json > Accept: application/json > Content-Length: 61 > * upload completely sent off: 61 out of 61 bytes < HTTP/1.1 101 Switching Protocols < Connection: Upgrade < Upgrade: h2c * Received 101 * Using HTTP2, server supports multi-use * Connection state changed (HTTP/2 confirmed)* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0* Connection state changed (MAX_CONCURRENT_STREAMS updated)! < HTTP/2 301 < date: Mon, 21 May 2018 17:36:58 GMT < location: /jmap/ < vary: Accept-Encoding < content-length: 0 < * Connection #0 to host 35.192.121.94 left intact Please give me some advice or clue how to track what is the problem. I'm stuck at this point for two days :( Thanks , Zhivko Vasilev-- Ken Murchison Cyrus Development Team FastMail US LLC Email had 1 attachment: * |murch.vcf| 1k (text/x-vcard)
-- Ken Murchison Cyrus Development Team FastMail US LLC
<<attachment: murch.vcf>>