the rest of the request in the PERFORM phase. */
*done = TRUE;
+ switch (conn->negnpn) {
+ case NPN_HTTP2_DRAFT09:
+ infof(data, "http, we have to use HTTP-draft-09/2\n");
+ Curl_http2_init(conn);
+ Curl_http2_switched(conn);
+ Curl_http2_send_request(conn);
+ break;
+ case NPN_HTTP1_1:
+ /* continue with HTTP/1.1 when explicitly requested */
+ break;
+ default:
+ /* and as fallback */
+ break;
+ }
+
http = data->req.protop;
if(!data->state.this_is_a_follow) {
{
struct connectdata *conn = (struct connectdata *)userp;
ssize_t nread;
- CURLcode rc = Curl_read_plain(conn->sock[FIRSTSOCKET], (char *)buf, length,
- &nread);
+ CURLcode rc;
+
+ infof(conn->data, "recv_callback() was called with length %d\n", length);
+
+ rc = Curl_read_plain(conn->sock[FIRSTSOCKET], (char *)buf, length,
+ &nread);
(void)h2;
(void)flags;
{ NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE, NGHTTP2_INITIAL_WINDOW_SIZE },
};
+/*
+ * Initialize nghttp2 for a Curl connection
+ */
+CURLcode Curl_http2_init(struct connectdata *conn) {
+ if(!conn->proto.httpc.h2) {
+ /* The nghttp2 session is not yet setup, do it */
+ int rc = nghttp2_session_client_new(&conn->proto.httpc.h2,
+ &callbacks, conn);
+ if(rc) {
+ failf(conn->data, "Couldn't initialize nghttp2!");
+ return CURLE_OUT_OF_MEMORY; /* most likely at least */
+ }
+ }
+ return CURLE_OK;
+}
+
+/*
+ * Send a request using http2
+ */
+CURLcode Curl_http2_send_request(struct connectdata *conn)
+{
+ (void)conn;
+ return CURLE_OK;
+}
+
/*
* Append headers to ask for a HTTP1.1 to HTTP2 upgrade.
*/
size_t blen;
struct SingleRequest *k = &conn->data->req;
- if(!conn->proto.httpc.h2) {
- /* The nghttp2 session is not yet setup, do it */
- int rc = nghttp2_session_client_new(&conn->proto.httpc.h2,
- &callbacks, conn);
- if(rc) {
- failf(conn->data, "Couldn't initialize nghttp2!");
- return CURLE_OUT_OF_MEMORY; /* most likely at least */
- }
- }
+ Curl_http2_init(conn);
/* As long as we have a fixed set of settings, we don't have to dynamically
* figure out the base64 strings since it'll always be the same. However,