Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tdi5u-0093Kc-57 for pgsql-hackers@arkaria.postgresql.org; Fri, 31 Jan 2025 03:53:26 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tdi5s-00FFUb-Lw for pgsql-hackers@arkaria.postgresql.org; Fri, 31 Jan 2025 03:53:24 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tdi5s-00FFUT-Aj for pgsql-hackers@lists.postgresql.org; Fri, 31 Jan 2025 03:53:24 +0000 Received: from mail-vk1-xa34.google.com ([2607:f8b0:4864:20::a34]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tdi5p-002Rur-1l for pgsql-hackers@lists.postgresql.org; Fri, 31 Jan 2025 03:53:23 +0000 Received: by mail-vk1-xa34.google.com with SMTP id 71dfb90a1353d-51eb1a6954cso473430e0c.0 for ; Thu, 30 Jan 2025 19:53:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738295600; x=1738900400; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Jx5UyK8f7ZQt0Q9A/HwTIX/ICNpeWUooiPpWY1uzIm8=; b=B3z2kU4aRFQ42DhYkSCearAoUXIZVd0rcKVRIEYiHZAnUoMyzccUfPsQKutA5Fc6O2 i8bhr6Nkd47a8eXPkTHaH7trc5gYXTCfiBTvo7efDO6Dp4ACizTnxuyphQby+sCe6mMI h98LI5RkhhFYu8qryE2WNc3HUaLV4DntnEOqYgW8L+O1SNb4LZOhcwysdqcm037tuhYN yrxw6NN5wbYoePR6J67PM9gma2h3sza2q8RLEqLc0WohIzWTbc79Lscl+E8Wzt5kvmXb S1jGmVAd0iauy7FwaCY0l4L6+3HRaRPq5ZQMIqdX2+ILQE6yZT5kOEzT29799IH3RraP GVGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738295600; x=1738900400; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Jx5UyK8f7ZQt0Q9A/HwTIX/ICNpeWUooiPpWY1uzIm8=; b=eYPxU7QZRtsnwPE+ZNG7wL4k6hPTIbKW/ZbopzAjbHrPKMIQtu+Lqub2HnRbVFJ5Va SMpYncg9QsblA8ZkkwbSMlQFAod2FOd4thUXYl0HqCmgAYr/srGxSAqT66l5hlz5JE9w WLginA6YWreK/bjyi3CD0WnfKg+NRyxZrE1TiXOiZLEbjIIOD8zJkaZuDMvx1PUG+DO1 bCx5qajPPkR8/6gz2JW9hGYPGbsI7ZVMIaoNvYcTtsuhV+Va1g3elK6qP3EgtsRHkmz4 PsWEVZVwGNdaAk7MD/6QOydZ8HwfajmGMpirx/6GMPAm7YNL8KLlj4rhFoh6Bya71A2D 2JfA== X-Forwarded-Encrypted: i=1; AJvYcCX3OiVt+KfdKTiNa7DTlMaxRbEr07Y4K/O1tcejsD36PE3iFfHZPwmXr4sc2PO1lv5wiYswEppOLty8G+Ql@lists.postgresql.org X-Gm-Message-State: AOJu0YxHsmYt4fpqP1z78EKO/qTAYOXp2kSBmLfACA9xqWdxafHS2Jgk NUYKVkoLjIbUOr6LGdyodFA8LKk6l3hC2ee6RuxnpOfff0TqG7NEYvwlawZmLoCpUtIM7DzpgvK 8qesM21TxG5R29H8aMAjRDxummV78Rbrr6+FUhQ== X-Gm-Gg: ASbGnctLyerJn41otJO9T2Amlo6nDojfOKfnUpPnUnw4YGL8UBQ3KCKJKhXm8lexEwm Z4eVu0+wyI7ZLwJgFwIRUVQEkZBI+FSvSYJ4k2eBip/FwJkYqN58LjnQeDPqrelyxnmGSUpaY+/ NJA1Oqu7d6D/1/mX6Zx+tzltlS0XI= X-Google-Smtp-Source: AGHT+IEmmwZUmplhqS4M50swzOZaaXT7FejKGrbSjFISRmEzkn4h19eKvAfycvkq6pB/yHoQVwHQN5JjAXswvwfCJsE= X-Received: by 2002:a05:6122:318f:b0:514:eeba:517 with SMTP id 71dfb90a1353d-51e9e55022dmr8592369e0c.10.1738295599949; Thu, 30 Jan 2025 19:53:19 -0800 (PST) MIME-Version: 1.0 References: <202501110844.5ztsym4vbflm@alvherre.pgsql> In-Reply-To: From: jian he Date: Fri, 31 Jan 2025 11:52:42 +0800 X-Gm-Features: AWEUYZmtB_Qg4-aaCDlLyrzl8KSjYOAPKVFbwuFjUS1qKf8_Ep_yNk4fUiGq7qQ Message-ID: Subject: Re: Non-text mode for pg_dumpall To: Mahendra Singh Thalor Cc: Srinath Reddy , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000c01162062cf87b11" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000c01162062cf87b11 Content-Type: text/plain; charset="UTF-8" hi. -extern void RestoreArchive(Archive *AHX); +extern void RestoreArchive(Archive *AHX, bool append_data); Can we spare some words to explain the purpose of append_data. in get_dbname_oid_list_from_mfile pg_log_info("map.dat file is not present in dump of pg_dumpall, so nothing to restore."); maybe we can change it to pg_log_info("databases restoring is skipped as map.dat file is not present in \"%s\"", dumpdirpath); we can aslo add Assert(dumpdirpath != NULL) pg_log_info("found dbname as : \"%s\" and db_oid:%u in map.dat file while restoring", dbname, db_oid); also need to change. maybe pg_log_info("found database \"%s\" (OID: %u) in map.dat file while restoring.", dbname, db_oid); I also did some minor refactoring, please check attached. doc/src/sgml/ref/pg_restore.sgml pg_restore restore a PostgreSQL database from an archive file created by pg_dump need to change, since now we can restore multiple databases. doc/src/sgml/ref/pg_dumpall.sgml pg_dumpall extract a PostgreSQL database cluster into a script file also need change. --000000000000c01162062cf87b11 Content-Type: application/octet-stream; name="v13-0001-minor-coesmetic-change-based-on-v13.no-cfbot" Content-Disposition: attachment; filename="v13-0001-minor-coesmetic-change-based-on-v13.no-cfbot" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6k8a35a0 RnJvbSBjYWU5NWExZGI0Y2FmMzVlNjg2OTczODNhYjA0MTZkYzg2MTczYzM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMzEgSmFuIDIwMjUgMTE6NTE6MzAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MyAxLzFdIG1pbm9yIGNvZXNtZXRpYyBjaGFuZ2UgYmFzZWQgb24gdjEzCgotLS0KIGRvYy9zcmMv c2dtbC9yZWYvcGdfZHVtcGFsbC5zZ21sICAgICAgICAgfCAgMiArLQogc3JjL2Jpbi9wZ19kdW1w L2NvbW1vbl9kdW1wYWxsX3Jlc3RvcmUuaCB8ICAyICsrCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFj a3VwX3V0aWxzLmMgICAgICAgIHwgIDQgKy0tCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcGFsbC5j ICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMgICAgICAg ICAgICAgfCA0NiArKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgMzIg aW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9wZ19kdW1wYWxsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXBhbGwuc2dtbApp bmRleCA0Mjk4MDgzNzNiLi41MDhkNWFjNTdhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L3BnX2R1bXBhbGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXBhbGwuc2dtbApA QCAtMTI2LDcgKzEyNiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogICAgICAgPC9saXN0 aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKLTx2YXJsaXN0ZW50cnk+CisgICAgIDx2YXJs aXN0ZW50cnk+CiAgICAgICA8dGVybT48b3B0aW9uPi1GIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5mb3JtYXQ8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KICAgICAgIDx0ZXJt PjxvcHRpb24+LS1mb3JtYXQ9PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZvcm1hdDwv cmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgogICAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbl9kdW1wYWxsX3Jlc3RvcmUuaCBiL3NyYy9iaW4vcGdf ZHVtcC9jb21tb25fZHVtcGFsbF9yZXN0b3JlLmgKaW5kZXggN2ZlMWMwMGFiNy4uYTBkY2RiZTA4 MCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbl9kdW1wYWxsX3Jlc3RvcmUuaAor KysgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uX2R1bXBhbGxfcmVzdG9yZS5oCkBAIC0xNiw2ICsx Niw4IEBACiAKICNpbmNsdWRlICJwZ19iYWNrdXAuaCIKIAorLyogVE9ETzogaW5jcmVhc2luZyB0 aGlzIHRvIGtlZXAgMTAwIGRiIHJlc3RvcmluZyBieSBzaW5nbGUgcGdfcmVzdG9yZSBjb21tYW5k LiAqLworI2RlZmluZSBNQVhfT05fRVhJVF9OSUNFTFkJCQkJMTAwCiBleHRlcm4gUEdjb25uICpj b25uZWN0RGF0YWJhc2UoY29uc3QgY2hhciAqZGJuYW1lLCBjb25zdCBjaGFyICpjb25uZWN0aW9u X3N0cmluZywgY29uc3QgY2hhciAqcGdob3N0LAogCQkJCQkJCSAgIGNvbnN0IGNoYXIgKnBncG9y dCwgY29uc3QgY2hhciAqcGd1c2VyLAogCQkJCQkJCSAgIHRyaXZhbHVlIHByb21wdF9wYXNzd29y ZCwgYm9vbCBmYWlsX29uX2Vycm9yLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2Jh Y2t1cF91dGlscy5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF91dGlscy5jCmluZGV4IGY3 MGVhOTIzM2YuLjQ3NTg5Y2NhOTAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXBfdXRpbHMuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX3V0aWxzLmMKQEAgLTEz LDYgKzEzLDcgQEAKICAqLwogI2luY2x1ZGUgInBvc3RncmVzX2ZlLmgiCiAKKyNpbmNsdWRlICJj b21tb25fZHVtcGFsbF9yZXN0b3JlLmgiCiAjaWZkZWYgV0lOMzIKICNpbmNsdWRlICJwYXJhbGxl bC5oIgogI2VuZGlmCkBAIC0yMSw5ICsyMiw2IEBACiAvKiBHbG9iYWxzIGV4cG9ydGVkIGJ5IHRo aXMgZmlsZSAqLwogY29uc3QgY2hhciAqcHJvZ25hbWUgPSBOVUxMOwogCi0vKiBUT0RPOiBpbmNy ZWFzaW5nIHRoaXMgdG8ga2VlcCAxMDAgZGIgcmVzdG9yaW5nIGJ5IHNpbmdsZSBwZ19yZXN0b3Jl IGNvbW1hbmQuICovCi0jZGVmaW5lIE1BWF9PTl9FWElUX05JQ0VMWQkJCQkxMDAKLQogc3RhdGlj IHN0cnVjdAogewogCW9uX2V4aXRfbmljZWx5X2NhbGxiYWNrIGZ1bmN0aW9uOwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w YWxsLmMKaW5kZXggM2UwMjJlY2RlYi4uMDliNjFkYWIwMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXBhbGwuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcGFsbC5jCkBA IC02NzQsNyArNjc0LDcgQEAgaGVscCh2b2lkKQogCXByaW50ZihfKCJcbkdlbmVyYWwgb3B0aW9u czpcbiIpKTsKIAlwcmludGYoXygiICAtZiwgLS1maWxlPUZJTEVOQU1FICAgICAgICAgIG91dHB1 dCBmaWxlIG5hbWVcbiIpKTsKIAlwcmludGYoXygiICAtRiwgLS1mb3JtYXQ9Y3xkfHR8cCAgICAg ICAgIG91dHB1dCBmaWxlIGZvcm1hdCAoY3VzdG9tLCBkaXJlY3RvcnksIHRhcixcbiIKLQkJCSAi ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpbiB0ZXh0IChkZWZhdWx0KSlcbiIp KTsKKwkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluIHRleHQgKGRlZmF1 bHQpKVxuIikpOwogCXByaW50ZihfKCIgIC12LCAtLXZlcmJvc2UgICAgICAgICAgICAgICAgdmVy Ym9zZSBtb2RlXG4iKSk7CiAJcHJpbnRmKF8oIiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAg ICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvbiwgdGhlbiBleGl0XG4iKSk7CiAJcHJpbnRmKF8o IiAgLS1sb2NrLXdhaXQtdGltZW91dD1USU1FT1VUICBmYWlsIGFmdGVyIHdhaXRpbmcgVElNRU9V VCBmb3IgYSB0YWJsZSBsb2NrXG4iKSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdf cmVzdG9yZS5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYwppbmRleCBmYzI0OGE0NDFl Li4xMGQxNTUzZTQ4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCisr KyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKQEAgLTc3LDE1ICs3NywxNiBAQCBzaW1w bGVfZGJfb2lkX2xpc3RfYXBwZW5kKFNpbXBsZURhdGFiYXNlT2lkTGlzdCAqbGlzdCwgT2lkIGRi X29pZCwgY29uc3QgY2hhciAqZAogc3RhdGljIHZvaWQgdXNhZ2UoY29uc3QgY2hhciAqcHJvZ25h bWUpOwogc3RhdGljIHZvaWQgcmVhZF9yZXN0b3JlX2ZpbHRlcnMoY29uc3QgY2hhciAqZmlsZW5h bWUsIFJlc3RvcmVPcHRpb25zICpvcHRzKTsKIHN0YXRpYyBib29sIElzRmlsZUV4aXN0c0luRGly ZWN0b3J5KGNvbnN0IGNoYXIgKmRpciwgY29uc3QgY2hhciAqZmlsZW5hbWUpOwotc3RhdGljIGlu dCByZXN0b3JlT25lRGF0YWJhc2UoY29uc3QgY2hhciAqaW5wdXRGaWxlU3BlYywKLQkJUmVzdG9y ZU9wdGlvbnMgKm9wdHMsIGludCBudW1Xb3JrZXJzLCBib29sIGFwcGVuZF9kYXRhKTsKK3N0YXRp YyBpbnQgcmVzdG9yZU9uZURhdGFiYXNlKGNvbnN0IGNoYXIgKmlucHV0RmlsZVNwZWMsIFJlc3Rv cmVPcHRpb25zICpvcHRzLAorCQkJCQkJCSAgaW50IG51bVdvcmtlcnMsIGJvb2wgYXBwZW5kX2Rh dGEpOwogc3RhdGljIGludCBSZWFkT25lU3RhdGVtZW50KFN0cmluZ0luZm8gaW5CdWYsIEZJTEUg KnBmaWxlKTsKIHN0YXRpYyBpbnQgcmVzdG9yZUFsbERhdGFiYXNlcyhQR2Nvbm4gKmNvbm4sIGNv bnN0IGNoYXIgKmR1bXBkaXJwYXRoLAogCQkJCQkJCSAgIFNpbXBsZVN0cmluZ0xpc3QgZGJfZXhj bHVkZV9wYXR0ZXJucywgUmVzdG9yZU9wdGlvbnMgKm9wdHMsIGludCBudW1Xb3JrZXJzKTsKIHN0 YXRpYyB2b2lkIGV4ZWN1dGVfZ2xvYmFsX3NxbF9jb21tYW5kcyhQR2Nvbm4gKmNvbm4sIGNvbnN0 IGNoYXIgKmR1bXBkaXJwYXRoLAogCQkJCQkJCQkJCWNvbnN0IGNoYXIgKm91dGZpbGUpOwogc3Rh dGljIGludCBmaWx0ZXJfZGJuYW1lc19mb3JfcmVzdG9yZShQR2Nvbm4gKmNvbm4sCi0JCVNpbXBs ZURhdGFiYXNlT2lkTGlzdCAqZGJuYW1lX29pZF9saXN0LCBTaW1wbGVTdHJpbmdMaXN0IGRiX2V4 Y2x1ZGVfcGF0dGVybnMpOworCQkJCQkJCQkJICBTaW1wbGVEYXRhYmFzZU9pZExpc3QgKmRibmFt ZV9vaWRfbGlzdCwKKwkJCQkJCQkJCSAgU2ltcGxlU3RyaW5nTGlzdCBkYl9leGNsdWRlX3BhdHRl cm5zKTsKIHN0YXRpYyBpbnQgZ2V0X2RibmFtZV9vaWRfbGlzdF9mcm9tX21maWxlKGNvbnN0IGNo YXIgKmR1bXBkaXJwYXRoLAogCQkJCQkJCQkJCSAgU2ltcGxlRGF0YWJhc2VPaWRMaXN0ICpkYm5h bWVfb2lkX2xpc3QpOwogc3RhdGljIHZvaWQgc2ltcGxlX2RiX29pZF9saXN0X2FwcGVuZChTaW1w bGVEYXRhYmFzZU9pZExpc3QgKmxpc3QsIE9pZCBkYl9vaWQsCkBAIC01MTAsNyArNTExLDkgQEAg bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQl7CiAJCQkJLyogTm93IHJlc3RvcmUgYWxs IHRoZSBkYXRhYmFzZXMgZnJvbSBtYXAuZGF0IGZpbGUuICovCiAJCQkJZXhpdF9jb2RlID0gcmVz dG9yZUFsbERhdGFiYXNlcyhjb25uLCBpbnB1dEZpbGVTcGVjLAotCQkJCQkJZGJfZXhjbHVkZV9w YXR0ZXJucywgb3B0cywgbnVtV29ya2Vycyk7CisJCQkJCQkJCQkJCQlkYl9leGNsdWRlX3BhdHRl cm5zLAorCQkJCQkJCQkJCQkJb3B0cywKKwkJCQkJCQkJCQkJCW51bVdvcmtlcnMpOwogCQkJfQog CiAJCQkvKiBGcmVlIGRiIHBhdHRlcm4gbGlzdC4gKi8KQEAgLTgyMSw4ICs4MjQsOSBAQCBSZWFk T25lU3RhdGVtZW50KFN0cmluZ0luZm8gaW5CdWYsIEZJTEUgKnBmaWxlKQogICogcmV0dXJucyBu dW1iZXIgb2YgZGJuYW1lcyB0aG9zZSB3aWxsIGJlIHJlc3RvcmVkLgogICovCiBzdGF0aWMgaW50 Ci1maWx0ZXJfZGJuYW1lc19mb3JfcmVzdG9yZShQR2Nvbm4gKmNvbm4sIFNpbXBsZURhdGFiYXNl T2lkTGlzdCAqZGJuYW1lX29pZF9saXN0LAotCQlTaW1wbGVTdHJpbmdMaXN0IGRiX2V4Y2x1ZGVf cGF0dGVybnMpCitmaWx0ZXJfZGJuYW1lc19mb3JfcmVzdG9yZShQR2Nvbm4gKmNvbm4sCisJCQkJ CQkgICBTaW1wbGVEYXRhYmFzZU9pZExpc3QgKmRibmFtZV9vaWRfbGlzdCwKKwkJCQkJCSAgIFNp bXBsZVN0cmluZ0xpc3QgZGJfZXhjbHVkZV9wYXR0ZXJucykKIHsKIAlTaW1wbGVEYXRhYmFzZU9p ZExpc3RDZWxsCSpkYm9pZF9jZWxsID0gZGJuYW1lX29pZF9saXN0LT5oZWFkOwogCVNpbXBsZURh dGFiYXNlT2lkTGlzdENlbGwJKmRib2lkcHJlY2VsbCA9IE5VTEw7CkBAIC04MzMsNiArODM3LDcg QEAgZmlsdGVyX2RibmFtZXNfZm9yX3Jlc3RvcmUoUEdjb25uICpjb25uLCBTaW1wbGVEYXRhYmFz ZU9pZExpc3QgKmRibmFtZV9vaWRfbGlzdCwKIAkvKiBSZXR1cm4gMCBpZiB0aGVyZSBpcyBubyBk YiB0byByZXN0b3JlLiAqLwogCWlmIChkYm9pZF9jZWxsID09IE5VTEwpCiAJCXJldHVybiAwOwor CUFzc2VydChjb25uKTsKIAogCXF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKIApAQCAtODYw LDcgKzg2NSw3IEBAIGZpbHRlcl9kYm5hbWVzX2Zvcl9yZXN0b3JlKFBHY29ubiAqY29ubiwgU2lt cGxlRGF0YWJhc2VPaWRMaXN0ICpkYm5hbWVfb2lkX2xpc3QsCiAJCQkgKiBJZiB3ZSBkb24ndCBo YXZlIGRiIGNvbm5lY3Rpb24sIHRoZW4gY29uc2lkZXIgcGF0dGVybnMgYXMgTkFNRQogCQkJICog b25seS4KIAkJCSAqLwotCQkJaWYgKCFjb25uICYmIChwZ19zdHJjYXNlY21wKGRib2lkX2NlbGwt PmRiX25hbWUsIGNlbGxkYi0+dmFsKSA9PSAwKSkKKwkJCWlmIChwZ19zdHJjYXNlY21wKGRib2lk X2NlbGwtPmRiX25hbWUsIGNlbGxkYi0+dmFsKSA9PSAwKQogCQkJewogCQkJCS8qCiAJCQkJICog QXMgd2UgbmVlZCB0byBza2lwIHRoaXMgZGJuYW1lIHNvIHNldCBmbGFnIHRvIHJlbW92ZSBpdCBm cm9tCkBAIC04NzUsMTMgKzg4MCwxMyBAQCBmaWx0ZXJfZGJuYW1lc19mb3JfcmVzdG9yZShQR2Nv bm4gKmNvbm4sIFNpbXBsZURhdGFiYXNlT2lkTGlzdCAqZGJuYW1lX29pZF9saXN0LAogCiAJCQkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJTRUxFQ1QgMSAiKTsKIAkJCQlwcm9jZXNzU1FM TmFtZVBhdHRlcm4oY29ubiwgcXVlcnksIGNlbGxkYi0+dmFsLCBmYWxzZSwKLQkJCQkJCWZhbHNl LCBOVUxMLCBxdW90ZV9saXRlcmFsX2NzdHIoZGJvaWRfY2VsbC0+ZGJfbmFtZSksCi0JCQkJCQlO VUxMLCBOVUxMLCBOVUxMLCAmZG90Y250KTsKKwkJCQkJCQkJCSAgZmFsc2UsIE5VTEwsIHF1b3Rl X2xpdGVyYWxfY3N0cihkYm9pZF9jZWxsLT5kYl9uYW1lKSwKKwkJCQkJCQkJCSAgTlVMTCwgTlVM TCwgTlVMTCwgJmRvdGNudCk7CiAKIAkJCQlpZiAoZG90Y250ID4gMCkKIAkJCQl7CiAJCQkJCXBn X2xvZ19lcnJvcigiaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1l cyk6ICVzIiwKLQkJCQkJCQljZWxsZGItPnZhbCk7CisJCQkJCQkJCSAgY2VsbGRiLT52YWwpOwog CQkJCQlQUWZpbmlzaChjb25uKTsKIAkJCQkJZXhpdF9uaWNlbHkoMSk7CiAJCQkJfQpAQCAtODkx LDcgKzg5Niw3IEBAIGZpbHRlcl9kYm5hbWVzX2Zvcl9yZXN0b3JlKFBHY29ubiAqY29ubiwgU2lt cGxlRGF0YWJhc2VPaWRMaXN0ICpkYm5hbWVfb2lkX2xpc3QsCiAJCQkJaWYgKChQUXJlc3VsdFN0 YXR1cyhyZXMpID09IFBHUkVTX1RVUExFU19PSykgJiYgUFFudHVwbGVzKHJlcykpCiAJCQkJewog CQkJCQlza2lwX2RiX3Jlc3RvcmUgPSB0cnVlOwotCQkJCQlwZ19sb2dfaW5mbygiXCIlc1wiIGRh dGFiYXNlIGlzIG1hdGNoaW5nIHdpdGggZXhjbHVkZSBcIiVzXCIgcGF0dGVybiIsIGRib2lkX2Nl bGwtPmRiX25hbWUsIGNlbGxkYi0+dmFsKTsKKwkJCQkJcGdfbG9nX2luZm8oImRhdGFiYXNlIFwi JXNcIiBpcyBtYXRjaGluZyB3aXRoIGV4Y2x1ZGUgcGF0dGVybjogXCIlc1wiIiwgZGJvaWRfY2Vs bC0+ZGJfbmFtZSwgY2VsbGRiLT52YWwpOwogCQkJCX0KIAogCQkJCVBRY2xlYXIocmVzKTsKQEAg LTEwMDAsMTMgKzEwMDUsMTMgQEAgZ2V0X2RibmFtZV9vaWRfbGlzdF9mcm9tX21maWxlKGNvbnN0 IGNoYXIgKmR1bXBkaXJwYXRoLCBTaW1wbGVEYXRhYmFzZU9pZExpc3QgKmQKICAqLwogc3RhdGlj IGludAogcmVzdG9yZUFsbERhdGFiYXNlcyhQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKmR1bXBk aXJwYXRoLAotCQlTaW1wbGVTdHJpbmdMaXN0IGRiX2V4Y2x1ZGVfcGF0dGVybnMsIFJlc3RvcmVP cHRpb25zICpvcHRzLAotCQlpbnQgbnVtV29ya2VycykKKwkJCQkJU2ltcGxlU3RyaW5nTGlzdCBk Yl9leGNsdWRlX3BhdHRlcm5zLCBSZXN0b3JlT3B0aW9ucyAqb3B0cywKKwkJCQkJaW50IG51bVdv cmtlcnMpCiB7CiAJU2ltcGxlRGF0YWJhc2VPaWRMaXN0CQkJZGJuYW1lX29pZF9saXN0ID0ge05V TEwsIE5VTEx9OwogCVNpbXBsZURhdGFiYXNlT2lkTGlzdENlbGwJCSpkYm9pZF9jZWxsOwogCWlu dAkJCQkJCQkJZXhpdF9jb2RlID0gMDsKLQlpbnQJCQkJCQkJCW51bV9kYl9yZXN0b3JlOworCWlu dAkJCQkJCQkJbnVtX2RiX3Jlc3RvcmUgPSAwOwogCWludAkJCQkJCQkJbnVtX3RvdGFsX2RiOwog CiAJbnVtX3RvdGFsX2RiID0gZ2V0X2RibmFtZV9vaWRfbGlzdF9mcm9tX21maWxlKGR1bXBkaXJw YXRoLCAmZGJuYW1lX29pZF9saXN0KTsKQEAgLTEwNDIsOCArMTA0Nyw5IEBAIHJlc3RvcmVBbGxE YXRhYmFzZXMoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpkdW1wZGlycGF0aCwKIAkvKgogCSAq IHByb2Nlc3NpbmcgcGdfcmV0c29yZSAtLWV4Y2x1ZGUtZGF0YWJhc2U9UEFUVEVSTi4KIAkgKi8K LQludW1fZGJfcmVzdG9yZSA9IGZpbHRlcl9kYm5hbWVzX2Zvcl9yZXN0b3JlKGNvbm4sICZkYm5h bWVfb2lkX2xpc3QsCi0JCQlkYl9leGNsdWRlX3BhdHRlcm5zKTsKKwlpZiAoY29ubikKKwkJbnVt X2RiX3Jlc3RvcmUgPSBmaWx0ZXJfZGJuYW1lc19mb3JfcmVzdG9yZShjb25uLCAmZGJuYW1lX29p ZF9saXN0LAorCQkJCQkJCQkJCQkJCWRiX2V4Y2x1ZGVfcGF0dGVybnMpOwogCiAJLyogQ2xvc2Ug dGhlIGRiIGNvbm5lY3Rpb24gYXMgd2UgYXJlIGRvbmUgZ2xvYmFscyBhbmQgcGF0dGVybnMuICov CiAJaWYgKGNvbm4pCkBAIC0xMDYzLDEwICsxMDY5LDEyIEBAIHJlc3RvcmVBbGxEYXRhYmFzZXMo UEdjb25uICpjb25uLCBjb25zdCBjaGFyICpkdW1wZGlycGF0aCwKIAkJcGdfbG9nX2luZm8oInJl c3RvcmluZyBkdW1wIG9mIHBnX2R1bXBhbGwgd2l0aG91dCAtQyBvcHRpb24sIHRoZXJlIG1pZ2h0 IGJlIG11bHRpcGxlIGRhdGFiYXNlcyBpbiBkaXJlY3RvcnkuIik7CiAKIAkvKiBUT0RPOiBNQVhf T05fRVhJVF9OSUNFTFkgaXMgMTAwIG5vdy4uLiBtYXggQUggaGFuZGxlIHJlZ2lzdGVyIG9uIGV4 aXQgLiovCi0JaWYgKG51bV9kYl9yZXN0b3JlID4gMTAwKQorCWlmIChudW1fZGJfcmVzdG9yZSA+ IE1BWF9PTl9FWElUX05JQ0VMWSkKIAl7CiAJCXNpbXBsZV9kYl9vaWRfZnVsbF9saXN0X2RlbGV0 ZSgmZGJuYW1lX29pZF9saXN0KTsKLQkJcGdfZmF0YWwoImNvdW5kIG5vdCByZXN0b3JlIG1vcmUg dGhhbiAxMDAgZGF0YWJhc2VzIGJ5IHNpbmdsZSBwZ19yZXN0b3JlLCBoZXJlIHRvdGFsIGRiOiVk IiwgbnVtX2RiX3Jlc3RvcmUpOworCQlwZ19mYXRhbCgiY291bmQgbm90IHJlc3RvcmUgbW9yZSB0 aGFuICVkIGRhdGFiYXNlcyBieSBzaW5nbGUgcGdfcmVzdG9yZSwgaGVyZSB0b3RhbCBkYjolZCIs CisJCQkJICBNQVhfT05fRVhJVF9OSUNFTFksCisJCQkJICBudW1fZGJfcmVzdG9yZSk7CiAJfQog CiAJLyoKQEAgLTExMDIsNyArMTExMCw3IEBAIHJlc3RvcmVBbGxEYXRhYmFzZXMoUEdjb25uICpj b25uLCBjb25zdCBjaGFyICpkdW1wZGlycGF0aCwKIAkJCWV4aXRfY29kZSA9IGRiZXhpdF9jb2Rl OwogCiAJCWRib2lkX2NlbGwgPSBkYm9pZF9jZWxsLT5uZXh0OwotCX0gLyogZW5kIHdoaWxlICov CisJfQogCiAJLyogTG9nIG51bWJlciBvZiBwcm9jZXNzZWQgZGF0YWJhc2VzLiovCiAJcGdfbG9n X2luZm8oIm51bWJlciBvZiByZXN0b3JlZCBkYXRhYmFzZXMgYXJlICVkIiwgbnVtX2RiX3Jlc3Rv cmUpOwotLSAKMi4zNC4xCgo= --000000000000c01162062cf87b11--