Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2195585/?format=api
{ "id": 2195585, "url": "http://patchwork.ozlabs.org/api/patches/2195585/?format=api", "web_url": "http://patchwork.ozlabs.org/project/swupdate/patch/20260211132740.597019-4-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-4-stefano.babic@swupdate.org>", "list_archive_url": null, "date": "2026-02-11T13:27:34", "name": "[3/9] Add IPC to send a list of URL as sources", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "83c7af2e80efb5f0cdc2295859b8e3cefb100551", "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-4-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/2195585/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2195585/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<swupdate+bncBD2ZDGN6SEKRBUUHWLGAMGQE4L4BBHI@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=xNR72qoB;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com\n (client-ip=2a00:1450:4864:20::33a; helo=mail-wm1-x33a.google.com;\n envelope-from=swupdate+bncbd2zdgn6sekrbuuhwlgamgqe4l4bbhi@googlegroups.com;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from mail-wm1-x33a.google.com (mail-wm1-x33a.google.com\n [IPv6:2a00:1450:4864:20::33a])\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 4f9zl01cvBz1xtr\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 12 Feb 2026 00:27:56 +1100 (AEDT)", "by mail-wm1-x33a.google.com with SMTP id\n 5b1f17b1804b1-4801bceb317sf21475885e9.1\n for <incoming@patchwork.ozlabs.org>;\n Wed, 11 Feb 2026 05:27:56 -0800 (PST)", "by 2002:a05:600c:198d:b0:477:a2eb:9a0a with SMTP id\n 5b1f17b1804b1-4831758ba81ls56307255e9.1.-pod-prod-07-eu; Wed, 11 Feb 2026\n 05:27:44 -0800 (PST)", "from mout.kundenserver.de (mout.kundenserver.de. [217.72.192.73])\n by gmr-mx.google.com with ESMTPS id\n ffacd0b85a97d-43783e56aeasi51875f8f.9.2026.02.11.05.27.44\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:44 -0800 (PST)", "from paperello ([88.217.136.221]) by mrelayeu.kundenserver.de\n (mreue109 [212.227.17.181]) with ESMTPSA (Nemesis) id\n 1M4JeB-1vqREk3R2n-007efA; Wed, 11 Feb 2026 14:27:43 +0100" ], "ARC-Seal": [ "i=2; a=rsa-sha256; t=1770816468; cv=pass;\n d=google.com; s=arc-20240605;\n b=ArGSh4TVxCVcx+kfc5pxcVa8nvWCWujLbTnWdu7b3K1kRx1ni2Lq+fnqIia4i0jppR\n 5YZxbE6z0CbCrZbxUnPAICQBE8OsMWCzWM6QreqOD231brv0usGoIf39X7UJEzg34UyT\n K3kASsumme8ymdj3hzRSxheH0Uvmlml4H4XF/1TUz+xhrL0e4OiOF2q4JqkyQjfO3tdi\n xH1trASiT40OESFBPvV5Eugv9YyEMp9JHs5SIBli+1cwZgFeEH9wm5xQgvIF9rmuNB7w\n 77SZ5BMRe+NqgnM1dEoWxszGwFkaUn05VOeDmyux+1+GWBT60SkCJBzNdTW7ELg+KEt2\n Kdxg==", "i=1; a=rsa-sha256; t=1770816464; cv=none;\n d=google.com; s=arc-20240605;\n b=N+oscZ91M6KCcWXlhw7s0xa8bZJRBBe1OGlylHdQ904nphubth1XgXk0GvJpd+/6GT\n UV4XCreXp9EYFvrmu4KTH08oWokZgkZGqBMha9v/iwbD+U484gQfEVX0sWUfHjTuIPeV\n MyxYVI43PMXo7euBc89GV/ayCudK7740GPfgxK5v7CI/+1pyYXe+PS9sltK86jR/pclV\n y6ZIFKxs6bZLdVYoM5Sv7ZGlV4Bwhzq0N7iuCNZ7wdPWYvHNuCZHzHmVBVlX2wPS7DPv\n 01m4otKrwH+PQM1+/hLZDHR59sVubj2l9p3B8xD+WOSU2hSqlo62vSPfSmUYFQKz4TSa\n cO5Q==" ], "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=tBs3bd2H2KVcM4V8v8R9EqOzRMha+rneefjngGdGqYk=;\n fh=3s9I7hANvjahnybEXGQTYU7imQksFMkDoCGkuSWP6tI=;\n b=MKwWE/60FJoX8gQu0484ENR4whjNE1AD3FeW9VytkE1mCH/nK+7ow4gOmTOaac+JzR\n Mf/njRYgqrFPV6e/RzxbqW57G/atD9RBnZX65Moe9fBL3mdGzTlrHxqrupMfNqzXMX+Y\n GtNqVEg2CfElW7Vgzk2WrnP9ZEGsK592/WCjUZ4Ztsyb/rm0+hzY33pJ7DszvYWR3Ayh\n MOKM0YoB1lh0l22FrkMDo5ZwG8pUVtQl7CNDAfJcJjDc1UUqFkj2jDrrmAh7mhw8O+3a\n hSF3bxehNUAdma81JDgf4wkImd3mpp3WMUuLa71iu7OiHuxZTjJERxb3eizFEp08ndto\n 36KA==;\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=h029x2Y2TVJ8qDympqwLkw6NWDQmK9B7fmSb+PFsWe8=;\n fh=TiEWcqMcKpHk5s7uErzpntoONrNfOXwKpI5P8bIlggk=;\n b=FAxtr+mWZLVikmBDTRagaj4cM/jYjxj5DpEowOjOxMyCgReL4F2pm3svtJIiTW1dmV\n T9B6dovM747P5GYLBaXL8DqRXEl6mbZbIagN5mAWKiQS2DPZkx74f01SOIfTDmKJufc5\n 0LOU+jBANO53hLdWDFdy4QHIxlTjI0s4pte04yQytm+IZHmk+QKo4J7pyl8OtKJW2rGW\n Wfa/YlU9PAJsnkRcnkxL/MhE+jcV1s0pv7ueD8omgToEhcs8TZHYpghLUI5vZGZxSqQ7\n ym/eEa27/WOWLeNgw5EyKTvlUpUvca6c7CrP1G01pf6PUxGQM0azobrTDTWZZHAe7x5p\n 6K9w==;\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=XRoqOoyb;\n spf=pass (google.com: domain of stefano.babic@swupdate.org designates\n 217.72.192.73 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=XRoqOoyb;\n spf=pass (google.com: domain of stefano.babic@swupdate.org designates\n 217.72.192.73 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=1770816468; x=1771421268;\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=tBs3bd2H2KVcM4V8v8R9EqOzRMha+rneefjngGdGqYk=;\n b=xNR72qoBf9a7McycTvweh+Pn1hsH9xN7BuZgCy2tfabVvz7Vz/705sJar0ummNDyTg\n k7/QLG9GuQT4RWCM5PsYnngVM5Vf+Up4v4QF3MMlGFs+L9ftPyArqIf3RVtrWIwmY/cK\n 0zDIDa2A+FeQ1N1DiW6GvmIII02pSx+/lqlMvqJlt/4L854+WZljUzL4lnXMb1RnhB3+\n B1Z8XHIssIngKKU8iTamwdFxVazttS6UzAIwJ2vxLfzt0U9cGslzceYOJZ7VhCbVMOSp\n 9P3wZYmBoje93cLFurhMWqGf5KTyI6FBoHRd4dm6JN32ETBZIqPV9YiY13B0YOtsS7Hd\n ErcQ==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1770816468; x=1771421268;\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=tBs3bd2H2KVcM4V8v8R9EqOzRMha+rneefjngGdGqYk=;\n b=GYKWPAP3RuJqWXT1e5hGTgxET7tp/1ZodwDfAtQ1EqN0CAOePK7wRsOicjk3QOu4RH\n 6nAOTf/GVj8rLGxnbwHWbmY+TaQB86QoSIIU9eu4Wjo3o4tLYrw+9KkJ+wDOMn1kHVcG\n GMC0v/8dCsc2OkBlqAc6pTzKLhIH8SP2bDXzoi6+WZD6AkHrfTg+kc/5Xgzo4tNPggaZ\n 6GvomFDn9q+mmyfj9btvFwPIyhm53nFgF/xR33b+nA3Y8qEypU2z0KWlYMM4uW3yn72w\n d4lTg8qeBS44xAXHgqKE2yYsQH3cSx8j3UlNBwVt2/sZL0ERCOdz+OY6rH8Gfeq9InHr\n O9VA==", "Sender": "swupdate@googlegroups.com", "X-Forwarded-Encrypted": "i=2;\n AJvYcCWk2oC1ueGo9rgIiZOAtghKlEuBGF+a2MNLNOzf15jhn4GfIJ3xlCiAR3CHUbGfzVEa+cPu6wdbDg==@patchwork.ozlabs.org", "X-Gm-Message-State": "AOJu0Yxb59OhpeKegL1utERaSdeH/xpERgy1wXO8A8KQvwsdDW4UtblU\n\t1ZkXUBxZLG+3DjgtO/MtnLeNkPFjGF0ED9y2gC42PyhYnYh3JKYQxHOi", "X-Received": [ "by 2002:a05:600c:5290:b0:477:6d96:b3e5 with SMTP id\n 5b1f17b1804b1-4832020023cmr263796855e9.7.1770816468564;\n Wed, 11 Feb 2026 05:27:48 -0800 (PST)", "by 2002:a05:600c:4450:b0:480:699c:abe9 with SMTP id\n 5b1f17b1804b1-483203398a7mr233104885e9.37.1770816464646;\n Wed, 11 Feb 2026 05:27:44 -0800 (PST)" ], "X-BeenThere": "swupdate@googlegroups.com;\n h=\"AV1CL+F7MdKJ2pueQlGUvcijxzENuhLoaHhhfdE0mqjHDdo7OA==\"", "Received-SPF": "pass (google.com: domain of stefano.babic@swupdate.org\n designates 217.72.192.73 as permitted sender) client-ip=217.72.192.73;", "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 3/9] Add IPC to send a list of URL as sources", "Date": "Wed, 11 Feb 2026 14:27:34 +0100", "Message-ID": "<20260211132740.597019-4-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:JfSIcZftbLaFarIWBMLiuhdAn4VU4IPh+xzoE3+X77fbpWf5DvB\n 2sCWXHZPfIC7ODFU13M5vOC8/jteltvoMEYGg4bLEvQeU+q3Dx88FKz6ZlIgNu08+SFLTG2\n tOBGPrOjjcUKBzKJMMUbVIYV2jtnawKPJbZYa38+taPwPAHg9U+i6gHLjTZxRZRldcocDWB\n IwqX7JrColrLAe0LRzcpg==", "X-Spam-Flag": "NO", "UI-OutboundReport": "notjunk:1;M01:P0:2rR0anzkDNE=;ijm7A6hYiQF7s5bQ4Pf3WI8gwi/\n S0s/Vz6HqswELShbcYK2TM3NoYXfX00r+PKM1ULhh+S0FD8yChbP4fjZiLZHUBHS/QhIf8Ki9\n Hye5iZ/79LvYWOF8KxcCyx+1OSBdckKIMjiJIHlZxRHehDHUpF6uxy7C2qlKi8sI0d04nyN/m\n 6kVJkpwbFEcPjpi/oG4tx3MSTV1HeF8y/9ceV94/kdOQNXkbNlw6lyu4WbusqLw7HkBr+GqH7\n NzXuRjeQLETFPFSKfpX8DvgzGRDfk+LjiIdmDeOGGd7SxgB0O07MxiZ0H9mLhaTm1wTI76gPy\n qq7pXjeFq2kXHOovx9ek8DDLnVzzBy6b96pFX1Ezitfwmq2PoGPaqUQ+sz71gkJTaJKKwWtEq\n HrlsBFLhmMVpOUwIetgVrcBUuY/Q2tyfA4HL4QpDEaZJu0nqondpyc+HzfHBCR8VATSHiQmtm\n vx/nEobs71+yMyxtJfYT6zu38U5gXwt/+RpCPQ7nXnXMcU3dEFef9IBF5+8rgjVPvqzcnfgyR\n 6zt6gb1E1YDXgy5RGBGHAMBpfeXMtPqISSAnirKMD1sj7QpI7LqglDazXY4QM3h42gITU/ahw\n YV2BIrnzeq9qSvl+yPvBGfzgYV2yuvm8v2YDXp3/X7g1N2OmY0Xqg8KfCHs4DWF4betZaNNVt\n LJNf8TMkxjpjs+2QwudUNwhFb4DlxlnmumiKWhd1ukUhLgguDYPMk9lDFmI8LKcAcVJQGWJT0\n E9F39Tn1gT3fWh0G6J9QfgxSKCCZBBR279Dib+1IohX95P8BRnJknPdZwjdD3khdJAno628E7\n gEJEwNmoS8JBuPTy8e9EFbuiK08QeUMpQR76pLtFsAPVBdS0gGBCOUsTBRnL2laaWB1wTdE4e\n eLtpPrvxfl5Q8B8X91wNn4QlLgnCu5krVwDuGMSpHDL4FXnPmBVzKjuvcwxEVqINMEXOXtnVD\n sOctyVCqPf7u3a/UNJwe/Tdcfyi6DdjyJIuaU2UmRORi/u9BegZ0N5S3gTX7+jUfcrFj74rU6\n sJaM7pzvWL9HuMGdoi0SA+KeZRUsnm13cgypsZVyVpb0RLL0Yjm7hG+BnvmMPGlE+UBd1loJ5\n 9M3qLtLPrEixs7yZKflrnJkoAGvGB6k8agEpP4dyPctSlW853X+pyzzfJQFO10VVLRuXOZWLM\n VasKFPum1lcgDWmI0u6c7mrFQo6BX5Gl4L9JVPlvQBUbGqVDNligYZGcMDuvw8IqdGqKoKHKJ\n 3sHHqX8PAYWStim0i0INGQbxvdVAnlSJ0WF24PlRyq/+W76hFFamO/thJrf+ZHIbIUgxCQQHu\n WOr8duRTdymmiF+GI3s0ufiAJyM0ZyU3sgN1spZMhVg9MjTZned6ujxmgmetak6EusZPKNm2a\n +NfyNmD6mSzmEi5+t0xGXTt6I+wJK2xF7qfLTeGcATvMAtWx7d0SVfRW34ZkG2bBKwCnaTtVA\n XmY3m4MmBZ6ubeTpGPi/VSAl3isTDIqU2MRd7DT5SoWYM/91qBS5WPgDn+PYNuRNDe0frVcGb\n 5jwSQOdEog3LazS0nY7PBN/dxKESNOkWtun5XZ/nZVOmuhPaArwc/JkSv7dgb03dm4+XPkk1O\n BGMmdnKmUqiQK0NjWZ7kHFNbHENtVWbRkB7BMVh62Sn5P6Vij2jHJMbQZ20lEoEu8cqTZCBl6\n vgZAWbuRRh9ifwp1emEqxUAUqpPusqLOa06Gft2mGMci7//FgX1Xg1z4tqKDMys8/oNz7gzqk\n c7tCm0/gDHsgAJt7Hc5Uzmdf0OPS5s2SJcUFqYn0HunLKN5NVAgWWB2qhd819iuIsO2qUHLos\n un4wO4Pj54ktqBsSrFLyixgidjXmKSOKTVOla+IwqABmdcMs8a+0l2hJ3daT0AyRkFGGwpGLI\n glSgHuGOEZSGePFXw==", "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=XRoqOoyb; spf=pass\n (google.com: domain of stefano.babic@swupdate.org designates 217.72.192.73 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": "This is used together with delta update to get where the ZCLK file is\nstored. In many case, as with Hawkbit, the URL is not known at build\ntime and cannot be stored into sw-description. Hawkbit generates a URL\nwhen the file is uploaded, and sends this URL back in the list of\nSoftware Modules. SWUpdate had ignored this as it is not a SWU file.\n\nBy adding rules for files in Hawkbiot connector, suricatta sends the\nlist of received URLs to the core, anbd this can be used later by a\nhandler (delta) when it runs.\n\nSigned-off-by: Stefano Babic <stefano.babic@swupdate.org>\n---\n core/installer.c | 5 +++++\n core/network_thread.c | 17 +++++++++++++++++\n include/network_ipc.h | 7 +++++++\n include/swupdate.h | 1 +\n ipc/network_ipc-if.c | 17 +++++++++++++++++\n suricatta/server_hawkbit.c | 4 ++--\n 6 files changed, 49 insertions(+), 2 deletions(-)", "diff": "diff --git a/core/installer.c b/core/installer.c\nindex 29d5ed83..e87474b0 100644\n--- a/core/installer.c\n+++ b/core/installer.c\n@@ -557,6 +557,11 @@ void cleanup_files(struct swupdate_cfg *software) {\n \tdict_drop_db(&software->bootloader);\n \tdict_drop_db(&software->vars);\n \n+\t/*\n+\t * Drop per update URLs\n+\t */\n+\tdict_drop_db(&software->external_urls);\n+\n \t/*\n \t * Drop Lua State if instantiated\n \t */\ndiff --git a/core/network_thread.c b/core/network_thread.c\nindex 6d4c259a..45ce48a3 100644\n--- a/core/network_thread.c\n+++ b/core/network_thread.c\n@@ -629,6 +629,23 @@ void *network_thread (void *data)\n \t\t\t\t} else\n \t\t\t\t\tmsg.type = NACK;\n \t\t\t\tbreak;\n+\t\t\tcase SET_DELTA_URL:\n+\t\t\t\tcfg = get_swupdate_cfg();\n+\n+\t\t\t\t/*\n+\t\t\t\t * check strings in IPC\n+\t\t\t\t */\n+\t\t\t\tmsg.data.dwl_url.filename[sizeof(msg.data.dwl_url.filename) - 1] = '\\0';\n+\t\t\t\tmsg.data.dwl_url.url[sizeof(msg.data.dwl_url.url) - 1] = '\\0';\n+\t\t\t\t/*\n+\t\t\t\t * Check for mutex: there is currently no other users, one writer and one reader\n+\t\t\t\t * for the list (the handler).\n+\t\t\t\t */\n+\t\t\t\tTRACE(\"EXTERNAL URL: %s:%s\",msg.data.dwl_url.filename, msg.data.dwl_url.url );\n+\t\t\t\tmsg.type = dict_insert_value(&cfg->external_urls,\n+\t\t\t\t\t\t\t msg.data.dwl_url.filename,\n+\t\t\t\t\t\t\t msg.data.dwl_url.url) == 0 ? ACK : NACK;\n+\t\t\t\tbreak;\n \t\t\tdefault:\n \t\t\t\tmsg.type = NACK;\n \t\t\t}\ndiff --git a/include/network_ipc.h b/include/network_ipc.h\nindex 8eb64cdf..813ffce0 100644\n--- a/include/network_ipc.h\n+++ b/include/network_ipc.h\n@@ -40,6 +40,7 @@ typedef enum {\n \tGET_HW_REVISION,\n \tSET_SWUPDATE_VARS,\n \tGET_SWUPDATE_VARS,\n+\tSET_DELTA_URL,\n } msgtype;\n \n /*\n@@ -127,6 +128,10 @@ typedef union {\n \t\tchar varname[256];\n \t\tchar varvalue[256];\n \t} vars;\n+\tstruct {\n+\t\tchar filename[256];\n+\t\tchar url[1024];\n+\t} dwl_url;\n } msgdata;\n \t\n typedef struct {\n@@ -164,6 +169,8 @@ int swupdate_set_version_range_type(const char *updatetype,\n \t\t\t\tconst char *minversion,\n \t\t\t\tconst char *maxversion,\n \t\t\t\tconst char *currentversion);\n+int swupdate_dwl_url (const char *artifact_name, const char *url);\n+\n #ifdef __cplusplus\n } // extern \"C\"\n #endif\ndiff --git a/include/swupdate.h b/include/swupdate.h\nindex 59b085b6..9f98a29e 100644\n--- a/include/swupdate.h\n+++ b/include/swupdate.h\n@@ -104,6 +104,7 @@ struct swupdate_cfg {\n \tstruct dict bootloader;\n \tstruct dict vars;\n \tstruct dict accepted_set;\n+\tstruct dict external_urls;\n \tstruct proclist extprocs;\n \tvoid *dgst;\t/* Structure for signed images */\n \tstruct swupdate_parms parms;\ndiff --git a/ipc/network_ipc-if.c b/ipc/network_ipc-if.c\nindex cd0d4e5d..732f3ad5 100644\n--- a/ipc/network_ipc-if.c\n+++ b/ipc/network_ipc-if.c\n@@ -405,6 +405,23 @@ int swupdate_set_version_range(const char *minversion,\n \t\t\t\t\t\t NULL);\n }\n \n+int swupdate_dwl_url (const char *artifact_name, const char *url)\n+{\n+\tipc_message msg;\n+\n+\tmemset(&msg, 0, sizeof(msg));\n+\tmsg.magic = IPC_MAGIC;\n+\tmsg.type = SET_DELTA_URL;\n+\n+\tstrlcpy(msg.data.dwl_url.filename,\n+\t\t\tartifact_name,\n+\t\t\tsizeof(msg.data.dwl_url.filename) - 1);\n+\tstrlcpy(msg.data.dwl_url.url,\n+\t\t\turl,\n+\t\t\tsizeof(msg.data.dwl_url.url) - 1);\n+\treturn ipc_send_cmd(&msg);\n+}\n+\n void swupdate_prepare_req(struct swupdate_request *req) {\n \tif (!req)\n \t\treturn;\ndiff --git a/suricatta/server_hawkbit.c b/suricatta/server_hawkbit.c\nindex c7b3f1fc..84ec3600 100644\n--- a/suricatta/server_hawkbit.c\n+++ b/suricatta/server_hawkbit.c\n@@ -49,8 +49,8 @@ static bool swu_rule(artifact_t __attribute__ ((__unused__)) *artifact) {\n \treturn true;\n }\n static bool zck_rule(artifact_t *artifact) {\n-\tartifact = artifact;\n-\treturn true;\n+\tartifact->skip = true;\n+\treturn swupdate_dwl_url(artifact->filename, artifact->url);\n }\n static bool reject_rule(artifact_t __attribute__ ((__unused__)) *artifact) {\n \treturn false;\n", "prefixes": [ "3/9" ] }