Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2195593/?format=api
{ "id": 2195593, "url": "http://patchwork.ozlabs.org/api/patches/2195593/?format=api", "web_url": "http://patchwork.ozlabs.org/project/swupdate/patch/20260211132740.597019-10-stefano.babic@swupdate.org/", "project": { "id": 58, "url": "http://patchwork.ozlabs.org/api/projects/58/?format=api", "name": "swupdate development", "link_name": "swupdate", "list_id": "swupdate.googlegroups.com", "list_email": "swupdate@googlegroups.com", "web_url": "https://github.com/sbabic/swupdate", "scm_url": "git://github.com/sbabic/swupdate", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260211132740.597019-10-stefano.babic@swupdate.org>", "list_archive_url": null, "date": "2026-02-11T13:27:40", "name": "[9/9] delta_downloader: load tokens from configuration", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "174038282895f6a5f87d2088a9ebcbc514ffcc35", "submitter": { "id": 86869, "url": "http://patchwork.ozlabs.org/api/people/86869/?format=api", "name": "Stefano Babic", "email": "stefano.babic@swupdate.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/swupdate/patch/20260211132740.597019-10-stefano.babic@swupdate.org/mbox/", "series": [ { "id": 491836, "url": "http://patchwork.ozlabs.org/api/series/491836/?format=api", "web_url": "http://patchwork.ozlabs.org/project/swupdate/list/?series=491836", "date": "2026-02-11T13:27:32", "name": "Introduce delta update with Hawkbit", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/491836/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2195593/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2195593/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<swupdate+bncBD2ZDGN6SEKRBU4HWLGAMGQE7F2Q6GA@googlegroups.com>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=googlegroups.com header.i=@googlegroups.com\n header.a=rsa-sha256 header.s=20230601 header.b=rs3QTKTN;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com\n (client-ip=2a00:1450:4864:20::53a; helo=mail-ed1-x53a.google.com;\n envelope-from=swupdate+bncbd2zdgn6sekrbu4hwlgamgqe7f2q6ga@googlegroups.com;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from mail-ed1-x53a.google.com (mail-ed1-x53a.google.com\n [IPv6:2a00:1450:4864:20::53a])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4f9zl175GZz1xtr\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 12 Feb 2026 00:27:57 +1100 (AEDT)", "by mail-ed1-x53a.google.com with SMTP id\n 4fb4d7f45d1cf-65811a93da0sf2479677a12.2\n for <incoming@patchwork.ozlabs.org>;\n Wed, 11 Feb 2026 05:27:57 -0800 (PST)", "by 2002:a05:6402:22e4:b0:64b:597a:6c07 with SMTP id\n 4fb4d7f45d1cf-659621fcf54ls245525a12.0.-pod-prod-09-eu; Wed, 11 Feb 2026\n 05:27:46 -0800 (PST)", "from mout.kundenserver.de (mout.kundenserver.de. [217.72.192.75])\n by gmr-mx.google.com with ESMTPS id\n 4fb4d7f45d1cf-65a3ced8676si50981a12.3.2026.02.11.05.27.45\n for <swupdate@googlegroups.com>\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 11 Feb 2026 05:27:45 -0800 (PST)", "from paperello ([88.217.136.221]) by mrelayeu.kundenserver.de\n (mreue109 [212.227.17.181]) with ESMTPSA (Nemesis) id\n 1MRCFu-1wB9Xx1RC8-00LaU9; Wed, 11 Feb 2026 14:27:45 +0100" ], "ARC-Seal": [ "i=2; a=rsa-sha256; t=1770816470; cv=pass;\n d=google.com; s=arc-20240605;\n b=WEMCilPgFIpaLcivr8iAJkgx/+9JdiVqZERwzn8YLhWTA3KBlqnwTSKZy5shrj0J4D\n moANnz3EHUN5rYryly8dc4TqqB07UduchpihvZ8qprMg15X/DFCfsLI8RlrSJCfGYI7m\n R8+AXQkHi76XwObXYfvrv5H76vHmQ4yzuEhm8HKktWHsWAEcnfBn148aZxnmL8D1bKwv\n i3TjPI4bBcw+LFSrXCfb8ErOMzaQP2CCNiLMJ8v4VqVFNbL6PvVKFEXK+Kuo2uLZp1pz\n kitykJxwO3i94/K0s00FOzBqfTG9VwK2vHtA3WW27QURQswmTg297B/aZXxRvBoNmT1I\n Himg==", "i=1; a=rsa-sha256; t=1770816465; cv=none;\n d=google.com; s=arc-20240605;\n b=YGBIXEyYdXyJ9vAl7NdJ1OMSTvX8lzUFiQ8/tAeJTSfY0ZWNha5amS1XDBVM1934E2\n 3+Ye/yxB0c3FtiZbt26F2TY0pA8q8xiovWASydle5m0dxjUpWfQl/Rdwe0jGIGkIHDIY\n Y1mWHglYrp0SXXTZ28UCSSrMqU4i82jZqEQMGS92JU6S2ZV17OmXPn1tvGPxQNoD7dWY\n SlQx24mUEHH1vp18eYlRcbpfk8BVWIuWQeR7qF/+xFBxUv6aIN05q5/rKf4at0nHyyHH\n VIVZVEtZNpf3/KIuLziLhxI/vo5u+p6cFxMaMOKZz1hgW0ExztIouuHkGtB58K/jEaiX\n 5z/A==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post\n :list-id:mailing-list:precedence:ui-outboundreport:mime-version\n :references:in-reply-to:message-id:date:subject:cc:to:from:sender\n :dkim-signature;\n bh=B3+5ye5IcXaaIeXb2wAxI5xbCWQqK20fylFbwJ1vksw=;\n fh=kMq0VBYIuYNsksSYu6GH5lXwiU6uHQujmBRa0lDFUZM=;\n b=gL+7SXKHEcCmB6QM+CpKlM3idjM7Pn2kvNUMvcaTXBZI7OZfkx4K1ab0noZbyif/oW\n J0ehxoazxoA5a9EMooCfSqoehVDSE9aCMPmSHSqY+H1Gp1p94dIBvwbrYDuzgHxmk7Cn\n xy+/eQuOwYQdN7zC6hJMoswKdJTSOPKQOcku0iA5uaRkCvi4NlFt7kG+1hEoAtYqtkaO\n tkaB3wuzDxuxCs90NY+oDnfTBTYpUZibJRIbPQGCG5qjTz77i1KJMUMPAw4rwg34G7KI\n UMLEQagl6bT/2OIUNmplBI9hZ4YipE5mXSycWE55HB6sMGabjtgohvVJEO4C4ICB1oAc\n rVJw==;\n darn=patchwork.ozlabs.org", "i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=ui-outboundreport:content-transfer-encoding:mime-version:references\n :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature;\n bh=jaJSdOYhxUMZQfYd3XOtnbsj00wTzFe9PVM98Nb9q40=;\n fh=TiEWcqMcKpHk5s7uErzpntoONrNfOXwKpI5P8bIlggk=;\n b=PUU4XswGPJfykKazmWNg2aj8H/zpHdW7kWQFp8mQYOjAsdLHzB2pY1xGE92HrluQgA\n RVQgKTGY8GXPIRd6NsKX/DwCSMJYNuj0hUZEFQbS+7u1J5hxertuN+YMeSeV4xQXXJh3\n eMxhxJpBPUOV6nA/0v0mfaZwuo+Hzp9bTajloiiIVIwXMW6t03B1iTdMq4jrJ0TJuueE\n S6XxTszIHc2ZUTzKMB3R+rM/tOjT6K+BXPRXPAWw+zmBC0N7WisH+0NamPZiUn4ATkzA\n ciU9U6xoRXBUPe6yJkWAKRGeOudcXpb318zwvv8XJHJkUAR4fAVQDY1Sd5IEqncmmXec\n CYmg==;\n dara=google.com" ], "ARC-Authentication-Results": [ "i=2; gmr-mx.google.com;\n dkim=pass header.i=@swupdate.org header.s=s1-ionos header.b=bIpNgqAW;\n spf=pass (google.com: domain of stefano.babic@swupdate.org designates\n 217.72.192.75 as permitted sender) smtp.mailfrom=stefano.babic@swupdate.org;\n dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=swupdate.org", "i=1; gmr-mx.google.com;\n dkim=pass header.i=@swupdate.org header.s=s1-ionos header.b=bIpNgqAW;\n spf=pass (google.com: domain of stefano.babic@swupdate.org designates\n 217.72.192.75 as permitted sender) smtp.mailfrom=stefano.babic@swupdate.org;\n dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=swupdate.org" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=googlegroups.com; s=20230601; t=1770816470; x=1771421270;\n darn=patchwork.ozlabs.org;\n h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post\n :list-id:mailing-list:precedence:x-original-authentication-results\n :x-original-sender:ui-outboundreport:mime-version:references\n :in-reply-to:message-id:date:subject:cc:to:from:sender:from:to:cc\n :subject:date:message-id:reply-to;\n bh=B3+5ye5IcXaaIeXb2wAxI5xbCWQqK20fylFbwJ1vksw=;\n b=rs3QTKTNYbuF6HWYwpI1ZEZjL5fMIuphYf76zy64iOegXarZClS6j2uYf+jyg+s6vs\n YdRbq+0ymzhzdg9Ibxj76xy9ntIdx9aTFtYboh00EJrOkMpbb76dXe6G2Zyla+8vSRZR\n Lfwjfg8nsnJ3ncr/7VB7+3T4pJgFo2FWBZ9CyQ0XpJX9LRW1zwT3qjy4ncqr2EibuUlB\n QW1Sz+Fce5rZh3XkwovBFCzMayFCeNqlViC1u+wTpHUcGsWB0593sbqF71+PqnGMUYRk\n ApkhWlXLO3cJrr6Cd39MDW0AeRbT7ueaoilnz2ikXyaqN3of3BWA9HrGeHP61vIO9RWA\n QpDA==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1770816470; x=1771421270;\n h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post\n :x-spam-checked-in-group:list-id:mailing-list:precedence\n :x-original-authentication-results:x-original-sender\n :ui-outboundreport:mime-version:references:in-reply-to:message-id\n :date:subject:cc:to:from:x-beenthere:x-gm-message-state:sender:from\n :to:cc:subject:date:message-id:reply-to;\n bh=B3+5ye5IcXaaIeXb2wAxI5xbCWQqK20fylFbwJ1vksw=;\n b=WQFENcRub9JIx7C9bcbBvt2SGnB+SlTFYbj4A67oJARmSTYr2GvCu8vyfHGxFE3TFA\n tAxwqUQNtAzqDaweHt9ZDSILYpboGVg0sN7c/MWmAoCRKG/yIK9T5vr6zqoFClG+szy6\n O2Ymdfl1EdnpQ7L7T2wikrmrRjsTcSZmk+OSGQl/9KWL8j2jwlXhIVPu0722wM6MEUSS\n Ld54wlPywgqeZ2VuSN0FeQ1IotNtT6Zvc/2DM7PD7p14RpXg6vx8zWDwa4t8UPEIKyyZ\n gde2dj7yVcNjan6FcushmhfLo50nZ+8sIOsgh+171QpkLhQpEFEN35ojBMuAzgO10gb1\n L1AQ==", "Sender": "swupdate@googlegroups.com", "X-Forwarded-Encrypted": "i=2;\n AJvYcCXpb7+YUiwEspkabmO8JGMszueUHL+1440QjPv/Kf0FSP6vg0RWnoVZuGFMpiy2JbNqlPxF1RWaug==@patchwork.ozlabs.org", "X-Gm-Message-State": "AOJu0Yz5s3yFGq/7BeTy2SleUMLMDFKxZJAtxtjY3JE8A8c/dpnw6MRa\n\tGJDNzUwJO2fZSaqj4mA6t9yc/54UxI/IXh/xH4kJVnKl7CIPGJ9ox3dC", "X-Received": [ "by 2002:a05:6402:538b:b0:65a:16fc:d9b with SMTP id\n 4fb4d7f45d1cf-65a16fc0fe7mr2612531a12.30.1770816469902;\n Wed, 11 Feb 2026 05:27:49 -0800 (PST)", "by 2002:a05:6402:1e88:b0:658:c11e:44dc with SMTP id\n 4fb4d7f45d1cf-6598418449dmr9003120a12.32.1770816465843;\n Wed, 11 Feb 2026 05:27:45 -0800 (PST)" ], "X-BeenThere": "swupdate@googlegroups.com;\n h=\"AV1CL+FOhhe7LIE/g3AK33dXm32VOxiq+l/o3fOGzuNslD7mEw==\"", "Received-SPF": "pass (google.com: domain of stefano.babic@swupdate.org\n designates 217.72.192.75 as permitted sender) client-ip=217.72.192.75;", "X-UI-Sender-Class": "55c96926-9e95-11ee-ae09-1f7a4046a0f6", "From": "Stefano Babic <stefano.babic@swupdate.org>", "To": "swupdate@googlegroups.com", "Cc": "Stefano Babic <stefano.babic@swupdate.org>", "Subject": "[swupdate] [PATCH 9/9] delta_downloader: load tokens from\n configuration", "Date": "Wed, 11 Feb 2026 14:27:40 +0100", "Message-ID": "<20260211132740.597019-10-stefano.babic@swupdate.org>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<20260211132740.597019-1-stefano.babic@swupdate.org>", "References": "<20260211132740.597019-1-stefano.babic@swupdate.org>", "MIME-Version": "1.0", "X-Provags-ID": "V03:K1:jTbfuwrWOHHr7/i7fSmdqLzikqjJkGJLCIqmKwgqRsFHj0u4kM1\n v58Kc1dHp6ccKXUESBrvdIZQGcfKvdxayMUZu7xWfLxpeMBM7nLXLUcsH9pTNgmLzAzG/gi\n gIRzslG2gIOFYimUNPJbkNBCi3oPIBzy9itEKMb4UQv6tLd9i9yxfpAq5I1t1wjbi6/m1tG\n gOLzMfQQoedoHiyTei0TQ==", "X-Spam-Flag": "NO", "UI-OutboundReport": "notjunk:1;M01:P0:iNHGSEre5YY=;Hzw8YzbQwRSrSP0jC0wPyt/w1Oe\n KH8V6tnkHcQ4p2WCRFwcLPNNUtSWIWO0+T74bfHqxRJZ5BkkEwaodFmThXb4lp9aRRYar/Hkn\n Z/EJoraSAaIPKFs/xkNvAxMwfN37WN82c20n2V4FE16y/0MfLc0k1HwCjH7PXk6kBqIsx9Kyy\n lX9F8VwRWD3L+q6E0oCikhgs/zjYP658gB8Is67qflETnfhbUvgRO9zCK2tmnGwSvQhGwfGoM\n q0iKP5NRwQ27SGvNdvruQibfCmYt+RlhoAGDeUPfTZdwLbuyb89vZKhBgKhSQbtAnUTGKJZh4\n 4elBOBG+jA+DjCLmqM94ChIu1RmEbjXWZBQfkOH2x/occz6UvJZps1wc4d9TpZ9ENPHcaUVbq\n nYUyNcY744AUD2sBIUptBOnNhHGXDj1dZ97gdxxraouRBwIbqcMacAONG2oQzbw2HmLErbUb5\n o07f2n8NK7pn3kjvypziPy4ViF2tCRRnkiCrQWB1bpcKQuG6fJAx2cbHhWxdIsHQfCo1E3hWV\n p+GsqSkVvlOgXnTc9oMkY12FPKDFcOc2GQLH9Z6NwSyHXa3r719CQ/geLD6pOFs0sCev14PLw\n z6sZmuZsUlSgs1oWn21zmjS5ehrq/jn1E7KKDd0kfRTYs2rw3vUgZWS74umxxhlZLuDHprbYb\n bDoTmfOZIfCfZRi4D3A3cc7qnsLMuQkVb4o8whxNzYmLfIgUitx84UeaSQWnrVtamWerTbW0B\n j79AJ+bHGOYzHDZ+Z/YNyxe5MnJiOTYgixV1hcMQT5XaHo8juGnZRR9vNgUIAqoaVRJAeL1x+\n 4/0Tc+DxAW7ZnwmCqg3NbCj8nm7gQ8CnnlgyDfeitunAF+0zICmXtY0IN511irgpqMvIDA3Dw\n 8dNpLEDW4qGqB3TgZVo5kfkRibs7PU15G5D8Fp8JzS1rZ06OmBAjTJxGxBd/HnG9TPTJBQrln\n zNG3/6bts18LaCJsvJIzK09q3f4rF+LDpeDPEcOYrE1P4YCqqH3mVvFG/rJkdylAym6Zz6uyM\n mKIsjOk1mvqJ4Qjm5SI5hfmeiXJZAUExZ6ogCSUWuPGEIJmldd0f9p2sm90CE9ZLTSd53xbKy\n jOrPGwutI8GclfQvod/M2NGy4FJvxtpNi4a4N8johZeAAOguj3cx2wqvQ7i6kyQvw2wtN8xBs\n oxxAOaHICP0F9/BztNdGUnmyki8CZQs2RMLQVW6fMWlS4ZnlPy1xh7lz/vdILv+SuaoYY3QHK\n nvCsPU1BpUXotKISrqx4h1/4j9tgg7pwisy88eTy+Vcxt2nOQUOQipAmjTOh9nyS/4XDKs3xJ\n R6ZxKMzKRSFSPE+wrZehaeLBL/sBONN/T5AXaN0A4BHsjM12ZsPGTgJRrcHgL6QobW8HJd6Wk\n TLZXTNGCgAhLf2gdvMkJhj0H4EwTInPkwzrx4cYFY6dFEs+oLN3jmlxyi8swWK3a5E9UJllTU\n 6z8LP9rAN9NahbkeZJYtJHfn1/zGwAeMt4Ey7/H4XmGM1w8AabfWwSBp7rzZ7WrofV+BYDO+q\n 2xRXX0J+dPWi858zQdK1R2v+j+KpcVxPpmGnJx6/Qb1PgWwl4WoXbd3tmYbQIsneqEo1qvz/3\n 6zNOH+jhW14p0IihATzGDXly4gOFfasF7jASMy5Ejf0dWy7eoiV5wwVpADcGraAq3ZLJRI3td\n F9IueIOWduFc5v5jmA4yqKtc9VWtv/kvyJ4iueYdh0fGkVE45LjgpLiDXQUuuIO3a1U/MCHQT\n r7uF4qrGQzs5bwXQz5elQFlufPOCrNw1fhPvwNMKj7xtdPAMmv4YaebyodkXTZO/GLo9Ds+Hj\n IjHkCnCQ1Wq8USdo35aLxGeYrzlyt8jjkGHHXeq5QWwqg6+EcRE4Sx9nc8P+L+hOq5sx5t55K\n DsQk8sq2LJARZHxSA==", "X-Original-Sender": "stefano.babic@swupdate.org", "X-Original-Authentication-Results": "gmr-mx.google.com; dkim=pass\n header.i=@swupdate.org header.s=s1-ionos header.b=bIpNgqAW; spf=pass\n (google.com: domain of stefano.babic@swupdate.org designates 217.72.192.75 as\n permitted sender) smtp.mailfrom=stefano.babic@swupdate.org; dmarc=pass\n (p=NONE sp=NONE dis=NONE) header.from=swupdate.org", "Content-Type": "text/plain; charset=\"UTF-8\"", "Precedence": "list", "Mailing-list": "list swupdate@googlegroups.com;\n contact swupdate+owners@googlegroups.com", "List-ID": "<swupdate.googlegroups.com>", "X-Spam-Checked-In-Group": "swupdate@googlegroups.com", "X-Google-Group-Id": "605343134186", "List-Post": "<https://groups.google.com/group/swupdate/post>,\n <mailto:swupdate@googlegroups.com>", "List-Help": "<https://groups.google.com/support/>,\n <mailto:swupdate+help@googlegroups.com>", "List-Archive": "<https://groups.google.com/group/swupdate", "List-Subscribe": "<https://groups.google.com/group/swupdate/subscribe>,\n <mailto:swupdate+subscribe@googlegroups.com>", "List-Unsubscribe": "\n <mailto:googlegroups-manage+605343134186+unsubscribe@googlegroups.com>,\n <https://groups.google.com/group/swupdate/subscribe>" }, "content": "Add a token configuration as done for Hawkbit, rename some vars to make\nthem more readable.\n\nSigned-off-by: Stefano Babic <stefano.babic@swupdate.org>\n---\n handlers/delta_downloader.c | 80 ++++++++++++++++++++++++++-----------\n 1 file changed, 57 insertions(+), 23 deletions(-)", "diff": "diff --git a/handlers/delta_downloader.c b/handlers/delta_downloader.c\nindex 994c80d8..fb8493a6 100644\n--- a/handlers/delta_downloader.c\n+++ b/handlers/delta_downloader.c\n@@ -36,6 +36,16 @@\n #include \"delta_process.h\"\n #include \"swupdate_settings.h\"\n #include \"server_utils.h\"\n+#include \"parselib.h\"\n+\n+/*\n+ * Structure to maintain transferate data\n+ * of the downloader\n+ */\n+typedef struct {\n+\tchar *targettoken;\n+\tchar *gatewaytoken;\n+} dwl_priv_t;\n \n /*\n * Structure used in curl callbacks\n@@ -44,7 +54,7 @@ typedef struct {\n \tunsigned int id;\t/* Request id */\n \tint writefd;\t\t/* IPC file descriptor */\n \trange_answer_t *answer;\n-} dwl_data_t;\n+} dwl_transfer_t;\n \n extern channel_op_res_t channel_curl_init(void);\n \n@@ -71,7 +81,7 @@ static size_t wrdata_callback(char *buffer, size_t size, size_t nmemb, void *dat\n \t\treturn 0;\n \n \tchannel_data_t *channel_data = (channel_data_t *)data;\n-\tdwl_data_t *dwl = (dwl_data_t *)channel_data->user;\n+\tdwl_transfer_t *dwl = (dwl_transfer_t *)channel_data->user;\n \tssize_t nbytes = nmemb * size;\n \tint ret;\n \tif (!nmemb) {\n@@ -112,7 +122,7 @@ static size_t wrdata_callback(char *buffer, size_t size, size_t nmemb, void *dat\n static size_t delta_callback_headers(char *buffer, size_t size, size_t nitems, void *data)\n {\n \tchannel_data_t *channel_data = (channel_data_t *)data;\n-\tdwl_data_t *dwl = (dwl_data_t *)channel_data->user;\n+\tdwl_transfer_t *dwl = (dwl_transfer_t *)channel_data->user;\n \tint ret;\n \n \trange_answer_t *answer = dwl->answer;\n@@ -132,10 +142,28 @@ static size_t delta_callback_headers(char *buffer, size_t size, size_t nitems, v\n \treturn nitems * size;\n }\n \n+/*\n+ * Read setup from configuration file\n+ */\n+static int delta_downloader_settings(void *elem, void *data)\n+{\n+\tchar tmp[128];\n+\tdwl_priv_t *priv = (dwl_priv_t *)data;\n+\n+\tGET_FIELD_STRING_RESET(LIBCFG_PARSER, elem, \"targettoken\", tmp);\n+\tif (strlen(tmp))\n+\t\tSETSTRING(priv->targettoken, tmp);\n+\tGET_FIELD_STRING_RESET(LIBCFG_PARSER, elem, \"gatewaytoken\", tmp);\n+\tif (strlen(tmp))\n+\t\tSETSTRING(priv->gatewaytoken, tmp);\n+\n+\treturn 0;\n+}\n+\n /*\n * Process that is spawned by the handler to download the missing chunks.\n * Downloading should be done in a separate process to not break\n- * privilige separation\n+ * privilege separation\n */\n int start_delta_downloader(const char __attribute__ ((__unused__)) *fname,\n \t\t\t\tint __attribute__ ((__unused__)) argc,\n@@ -143,12 +171,16 @@ int start_delta_downloader(const char __attribute__ ((__unused__)) *fname,\n {\n \tssize_t ret;\n \trange_request_t *req = NULL;\n-\tchannel_op_res_t transfer;\n+\tswupdate_cfg_handle handle;\n+\tchannel_op_res_t result;\n \trange_answer_t *answer;\n \tstruct dict httpheaders;\n-\tdwl_data_t priv;\n+\tdwl_transfer_t dwltransfer;\n+\tdwl_priv_t dwldata;\n \n \tTRACE(\"Starting Internal process for downloading chunks\");\n+\tmemset (&dwldata, 0, sizeof(dwldata));\n+\n \tif (channel_curl_init() != CHANNEL_OK) {\n \t\tERROR(\"Cannot initialize curl\");\n \t\treturn SERVER_EINIT;\n@@ -177,6 +209,16 @@ int start_delta_downloader(const char __attribute__ ((__unused__)) *fname,\n \t\texit (EXIT_FAILURE);\n \t}\n \n+\tswupdate_cfg_init(&handle);\n+\tif (fname && swupdate_cfg_read_file(&handle, fname) == 0) {\n+\t\tread_module_settings(&handle, \"delta\", channel_settings, &channel_data);\n+\t\tread_module_settings(&handle, \"delta\", delta_downloader_settings, &dwldata);\n+\t}\n+\tswupdate_cfg_destroy(&handle);\n+\n+\tchannel_settoken(\"TargetToken\", dwldata.targettoken, &channel_data);\n+\tchannel_settoken(\"GatewayToken\", dwldata.gatewaytoken, &channel_data);\n+\n \tfor (;;) {\n \t\tret = read(sw_sockfd, req, sizeof(range_request_t));\n \t\tif (ret < 0) {\n@@ -188,9 +230,9 @@ int start_delta_downloader(const char __attribute__ ((__unused__)) *fname,\n \t\t\tERROR(\"Malformed data\");\n \t\t\tcontinue;\n \t\t}\n-\t\tpriv.writefd = sw_sockfd;\n-\t\tpriv.id = req->id;\n-\t\tpriv.answer = answer;\n+\t\tdwltransfer.writefd = sw_sockfd;\n+\t\tdwltransfer.id = req->id;\n+\t\tdwltransfer.answer = answer;\n \t\tchannel_data.url = req->data;\n \t\tchannel_data.noipc = true;\n \t\tchannel_data.usessl = true;\n@@ -199,30 +241,22 @@ int start_delta_downloader(const char __attribute__ ((__unused__)) *fname,\n \t\tchannel_data.headers = delta_callback_headers;\n \t\tchannel_data.dwlwrdata = wrdata_callback;\n \t\tchannel_data.range = &req->data[req->urllen + 1];\n-\t\tchannel_data.user = &priv;\n+\t\tchannel_data.user = &dwltransfer;\n \n \t\tif (loglevel >= DEBUGLEVEL) {\n \t\t\tchannel_data_defaults.debug = true;\n-\t\t}\n-\n-\t\tswupdate_cfg_handle handle;\n-\t\tswupdate_cfg_init(&handle);\n-\n-\t\tif (fname && swupdate_cfg_read_file(&handle, fname) == 0) {\n-\t\t\tread_module_settings(&handle, \"delta\", channel_settings, &channel_data);\n-\t\t}\n-\n-\t\tswupdate_cfg_destroy(&handle);\n+\t\t} else\n+\t\t\tchannel_data_defaults.debug = false;\n \n \t\tif (channel->open(channel, &channel_data) == CHANNEL_OK) {\n-\t\t\ttransfer = channel->get_file(channel, (void *)&channel_data);\n+\t\t\tresult = channel->get_file(channel, (void *)&channel_data);\n \t\t} else {\n \t\t\tERROR(\"Cannot open channel for communication\");\n-\t\t\ttransfer = CHANNEL_EINIT;\n+\t\t\tresult = CHANNEL_EINIT;\n \t\t}\n \n \t\tanswer->id = req->id;\n-\t\tanswer->type = (transfer == CHANNEL_OK) ? RANGE_COMPLETED : RANGE_ERROR;\n+\t\tanswer->type = (result == CHANNEL_OK) ? RANGE_COMPLETED : RANGE_ERROR;\n \t\tanswer->len = 0;\n \t\tif (write(sw_sockfd, answer, sizeof(*answer)) != sizeof(*answer)) {\n \t\t\tERROR(\"Answer cannot be sent back, maybe deadlock !!\");\n", "prefixes": [ "9/9" ] }