get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/88053/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 88053,
    "url": "http://patches.dpdk.org/api/patches/88053/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20210221012831.14643-6-dmitry.kozliuk@gmail.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20210221012831.14643-6-dmitry.kozliuk@gmail.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210221012831.14643-6-dmitry.kozliuk@gmail.com",
    "date": "2021-02-21T01:28:29",
    "name": "[v2,5/7] lib: remove POSIX dependencies",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "f9b5093fc3d5f72fb9137781f3c4574957b7661c",
    "submitter": {
        "id": 1581,
        "url": "http://patches.dpdk.org/api/people/1581/?format=api",
        "name": "Dmitry Kozlyuk",
        "email": "dmitry.kozliuk@gmail.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20210221012831.14643-6-dmitry.kozliuk@gmail.com/mbox/",
    "series": [
        {
            "id": 15320,
            "url": "http://patches.dpdk.org/api/series/15320/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=15320",
            "date": "2021-02-21T01:28:24",
            "name": "eal/windows: do not expose POSIX symbols",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/15320/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/88053/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/88053/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 91ADFA034F;\n\tSun, 21 Feb 2021 02:29:15 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id B342222A282;\n\tSun, 21 Feb 2021 02:28:48 +0100 (CET)",
            "from mail-lj1-f171.google.com (mail-lj1-f171.google.com\n [209.85.208.171])\n by mails.dpdk.org (Postfix) with ESMTP id 4C1C722A276\n for <dev@dpdk.org>; Sun, 21 Feb 2021 02:28:45 +0100 (CET)",
            "by mail-lj1-f171.google.com with SMTP id e17so44540318ljl.8\n for <dev@dpdk.org>; Sat, 20 Feb 2021 17:28:45 -0800 (PST)",
            "from localhost.localdomain (broadband-37-110-65-23.ip.moscow.rt.ru.\n [37.110.65.23])\n by smtp.gmail.com with ESMTPSA id d5sm1401666lfe.232.2021.02.20.17.28.43\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sat, 20 Feb 2021 17:28:44 -0800 (PST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding;\n bh=r8bmfTIjhTMfqOSZTKeB2VL8S+Pg71ymVvNvcArd5ZA=;\n b=Z1t8RlEcRjZ9IyDnHM1Mtqb61bhDQjBuM2BkVR0Y4pFSz8THVE9ijJblxFC8wClt1S\n GopmPFD3WQnYgJzf8kD8V1jV7B/U7+64rsHjcNsI+wpJXXuqFxTDaIR0PJtmwnNzC3xR\n M/QWaTSkz5PX+89PX5Ky7Sr9IjMcF/SDrU5D+PwsXwiY3/VLT6w4wJiz9Qjm5oz2P3T/\n h3mQLKHpnb8knyJNH0Zv2jSa1gbntkoPdKFdROKjo9SZvnGuwYXEE6Ra4lj6l1ejgwQs\n A8b9nHB/zKje/D+kSMvraaeLdWCpaswteJI6xyuBXM5Nl5D+dzEHm10uJS1TMO8vcXez\n udgA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version:content-transfer-encoding;\n bh=r8bmfTIjhTMfqOSZTKeB2VL8S+Pg71ymVvNvcArd5ZA=;\n b=PwVIflXI1PA5jDfyaQcevhETZUMwqfikTT2YN+E4URmn3KHi7CJLz6HiaJvRCHbiK4\n JBTCS75ppeMwxilpGwzyE4jxVrNl/XQKSX+kwECWwhp9uPlAMXDSiXbjFSLbZkd21o4y\n 1aXEXmWJ/ZI/JynJJr6stGJ6IXXVJ8tcf51LwpWyqmOC8dI2GYDhdWxZhGu5Kmm9oNei\n XP0x2My+VPwSvqihvPFxk4WIvNm0oTKZQxck0Zpe/uedR495GXaqtrN8jUcfbUqsmeWx\n vOodbrcI+Q/Ca6cvk3lJdwWJvdQkVW05XQSxmf0NIi8V97msMnxsepa0UsM4yzOwbF8m\n qMFg==",
        "X-Gm-Message-State": "AOAM530QTpKPDxEooYFI6gJ0+mkM1isPRgHcXWvVuKuHbtMsIUMVjKny\n 4TfkW4SIy9Fuqbde/i6yG96zZfaGrqnirGsb",
        "X-Google-Smtp-Source": "\n ABdhPJyXI42K5+HvpcLwDsvEmlnD4YhO69bbNl/iS+UbpQVghQ0wIauqsYmzcXr7qCUmJwKdJv1r9g==",
        "X-Received": "by 2002:a2e:8e61:: with SMTP id t1mr1168294ljk.221.1613870924619;\n Sat, 20 Feb 2021 17:28:44 -0800 (PST)",
        "From": "Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>",
        "To": "dev@dpdk.org",
        "Cc": "Tyler Retzlaff <roretzla@microsoft.com>,\n Nick Connolly <nick.connolly@mayadata.io>,\n Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>,\n Olivier Matz <olivier.matz@6wind.com>,\n Thomas Monjalon <thomas@monjalon.net>,\n Ferruh Yigit <ferruh.yigit@intel.com>,\n Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>",
        "Date": "Sun, 21 Feb 2021 04:28:29 +0300",
        "Message-Id": "<20210221012831.14643-6-dmitry.kozliuk@gmail.com>",
        "X-Mailer": "git-send-email 2.29.2",
        "In-Reply-To": "<20210221012831.14643-1-dmitry.kozliuk@gmail.com>",
        "References": "<20210220232910.772-1-dmitry.kozliuk@gmail.com>\n <20210221012831.14643-1-dmitry.kozliuk@gmail.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v2 5/7] lib: remove POSIX dependencies",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Replace POSIX strtok_r() with EAL rte_strtok().\nReplace POSIX strdup()   with EAL rte_strdup().\nLocally rename Windows _close() to standard close().\n\nSigned-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>\n---\n lib/librte_cmdline/cmdline.c      |  1 +\n lib/librte_ethdev/rte_class_eth.c |  2 +-\n lib/librte_ethdev/rte_ethdev.c    |  2 +-\n lib/librte_kvargs/rte_kvargs.c    | 17 ++++++++++-------\n 4 files changed, 13 insertions(+), 9 deletions(-)",
    "diff": "diff --git a/lib/librte_cmdline/cmdline.c b/lib/librte_cmdline/cmdline.c\nindex 79ea5f98c..4dfa1178f 100644\n--- a/lib/librte_cmdline/cmdline.c\n+++ b/lib/librte_cmdline/cmdline.c\n@@ -19,6 +19,7 @@\n #include \"cmdline_private.h\"\n \n #ifdef RTE_EXEC_ENV_WINDOWS\n+#define close _close\n #define write _write\n #endif\n \ndiff --git a/lib/librte_ethdev/rte_class_eth.c b/lib/librte_ethdev/rte_class_eth.c\nindex ca2ce87f7..9b72bdf15 100644\n--- a/lib/librte_ethdev/rte_class_eth.c\n+++ b/lib/librte_ethdev/rte_class_eth.c\n@@ -73,7 +73,7 @@ eth_representor_cmp(const char *key __rte_unused,\n \t\treturn -1; /* not a representor port */\n \n \t/* Parse devargs representor values. */\n-\tvalues = strdup(value);\n+\tvalues = rte_strdup(value);\n \tif (values == NULL)\n \t\treturn -1;\n \tmemset(&representors, 0, sizeof(representors));\ndiff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c\nindex 6f514c388..a09fec2ce 100644\n--- a/lib/librte_ethdev/rte_ethdev.c\n+++ b/lib/librte_ethdev/rte_ethdev.c\n@@ -5515,7 +5515,7 @@ eth_dev_devargs_tokenise(struct rte_kvargs *arglist, const char *str_in)\n \tstruct rte_kvargs_pair *pair;\n \tchar *letter;\n \n-\targlist->str = strdup(str_in);\n+\targlist->str = rte_strdup(str_in);\n \tif (arglist->str == NULL)\n \t\treturn -ENOMEM;\n \ndiff --git a/lib/librte_kvargs/rte_kvargs.c b/lib/librte_kvargs/rte_kvargs.c\nindex 285081c86..fd1103b33 100644\n--- a/lib/librte_kvargs/rte_kvargs.c\n+++ b/lib/librte_kvargs/rte_kvargs.c\n@@ -26,20 +26,22 @@ rte_kvargs_tokenize(struct rte_kvargs *kvlist, const char *params)\n \t/* Copy the const char *params to a modifiable string\n \t * to pass to rte_strsplit\n \t */\n-\tkvlist->str = strdup(params);\n+\tkvlist->str = rte_strdup(params);\n \tif (kvlist->str == NULL)\n \t\treturn -1;\n \n \t/* browse each key/value pair and add it in kvlist */\n \tstr = kvlist->str;\n-\twhile ((str = strtok_r(str, RTE_KVARGS_PAIRS_DELIM, &ctx1)) != NULL) {\n+\twhile ((str = rte_strtok(str, RTE_KVARGS_PAIRS_DELIM, &ctx1)) != NULL) {\n \n \t\ti = kvlist->count;\n \t\tif (i >= RTE_KVARGS_MAX)\n \t\t\treturn -1;\n \n-\t\tkvlist->pairs[i].key = strtok_r(str, RTE_KVARGS_KV_DELIM, &ctx2);\n-\t\tkvlist->pairs[i].value = strtok_r(NULL, RTE_KVARGS_KV_DELIM, &ctx2);\n+\t\tkvlist->pairs[i].key = rte_strtok(\n+\t\t\tstr, RTE_KVARGS_KV_DELIM, &ctx2);\n+\t\tkvlist->pairs[i].value = rte_strtok(\n+\t\t\tNULL, RTE_KVARGS_KV_DELIM, &ctx2);\n \t\tif (kvlist->pairs[i].key == NULL ||\n \t\t    kvlist->pairs[i].value == NULL)\n \t\t\treturn -1;\n@@ -49,12 +51,13 @@ rte_kvargs_tokenize(struct rte_kvargs *kvlist, const char *params)\n \t\tif (str[0] == '[') {\n \t\t\t/* Find the end of the list. */\n \t\t\twhile (str[strlen(str) - 1] != ']') {\n-\t\t\t\t/* Restore the comma erased by strtok_r(). */\n+\t\t\t\t/* Restore the comma erased by rte_strtok(). */\n \t\t\t\tif (ctx1 == NULL || ctx1[0] == '\\0')\n \t\t\t\t\treturn -1; /* no closing bracket */\n \t\t\t\tstr[strlen(str)] = ',';\n \t\t\t\t/* Parse until next comma. */\n-\t\t\t\tstr = strtok_r(NULL, RTE_KVARGS_PAIRS_DELIM, &ctx1);\n+\t\t\t\tstr = rte_strtok(\n+\t\t\t\t\tNULL, RTE_KVARGS_PAIRS_DELIM, &ctx1);\n \t\t\t\tif (str == NULL)\n \t\t\t\t\treturn -1; /* no closing bracket */\n \t\t\t}\n@@ -199,7 +202,7 @@ rte_kvargs_parse_delim(const char *args, const char * const valid_keys[],\n \tif (valid_ends == NULL)\n \t\treturn rte_kvargs_parse(args, valid_keys);\n \n-\tcopy = strdup(args);\n+\tcopy = rte_strdup(args);\n \tif (copy == NULL)\n \t\treturn NULL;\n \n",
    "prefixes": [
        "v2",
        "5/7"
    ]
}