Show a cover letter.

GET /api/covers/812910/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 812910,
    "url": "http://patchwork.ozlabs.org/api/covers/812910/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20170912152153.7729-1-brandon.carpenter@cypherpath.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170912152153.7729-1-brandon.carpenter@cypherpath.com>",
    "list_archive_url": null,
    "date": "2017-09-12T15:21:46",
    "name": "[v3,0/7] Update websocket code to more fully support the RFC",
    "submitter": {
        "id": 72031,
        "url": "http://patchwork.ozlabs.org/api/people/72031/?format=api",
        "name": "Brandon Carpenter",
        "email": "brandon.carpenter@cypherpath.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20170912152153.7729-1-brandon.carpenter@cypherpath.com/mbox/",
    "series": [
        {
            "id": 2725,
            "url": "http://patchwork.ozlabs.org/api/series/2725/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=2725",
            "date": "2017-09-12T15:21:48",
            "name": "Update websocket code to more fully support the RFC",
            "version": 3,
            "mbox": "http://patchwork.ozlabs.org/series/2725/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/812910/comments/",
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=cypherpath.com header.i=@cypherpath.com\n\theader.b=\"mLxgHzgE\"; dkim-atps=neutral"
        ],
        "Received": [
            "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xs7xD2MkMz9s7f\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 13 Sep 2017 01:28:47 +1000 (AEST)",
            "from localhost ([::1]:36520 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1drn7E-0001UD-RM\n\tfor incoming@patchwork.ozlabs.org; Tue, 12 Sep 2017 11:28:44 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:40475)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <brandon.carpenter@cypherpath.com>)\n\tid 1drn12-0004jX-JA\n\tfor qemu-devel@nongnu.org; Tue, 12 Sep 2017 11:22:25 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <brandon.carpenter@cypherpath.com>)\n\tid 1drn0z-0006zG-D2\n\tfor qemu-devel@nongnu.org; Tue, 12 Sep 2017 11:22:20 -0400",
            "from mail-pg0-x229.google.com ([2607:f8b0:400e:c05::229]:33057)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)\n\t(Exim 4.71) (envelope-from <brandon.carpenter@cypherpath.com>)\n\tid 1drn0z-0006ys-6f\n\tfor qemu-devel@nongnu.org; Tue, 12 Sep 2017 11:22:17 -0400",
            "by mail-pg0-x229.google.com with SMTP id u18so5253991pgo.0\n\tfor <qemu-devel@nongnu.org>; Tue, 12 Sep 2017 08:22:16 -0700 (PDT)",
            "from servo.cypherpath.com (68-113-0-218.static.knwc.wa.charter.com.\n\t[68.113.0.218]) by smtp.gmail.com with ESMTPSA id\n\td18sm12753054pfk.11.2017.09.12.08.22.14\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tTue, 12 Sep 2017 08:22:14 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=cypherpath.com; s=google;\n\th=mime-version:from:to:cc:subject:date:message-id;\n\tbh=MQVLwnnjko+B0mOT/5DAqYlfbyh9hmza13/Zzuz7xIw=;\n\tb=mLxgHzgEoOmTsTHkvE5i0N1Z6F9QrTTsSYbADK2hlPHwZPxzaV5YXbN03YywCL0Bl2\n\tJMjerTWwpBZemtR4lOOatMqcN6o+uggNgkM/rklR/04h4l1Gq2wH7gPcO4NUtIYN2c/c\n\tELxQ535gi0WA038Rc0rcOcDUib8p2UaHU/mzE=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:from:to:cc:subject:date:message-id; \n\tbh=MQVLwnnjko+B0mOT/5DAqYlfbyh9hmza13/Zzuz7xIw=;\n\tb=lLEfDFVB7VSkjHinG1kuH7Cag325RHKFrxXQ0WLJtK0ll4Ps50zyMxJt2SCqZ+hWW6\n\t1Yhjf1n5/97ynoH8iIf36s1e48zjvX8y1qq9cnKsBlNWbJsbOGJqVXAAsXCgXTzo3lqB\n\tJ1IBEISSHg4w2SWAxDaDB8ZN1pJa2tQdDARJIfQNEfyohNQQghZ2HChRgrE3pFzFOYjP\n\tmCDNDLhu2gL3HsD6lLCSNGQX2h+KwjA/k4+pK6AvLy9qcDQtPuSny0dTINcidzZXfpDv\n\t2mtqaM4uvJs5g2sesNJYmrge1ZcNS0KbkFmUS87PvR01HSFOCEiwLwsBeLUogl+alh7N\n\t6WUg==",
        "X-Gm-Message-State": "AHPjjUhGt70jkjc151CzVlnO6z26U5nk28s56R2PKnDt8tKcYBD8KIix\n\teHCa8fBNBHjULlWkjSKc3TvmmnhRm/0G8/9SeOo+thePrxhpC8LimQvc3pIm1Mx4oxbpr1L3I5i\n\tV7Tau",
        "MIME-Version": "1.0",
        "X-Google-Smtp-Source": "ADKCNb6YPhdQUokMAlJBaAROnEScQTCNhgwKlEEd6LsHU2zfOpGx0LPFVpVIbwSceV7Sq4L9UC4k5g==",
        "X-Received": "by 10.98.43.67 with SMTP id r64mr15403524pfr.233.1505229735577; \n\tTue, 12 Sep 2017 08:22:15 -0700 (PDT)",
        "From": "Brandon Carpenter <brandon.carpenter@cypherpath.com>",
        "To": "qemu-devel@nongnu.org",
        "Date": "Tue, 12 Sep 2017 08:21:46 -0700",
        "Message-Id": "<20170912152153.7729-1-brandon.carpenter@cypherpath.com>",
        "X-Mailer": "git-send-email 2.14.1",
        "Content-Type": "text/plain; charset=\"US-ASCII\"",
        "X-detected-operating-system": "by eggs.gnu.org: Genre and OS details not\n\trecognized.",
        "X-Received-From": "2607:f8b0:400e:c05::229",
        "Subject": "[Qemu-devel] [PATCH v3 0/7] Update websocket code to more fully\n\tsupport the RFC",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.21",
        "Precedence": "list",
        "List-Id": "<qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Cc": "brandon.carpenter@cypherpath.com",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"
    },
    "content": "We've been experiencing issues where the qemu websocket server closes\nconnections from noVNC clients for no apparent reason. Debugging shows\nthat certain web browsers are injecting ping and pong frames when the\nconnection becomes idle. Some browsers send those frames without a\npayload, which also is causing closure. This patch series addresses\nthese issues by making the websocket server more conformant to RFC\n6455 - The WebSocket Protocol.\n\nRemembering the opcode is sufficient for handling fragmented frames from\nthe client, which may be introduced by an intermediary server/proxy.\nRespond to pings and ignore pongs rather than close the connection as\nmany browsers use ping/pong to test an idle connection. Close\nconnections according to the RFC, including providing a reason code and\nmessage to aid debugging of unexpected disconnects. Empty payloads\nshould not cause a disconnect.\n\nWhile updating the websocket code, several other bugs were discovered\nfor which patches are also included early in the set.\n\nBrandon Carpenter (7):\n  io: Always remove an old channel watch before adding a new one\n  io: Small updates in preparation for websocket changes\n  io: Add support for fragmented websocket binary frames\n  io: Allow empty websocket payload\n  io: Ignore websocket PING and PONG frames\n  io: Reply to ping frames\n  io: Attempt to send websocket close messages to client\n\n include/io/channel-websock.h |   2 +\n io/channel-websock.c         | 282 +++++++++++++++++++++++++++----------------\n ui/vnc-auth-vencrypt.c       |   3 +\n ui/vnc-ws.c                  |   6 +\n ui/vnc.c                     |   4 +\n 5 files changed, 194 insertions(+), 103 deletions(-)"
}