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 1thru2-007pWQ-As for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Feb 2025 15:10:23 +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 1thru0-00Bm6B-Ez for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Feb 2025 15:10:20 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1thrtz-00Bm63-TY for pgsql-hackers@lists.postgresql.org; Tue, 11 Feb 2025 15:10:20 +0000 Received: from mail-qk1-x735.google.com ([2607:f8b0:4864:20::735]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1thrty-000EJX-0M for pgsql-hackers@lists.postgresql.org; Tue, 11 Feb 2025 15:10:19 +0000 Received: by mail-qk1-x735.google.com with SMTP id af79cd13be357-7be8f281714so561874485a.1 for ; Tue, 11 Feb 2025 07:10:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739286617; x=1739891417; 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=aJtcSph7uNIVd7eUpH59kGYOf+usAoE3Zb64snj+PXM=; b=PSNs6bQ7QVwDDc6wRq/5TEUO2To6J3JGb7lBb3RuGclXA3aAf3tRlOUVnhQ+5Db7Mf bNRr4fVFleTVtuWQsQ/aIxgyeStkoIHrLXHBz+yzYxrHspZ7hCYvOklZahtNwIzLvdpt XAJTsRfY0UhD/5eP6rNR2t9mtIMewfRvJ9JP6fYKvw5g7AGbWfypkokhcr5Pi4rRO50U vRADkXHtlHYlYcXVXV6uZLlj+5aJ8X7u466R/y6rZMeQApPGai4V476vWZy3tNfsuH6t Qri7LfTtXXMNVb5DQ5nRr5z8Ea3tDzi4NVF5o2QxHeJKmfYRrC7OMpb1SsGqidd9iArq hxew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739286617; x=1739891417; 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=aJtcSph7uNIVd7eUpH59kGYOf+usAoE3Zb64snj+PXM=; b=oBnZ6qfqAD2yFUrMtrrXrRoM+7+BaoQAlJrq0mc42QeZSu7VAO2wAu+5Hb7CLcknaQ mWImX8A3WJMBys9FKyjxUmZMV6SuFcoe2U8vVngSIXJ0XU5e6JapH3HoQU1iJxaMWsdn 9/1BocaTIlhTDyGr3ymRpgVxwmd7ToM5zqBUm3a6P191WKGBXDqj5RApS/qPIzSsgLPd 602pumZI1t1amLA6E8qIAHQyaYKGTI04x3zuzPtEmLFlfUvlntuwu1l47kKVTOvsMw8Z mHqKM2WfODaTwZGwrORitcbe45u32fS9E6HFqRn5RiVR+7dWj7ljho7FNl/7cBeAuXhn bz3A== X-Forwarded-Encrypted: i=1; AJvYcCWupwOownN8xK4BUuVOrDwHwt6GKSWM9mmpk6IiQLZwrVB4bcpEkXKEK1LdJ115e6a8Zuh5R0Jp6jJCrs9o@lists.postgresql.org X-Gm-Message-State: AOJu0YzrkUrEM7J20DafK7kQ3iW+KjnDkoYuxkj9XT50Sq28JOHrCVcv hxCNapz8ISYIeQgUCnJE0FUhV6ahNWWSyDMnr+NeF5ENaScn8kMVmei3dQClOqf9jlmmpbJ95j2 ybCTJW+swhdqJpaZdNp/YUiye0YQ= X-Gm-Gg: ASbGncuTHofmSxkCR7EOaCsZa/GOEnhISkZpfBAjcM04OgWAVzGv1b2l4bkGvyKp3M/ 6Ii22zpdWTZBgsDovb1xweCyNX8aXLI1DJ6OKISzYz2qII63TpQGIOUwwKfY4/q1/WfNzGVJh X-Google-Smtp-Source: AGHT+IF67wkH2lxdx9pUl3qBxgSyeceTUZ3CXNT+k8R1DE0Qdi2WIzApIMgHi3zFtDuFw8FEbwKJ8E1EwaqgKEjQktQ= X-Received: by 2002:a05:620a:448e:b0:7be:8f2a:66a6 with SMTP id af79cd13be357-7c047c19be6mr2507451885a.20.1739286617137; Tue, 11 Feb 2025 07:10:17 -0800 (PST) MIME-Version: 1.0 References: <202501110844.5ztsym4vbflm@alvherre.pgsql> In-Reply-To: From: jian he Date: Tue, 11 Feb 2025 23:09:40 +0800 X-Gm-Features: AWEUYZmt7g6ZXJy_UrGkytrJm_D3CDXty4mEOw7wgYriJqcZ-BhYYYiTMXwI09Y 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="000000000000faa6ec062ddf383e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000faa6ec062ddf383e Content-Type: text/plain; charset="UTF-8" hi. review based on v16. because of https://postgr.es/m/CAFC+b6pWQiSL+3rvLxN9vhC8aONp4OV9c6u+BVD6kmWmDbd1WQ@mail.gmail.com in copy_global_file_to_out_file, now it is: if (strcmp(outfile, "-") == 0) OPF = stdout; I am confused, why "-" means stdout. ``touch ./- `` command works fine. i think dash is not special character, you may see https://stackoverflow.com/a/40650391/15603477 + /* Create a subdirectory with 'databases' name under main directory. */ + if (mkdir(db_subdir, 0755) != 0) + pg_log_error("could not create subdirectory \"%s\": %m", db_subdir); here we should use pg_fatal? pg_log_info("executing %s", sqlstatement.data); change to pg_log_info("executing query: %s", sqlstatement.data); message would be more similar to the next pg_log_error(...) message. + /* + * User is suggested to use single database dump for --list option. + */ + if (opts->tocSummary) + pg_fatal("option -l/--list cannot be used when using dump of pg_dumpall"); maybe change to + pg_fatal("option -l/--list cannot be used when restoring multiple databases"); $BIN10/pg_restore --format=directory --list dir10_x if the directory only has one database, then we can actually print out the tocSummary. if the directory has more than one database then pg_fatal. To tolerate this corner case (only one database) means that pg_restore --list requires a DB connection, but I am not sure that is fine. anyway, the attached patch allows this corner case. PrintTOCSummary can only print out summary for a single database. so we don't need to change PrintTOCSummary. + /* + * To restore multiple databases, -C (create database) option should be specified + * or all databases should be created before pg_restore. + */ + if (opts->createDB != 1) + pg_log_info("restoring dump of pg_dumpall without -C option, there might be multiple databases in directory."); we can change it to + if (opts->createDB != 1 && num_db_restore > 0) + pg_log_info("restoring multiple databases without -C option."); Bug. when pg_restore --globals-only can be applied when we are restoring a single database (can be an output of pg_dump). There are some tests per https://commitfest.postgresql.org/52/5495, I will check it later. The attached patch is the change for the above reviews. --000000000000faa6ec062ddf383e Content-Type: application/octet-stream; name="v16_misc_changes.nocfbot" Content-Disposition: attachment; filename="v16_misc_changes.nocfbot" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m70mb8wa0 ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaCBiL3NyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXAuaAppbmRleCA3MjlmZmM5ZTEyLi4xZTAwZmVkYWNkIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1 cC5oCkBAIC0zMTksNyArMzE5LDcgQEAgZXh0ZXJuIEFyY2hpdmUgKkNyZWF0ZUFyY2hpdmUoY29u c3QgY2hhciAqRmlsZVNwZWMsIGNvbnN0IEFyY2hpdmVGb3JtYXQgZm10LAogCQkJCQkJCSAgRGF0 YURpclN5bmNNZXRob2Qgc3luY19tZXRob2QpOwogCiAvKiBUaGUgLS1saXN0IG9wdGlvbiAqLwot ZXh0ZXJuIHZvaWQgUHJpbnRUT0NTdW1tYXJ5KEFyY2hpdmUgKkFIWCwgYm9vbCBhcHBlbmRfZGF0 YSk7CitleHRlcm4gdm9pZCBQcmludFRPQ1N1bW1hcnkoQXJjaGl2ZSAqQUhYKTsKIAogZXh0ZXJu IFJlc3RvcmVPcHRpb25zICpOZXdSZXN0b3JlT3B0aW9ucyh2b2lkKTsKIApkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cF9hcmNoaXZlci5jCmluZGV4IDMyZDY0NTcyOGEuLjE0NGQ5N2QwZjQgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysgYi9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKQEAgLTEyNzUsNyArMTI3NSw3IEBAIEFyY2hpdmVF bnRyeShBcmNoaXZlICpBSFgsIENhdGFsb2dJZCBjYXRhbG9nSWQsIER1bXBJZCBkdW1wSWQsCiAK IC8qIFB1YmxpYyAqLwogdm9pZAotUHJpbnRUT0NTdW1tYXJ5KEFyY2hpdmUgKkFIWCwgYm9vbCBh cHBlbmRfZGF0YSkKK1ByaW50VE9DU3VtbWFyeShBcmNoaXZlICpBSFgpCiB7CiAJQXJjaGl2ZUhh bmRsZSAqQUggPSAoQXJjaGl2ZUhhbmRsZSAqKSBBSFg7CiAJUmVzdG9yZU9wdGlvbnMgKnJvcHQg PSBBSC0+cHVibGljLnJvcHQ7CkBAIC0xMjkxLDcgKzEyOTEsNyBAQCBQcmludFRPQ1N1bW1hcnko QXJjaGl2ZSAqQUhYLCBib29sIGFwcGVuZF9kYXRhKQogCiAJc2F2ID0gU2F2ZU91dHB1dChBSCk7 CiAJaWYgKHJvcHQtPmZpbGVuYW1lKQotCQlTZXRPdXRwdXQoQUgsIHJvcHQtPmZpbGVuYW1lLCBv dXRfY29tcHJlc3Npb25fc3BlYywgYXBwZW5kX2RhdGEpOworCQlTZXRPdXRwdXQoQUgsIHJvcHQt PmZpbGVuYW1lLCBvdXRfY29tcHJlc3Npb25fc3BlYywgZmFsc2UpOwogCiAJaWYgKHN0cmZ0aW1l KHN0YW1wX3N0ciwgc2l6ZW9mKHN0YW1wX3N0ciksIFBHRFVNUF9TVFJGVElNRV9GTVQsCiAJCQkJ IGxvY2FsdGltZSgmQUgtPmNyZWF0ZURhdGUpKSA9PSAwKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXBhbGwuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMKaW5kZXgg MGI2ZTk3NDM4MC4uYjc1ZTRmNTZmMyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXBhbGwuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcGFsbC5jCkBAIC0xNTY3LDcgKzE1 NjcsNyBAQCBkdW1wRGF0YWJhc2VzKFBHY29ubiAqY29ubiwgQXJjaGl2ZUZvcm1hdCBhcmNoRHVt cEZvcm1hdCkKIAogCQkvKiBDcmVhdGUgYSBzdWJkaXJlY3Rvcnkgd2l0aCAnZGF0YWJhc2VzJyBu YW1lIHVuZGVyIG1haW4gZGlyZWN0b3J5LiAqLwogCQlpZiAobWtkaXIoZGJfc3ViZGlyLCAwNzU1 KSAhPSAwKQotCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgY3JlYXRlIHN1YmRpcmVjdG9yeSBc IiVzXCI6ICVtIiwgZGJfc3ViZGlyKTsKKwkJCXBnX2ZhdGFsKCJjb3VsZCBub3QgY3JlYXRlIHN1 YmRpcmVjdG9yeSBcIiVzXCI6ICVtIiwgZGJfc3ViZGlyKTsKIAogCQlzbnByaW50ZihtYXBfZmls ZV9wYXRoLCBNQVhQR1BBVEgsICIlcy9tYXAuZGF0IiwgZmlsZW5hbWUpOwogCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3Rv cmUuYwppbmRleCBhZjdkODE1YTc3Li42ZGQ4MmYwOGY2IDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfcmVzdG9yZS5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKQEAg LTEyMSw3ICsxMjEsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAlzdGF0aWMgaW50 CXN0cmljdF9uYW1lcyA9IDA7CiAJYm9vbAkJZGF0YV9vbmx5ID0gZmFsc2U7CiAJYm9vbAkJc2No ZW1hX29ubHkgPSBmYWxzZTsKLQlib29sCQkJCWdsb2JhbHNfb25seSA9IGZhbHNlOworCWJvb2wJ CWdsb2JhbHNfb25seSA9IGZhbHNlOwogCVNpbXBsZVN0cmluZ0xpc3QJZGJfZXhjbHVkZV9wYXR0 ZXJucyA9IHtOVUxMLCBOVUxMfTsKIAogCXN0cnVjdCBvcHRpb24gY21kb3B0c1tdID0gewpAQCAt MzkxLDYgKzM5MSwxMyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJZXhpdF9uaWNl bHkoMSk7CiAJfQogCisJaWYgKG9wdHMtPnRvY1N1bW1hcnkgJiYgZ2xvYmFsc19vbmx5KQorCXsK KwkJcGdfbG9nX2Vycm9yKCJvcHRpb24gLWwvLS1saXN0IGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVy IHdpdGggLWcvLS1nbG9iYWxzLW9ubHkiKTsKKwkJcGdfbG9nX2Vycm9yX2hpbnQoIlRyeSBcIiVz IC0taGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9uLiIsIHByb2duYW1lKTsKKwkJZXhpdF9uaWNl bHkoMSk7CisJfQorCiAJLyogU2hvdWxkIGdldCBhdCBtb3N0IG9uZSBvZiAtZCBhbmQgLWYsIGVs c2UgdXNlciBpcyBjb25mdXNlZCAqLwogCWlmIChvcHRzLT5jcGFyYW1zLmRibmFtZSkKIAl7CkBA IC00ODEsMTIgKzQ4OCw2IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJUEdjb25u ICAqY29ubiA9IE5VTEw7IC8qIENvbm5lY3Rpb24gdG8gcmVzdG9yZSBnbG9iYWwgc3FsIGNvbW1h bmRzLiAqLwogCQkJaW50ICAgICBleGl0X2NvZGUgPSAwOwogCi0JCQkvKgotCQkJICogVXNlciBp cyBzdWdnZXN0ZWQgdG8gdXNlIHNpbmdsZSBkYXRhYmFzZSBkdW1wIGZvciAtLWxpc3Qgb3B0aW9u LgotCQkJICovCi0JCQlpZiAob3B0cy0+dG9jU3VtbWFyeSkKLQkJCQlwZ19mYXRhbCgib3B0aW9u IC1sLy0tbGlzdCBjYW5ub3QgYmUgdXNlZCB3aGVuIHVzaW5nIGR1bXAgb2YgcGdfZHVtcGFsbCIp OwotCiAJCQkvKgogCQkJICogQ29ubmVjdCB0byBkYXRhYmFzZSB0byBleGVjdXRlIGdsb2JhbCBz cWwgY29tbWFuZHMgZnJvbQogCQkJICogZ2xvYmFsLmRhdCBmaWxlLgpAQCAtNTMxLDYgKzUzMiw5 IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl9CiAJfQogCisJaWYoaW5wdXRGaWxl U3BlYyAhPSBOVUxMICYmIGdsb2JhbHNfb25seSkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBzcGVj aWZ5IC0tZ2xvYmFscy1vbmx5IHdoZW4gcmVzdG9yaW5nIGEgc2luZ2xlIGRhdGFiYXNlIik7CisK IAlyZXR1cm4gcmVzdG9yZU9uZURhdGFiYXNlKGlucHV0RmlsZVNwZWMsIG9wdHMsIG51bVdvcmtl cnMsIGZhbHNlLCBOVUxMKTsKIH0KIC8qCkBAIC01NzEsNyArNTc1LDcgQEAgcmVzdG9yZU9uZURh dGFiYXNlKGNvbnN0IGNoYXIgKmlucHV0RmlsZVNwZWMsIFJlc3RvcmVPcHRpb25zICpvcHRzLAog CUFILT5udW1Xb3JrZXJzID0gbnVtV29ya2VyczsKIAogCWlmIChvcHRzLT50b2NTdW1tYXJ5KQot CQlQcmludFRPQ1N1bW1hcnkoQUgsIGFwcGVuZF9kYXRhKTsKKwkJUHJpbnRUT0NTdW1tYXJ5KEFI KTsKIAllbHNlCiAJewogCQlQcm9jZXNzQXJjaGl2ZVJlc3RvcmVPcHRpb25zKEFIKTsKQEAgLTEw OTAsOCArMTA5NCwxMSBAQCByZXN0b3JlQWxsRGF0YWJhc2VzKFBHY29ubiAqY29ubiwgY29uc3Qg Y2hhciAqZHVtcGRpcnBhdGgsCiAJICogVG8gcmVzdG9yZSBtdWx0aXBsZSBkYXRhYmFzZXMsIC1D IChjcmVhdGUgZGF0YWJhc2UpIG9wdGlvbiBzaG91bGQgYmUgc3BlY2lmaWVkCiAJICogb3IgYWxs IGRhdGFiYXNlcyBzaG91bGQgYmUgY3JlYXRlZCBiZWZvcmUgcGdfcmVzdG9yZS4KIAkgKi8KLQlp ZiAob3B0cy0+Y3JlYXRlREIgIT0gMSkKLQkJcGdfbG9nX2luZm8oInJlc3RvcmluZyBkdW1wIG9m IHBnX2R1bXBhbGwgd2l0aG91dCAtQyBvcHRpb24sIHRoZXJlIG1pZ2h0IGJlIG11bHRpcGxlIGRh dGFiYXNlcyBpbiBkaXJlY3RvcnkuIik7CisJaWYgKG9wdHMtPmNyZWF0ZURCICE9IDEgJiYgbnVt X2RiX3Jlc3RvcmUgPiAxKQorCQlwZ19sb2dfaW5mbygicmVzdG9yaW5nIG11bHRpcGxlIGRhdGFi YXNlcyB3aXRob3V0IC1DIG9wdGlvbi4iKTsKKworCWlmIChvcHRzLT50b2NTdW1tYXJ5ICYmIG51 bV9kYl9yZXN0b3JlID4gMSkKKwkJcGdfZmF0YWwoIm9wdGlvbiAtbC8tLWxpc3QgY2Fubm90IGJl IHVzZWQgd2hlbiByZXN0b3JpbmcgbXVsdGlwbGUgZGF0YWJhc2VzIik7CiAKIAkvKiBUT0RPOiBN QVhfT05fRVhJVF9OSUNFTFkgaXMgMTAwIG5vdy4uLiBtYXggQUggaGFuZGxlIHJlZ2lzdGVyIG9u IGV4aXQgLiovCiAJaWYgKG51bV9kYl9yZXN0b3JlID4gTUFYX09OX0VYSVRfTklDRUxZKQpAQCAt MTEwMyw3ICsxMTEwLDggQEAgcmVzdG9yZUFsbERhdGFiYXNlcyhQR2Nvbm4gKmNvbm4sIGNvbnN0 IGNoYXIgKmR1bXBkaXJwYXRoLAogCX0KIAogCS8qIE9wZW4gZ2xvYmFsLmRhdCBmaWxlIGFuZCBl eGVjdXRlL2FwcGVuZCBhbGwgdGhlIGdsb2JhbCBzcWwgY29tbWFuZHMuICovCi0JcHJvY2Vzc19n bG9iYWxfc3FsX2NvbW1hbmRzKGNvbm4sIGR1bXBkaXJwYXRoLCBvcHRzLT5maWxlbmFtZSk7CisJ aWYgKCFvcHRzLT50b2NTdW1tYXJ5KQorCQlwcm9jZXNzX2dsb2JhbF9zcWxfY29tbWFuZHMoY29u biwgZHVtcGRpcnBhdGgsIG9wdHMtPmZpbGVuYW1lKTsKIAogCS8qIENsb3NlIHRoZSBkYiBjb25u ZWN0aW9uIGFzIHdlIGFyZSBkb25lIHdpdGggZ2xvYmFscyBhbmQgcGF0dGVybnMuICovCiAJaWYg KGNvbm4pCkBAIC0xMjIzLDggKzEyMzEsNyBAQCBwcm9jZXNzX2dsb2JhbF9zcWxfY29tbWFuZHMo UEdjb25uICpjb25uLCBjb25zdCBjaGFyICpkdW1wZGlycGF0aCwgY29uc3QgY2hhciAqbwogLyoK ICAqIGNvcHlfZ2xvYmFsX2ZpbGVfdG9fb3V0X2ZpbGUKICAqCi0gKiBUaGlzIHdpbGwgY29weSBn bG9iYWwuZGF0IGZpbGUgaW50byBvdXQgZmlsZS4gIElmICItIiBpcyB1c2VkIGFzIG91dGZpbGUs Ci0gKiB0aGVuIHByaW50IGNvbW1hbmRzIHRvIHRoZSBzdGRvdXQuCisgKiBUaGlzIHdpbGwgY29w eSBnbG9iYWwuZGF0IGZpbGUgaW50byBvdXRmaWxlLgogICovCiBzdGF0aWMgdm9pZAogY29weV9n bG9iYWxfZmlsZV90b19vdXRfZmlsZShjb25zdCBjaGFyICpvdXRmaWxlLCBGSUxFICpwZmlsZSkK QEAgLTEyMzMsMTkgKzEyNDAsMTMgQEAgY29weV9nbG9iYWxfZmlsZV90b19vdXRfZmlsZShjb25z dCBjaGFyICpvdXRmaWxlLCBGSUxFICpwZmlsZSkKIAlGSUxFCSpPUEY7CiAJaW50CQljOwogCi0J LyogIi0iIGlzIHVzZWQgZm9yIHN0ZG91dC4gKi8KLQlpZiAoc3RyY21wKG91dGZpbGUsICItIikg PT0gMCkKLQkJT1BGID0gc3Rkb3V0OwotCWVsc2UKLQl7Ci0JCXNucHJpbnRmKG91dF9maWxlX3Bh dGgsIE1BWFBHUEFUSCwgIiVzIiwgb3V0ZmlsZSk7Ci0JCU9QRiA9IGZvcGVuKG91dF9maWxlX3Bh dGgsIFBHX0JJTkFSWV9XKTsKKwlzbnByaW50ZihvdXRfZmlsZV9wYXRoLCBNQVhQR1BBVEgsICIl cyIsIG91dGZpbGUpOworCU9QRiA9IGZvcGVuKG91dF9maWxlX3BhdGgsIFBHX0JJTkFSWV9XKTsK IAotCQlpZiAoT1BGID09IE5VTEwpCi0JCXsKLQkJCWZjbG9zZShwZmlsZSk7Ci0JCQlwZ19mYXRh bCgiY291bGQgbm90IG9wZW4gZmlsZTogXCIlc1wiIiwgb3V0ZmlsZSk7Ci0JCX0KKwlpZiAoT1BG ID09IE5VTEwpCisJeworCQlmY2xvc2UocGZpbGUpOworCQlwZ19mYXRhbCgiY291bGQgbm90IG9w ZW4gZmlsZTogXCIlc1wiIiwgb3V0ZmlsZSk7CiAJfQogCiAJLyogTm93IGFwcGVuZCBnbG9iYWwu ZGF0IGludG8gb3V0IGZpbGUuICovCkBAIC0xMjUzLDEwICsxMjU0LDcgQEAgY29weV9nbG9iYWxf ZmlsZV90b19vdXRfZmlsZShjb25zdCBjaGFyICpvdXRmaWxlLCBGSUxFICpwZmlsZSkKIAkJZnB1 dGMoYywgT1BGKTsKIAogCWZjbG9zZShwZmlsZSk7Ci0KLQkvKiBDbG9zZSBvdXQgZmlsZS4gKi8K LQlpZiAoc3RyY21wKG91dGZpbGUsICItIikgIT0gMCkKLQkJZmNsb3NlKE9QRik7CisJZmNsb3Nl KE9QRik7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDFfYmFzaWMu cGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDFfYmFzaWMucGwKaW5kZXggZGU0MWVjMDZkOC4uOGJi OWVkYzViNSAxMDA3NTUKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAxX2Jhc2ljLnBsCisrKyBi L3NyYy9iaW4vcGdfZHVtcC90LzAwMV9iYXNpYy5wbApAQCAtMjI0LDYgKzIyNCwxMSBAQCBjb21t YW5kX2ZhaWxzX2xpa2UoCiAJcXIvXFFwZ19yZXN0b3JlOiBlcnJvcjogb3B0aW9uIC0tZXhjbHVk ZS1kYXRhYmFzZSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciB3aXRoIC1nXC8tLWdsb2JhbHMtb25s eVxFLywKIAkncGdfcmVzdG9yZTogb3B0aW9uIC0tZXhjbHVkZS1kYXRhYmFzZSBjYW5ub3QgYmUg dXNlZCB0b2dldGhlciB3aXRoIC1nLy0tZ2xvYmFscy1vbmx5Jyk7CiAKK2NvbW1hbmRfZmFpbHNf bGlrZSgKKwlbICdwZ19yZXN0b3JlJywgJy0tbGlzdCcsICctLWdsb2JhbHMtb25seScsICctZCcs ICd4eHgnIF0sCisJcXIvXFFwZ19yZXN0b3JlOiBlcnJvcjogb3B0aW9uIC1sXC8tLWxpc3QgY2Fu bm90IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCAtZ1wvLS1nbG9iYWxzLW9ubHlcRS8sCisJJ3BnX3Jl c3RvcmU6IG9wdGlvbiAtbC8tLWxpc3QgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCAtZy8t LWdsb2JhbHMtb25seScpOworCiAjIGFsc28gZmFpbHMgZm9yIC1yIGFuZCAtdCwgYnV0IGl0IHNl ZW1zIHBvaW50bGVzcyB0byBhZGQgbW9yZSB0ZXN0cyBmb3IgdGhvc2UuCiBjb21tYW5kX2ZhaWxz X2xpa2UoCiAJWyAncGdfZHVtcGFsbCcsICctLWV4Y2x1ZGUtZGF0YWJhc2U9Zm9vJywgJy0tZ2xv YmFscy1vbmx5JyBdLAo= --000000000000faa6ec062ddf383e--