From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=fail (p=none dis=none) header.from=gmail.com Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by passt.top (Postfix) with ESMTPS id AEF755A026E for ; Fri, 16 Oct 2026 22:37:13 +0200 (CEST) Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-4a02667ccebso2916985e9.0 for ; Fri, 16 Oct 2026 13:37:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1792183033; x=1792787833; darn=passt.top; h=content-transfer-encoding:mime-version:to:from:subject:cc :message-id:date:content-type:from:to:cc:subject:date:message-id :reply-to:content-type; bh=82EFKau/elK6SPXD0S0jxrNSusI/rjGX4v/BG8r+lpQ=; b=Yz1xtGQfshGiHUfQOCUlSSE0CbTAtuvLE/pBDPLZ0FExMkMGq9N+xRoTSXhNkYRdMJ OT6Vyf8WQEnQtzefdkUHaced/WsxJaDBiEIkTS+VklPEeUmD5VO8QCOp92RLO3jeAMrM vNoxpUQAZN/0ULOd0wJ0GmPrx4++z2jxCO43IGR4xzQSs60mFrzgWdJyXjQzAE4bwull 7CSpCxCFmhcbstQ9Y0OrETsEr6t37aIgIWsbMjWzVr4oGAK6BAcXE2SUg5pn5SIV7oka wOjjs07owFHG1/9XkufiCwE9g1AVVj+ovRZcS6qv+6EYLg8IKhbBIntxegE8Gy+UshTj zxOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1792183033; x=1792787833; h=content-transfer-encoding:mime-version:to:from:subject:cc :message-id:date:content-type:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=82EFKau/elK6SPXD0S0jxrNSusI/rjGX4v/BG8r+lpQ=; b=0UM8MO5Ymi3kI8QdSCYh/yz6QRqCoZTehTSaBKuAVUvH+fvwGLTKJ1uW+o+Fhc5tCk 9H9U8r/uIci/4/YKINF8hdvS9xHhdr1mlOSWSeaSqFyxAohoTLA6FXq+rhbea3RFP11E 1pr6EmrtsGejK+CBT5oVCmTvTn64NGZrlFIIoyDkkHXnwUtxCXU8J5YG8h0N9WZWZKVz ila3it2QXugzv27tLGnlFTF6ULFlZxmYH/R0Kqm0MqMPCkmGGW53bvGC2cCRxtYqN9Sb XwraUakSd3R5cI45DVK+pn3L8ohgvRaDYmkl7gTX+rgwDCLPRSRVrYOcOlntHAp42JIC JgPQ== X-Gm-Message-State: AFq9FYIJaAyeik1bLC9+iEZ43+F5CkUvf0oVDJL1E32XQSD7ZFmEInjp HCyKPdgL+VkOUExAKMGnT/OuLtvS6wKLoo1Sa9sSXsj25Ft59ObV2hdPahcFyA== X-Gm-Gg: AYBFou1mNNUphKIB+fvBZwM46gcxb64QK6nSaswnTMWbYcRV5jzVv7ooizZYayuG+A8 iZqx3+PNDwj+8a2hf36NYAkdNr/9Twxd7V5xF2VbjwSDAf7Frn3QKFdGrfqqe8EoUmmcpxFTUhF KH+CMUOS4twFdVKg215sX99QxGOW//lgA91AoDkn4NtFtNQYdoqkXcdv0u8uGqbuz9/L4V+87lF Y/iIzahDiPnB9zfk9pEpyxPNGB6eeSSg2CicmKE9qWWAOLQtsP7Iz2WXqbJWBveFpyg0mHRbGJs vEPW35wtJ2W0e6SKd3Kpz3V70LhfrxeJCPInI2S1S9BmTFgtcM4kyGl5f6mEzKRzy6pruD2n0pt G0SdMkGC/keOVjaVLJ4uF+WzWXW9bGaG5RowOyKnYdDUtFVX/+EiqAY7FHAFWVU0/oDdXb6sLIn ncYBtX5EWp8aSrutXtzBxtDzBuCsbOz34PFhU1mVR66Zh2lQj+qP7QZ+LbzfHJuzT4KK3ycN6rV 0QwsIYZUaQG3Owk+VE7eUO/sxliH00eITmXs2nuQZkb X-Received: by 2002:a05:600c:c4a7:b0:4a1:9687:bbd9 with SMTP id 5b1f17b1804b1-4a1d762544amr22658015e9.35.1792183033115; Fri, 16 Oct 2026 13:37:13 -0700 (PDT) Received: from localhost ([196.157.71.229]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4a1d756ce69sm19887385e9.4.2026.10.16.13.37.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 16 Oct 2026 13:37:12 -0700 (PDT) Content-Type: text/plain; charset="utf-8" Date: Fri, 16 Oct 2026 23:37:11 +0300 Message-Id: Subject: [PATCH v2 4/7] tap: Implement the pasta vhost-net from-guest path From: "Ammar Yasser" To: MIME-Version: 1.0 Content-Transfer-Encoding: base64 Message-ID-Hash: PZMKVAC7W4RTFQA3X7B5MHHDVCU5H6B6 X-Message-ID-Hash: PZMKVAC7W4RTFQA3X7B5MHHDVCU5H6B6 X-MailFrom: aerosound161@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: =?utf-8?q?Eugenio_P=C3=A9rez?= X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: QWRkIHRhcF92aG9zdF9pbnB1dCgpLCBjYWxsZWQgd2hlbiB0aGUga2VybmVsIHNpZ25hbHMgb24g YSBjYWxsIGV2ZW50ZmQNCnRoYXQgaXQgaGFzIHdyaXR0ZW4gZ3Vlc3QgZnJhbWVzIGludG8gdGhl IGZyb20tZ3Vlc3QgcXVldWUuIEl0IGNvbnN1bWVzDQpkZXNjcmlwdG9ycyB3aXRoIGNvbnN1bWVf b25lX3J4X2Rlc2NyaXB0b3IoKSwgc2tpcHMgdGhlIHZpcnRpb19uZXQgaGVhZGVyDQpvbiBlYWNo LCBidWlsZHMgYW4gaW92X3RhaWwgZnJvbSB3aGF0J3MgbGVmdCBhbmQgcXVldWVzIGl0IGZvcg0K cHJvY2Vzc2luZywgdGhlbiB0ZWxscyB0aGUga2VybmVsIHRoZSBkZXNjcmlwdG9ycyBhcmUgZnJl ZSB0byByZXVzZS4NCg0KY29uc3VtZV9vbmVfcnhfZGVzY3JpcHRvcigpIHBvcHMgb25lIGVudHJ5 IGZyb20gdGhlIHVzZWQgcmluZywgYWR2YW5jZXMNCm91ciByZWFkIGN1cnNvciBhbmQgdGhlIGNv dW50IG9mIGRlc2NyaXB0b3JzIGF3YWl0aW5nIGhhbmRvZmYsIGFuZA0KcmV0dXJucyBhIHBvaW50 ZXIgdG8gdGhhdCBkZXNjcmlwdG9yJ3MgZGF0YS4NCg0KQm9vdHN0cmFwIHZob3N0IGluIHRhcF9z b2NrX3R1bl9pbml0KCkuIElmIHNldHVwIGZhaWxzIHdlIGxlYXZlDQpjLT52aG9zdC5mZCBhdCAt MSBhbmQgY2Fycnkgb24gdW5hY2NlbGVyYXRlZC4NCg0KV2l0aCB2aG9zdC1uZXQgcnVubmluZyB0 aGUga2VybmVsIHJlYWRzIHRoZSB0YXAgZmQgaXRzZWxmLCBzbyBkb24ndCBhZGQNCnRoYXQgZmQg dG8gb3VyIGVwb2xsIHNldCBhdCBhbGw6IHRhcF9oYW5kbGVyX3Bhc3RhKCkgd291bGQgb3RoZXJ3 aXNlIGJlDQp3b2tlbiBmb3IgZGF0YSBpdCBtdXN0IG5vdCByZWFkLg0KDQpTaWduZWQtb2ZmLWJ5 OiBFdWdlbmlvIFDDqXJleiA8ZXBlcmV6bWFAcmVkaGF0LmNvbT4NClNpZ25lZC1vZmYtYnk6IEFt bWFyIFlhc3NlciA8YWVyb3NvdW5kMTYxQGdtYWlsLmNvbT4NCi0tLQ0KIHBhc3N0LmMgfCAgIDYg KysrDQogdGFwLmMgICB8IDExMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLQ0KIHRhcC5oICAgfCAgIDIgKw0KIDMgZmlsZXMgY2hhbmdlZCwg MTE5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCg0KZGlmZiAtLWdpdCBhL3Bhc3N0LmMg Yi9wYXNzdC5jDQppbmRleCA2MDAyMjMxLi4zNzJiNzQzIDEwMDY0NA0KLS0tIGEvcGFzc3QuYw0K KysrIGIvcGFzc3QuYw0KQEAgLTMwNSw2ICszMDUsMTIgQEAgc3RhdGljIHZvaWQgcGFzc3Rfd29y a2VyKHZvaWQgKm9wYXF1ZSwgaW50IG5mZHMsIHN0cnVjdCBlcG9sbF9ldmVudCAqZXZlbnRzKQ0K IAkJY2FzZSBFUE9MTF9UWVBFX0NPTkY6DQogCQkJY29uZl9oYW5kbGVyKGMsIGV2ZW50bWFzayk7 DQogCQkJYnJlYWs7DQorCQljYXNlIEVQT0xMX1RZUEVfVkhPU1RfQ0FMTDoNCisJCQl0YXBfdmhv c3RfaW5wdXQoYywgcmVmLCAmbm93KTsNCisJCQlicmVhazsNCisJCWNhc2UgRVBPTExfVFlQRV9W SE9TVF9FUlJPUjoNCisJCQlkaWUoIkVycm9yIG9uIHZob3N0LWtlcm5lbCBzb2NrZXQiKTsNCisJ CQlicmVhazsNCiAJCWRlZmF1bHQ6DQogCQkJLyogQ2FuJ3QgaGFwcGVuICovDQogCQkJYXNzZXJ0 KDApOw0KZGlmZiAtLWdpdCBhL3RhcC5jIGIvdGFwLmMNCmluZGV4IGRmYTY2YzcuLmE1ZmRlZTgg MTAwNjQ0DQotLS0gYS90YXAuYw0KKysrIGIvdGFwLmMNCkBAIC0zOCw2ICszOCw3IEBADQogI2lu Y2x1ZGUgPG5ldGluZXQvdWRwLmg+DQogI2luY2x1ZGUgPG5ldGluZXQvaXBfaWNtcC5oPg0KICNp bmNsdWRlIDxuZXRpbmV0L2lmX2V0aGVyLmg+DQorI2luY2x1ZGUgPHN5cy9ldmVudGZkLmg+DQoN CiAjaW5jbHVkZSA8bGludXgvaWZfdHVuLmg+DQogI2luY2x1ZGUgPGxpbnV4L2ljbXB2Ni5oPg0K QEAgLTYxLDYgKzYyLDcgQEANCiAjaW5jbHVkZSAidmhvc3RfdXNlci5oIg0KICNpbmNsdWRlICJ2 dV9jb21tb24uaCINCiAjaW5jbHVkZSAiZXBvbGxfY3RsLmgiDQorI2luY2x1ZGUgInZob3N0Lmgi DQoNCiAvKiBNYXhpbXVtIGFsbG93ZWQgZnJhbWUgbGVuZ3RocyAoaW5jbHVkaW5nIEwyIGhlYWRl cikgKi8NCg0KQEAgLTE0NDYsNyArMTQ0OCwxMSBAQCBzdGF0aWMgdm9pZCB0YXBfc3RhcnRfY29u bmVjdGlvbihjb25zdCBzdHJ1Y3QgY3R4ICpjKQ0KIAkJYnJlYWs7DQogCX0NCg0KLQllcG9sbF9h ZGQoYy0+ZXBvbGxmZCwgRVBPTExJTiB8IEVQT0xMUkRIVVAsIHJlZik7DQorCS8qIFdpdGggdmhv c3QtbmV0IHJ1bm5pbmcsIHRoZSBrZXJuZWwgcmVhZHMgdGhlIHRhcCBmZCBmb3IgdXMgYW5kDQor CSAqIG5vdGlmaWVzIHVzIG9uIHRoZSBjYWxsIGV2ZW50ZmQsIHNvIHdlIG11c3RuJ3Qgd2F0Y2gg aXQgb3Vyc2VsdmVzDQorCSAqLw0KKwlpZiAoYy0+dmhvc3QuZmQgPT0gLTEpDQorCQllcG9sbF9h ZGQoYy0+ZXBvbGxmZCwgRVBPTExJTiB8IEVQT0xMUkRIVVAsIHJlZik7DQoNCiAJaWYgKCF0YXBf aXNfcmVhZHkoYykpDQogCQlyZXR1cm47DQpAQCAtMTUxNCw2ICsxNTIwLDg5IEBAIHZvaWQgdGFw X2xpc3Rlbl9oYW5kbGVyKHN0cnVjdCBjdHggKmMsIHVpbnQzMl90IGV2ZW50cykNCiAJdGFwX3N0 YXJ0X2Nvbm5lY3Rpb24oYyk7DQogfQ0KDQorLyoqDQorICogY29uc3VtZV9vbmVfcnhfZGVzY3Jp cHRvcigpIC0gQ29uc3VtZSBvbmUgdXNlZCBmcm9tLWd1ZXN0IGRlc2NyaXB0b3INCisgKiBAbGVu OglTZXQgdG8gdGhlIGxlbmd0aCBvZiBkYXRhIHdyaXR0ZW4gYnkgdGhlIGtlcm5lbA0KKyAqDQor ICogUG9wcyBhIHNpbmdsZSBlbnRyeSBmcm9tIHRoZSB1c2VkIHJpbmcsIGFkdmFuY2luZyBvdXIg cmVhZCBjdXJzb3IgYW5kIHRoZQ0KKyAqIGNvdW50IG9mIGRlc2NyaXB0b3JzIGF3YWl0aW5nIHJl ZmlsbCBhbm5vdW5jZW1lbnQuDQorICoNCisgKiBOT1RFOiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMg dGhlIGtlcm5lbCBpcyBnb2luZyB0byBwb3N0IHNpbmdsZSBkZXNjcmlwdG9ycw0KKyAqIGFsd2F5 cywgTm8gY2hhaW5zLiBJZiB0aGF0IGNoYW5nZXMsIHdlIHdvdWxkIG5lZWQgdG8gaW5jcmVtZW50 IG51bV9mcmVlDQorICogYXMgd2UgYWR2ZXJ0aXNlIGJhY2sgdG8gdGhlIGtlcm5lbCB0aGUgZnJl ZSBkZXNjcmlwdG9ycyBieSB0aGUgbGVuZ3RoIG9mIHRoZSBjaGFpbi4NCisgKg0KKyAqIFJldHVy bjogcG9pbnRlciB0byB0aGUgcGFja2V0IGJ1ZmZlciwgb3IgTlVMTCBpZiBubyBkYXRhIGlzIGF2 YWlsYWJsZQ0KKyAqLw0KK3N0YXRpYyB2b2lkICpjb25zdW1lX29uZV9yeF9kZXNjcmlwdG9yKHNp emVfdCAqbGVuKQ0KK3sNCisJc3RydWN0IHZyaW5nX3VzZWRfcGFzdGEgKnVzZWQgPSAmdnJpbmdf dXNlZF9hbGxbVkhPU1RfQVZBSUxfUV9JRFhdOw0KKwl1aW50MTZfdCB1c2VkX2lkeCwgbGFzdF91 c2VkOw0KKwl1aW50MzJfdCBpOw0KKw0KKwl1c2VkX2lkeCA9IGxlMTZ0b2godXNlZC0+aWR4KTsN CisNCisJc21wX3JtYigpOw0KKw0KKwkvKiBJZiB0aGUga2VybmVsJ3MgdXNlZCBpbmRleCBtYXRj aGVzIG91cnMsIHdlJ3ZlIGNvbnN1bWVkIGV2ZXJ5dGhpbmcNCisJICogaXQgaGFzIHBvc3RlZA0K KwkgKi8NCisJaWYgKHVzZWRfaWR4ID09IHZob3N0X3ZxX3N0YXRlW1ZIT1NUX0FWQUlMX1FfSURY XS5sYXN0X3VzZWRfaWR4KSB7DQorCQkqbGVuID0gMDsNCisJCXJldHVybiBOVUxMOw0KKwl9DQor DQorCWxhc3RfdXNlZCA9IHZob3N0X3ZxX3N0YXRlW1ZIT1NUX0FWQUlMX1FfSURYXS5sYXN0X3Vz ZWRfaWR4ICUgVkhPU1RfTkRFU0NTOw0KKwlpID0gbGUzMnRvaCh1c2VkLT5yaW5nW2xhc3RfdXNl ZF0uaWQpOw0KKwkqbGVuID0gbGUzMnRvaCh1c2VkLT5yaW5nW2xhc3RfdXNlZF0ubGVuKTsNCisN CisJaWYgKGkgIT0gbGFzdF91c2VkKQ0KKwkJZGllKCJ2aG9zdDogaWQgJXUgYXQgdXNlZCBwb3Np dGlvbiAldSIsIGksIGxhc3RfdXNlZCk7DQorDQorCS8qIFRoZSBrZXJuZWwgaGFzIHF1ZXVlZCBm b3IgdXMgc29tZXRoaW5nIHdlIGNhbm5vdCByZWNlaXZlICovDQorCWlmICgqbGVuID4gVkhPU1Rf REVTQ19CWVRFUykNCisJCWRpZSgidmhvc3Q6IGlkICV1IGxlbiAlenUgPiAlenUiLCBpLCAqbGVu LA0KKwkJICAgIChzaXplX3QpVkhPU1RfREVTQ19CWVRFUyk7DQorDQorCXZob3N0X3ZxX3N0YXRl W1ZIT1NUX0FWQUlMX1FfSURYXS5sYXN0X3VzZWRfaWR4Kys7DQorCXZob3N0X3ZxX3N0YXRlW1ZI T1NUX0FWQUlMX1FfSURYXS5udW1fZnJlZSsrOw0KKw0KKwlyZXR1cm4gcGt0X2J1ZiArIGkgKiBW SE9TVF9ERVNDX0JZVEVTOw0KK30NCisNCisvKioNCisgKiB0YXBfdmhvc3RfaW5wdXQoKSAtIEhh bmRsZSBmcmFtZXMgdGhlIGtlcm5lbCB3cm90ZSB0byB0aGUgZnJvbS1ndWVzdCBxdWV1ZQ0KKyAq IEBjOgkJRXhlY3V0aW9uIGNvbnRleHQNCisgKiBAcmVmOgllcG9sbCByZWZlcmVuY2UNCisgKiBA bm93OglDdXJyZW50IHRpbWVzdGFtcA0KKyAqLw0KK3ZvaWQgdGFwX3Zob3N0X2lucHV0KHN0cnVj dCBjdHggKmMsIHVuaW9uIGVwb2xsX3JlZiByZWYsDQorCQkgICAgIGNvbnN0IHN0cnVjdCB0aW1l c3BlYyAqbm93KQ0KK3sNCisJc3RydWN0IHZpcnRpb19uZXRfaGRyX21yZ19yeGJ1ZiAqaGRyOw0K KwlzdHJ1Y3QgaW92X3RhaWwgZGF0YTsNCisJc2l6ZV90IGxlbjsNCisNCisJZXZlbnRmZF9yZWFk KHJlZi5mZCwgKGV2ZW50ZmRfdFtdKXsgMCB9KTsNCisNCisJdGFwX2ZsdXNoX3Bvb2xzKCk7DQor DQorCXdoaWxlICgoaGRyID0gY29uc3VtZV9vbmVfcnhfZGVzY3JpcHRvcigmbGVuKSkpIHsNCisJ CS8qIGEgdmFsaWQgcmVjZWl2ZSBpcyBvbmUgd2hlcmUgdGhlcmUgaXMgYSB2aXJ0aW8gbmV0IGhl YWRlciBmb2xsb3dlZCBieSBhdGxlYXN0IHNpemVvZihzdHJ1Y3QgZXRoaGRyKSBieXRlcyAqLw0K KwkJaWYgKGxlbiA8IChzaXplb2YoKmhkcikgKyBzaXplb2Yoc3RydWN0IGV0aGhkcikpKSB7DQor CQkJd2Fybigidmhvc3Q6IGludmFsaWQgbGVuICVsdSIsIGxlbik7DQorCQkJY29udGludWU7DQor CQl9DQorDQorCQkvKiBTa2lwIG92ZXIgdGhlIHZuZXQgaGVhZGVyLCBhZGQgdGhlIHBhY2tldCB3 aXRob3V0IGl0ICovDQorCQlkYXRhID0gSU9WX1RBSUxfRlJPTV9CVUYoKHZvaWQgKikoaGRyICsg MSksDQorCQkJCQkgbGVuIC0gc2l6ZW9mKCpoZHIpLCAwKTsNCisJCXRhcF9hZGRfcGFja2V0KGMs ICZkYXRhLCBub3cpOw0KKwl9DQorDQorCXRhcF9oYW5kbGVyKGMsIG5vdyk7DQorCXZob3N0X3J4 X2Rlc2NyaXB0b3JfaGFuZG9mZihjKTsNCit9DQorDQogLyoqDQogICogdGFwX25zX3R1bigpIC0g R2V0IHR1bnRhcCBmZCBpbiBuYW1lc3BhY2UNCiAgKiBAYzoJCUV4ZWN1dGlvbiBjb250ZXh0DQpA QCAtMTU1NSwxMiArMTY0NCwzMyBAQCBzdGF0aWMgaW50IHRhcF9uc190dW4odm9pZCAqYXJnKQ0K ICAqLw0KIHN0YXRpYyB2b2lkIHRhcF9zb2NrX3R1bl9pbml0KHN0cnVjdCBjdHggKmMpDQogew0K KwlpbnQgaTsNCisNCiAJaWYgKCFjLT5zcGxpY2Vfb25seSkgew0KIAkJTlNfQ0FMTCh0YXBfbnNf dHVuLCBjKTsNCiAJCWlmIChjLT5mZF90YXAgPT0gLTEpDQogCQkJZGllKCJGYWlsZWQgdG8gc2V0 IHVwIHRhcCBkZXZpY2UgaW4gbmFtZXNwYWNlIik7DQogCX0NCg0KKwkvKiBOb3RoaW5nIGVsc2Ug aGVyZSBydW5zIGlmIHRoaXMgZmFpbHM6IGMtPnZob3N0LmZkIHN0YXlzIC0xIGFuZCB3ZQ0KKwkg KiBjYXJyeSBvbiByZWFkaW5nIHRoZSB0YXAgZmQgb3Vyc2VsdmVzLCB1bmxlc3MgYWNjZWxlcmF0 aW9uIHdhcw0KKwkgKiBleHBsaWNpdGx5IGFza2VkIGZvcg0KKwkgKi8NCisJaWYgKGMtPnZob3N0 Lm1vZGUgIT0gVkhPU1RfTU9ERV9PRkYgJiYgdmhvc3Rfc2V0dXBfbmV0KGMpIDwgMCAmJg0KKwkg ICAgYy0+dmhvc3QubW9kZSA9PSBWSE9TVF9NT0RFX09OKQ0KKwkJZGllKCJ2aG9zdC1uZXQgaXMg bm90IGF2YWlsYWJsZSIpOw0KKw0KKwlpZiAoYy0+dmhvc3QuZmQgIT0gLTEpIHsNCisJCWZvciAo aSA9IDA7IGkgPCBBUlJBWV9TSVpFKGMtPnZob3N0LnZxKTsgaSsrKQ0KKwkJCXZob3N0X3NldHVw X2V2ZW50ZmRzKGMsIGkpOw0KKw0KKwkJaWYgKHZob3N0X3NldHVwX21lbW9yeV90YWJsZShjKSA8 IDApDQorCQkJZGllX3BlcnJvcigiVkhPU1RfU0VUX01FTV9UQUJMRSBpb2N0bCBmYWlsZWQiKTsN CisNCisJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGMtPnZob3N0LnZxKTsgaSsrKQ0KKwkJ CXZob3N0X3NldF92cmluZyhjLCBpLCBjLT5mZF90YXApOw0KKwl9DQorDQogCXBhc3RhX25zX2Nv bmYoYyk7DQoNCiAJaWYgKCFjLT5zcGxpY2Vfb25seSkNCmRpZmYgLS1naXQgYS90YXAuaCBiL3Rh cC5oDQppbmRleCBmOGMzMGUyLi4wZjFmN2EzIDEwMDY0NA0KLS0tIGEvdGFwLmgNCisrKyBiL3Rh cC5oDQpAQCAtNDgsNiArNDgsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdGFwX2hkcl91cGRhdGUo c3RydWN0IHRhcF9oZHIgKnRoZHIsIHNpemVfdCBsMmxlbikNCiAJdGhkci0+dm5ldF9sZW4gPSBo dG9ubChsMmxlbik7DQogfQ0KDQordm9pZCB0YXBfdmhvc3RfaW5wdXQoc3RydWN0IGN0eCAqYywg dW5pb24gZXBvbGxfcmVmIHJlZiwNCisJCSAgICAgY29uc3Qgc3RydWN0IHRpbWVzcGVjICpub3cp Ow0KIHVuc2lnbmVkIGxvbmcgdGFwX2wyX21heF9sZW4oY29uc3Qgc3RydWN0IGN0eCAqYyk7DQog dm9pZCAqdGFwX3B1c2hfbDJoKGNvbnN0IHN0cnVjdCBjdHggKmMsIHZvaWQgKmJ1ZiwNCiAJCSAg IGNvbnN0IHZvaWQgKnNyY19tYWMsIHVpbnQxNl90IHByb3RvKTsNCi0tDQoyLjM5LjUgKEFwcGxl IEdpdC0xNTQpDQoNCg0K