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.96) (envelope-from ) id 1w2Tqo-000KKc-1E for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Mar 2026 12:48:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2Tqn-001Ihy-0k for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Mar 2026 12:48:45 +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.96) (envelope-from ) id 1w2Tqm-001Ihp-2n for pgsql-hackers@lists.postgresql.org; Tue, 17 Mar 2026 12:48:44 +0000 Received: from mail-oo1-xc34.google.com ([2607:f8b0:4864:20::c34]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w2Tqk-00000000bVB-0SA2 for pgsql-hackers@lists.postgresql.org; Tue, 17 Mar 2026 12:48:44 +0000 Received: by mail-oo1-xc34.google.com with SMTP id 006d021491bc7-673ee2a98b1so3040337eaf.0 for ; Tue, 17 Mar 2026 05:48:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773751719; cv=none; d=google.com; s=arc-20240605; b=Gm9kkG0Tu/MJZ2GnbBVNiGnlFjs35GvIeka4CV/8RiIgNlmLUI03AEiUGeMeAo0PHZ kQN8ZzVDij6cCus63zDGVy9ryviAwlTKHV8bhFSuialMk2Kf0UgTShTr5dxjFBSGzcDN AHf7lb66a6hgl0uGengAkFxunbinVz14yMuUky8C0qFsBCThoW/5tqjWJ0uX5PbMwoGd +t/Ytg3UVjaTyFavY57KnC7C6Y0ri0yJpKvmNEDrFtTLLE3cduNxrDafCCUAue29hhKr WNZ4qtoF/G0tXzi68NkG7BBaTjp1XJDYotzImcqT2ayslbrz8cSdpg/haHHj6kil0VDG SnQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=06cPx9wRz0OXVsO3lkSkl+Lc+IHxTPQyfB1AlKzZo6Q=; fh=GPL9XvMaGvpkPtxW5lrz5LnIMCpZNQrij3nCM9yrdKU=; b=K47ReISXgs1AA5hqTxvYLiqhPhGzVxIgkOVFKB7Y6qQlJ5G8OQPK7OSfajvLHqPtnE dGaRSKJWt8RpZj1Nq1OqtzXIl6HRetk+DEEqqFkwTCe+NxOo1cnTxWqwLQf2J4kL1TA/ TAED41U1gdy3TpVwMi/5D75aSMCRj/zNGq+8qh1O6aeiJnF5f+Vh7AOWe9UJEbw7j+mc Kg2lj93e0pyPuUawDwQVzK+0tQRYgtb1UkfahX/T7OoYSnIdFR3oG5Ool+MOhl968sJw w3ZHnbSr4RLWC3KxGJw24qEaNWTI/eyAFeLAuiwF74et0IYTkqiC9oa/jq9h6Uzfz+OQ S3lA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773751719; x=1774356519; 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=06cPx9wRz0OXVsO3lkSkl+Lc+IHxTPQyfB1AlKzZo6Q=; b=AIIsKfNPIKsPfcZj+RCujUJdRTFQOMGGJbSHwJ+wc3gt9/XjDFLspTq3flSaK6sxF2 21s32MCn3pJyso8cYhuDZT5SZlrNFHn69BQZk2rzcyJDQG2hshdHC87GBCw/2Q6hqBGZ f/n5N9uZmW7TrtsuZqDwBJL0IAUZqMpRbUgztjz70SqDJXVhDM8YPlwO1g11mJLUtyKs +AhJqB682t4/79N5D3CCvPyjf50FoE3V/JmFnR4KhUuzDRKuxBB844j4ch8RbEWHAFrr KXVCAQsAvjBwqrp/gJjOsBHEIcGyx6MycH7plKhp6tuWNpFIJ/S8c24o2JZZ10tXJKHI AQ6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773751719; x=1774356519; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=06cPx9wRz0OXVsO3lkSkl+Lc+IHxTPQyfB1AlKzZo6Q=; b=MMggSuKnFvl3Lh5X77byNN5jMNKD7MnyaeFcHq3a7R1BQMw+0hGKDp5mabBLdHS43G 5RDKR+wWGi0qEowNyAKI25ap9/d8GPmIVnKIYIms9iGCa8wTJlK/kOvLRqo7XckXZWDD rfjpzB5d9/Ox+aGlhBT3liSCOn+cTj5E7jgMXvKI2qn1jXNhMKZKxellxPYaXBNcRQCW ZcWinw9SIGYkLaH2nzwbOC/W1eDfiUhjHWbX9A+YqAxqDltvbMfxI6tDQfBA4WMyKUbx 93iSV0Tfe8JpV2FGXvHFLJzLeZvCheg9cm3YjNwEj9M/zxA83DmWzh2EMeghFUf1gDxW wP3g== X-Forwarded-Encrypted: i=1; AJvYcCVTWu9IGsheHpdRtpxGacisWScdwH2TYvc972sfJJj/RUTCHn4GvXgVMcJ59s+SSZkYmpryv05rLJA5+HbX@lists.postgresql.org X-Gm-Message-State: AOJu0Yz+RNrkp+YboQJ+EXvXX/14QMrfdsjE4SKA6bMCSQ8iNqCA0u2A lFqltIi8EQaFz+BuUS0hW/9IoP/cpTQZL4VJhs2llf0p3GLk+tv9wJfn1wIt/f9VFp1yzWLWaS+ 0f22fisvwXFIyrM/WkCjFnd34doTzy38= X-Gm-Gg: ATEYQzzn7E3gkLZ+q/sbUcG6C5oUUINuswuGIoix9cij1uCcTfmnLFZFFN/facXc/pM fZA26WSns2Y1A0N5W6i45R1wrKZjve+0LD+MHEdG2jPPwOoLeoG2hOGRa2EvXl0y++ttXcix4BX D551L4HmIp/+YtgcjuuEBTpIuw+KDy5BsSZBXVyz8KumgsJUh4rR/yBsYFjHZXguUEpXXuaiZI+ JLYAVVlE86wotU3Uf5JjLXW6+KNyoMWEKbJZ+DGnbrWyPdlOhbMpHI5xX34JzlREqRJQEe6cOP1 SEj6jOCxsw== X-Received: by 2002:a05:6820:16ac:b0:67b:b33c:48d7 with SMTP id 006d021491bc7-67bdaa8ef9fmr12926263eaf.65.1773751719501; Tue, 17 Mar 2026 05:48:39 -0700 (PDT) MIME-Version: 1.0 References: <48261e54-c4f1-4bde-a4a9-4f3698a6b380@app.fastmail.com> In-Reply-To: From: Shlok Kyal Date: Tue, 17 Mar 2026 18:18:27 +0530 X-Gm-Features: AaiRm50c6a_zprkzPzZ9AiT_cVMAJeuxkZFtPGMdYmt_dVTczHAggcfBtWa_ZQY Message-ID: Subject: Re: [Proposal] Adding Log File Capability to pg_createsubscriber To: Gyan Sreejith Cc: vignesh C , Amit Kapila , Euler Taveira , "kuroda.hayato@fujitsu.com" , "pgsql-hackers@lists.postgresql.org" , Peter Smith Content-Type: multipart/mixed; boundary="000000000000299981064d37c18f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000299981064d37c18f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Gyan, Thanks for working on the patch. On Mon, 16 Mar 2026 at 04:53, Gyan Sreejith wrote= : > > > > On Wed, Mar 11, 2026 at 6:05=E2=80=AFAM vignesh C w= rote: >> >> On Tue, 10 Mar 2026 at 04:26, Gyan Sreejith wr= ote: >> > >> > On Thu, Mar 5, 2026 at 9:49=E2=80=AFAM Euler Taveira wrote: >> > >> >> Don't duplicate code. If you are reusing a function, my advice is to = move it to >> >> src/common. You can always use "ifdef FRONTEND" to use the appropriat= e log >> >> message (elog/ereport vs pg_error, for example). >> > >> > >> > I have made all the changes except for this one, and I am deferring to= Amit Kapila regarding the marks. >> >> Few comments: >> 1) You are not checking log level because of which the contents are >> logged irrespective of the log level: >> +#undef pg_log_info >> +#define pg_log_info(...) do{\ >> + if (internal_log_file_fp !=3D NULL) \ >> + internal_log_file_write(__VA_ARGS__); \ >> + else \ >> + pg_log_generic(PG_LOG_INFO,PG_LOG_PRIMARY,__VA_ARGS__);\ >> +} while(0) >> + >> +#undef pg_log_info_hint >> +#define pg_log_info_hint(...) do{\ >> + if (internal_log_file_fp !=3D NULL) \ >> + internal_log_file_write(__VA_ARGS__); \ >> + else \ >> + pg_log_generic(PG_LOG_INFO, PG_LOG_HINT, __VA_ARGS__);\ >> +} while(0) >> + >> +#undef pg_log_debug >> +#define pg_log_debug(...) do{\ >> + if (internal_log_file_fp !=3D NULL) \ >> + internal_log_file_write(__VA_ARGS__); \ >> + else \ >> + if (unlikely(__pg_log_level <=3D PG_LOG_DEBUG)) \ >> + pg_log_generic(PG_LOG_DEBUG, PG_LOG_PRIMARY, >> __VA_ARGS__); \ >> +} while(0) > > The log level is passed to and checked by pg_log_generic_v() which is cal= led by pg_log_generic(). But we are not checking the log level when we are writing the logs in the logfiles. Due to this, extra logs can appear. >> >> >> >> 2) Instead of just checking if the file is created or not, let's check >> for some contents from the file: > > Added checks to ensure that the log files are not empty, thanks! I think along with it we should also check the actual contents of each file= . >> >> >> 3) This change is not required, let's remove this: >> --- a/src/bin/pg_basebackup/t/040_pg_createsubscriber.pl >> +++ b/src/bin/pg_basebackup/t/040_pg_createsubscriber.pl >> @@ -13,7 +13,8 @@ program_help_ok('pg_createsubscriber'); >> program_version_ok('pg_createsubscriber'); >> program_options_handling_ok('pg_createsubscriber'); >> >> -my $datadir =3D PostgreSQL::Test::Utils::tempdir; >> +my $datadir =3D PostgreSQL::Test::Utils::tempdir + "/datadir"; > > Fixed >> >> >> >> 4) No need of '{' as it is a single line statement >> if (opt->log_dir !=3D NULL) >> { >> appendPQExpBuffer(pg_ctl_cmd, " -l %s/%s/%s.log", opt->log_dir, >> log_timestamp, SERVER_LOG_FILE_NAME); >> } > > Fixed > > Thank you! I have attached the changes. I noticed that we do not define pg_log_warning, pg_log_warning_detail and pg_log_warning_hint, due to this the contents when option '--logdir' is specified and when it is not defined can differ. Should we define these as well? Also internal_log_file_write is declared as: +static void + internal_log_file_write(const char *format,...) __attribute__((format(printf, 1, 2))); Should we use 'pg_attribute_printf' instead of __attribute__((format(printf, 1, 2)))? I have added the changes for above in the topup patch. I also did some cosmetic changes. I have also addressed the comment (2) by Shveta in [1]. If you agree with these changes, please feel free to include them in the pa= tch. [1]: https://www.postgresql.org/message-id/CAJpy0uBPvz6S9VE8sLYmoju4BGYh94u= ks%2BUTocPdD094xqmZ2w%40mail.gmail.com Thanks, Shlok Kyal --000000000000299981064d37c18f Content-Type: application/octet-stream; name="topup.patch" Content-Disposition: attachment; filename="topup.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmulssbd0 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJlci5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwKaW5kZXggNjdhNjgzZTY2 YzcuLjI4OThhNWVhMTExIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2NyZWF0ZXN1 YnNjcmliZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2NyZWF0ZXN1YnNjcmliZXIu c2dtbApAQCAtMTQxLDE2ICsxNDEsMjIgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICAg IDx0ZXJtPjxvcHRpb24+LS1sb2dkaXI9PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRp cmVjdG9yeTwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgogICAgICA8bGlzdGl0ZW0+CiAg ICAgICA8cGFyYT4KLSAgICAgICBTcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBsb2cgZGlyZWN0b3J5 LiBBIG5ldyBkaXJlY3RvcnkgaXMgY3JlYXRlZCB3aXRoIHRoaXMgbmFtZSBpZiBpdCBkb2VzIG5v dCBleGlzdC4gQSBzdWJkaXJlY3Rvcnkgd2l0aCBhIHRpbWVzdGFtcCBpbmRpY2F0aW5nIHRoZSB0 aW1lIGF0IHdoaWNoIHBnX2NyZWF0ZXN1YnNjcmliZXIgd2FzIHJ1biB3aWxsIGJlIGNyZWF0ZWQu IFRoZSBmb2xsb3dpbmcgdHdvIGxvZyBmaWxlcyB3aWxsIGJlIGNyZWF0ZWRpbiB0aGUgc3ViZGly ZWN0b3J5IHdpdGggYSB1bWFzayBvZiAwNzcgc28gdGhhdCBhY2Nlc3MgaXMgZGlzYWxsb3dlZCB0 byBvdGhlciB1c2VycyBieSBkZWZhdWx0LgorICAgICAgIFNwZWNpZnkgdGhlIG5hbWUgb2YgdGhl IGxvZyBkaXJlY3RvcnkuIEEgbmV3IGRpcmVjdG9yeSBpcyBjcmVhdGVkIHdpdGgKKyAgICAgICB0 aGlzIG5hbWUgaWYgaXQgZG9lcyBub3QgZXhpc3QuIEEgc3ViZGlyZWN0b3J5IHdpdGggYSB0aW1l c3RhbXAKKyAgICAgICBpbmRpY2F0aW5nIHRoZSB0aW1lIGF0IHdoaWNoIHBnX2NyZWF0ZXN1YnNj cmliZXIgd2FzIHJ1biB3aWxsIGJlIGNyZWF0ZWQuCisgICAgICAgVGhlIGZvbGxvd2luZyB0d28g bG9nIGZpbGVzIHdpbGwgYmUgY3JlYXRlZCBpbiB0aGUgc3ViZGlyZWN0b3J5IHdpdGggYQorICAg ICAgIHVtYXNrIG9mIDA3NyBzbyB0aGF0IGFjY2VzcyBpcyBkaXNhbGxvd2VkIHRvIG90aGVyIHVz ZXJzIGJ5IGRlZmF1bHQuCiAgICAgICAgPGl0ZW1pemVkbGlzdD4KICAgICAgICAgPGxpc3RpdGVt PgogICAgICAgICAgPHBhcmE+Ci0gICAgICAgICAgcGdfY3JlYXRlc3Vic2NyaWJlcl9zZXJ2ZXIu bG9nIHdoaWNoIGNhcHR1cmVzIGxvZ3MgcmVsYXRlZCB0byBzdG9wcGluZyBhbmQgc3RhcnRpbmcg dGhlIHN0YW5kYnkgc2VydmVyLAorICAgICAgICAgIHBnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVy LmxvZyB3aGljaCBjYXB0dXJlcyBsb2dzIHJlbGF0ZWQgdG8gc3RvcHBpbmcKKyAgICAgICAgICBh bmQgc3RhcnRpbmcgdGhlIHN0YW5kYnkgc2VydmVyLAogICAgICAgICAgPC9wYXJhPgogICAgICAg ICA8L2xpc3RpdGVtPgogICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KLSAgICAg ICAgICBwZ19jcmVhdGVzdWJzY3JpYmVyX2ludGVybmFsLmxvZyB3aGljaCBjYXB0dXJlcyBpbnRl cm5hbCBkaWFnbm9zdGljIG91dHB1dCAodmFsaWRhdGlvbnMsIGNoZWNrcywgZXRjLikKKyAgICAg ICAgICBwZ19jcmVhdGVzdWJzY3JpYmVyX2ludGVybmFsLmxvZyB3aGljaCBjYXB0dXJlcyBpbnRl cm5hbCBkaWFnbm9zdGljCisgICAgICAgICAgb3V0cHV0ICh2YWxpZGF0aW9ucywgY2hlY2tzLCBl dGMuKQogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvaXRl bWl6ZWRsaXN0PgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1 YnNjcmliZXIuYyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMK aW5kZXggMzQ5NWJkYjg4Y2UuLjQ0NTA4NDJkMmI1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Jh c2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1 cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMKQEAgLTE1MCw4ICsxNTAsOSBAQCBzdGF0aWMgdm9pZCBk cm9wX2V4aXN0aW5nX3N1YnNjcmlwdGlvbihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnN1Ym5h bWUsCiAJCQkJCQkJCQkgICBjb25zdCBjaGFyICpkYm5hbWUpOwogc3RhdGljIHZvaWQgZ2V0X3B1 Ymxpc2hlcl9kYXRhYmFzZXMoc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zICpvcHQsCiAJ CQkJCQkJCQlib29sIGRibmFtZXNwZWNpZmllZCk7Ci1zdGF0aWMgdm9pZAotCQkJaW50ZXJuYWxf bG9nX2ZpbGVfd3JpdGUoY29uc3QgY2hhciAqZm9ybWF0LC4uLikgX19hdHRyaWJ1dGVfXygoZm9y bWF0KHByaW50ZiwgMSwgMikpKTsKK3N0YXRpYyB2b2lkIGludGVybmFsX2xvZ19maWxlX3dyaXRl KGVudW0gcGdfbG9nX2xldmVsIGxldmVsLAorCQkJCQkJCQkJY29uc3QgY2hhciAqZm9ybWF0LC4u LikKKwkJCXBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKIAogI2RlZmluZQlXQUlUX0lOVEVS VkFMCTEJCS8qIDEgc2Vjb25kICovCkBAIC0xODUsNTIgKzE4Niw3NSBAQCBzdGF0aWMgYm9vbCBy ZWNvdmVyeV9lbmRlZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgc3RhbmRieV9ydW5uaW5nID0gZmFs c2U7CiBzdGF0aWMgYm9vbCByZWNvdmVyeV9wYXJhbXNfc2V0ID0gZmFsc2U7CiAKKyN1bmRlZiBw Z19sb2dfd2FybmluZworI2RlZmluZSBwZ19sb2dfd2FybmluZyguLi4pIFwKKwlpZiAoaW50ZXJu YWxfbG9nX2ZpbGVfZnAgIT0gTlVMTCkgXAorCQlpbnRlcm5hbF9sb2dfZmlsZV93cml0ZShQR19M T0dfV0FSTklORywgX19WQV9BUkdTX18pOyBcCisJcGdfbG9nX2dlbmVyaWMoUEdfTE9HX1dBUk5J TkcsIFBHX0xPR19QUklNQVJZLCBfX1ZBX0FSR1NfXykKKworI3VuZGVmIHBnX2xvZ193YXJuaW5n X2RldGFpbAorI2RlZmluZSBwZ19sb2dfd2FybmluZ19kZXRhaWwoLi4uKSBcCisJaWYgKGludGVy bmFsX2xvZ19maWxlX2ZwICE9IE5VTEwpIFwKKwkJaW50ZXJuYWxfbG9nX2ZpbGVfd3JpdGUoUEdf TE9HX1dBUk5JTkcsIF9fVkFfQVJHU19fKTsgXAorCXBnX2xvZ19nZW5lcmljKFBHX0xPR19XQVJO SU5HLCBQR19MT0dfREVUQUlMLCBfX1ZBX0FSR1NfXykKKworI3VuZGVmIHBnX2xvZ193YXJuaW5n X2hpbnQKKyNkZWZpbmUgcGdfbG9nX3dhcm5pbmdfaGludCguLi4pIFwKKwlpZiAoaW50ZXJuYWxf bG9nX2ZpbGVfZnAgIT0gTlVMTCkgXAorCQlpbnRlcm5hbF9sb2dfZmlsZV93cml0ZShQR19MT0df V0FSTklORywgX19WQV9BUkdTX18pOyBcCisJcGdfbG9nX2dlbmVyaWMoUEdfTE9HX1dBUk5JTkcs IFBHX0xPR19ISU5ULCBfX1ZBX0FSR1NfXykKKwogI3VuZGVmIHBnX2xvZ19pbmZvCi0jZGVmaW5l IHBnX2xvZ19pbmZvKC4uLikgZG97XAorI2RlZmluZSBwZ19sb2dfaW5mbyguLi4pIGRvIHsgXAog CWlmIChpbnRlcm5hbF9sb2dfZmlsZV9mcCAhPSBOVUxMKSBcCi0JCWludGVybmFsX2xvZ19maWxl X3dyaXRlKF9fVkFfQVJHU19fKTsgXAorCQlpbnRlcm5hbF9sb2dfZmlsZV93cml0ZShQR19MT0df SU5GTywgX19WQV9BUkdTX18pOyBcCiAJZWxzZSBcCi0JCXBnX2xvZ19nZW5lcmljKFBHX0xPR19J TkZPLCBQR19MT0dfUFJJTUFSWSwgX19WQV9BUkdTX18pO1wKKwkJcGdfbG9nX2dlbmVyaWMoUEdf TE9HX0lORk8sIFBHX0xPR19QUklNQVJZLCBfX1ZBX0FSR1NfXyk7IFwKIH0gd2hpbGUoMCkKIAog I3VuZGVmIHBnX2xvZ19pbmZvX2hpbnQKLSNkZWZpbmUgcGdfbG9nX2luZm9faGludCguLi4pIGRv e1wKKyNkZWZpbmUgcGdfbG9nX2luZm9faGludCguLi4pIGRvIHsgXAogCWlmIChpbnRlcm5hbF9s b2dfZmlsZV9mcCAhPSBOVUxMKSBcCi0JCWludGVybmFsX2xvZ19maWxlX3dyaXRlKF9fVkFfQVJH U19fKTsgXAorCQlpbnRlcm5hbF9sb2dfZmlsZV93cml0ZShQR19MT0dfSU5GTywgX19WQV9BUkdT X18pOyBcCiAJZWxzZSBcCi0JCXBnX2xvZ19nZW5lcmljKFBHX0xPR19JTkZPLCBQR19MT0dfSElO VCwgX19WQV9BUkdTX18pO1wKKwkJcGdfbG9nX2dlbmVyaWMoUEdfTE9HX0lORk8sIFBHX0xPR19I SU5ULCBfX1ZBX0FSR1NfXyk7IFwKIH0gd2hpbGUoMCkKIAogI3VuZGVmIHBnX2xvZ19kZWJ1Zwot I2RlZmluZSBwZ19sb2dfZGVidWcoLi4uKSBkb3tcCi0JaWYgKGludGVybmFsX2xvZ19maWxlX2Zw ICE9IE5VTEwpIFwKLQkJaW50ZXJuYWxfbG9nX2ZpbGVfd3JpdGUoX19WQV9BUkdTX18pOyBcCi0J ZWxzZSBcCi0JCWlmICh1bmxpa2VseShfX3BnX2xvZ19sZXZlbCA8PSBQR19MT0dfREVCVUcpKSBc CisjZGVmaW5lIHBnX2xvZ19kZWJ1ZyguLi4pIGRvIHsgXAorCWlmICh1bmxpa2VseShfX3BnX2xv Z19sZXZlbCA8PSBQR19MT0dfREVCVUcpKSB7IFwKKwkJaWYgKGludGVybmFsX2xvZ19maWxlX2Zw ICE9IE5VTEwpIFwKKwkJCWludGVybmFsX2xvZ19maWxlX3dyaXRlKFBHX0xPR19ERUJVRywgX19W QV9BUkdTX18pOyBcCisJCWVsc2UgXAogCQkJcGdfbG9nX2dlbmVyaWMoUEdfTE9HX0RFQlVHLCBQ R19MT0dfUFJJTUFSWSwgX19WQV9BUkdTX18pOyBcCisJfSBcCiB9IHdoaWxlKDApCiAKICN1bmRl ZiBwZ19mYXRhbAotI2RlZmluZSBwZ19mYXRhbCguLi4pIGRve1wKKyNkZWZpbmUgcGdfZmF0YWwo Li4uKSBkbyB7IFwKIAlpZiAoaW50ZXJuYWxfbG9nX2ZpbGVfZnAgIT0gTlVMTCkgXAotCQlpbnRl cm5hbF9sb2dfZmlsZV93cml0ZShfX1ZBX0FSR1NfXyk7IFwKKwkJaW50ZXJuYWxfbG9nX2ZpbGVf d3JpdGUoUEdfTE9HX0VSUk9SLCBfX1ZBX0FSR1NfXyk7IFwKIAlwZ19sb2dfZ2VuZXJpYyhQR19M T0dfRVJST1IsIFBHX0xPR19QUklNQVJZLCBfX1ZBX0FSR1NfXyk7IFwKIAlleGl0KDEpOyBcCiB9 IHdoaWxlKDApCiAKIHN0YXRpYyB2b2lkCi1pbnRlcm5hbF9sb2dfZmlsZV93cml0ZShjb25zdCBj aGFyICpmb3JtYXQsLi4uKQoraW50ZXJuYWxfbG9nX2ZpbGVfd3JpdGUoZW51bSBwZ19sb2dfbGV2 ZWwgbGV2ZWwsIGNvbnN0IGNoYXIgKmZvcm1hdCwuLi4pCiB7Ci0JaWYgKGludGVybmFsX2xvZ19m aWxlX2ZwICE9IE5VTEwpCi0JewotCQl2YV9saXN0CQlhcmdzOworCXZhX2xpc3QJCWFyZ3M7CiAK LQkJdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKLQkJdmZwcmludGYoaW50ZXJuYWxfbG9nX2ZpbGVf ZnAsIGZvcm1hdCwgYXJncyk7Ci0JCWZwcmludGYoaW50ZXJuYWxfbG9nX2ZpbGVfZnAsICJcbiIp OwotCQlmZmx1c2goaW50ZXJuYWxfbG9nX2ZpbGVfZnApOwotCQl2YV9lbmQoYXJncyk7Ci0JfQor CWlmIChsZXZlbCA8IF9fcGdfbG9nX2xldmVsKQorCQlyZXR1cm47CisKKwlpZiAoaW50ZXJuYWxf bG9nX2ZpbGVfZnAgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJdmFfc3RhcnQoYXJncywgZm9ybWF0 KTsKKwl2ZnByaW50ZihpbnRlcm5hbF9sb2dfZmlsZV9mcCwgZm9ybWF0LCBhcmdzKTsKKwl2YV9l bmQoYXJncyk7CisKKwlmcHJpbnRmKGludGVybmFsX2xvZ19maWxlX2ZwLCAiXG4iKTsKKwlmZmx1 c2goaW50ZXJuYWxfbG9nX2ZpbGVfZnApOwogfQogCiAvKgpAQCAtMjY0LDIyICsyODgsMjcgQEAg bG9nZmlsZV9vcGVuKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICptb2RlKQogfQog CiBzdGF0aWMgdm9pZAotbWFrZV9kaXIoY2hhciAqZGlyKQorbWFrZV9kaXIoY29uc3QgY2hhciAq ZGlyKQogewogCXN0cnVjdCBzdGF0IHN0YXRidWY7CiAKLQlpZiAoc3RhdChkaXIsICZzdGF0YnVm KSAhPSAwKQotCQlpZiAoZXJybm8gPT0gRU5PRU5UKQotCQl7Ci0JCQlpZiAobWtkaXIoZGlyLCBT X0lSV1hVKSA9PSAwKQotCQkJCXBnX2xvZ19pbmZvKCJkaXJlY3RvcnkgJXMgY3JlYXRlZCIsIGRp cik7Ci0JCQllbHNlCi0JCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBjcmVhdGUgbG9nIGRpcmVjdG9y eSBcIiVzXCI6ICVtIiwgZGlyKTsKLQkJfQorCWlmIChzdGF0KGRpciwgJnN0YXRidWYpID09IDAp CisJCXJldHVybjsKKworCWlmIChlcnJubyAhPSBFTk9FTlQpCisJCXBnX2ZhdGFsKCJjb3VsZCBu b3Qgc3RhdCBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIGRpcik7CisKKwlpZiAobWtkaXIoZGlyLCBT X0lSV1hVKSA9PSAwKQorCXsKKwkJcGdfbG9nX2luZm8oImRpcmVjdG9yeSAlcyBjcmVhdGVkIiwg ZGlyKTsKKwkJcmV0dXJuOworCX0KKworCXBnX2ZhdGFsKCJjb3VsZCBub3QgY3JlYXRlIGxvZyBk aXJlY3RvcnkgXCIlc1wiOiAlbSIsIGRpcik7CiB9CiAKIHN0YXRpYyB2b2lkCi1tYWtlX291dHB1 dF9kaXJzKGNoYXIgKmxvZ19kaXIpCittYWtlX291dHB1dF9kaXJzKGNvbnN0IGNoYXIgKmxvZ19k aXIpCiB7CiAJY2hhcgkJdGltZXN0YW1wWzEyOF07CiAJc3RydWN0IHRpbWV2YWwgdHZhbDsKQEAg LTI4OCwxOCArMzE3LDMxIEBAIG1ha2Vfb3V0cHV0X2RpcnMoY2hhciAqbG9nX2RpcikKIAljaGFy CQl0aW1lc3RhbXBfZGlyW01BWFBHUEFUSF07CiAJaW50CQkJbGVuOwogCisJLyogR2VuZXJhdGUg dGltZXN0YW1wICovCiAJZ2V0dGltZW9mZGF5KCZ0dmFsLCBOVUxMKTsKIAlub3cgPSB0dmFsLnR2 X3NlYzsKLQlzdHJmdGltZSh0aW1lc3RhbXAsIHNpemVvZih0aW1lc3RhbXApLCAiJVklbSVkVCVI JU0lUyIsIGxvY2FsdGltZV9yKCZub3csICZ0bWJ1ZikpOworCisJc3RyZnRpbWUodGltZXN0YW1w LCBzaXplb2YodGltZXN0YW1wKSwgIiVZJW0lZFQlSCVNJVMiLAorCQkJIGxvY2FsdGltZV9yKCZu b3csICZ0bWJ1ZikpOworCiAJLyogYXBwZW5kIG1pbGxpc2Vjb25kcyAqLwotCXNucHJpbnRmKHRp bWVzdGFtcCArIHN0cmxlbih0aW1lc3RhbXApLCBzaXplb2YodGltZXN0YW1wKSAtIHN0cmxlbih0 aW1lc3RhbXApLAotCQkJICIuJTAzdSIsICh1bnNpZ25lZCBpbnQpICh0dmFsLnR2X3VzZWMgLyAx MDAwKSk7CisJc25wcmludGYodGltZXN0YW1wICsgc3RybGVuKHRpbWVzdGFtcCksCisJCQkgc2l6 ZW9mKHRpbWVzdGFtcCkgLSBzdHJsZW4odGltZXN0YW1wKSwgIi4lMDN1IiwKKwkJCSAodW5zaWdu ZWQgaW50KSAodHZhbC50dl91c2VjIC8gMTAwMCkpOworCiAJbG9nX3RpbWVzdGFtcCA9IHBnX3N0 cmR1cCh0aW1lc3RhbXApOwogCisJLyogQ3JlYXRlIGJhc2UgZGlyZWN0b3J5IChpZ25vcmUgaWYg ZXhpc3RzKSAqLwogCW1ha2VfZGlyKGxvZ19kaXIpOworCisJLyogQnVpbGQgdGltZXN0YW1wIGRp cmVjdG9yeSBwYXRoICovCiAJbGVuID0gc25wcmludGYodGltZXN0YW1wX2RpciwgTUFYUEdQQVRI LCAiJXMvJXMiLCBsb2dfZGlyLCB0aW1lc3RhbXApOworCiAJaWYgKGxlbiA+PSBNQVhQR1BBVEgp Ci0JCXBnX2ZhdGFsKCJkaXJlY3RvcnkgcGF0aCBmb3IgbG9nIGZpbGVzLCAlcy8lcywgaXMgdG9v IGxvbmciLCBsb2dfZGlyLCB0aW1lc3RhbXApOworCQlwZ19mYXRhbCgiZGlyZWN0b3J5IHBhdGgg Zm9yIGxvZyBmaWxlcywgJXMvJXMsIGlzIHRvbyBsb25nIiwKKwkJCQkgbG9nX2RpciwgdGltZXN0 YW1wKTsKKworCS8qIENyZWF0ZSB0aW1lc3RhbXAgZGlyZWN0b3J5ICovCiAJbWFrZV9kaXIodGlt ZXN0YW1wX2Rpcik7CiB9CiAKQEAgLTIzNjEsNyArMjQwMyw2IEBAIG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogCWNoYXIJICAgKmNvbnNpc3RlbnRfbHNuOwogCiAJY2hhcgkJcGlkZmlsZVtN QVhQR1BBVEhdOwotCWNoYXIJICAgKmludGVybmFsX2xvZ19maWxlOwogCiAJcGdfbG9nZ2luZ19p bml0KGFyZ3ZbMF0pOwogCXBnX2xvZ2dpbmdfc2V0X2xldmVsKFBHX0xPR19XQVJOSU5HKTsKQEAg LTI0MzksMTAgKzI0ODAsNiBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCWNhc2Ug J2wnOgogCQkJCW9wdC5sb2dfZGlyID0gcGdfc3RyZHVwKG9wdGFyZyk7CiAJCQkJY2Fub25pY2Fs aXplX3BhdGgob3B0LmxvZ19kaXIpOwotCQkJCW1ha2Vfb3V0cHV0X2RpcnMob3B0LmxvZ19kaXIp OwotCQkJCWludGVybmFsX2xvZ19maWxlID0gcHNwcmludGYoIiVzLyVzLyVzLmxvZyIsIG9wdC5s b2dfZGlyLCBsb2dfdGltZXN0YW1wLCBJTlRFUk5BTF9MT0dfRklMRV9OQU1FKTsKLQkJCQlpZiAo KGludGVybmFsX2xvZ19maWxlX2ZwID0gbG9nZmlsZV9vcGVuKGludGVybmFsX2xvZ19maWxlLCAi YSIpKSA9PSBOVUxMKQotCQkJCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gbG9nIGZpbGUgXCIl c1wiOiAlbSIsIGludGVybmFsX2xvZ19maWxlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgJ24nOgog CQkJCWRyeV9ydW4gPSB0cnVlOwpAQCAtMjUxMiw2ICsyNTQ5LDE4IEBAIG1haW4oaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQogCQl9CiAJfQogCisJaWYgKG9wdC5sb2dfZGlyICE9IE5VTEwpCisJewor CQljaGFyCSAgICppbnRlcm5hbF9sb2dfZmlsZTsKKworCQltYWtlX291dHB1dF9kaXJzKG9wdC5s b2dfZGlyKTsKKwkJaW50ZXJuYWxfbG9nX2ZpbGUgPSBwc3ByaW50ZigiJXMvJXMvJXMubG9nIiwg b3B0LmxvZ19kaXIsIGxvZ190aW1lc3RhbXAsCisJCQkJCQkJCQkgSU5URVJOQUxfTE9HX0ZJTEVf TkFNRSk7CisKKwkJaWYgKChpbnRlcm5hbF9sb2dfZmlsZV9mcCA9IGxvZ2ZpbGVfb3BlbihpbnRl cm5hbF9sb2dfZmlsZSwgImEiKSkgPT0gTlVMTCkKKwkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3Bl biBsb2cgZmlsZSBcIiVzXCI6ICVtIiwgaW50ZXJuYWxfbG9nX2ZpbGUpOworCX0KKwogCS8qIFZh bGlkYXRlIHRoYXQgLS1hbGwgaXMgbm90IHVzZWQgd2l0aCBpbmNvbXBhdGlibGUgb3B0aW9ucyAq LwogCWlmIChvcHQuYWxsX2RicykKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNr dXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbCBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90 LzA0MF9wZ19jcmVhdGVzdWJzY3JpYmVyLnBsCmluZGV4IDNhODJmODkzZTI4Li40ZGRmYjYyMWE1 ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDQwX3BnX2NyZWF0ZXN1YnNj cmliZXIucGwKKysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDQwX3BnX2NyZWF0ZXN1YnNj cmliZXIucGwKQEAgLTM3MSwxNiArMzcxLDI2IEBAIGNvbW1hbmRfb2soCiBteSBAc2VydmVyX2xv Z19maWxlcyA9IGdsb2IgIiRsb2dkaXIvKi9wZ19jcmVhdGVzdWJzY3JpYmVyX3NlcnZlci5sb2ci OwogaXMoIHNjYWxhcihAc2VydmVyX2xvZ19maWxlcyksIDEsICIKICAgICBwZ19jcmVhdGVzdWJz Y3JpYmVyX3NlcnZlci5sb2cgZmlsZSB3YXMgY3JlYXRlZCIpOwotbXkgJHNlcnZlcl9sb2dfZmls ZV9zaXplID0gLXMgc2hpZnQoQHNlcnZlcl9sb2dfZmlsZXMpOworbXkgJHNlcnZlcl9sb2dfZmls ZV9zaXplID0gLXMgJHNlcnZlcl9sb2dfZmlsZXNbMF07CiBpc250KCRzZXJ2ZXJfbG9nX2ZpbGVf c2l6ZSwgMCwKIAkicGdfY3JlYXRlc3Vic2NyaWJlcl9zZXJ2ZXIubG9nIGZpbGUgbm90IGVtcHR5 Iik7CitteSAkc2VydmVyX2xvZyA9IHNsdXJwX2ZpbGUoJHNlcnZlcl9sb2dfZmlsZXNbMF0pOwor bGlrZSgKKwkkc2VydmVyX2xvZywKKwlxci9jb25zaXN0ZW50IHJlY292ZXJ5IHN0YXRlIHJlYWNo ZWQvLAorCSJzZXJ2ZXIgcmVhY2hlZCBjb25zaXN0ZW50IHJlY292ZXJ5IHN0YXRlIik7CiAKIG15 IEBpbnRlcm5hbF9sb2dfZmlsZXMgPSBnbG9iICIkbG9nZGlyLyovcGdfY3JlYXRlc3Vic2NyaWJl cl9pbnRlcm5hbC5sb2ciOwogaXMoIHNjYWxhcihAaW50ZXJuYWxfbG9nX2ZpbGVzKSwgMSwgIgog ICAgIHBnX2NyZWF0ZXN1YnNjcmliZXJfaW50ZXJuYWwubG9nIGZpbGUgd2FzIGNyZWF0ZWQiKTsK LW15ICRpbnRlcm5hbF9sb2dfZmlsZV9zaXplID0gLXMgc2hpZnQoQGludGVybmFsX2xvZ19maWxl cyk7CitteSAkaW50ZXJuYWxfbG9nX2ZpbGVfc2l6ZSA9IC1zICRpbnRlcm5hbF9sb2dfZmlsZXNb MF07CiBpc250KCRpbnRlcm5hbF9sb2dfZmlsZV9zaXplLCAwLAogCSJwZ19jcmVhdGVzdWJzY3Jp YmVyX2ludGVybmFsLmxvZyBmaWxlIG5vdCBlbXB0eSIpOworbXkgJGludGVybmFsX2xvZyA9IHNs dXJwX2ZpbGUoJGludGVybmFsX2xvZ19maWxlc1swXSk7CitsaWtlKAorCSRpbnRlcm5hbF9sb2cs CisJcXIvdGFyZ2V0IHNlcnZlciByZWFjaGVkIHRoZSBjb25zaXN0ZW50IHN0YXRlLywKKwkibG9n IHNob3dzIGNvbnNpc3RlbnQgc3RhdGUgcmVhY2hlZCIpOwogCiAjIENoZWNrIGlmIG5vZGUgUyBp cyBzdGlsbCBhIHN0YW5kYnkKICRub2RlX3MtPnN0YXJ0OwpAQCAtNDYxLDcgKzQ3MSw4IEBAIGlz KHNjYWxhcigoKSA9ICRzdGRlcnIgPX4gL3dvdWxkIGNyZWF0ZSBzdWJzY3JpcHRpb24vZyksCiAK ICMgQ3JlYXRlIGEgdXNlci1kZWZpbmVkIHB1YmxpY2F0aW9uLCBhbmQgYSB0YWJsZSB0aGF0IGlz IG5vdCBhIG1lbWJlciBvZiB0aGF0CiAjIHB1YmxpY2F0aW9uLgotJG5vZGVfcC0+c2FmZV9wc3Fs KCRkYjEsIHFxKAorJG5vZGVfcC0+c2FmZV9wc3FsKAorCSRkYjEsIHFxKAogCUNSRUFURSBQVUJM SUNBVElPTiB0ZXN0X3B1YjMgRk9SIFRBQkxFIHRibDE7CiAJQ1JFQVRFIFRBQkxFIG5vdF9yZXBs aWNhdGVkIChhIGludCk7CiApKTsKQEAgLTU1Nyw4ICs1NjgsNyBAQCBzZWNvbmQgcm93CiB0aGly ZCByb3cpLAogCSJsb2dpY2FsIHJlcGxpY2F0aW9uIHdvcmtzIGluIGRhdGFiYXNlICRkYjEiKTsK ICRyZXN1bHQgPSAkbm9kZV9zLT5zYWZlX3BzcWwoJGRiMSwgJ1NFTEVDVCAqIEZST00gbm90X3Jl cGxpY2F0ZWQnKTsKLWlzKCRyZXN1bHQsIHFxKCksCi0JInRhYmxlIGlzIG5vdCByZXBsaWNhdGVk IGluIGRhdGFiYXNlICRkYjEiKTsKK2lzKCRyZXN1bHQsIHFxKCksICJ0YWJsZSBpcyBub3QgcmVw bGljYXRlZCBpbiBkYXRhYmFzZSAkZGIxIik7CiAKICMgQ2hlY2sgcmVzdWx0IGluIGRhdGFiYXNl ICRkYjIKICRyZXN1bHQgPSAkbm9kZV9zLT5zYWZlX3BzcWwoJGRiMiwgJ1NFTEVDVCAqIEZST00g dGJsMicpOwpAQCAtNTcyLDggKzU4MiwxMCBAQCBteSAkc3lzaWRfcyA9ICRub2RlX3MtPnNhZmVf cHNxbCgncG9zdGdyZXMnLAogaXNudCgkc3lzaWRfcCwgJHN5c2lkX3MsICdzeXN0ZW0gaWRlbnRp ZmllciB3YXMgY2hhbmdlZCcpOwogCiAjIFZlcmlmeSB0aGF0IHB1YjIgd2FzIGNyZWF0ZWQgaW4g JGRiMgotaXMoJG5vZGVfcC0+c2FmZV9wc3FsKCRkYjIsICJTRUxFQ1QgQ09VTlQoKikgRlJPTSBw Z19wdWJsaWNhdGlvbiBXSEVSRSBwdWJuYW1lID0gJ3B1YjInIiksCi0JJzEnLCAicHVibGljYXRp b24gcHViMiB3YXMgY3JlYXRlZCBpbiAkZGIyIik7CitpcyggJG5vZGVfcC0+c2FmZV9wc3FsKAor CQkkZGIyLCAiU0VMRUNUIENPVU5UKCopIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFt ZSA9ICdwdWIyJyIpLAorCScxJywKKwkicHVibGljYXRpb24gcHViMiB3YXMgY3JlYXRlZCBpbiAk ZGIyIik7CiAKICMgR2V0IHN1YnNjcmlwdGlvbiBhbmQgcHVibGljYXRpb24gbmFtZXMKICRyZXN1 bHQgPSAkbm9kZV9zLT5zYWZlX3BzcWwoCkBAIC01OTgsNyArNjEwLDcgQEAgJHJlc3VsdCA9ICRu b2RlX3MtPnNhZmVfcHNxbCgKICAgICApCiApOwogCi1pcygkcmVzdWx0LCBxcSgkZGIxfHt0ZXN0 X3B1YjN9CitpcyggJHJlc3VsdCwgcXEoJGRiMXx7dGVzdF9wdWIzfQogJGRiMnx7cHViMn0pLAog CSJzdWJzY3JpcHRpb25zIHVzZSB0aGUgY29ycmVjdCBwdWJsaWNhdGlvbnMiKTsKIAo= --000000000000299981064d37c18f Content-Type: application/octet-stream; name="v9-0001-Add-a-new-argument-l-logdir-to-pg_createsubscribe.patch" Content-Disposition: attachment; filename="v9-0001-Add-a-new-argument-l-logdir-to-pg_createsubscribe.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmulssbm1 RnJvbSBmMTBlYWI2YjFjZWY1OTA3YmU5MGZhNjZiODc5Y2RkYjY3OWRmYTgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHeWFuIFNyZWVqaXRoIDxneWFuLnNyZWVqaXRoQGdtYWlsLmNv bT4KRGF0ZTogU3VuLCAxNSBNYXIgMjAyNiAxODo0MDoxNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg djldIEFkZCBhIG5ldyBhcmd1bWVudCAtbCA8bG9nZGlyPiB0byBwZ19jcmVhdGVzdWJzY3JpYmVy LgoKRW5hYmxpbmcgdGhlIG9wdGlvbiB0byB3cml0ZSBtZXNzYWdlcyB0byBsb2cgZmlsZXMgaW4g dGhlIHNwZWNpZmllZCBkaXJlY3RvcnkuCkEgbmV3IGRpcmVjdG9yeSBpcyBjcmVhdGVkIGlmIHJl cXVpcmVkLiBBIHN1YmRpcmVjdG9yeSBpcyBjcmVhdGVkIHdpdGggdGltZXN0YW1wIGFzIGl0cyBu YW1lLCBhbmQgaXQgd2lsbCBjb250YWluIHR3byBuZXcgbG9nZmlsZXM6CjEuIHBnX2NyZWF0ZXN1 YnNjcmliZXJfc2VydmVyLmxvZyAgLSBjYXB0dXJlcyBtZXNzYWdlcyByZWxhdGVkIHRvIHN0YXJ0 aW5nIGFuZCBzdG9wcGluZyB0aGUgc3RhbmRieSBzZXJ2ZXIuCjIuIHBnX2NyZWF0ZXN1YnNjcmli ZXJfaW50ZXJuYWwubG9nIC0gY2FwdHVyZXMgaW50ZXJuYWwgZGlhZ25vc3RpYyBvdXRwdXQgZnJv bSBwZ19jcmVhdGVzdWJzY3JpYmVyLgoKRm9yIGV4YW1wbGUsIGlmIHdlIHNwZWNpZnkgLWwgYWJj IGFzIGFuIGFyZ3VtZW50LCBhbmQgaWYgdGhlIHRpbWVzdGFtcCBvbiBydW5uaW5nIGl0IGlzIDIw MjYwMTE5VDIwNDMxNy4yMDQsIGEgZGlyZWN0b3J5IGFiYyBpcyBjcmVhdGVkIGlmIGl0IGRvZXNu J3QgZXhpc3QgYWxyZWFkeSwgd2l0aCAyMDI2MDExOVQyMDQzMTcuMjA0IGFzIGl0cyBzdWJkaXJl Y3RvcnkgYW5kIGl0IHdpbGwgY29udGFpbiB0aGUgdHdvIGxvZyBmaWxlcyBwZ19jcmVhdGVzdWJz Y3JpYmVyX3NlcnZlci5sb2cgYW5kIHBnX2NyZWF0ZXN1YnNjcmliZXJfaW50ZXJuYWwubG9nCi0t LQogZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwgICAgIHwgIDIyICsr Kwogc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYyAgIHwgMTY1ICsr KysrKysrKysrKysrKysrLQogLi4uL3QvMDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIucGwgICAgICAg ICAgICAgIHwgIDE3ICsrCiAzIGZpbGVzIGNoYW5nZWQsIDIwMSBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2Ny aWJlci5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwKaW5k ZXggY2Y0NWZmMzU3M2QuLjY3YTY4M2U2NmM3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L3BnX2NyZWF0ZXN1YnNjcmliZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2NyZWF0 ZXN1YnNjcmliZXIuc2dtbApAQCAtMTM2LDYgKzEzNiwyOCBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50 YXRpb24KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2YXJs aXN0ZW50cnk+CisgICAgIDx0ZXJtPjxvcHRpb24+LWwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmRpcmVjdG9yeTwvcmVwbGFjZWFibGU+PC9vcHRpb24+PC90ZXJtPgorICAgICA8dGVy bT48b3B0aW9uPi0tbG9nZGlyPTxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kaXJlY3Rv cnk8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAg PHBhcmE+CisgICAgICAgU3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgbG9nIGRpcmVjdG9yeS4gQSBu ZXcgZGlyZWN0b3J5IGlzIGNyZWF0ZWQgd2l0aCB0aGlzIG5hbWUgaWYgaXQgZG9lcyBub3QgZXhp c3QuIEEgc3ViZGlyZWN0b3J5IHdpdGggYSB0aW1lc3RhbXAgaW5kaWNhdGluZyB0aGUgdGltZSBh dCB3aGljaCBwZ19jcmVhdGVzdWJzY3JpYmVyIHdhcyBydW4gd2lsbCBiZSBjcmVhdGVkLiBUaGUg Zm9sbG93aW5nIHR3byBsb2cgZmlsZXMgd2lsbCBiZSBjcmVhdGVkaW4gdGhlIHN1YmRpcmVjdG9y eSB3aXRoIGEgdW1hc2sgb2YgMDc3IHNvIHRoYXQgYWNjZXNzIGlzIGRpc2FsbG93ZWQgdG8gb3Ro ZXIgdXNlcnMgYnkgZGVmYXVsdC4KKyAgICAgICA8aXRlbWl6ZWRsaXN0PgorICAgICAgICA8bGlz dGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBwZ19jcmVhdGVzdWJzY3JpYmVyX3Nl cnZlci5sb2cgd2hpY2ggY2FwdHVyZXMgbG9ncyByZWxhdGVkIHRvIHN0b3BwaW5nIGFuZCBzdGFy dGluZyB0aGUgc3RhbmRieSBzZXJ2ZXIsCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlz dGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIHBn X2NyZWF0ZXN1YnNjcmliZXJfaW50ZXJuYWwubG9nIHdoaWNoIGNhcHR1cmVzIGludGVybmFsIGRp YWdub3N0aWMgb3V0cHV0ICh2YWxpZGF0aW9ucywgY2hlY2tzLCBldGMuKQorICAgICAgICAgPC9w YXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvaXRlbWl6ZWRsaXN0PgorICAgICAg PC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgPHZh cmxpc3RlbnRyeT4KICAgICAgPHRlcm0+PG9wdGlvbj4tbjwvb3B0aW9uPjwvdGVybT4KICAgICAg PHRlcm0+PG9wdGlvbj4tLWRyeS1ydW48L29wdGlvbj48L3Rlcm0+CmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jIGIvc3JjL2Jpbi9wZ19iYXNl YmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYwppbmRleCAyYmM4NDUwNWFhYi4uMzQ5NWJkYjg4 Y2UgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVy LmMKKysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYwpAQCAt NDksMTAgKzQ5LDE0IEBACiAjZGVmaW5lIElOQ0xVREVEX0NPTkZfRklMRQkJCSJwZ19jcmVhdGVz dWJzY3JpYmVyLmNvbmYiCiAjZGVmaW5lIElOQ0xVREVEX0NPTkZfRklMRV9ESVNBQkxFRAlJTkNM VURFRF9DT05GX0ZJTEUgIi5kaXNhYmxlZCIKIAorI2RlZmluZSBTRVJWRVJfTE9HX0ZJTEVfTkFN RSAicGdfY3JlYXRlc3Vic2NyaWJlcl9zZXJ2ZXIiCisjZGVmaW5lIElOVEVSTkFMX0xPR19GSUxF X05BTUUgInBnX2NyZWF0ZXN1YnNjcmliZXJfaW50ZXJuYWwiCisKIC8qIENvbW1hbmQtbGluZSBv cHRpb25zICovCiBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMKIHsKIAljaGFyCSAgICpj b25maWdfZmlsZTsJLyogY29uZmlndXJhdGlvbiBmaWxlICovCisJY2hhcgkgICAqbG9nX2RpcjsJ CS8qIGxvZyBkaXJlY3RvcnkgbmFtZSAqLwogCWNoYXIJICAgKnB1Yl9jb25uaW5mb19zdHI7CS8q IHB1Ymxpc2hlciBjb25uZWN0aW9uIHN0cmluZyAqLwogCWNoYXIJICAgKnNvY2tldF9kaXI7CQkv KiBkaXJlY3RvcnkgZm9yIFVuaXgtZG9tYWluIHNvY2tldCwgaWYgYW55ICovCiAJY2hhcgkgICAq c3ViX3BvcnQ7CQkvKiBzdWJzY3JpYmVyIHBvcnQgbnVtYmVyICovCkBAIC0xNDYsNiArMTUwLDkg QEAgc3RhdGljIHZvaWQgZHJvcF9leGlzdGluZ19zdWJzY3JpcHRpb24oUEdjb25uICpjb25uLCBj b25zdCBjaGFyICpzdWJuYW1lLAogCQkJCQkJCQkJICAgY29uc3QgY2hhciAqZGJuYW1lKTsKIHN0 YXRpYyB2b2lkIGdldF9wdWJsaXNoZXJfZGF0YWJhc2VzKHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVy T3B0aW9ucyAqb3B0LAogCQkJCQkJCQkJYm9vbCBkYm5hbWVzcGVjaWZpZWQpOworc3RhdGljIHZv aWQKKwkJCWludGVybmFsX2xvZ19maWxlX3dyaXRlKGNvbnN0IGNoYXIgKmZvcm1hdCwuLi4pIF9f YXR0cmlidXRlX18oKGZvcm1hdChwcmludGYsIDEsIDIpKSk7CisKIAogI2RlZmluZQlXQUlUX0lO VEVSVkFMCTEJCS8qIDEgc2Vjb25kICovCiAKQEAgLTE2Nyw2ICsxNzQsMTAgQEAgc3RhdGljIHBn X3Bybmdfc3RhdGUgcHJuZ19zdGF0ZTsKIHN0YXRpYyBjaGFyICpwZ19jdGxfcGF0aCA9IE5VTEw7 CiBzdGF0aWMgY2hhciAqcGdfcmVzZXR3YWxfcGF0aCA9IE5VTEw7CiAKK3N0YXRpYyBGSUxFICpp bnRlcm5hbF9sb2dfZmlsZV9mcCA9IE5VTEw7CS8qIEZpbGUgcHRyIHRvIGxvZyBhbGwgbWVzc2Fn ZXMgdG8gKi8KK3N0YXRpYyBjaGFyICpsb2dfdGltZXN0YW1wID0gTlVMTDsJLyogVGltZXN0YW1w IHRvIGJlIHVzZWQgaW4gYWxsIGxvZyBmaWxlCisJCQkJCQkJCQkgKiBuYW1lcyAqLworCiAvKiBz dGFuZGJ5IC8gc3Vic2NyaWJlciBkYXRhIGRpcmVjdG9yeSAqLwogc3RhdGljIGNoYXIgKnN1YnNj cmliZXJfZGlyID0gTlVMTDsKIApAQCAtMTc0LDYgKzE4NSwxMjMgQEAgc3RhdGljIGJvb2wgcmVj b3ZlcnlfZW5kZWQgPSBmYWxzZTsKIHN0YXRpYyBib29sIHN0YW5kYnlfcnVubmluZyA9IGZhbHNl Owogc3RhdGljIGJvb2wgcmVjb3ZlcnlfcGFyYW1zX3NldCA9IGZhbHNlOwogCisjdW5kZWYgcGdf bG9nX2luZm8KKyNkZWZpbmUgcGdfbG9nX2luZm8oLi4uKSBkb3tcCisJaWYgKGludGVybmFsX2xv Z19maWxlX2ZwICE9IE5VTEwpIFwKKwkJaW50ZXJuYWxfbG9nX2ZpbGVfd3JpdGUoX19WQV9BUkdT X18pOyBcCisJZWxzZSBcCisJCXBnX2xvZ19nZW5lcmljKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJ TUFSWSwgX19WQV9BUkdTX18pO1wKK30gd2hpbGUoMCkKKworI3VuZGVmIHBnX2xvZ19pbmZvX2hp bnQKKyNkZWZpbmUgcGdfbG9nX2luZm9faGludCguLi4pIGRve1wKKwlpZiAoaW50ZXJuYWxfbG9n X2ZpbGVfZnAgIT0gTlVMTCkgXAorCQlpbnRlcm5hbF9sb2dfZmlsZV93cml0ZShfX1ZBX0FSR1Nf Xyk7IFwKKwllbHNlIFwKKwkJcGdfbG9nX2dlbmVyaWMoUEdfTE9HX0lORk8sIFBHX0xPR19ISU5U LCBfX1ZBX0FSR1NfXyk7XAorfSB3aGlsZSgwKQorCisjdW5kZWYgcGdfbG9nX2RlYnVnCisjZGVm aW5lIHBnX2xvZ19kZWJ1ZyguLi4pIGRve1wKKwlpZiAoaW50ZXJuYWxfbG9nX2ZpbGVfZnAgIT0g TlVMTCkgXAorCQlpbnRlcm5hbF9sb2dfZmlsZV93cml0ZShfX1ZBX0FSR1NfXyk7IFwKKwllbHNl IFwKKwkJaWYgKHVubGlrZWx5KF9fcGdfbG9nX2xldmVsIDw9IFBHX0xPR19ERUJVRykpIFwKKwkJ CXBnX2xvZ19nZW5lcmljKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksIF9fVkFfQVJHU19f KTsgXAorfSB3aGlsZSgwKQorCisjdW5kZWYgcGdfZmF0YWwKKyNkZWZpbmUgcGdfZmF0YWwoLi4u KSBkb3tcCisJaWYgKGludGVybmFsX2xvZ19maWxlX2ZwICE9IE5VTEwpIFwKKwkJaW50ZXJuYWxf bG9nX2ZpbGVfd3JpdGUoX19WQV9BUkdTX18pOyBcCisJcGdfbG9nX2dlbmVyaWMoUEdfTE9HX0VS Uk9SLCBQR19MT0dfUFJJTUFSWSwgX19WQV9BUkdTX18pOyBcCisJZXhpdCgxKTsgXAorfSB3aGls ZSgwKQorCitzdGF0aWMgdm9pZAoraW50ZXJuYWxfbG9nX2ZpbGVfd3JpdGUoY29uc3QgY2hhciAq Zm9ybWF0LC4uLikKK3sKKwlpZiAoaW50ZXJuYWxfbG9nX2ZpbGVfZnAgIT0gTlVMTCkKKwl7CisJ CXZhX2xpc3QJCWFyZ3M7CisKKwkJdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKKwkJdmZwcmludGYo aW50ZXJuYWxfbG9nX2ZpbGVfZnAsIGZvcm1hdCwgYXJncyk7CisJCWZwcmludGYoaW50ZXJuYWxf bG9nX2ZpbGVfZnAsICJcbiIpOworCQlmZmx1c2goaW50ZXJuYWxfbG9nX2ZpbGVfZnApOworCQl2 YV9lbmQoYXJncyk7CisJfQorfQorCisvKgorICogT3BlbiBhIG5ldyBsb2dmaWxlIHdpdGggcHJv cGVyIHBlcm1pc3Npb25zLgorICogRnJvbSBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3N5c2xvZ2dl ci5jCisgKi8KK3N0YXRpYyBGSUxFICoKK2xvZ2ZpbGVfb3Blbihjb25zdCBjaGFyICpmaWxlbmFt ZSwgY29uc3QgY2hhciAqbW9kZSkKK3sKKwlGSUxFCSAgICpmaDsKKwltb2RlX3QJCW91bWFzazsK KworCW91bWFzayA9IHVtYXNrKChtb2RlX3QpICgofihTX0lSVVNSIHwgU19JV1VTUikpICYgKFNf SVJXWFUgfCBTX0lSV1hHIHwgU19JUldYTykpKTsKKwlmaCA9IGZvcGVuKGZpbGVuYW1lLCBtb2Rl KTsKKwl1bWFzayhvdW1hc2spOworCisJaWYgKGZoKQorCXsKKwkJc2V0dmJ1ZihmaCwgTlVMTCwg UEdfSU9MQkYsIDApOworCisjaWZkZWYgV0lOMzIKKwkJLyogdXNlIENSTEYgbGluZSBlbmRpbmdz IG9uIFdpbmRvd3MgKi8KKwkJX3NldG1vZGUoX2ZpbGVubyhmaCksIF9PX1RFWFQpOworI2VuZGlm CisJfQorCWVsc2UKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGxvZyBmaWxlIFwiJXNcIjog JW0iLAorCQkJCSBmaWxlbmFtZSk7CisKKwlyZXR1cm4gZmg7Cit9CisKK3N0YXRpYyB2b2lkCitt YWtlX2RpcihjaGFyICpkaXIpCit7CisJc3RydWN0IHN0YXQgc3RhdGJ1ZjsKKworCWlmIChzdGF0 KGRpciwgJnN0YXRidWYpICE9IDApCisJCWlmIChlcnJubyA9PSBFTk9FTlQpCisJCXsKKwkJCWlm IChta2RpcihkaXIsIFNfSVJXWFUpID09IDApCisJCQkJcGdfbG9nX2luZm8oImRpcmVjdG9yeSAl cyBjcmVhdGVkIiwgZGlyKTsKKwkJCWVsc2UKKwkJCQlwZ19mYXRhbCgiY291bGQgbm90IGNyZWF0 ZSBsb2cgZGlyZWN0b3J5IFwiJXNcIjogJW0iLCBkaXIpOworCQl9Cit9CisKK3N0YXRpYyB2b2lk CittYWtlX291dHB1dF9kaXJzKGNoYXIgKmxvZ19kaXIpCit7CisJY2hhcgkJdGltZXN0YW1wWzEy OF07CisJc3RydWN0IHRpbWV2YWwgdHZhbDsKKwl0aW1lX3QJCW5vdzsKKwlzdHJ1Y3QgdG0JdG1i dWY7CisJY2hhcgkJdGltZXN0YW1wX2RpcltNQVhQR1BBVEhdOworCWludAkJCWxlbjsKKworCWdl dHRpbWVvZmRheSgmdHZhbCwgTlVMTCk7CisJbm93ID0gdHZhbC50dl9zZWM7CisJc3RyZnRpbWUo dGltZXN0YW1wLCBzaXplb2YodGltZXN0YW1wKSwgIiVZJW0lZFQlSCVNJVMiLCBsb2NhbHRpbWVf cigmbm93LCAmdG1idWYpKTsKKwkvKiBhcHBlbmQgbWlsbGlzZWNvbmRzICovCisJc25wcmludGYo dGltZXN0YW1wICsgc3RybGVuKHRpbWVzdGFtcCksIHNpemVvZih0aW1lc3RhbXApIC0gc3RybGVu KHRpbWVzdGFtcCksCisJCQkgIi4lMDN1IiwgKHVuc2lnbmVkIGludCkgKHR2YWwudHZfdXNlYyAv IDEwMDApKTsKKwlsb2dfdGltZXN0YW1wID0gcGdfc3RyZHVwKHRpbWVzdGFtcCk7CisKKwltYWtl X2Rpcihsb2dfZGlyKTsKKwlsZW4gPSBzbnByaW50Zih0aW1lc3RhbXBfZGlyLCBNQVhQR1BBVEgs ICIlcy8lcyIsIGxvZ19kaXIsIHRpbWVzdGFtcCk7CisJaWYgKGxlbiA+PSBNQVhQR1BBVEgpCisJ CXBnX2ZhdGFsKCJkaXJlY3RvcnkgcGF0aCBmb3IgbG9nIGZpbGVzLCAlcy8lcywgaXMgdG9vIGxv bmciLCBsb2dfZGlyLCB0aW1lc3RhbXApOworCW1ha2VfZGlyKHRpbWVzdGFtcF9kaXIpOworfQog CiAvKgogICogQ2xlYW4gdXAgb2JqZWN0cyBjcmVhdGVkIGJ5IHBnX2NyZWF0ZXN1YnNjcmliZXIu CkBAIC0yNjksNiArMzk3LDEyIEBAIGNsZWFudXBfb2JqZWN0c19hdGV4aXQodm9pZCkKIAogCWlm IChzdGFuZGJ5X3J1bm5pbmcpCiAJCXN0b3Bfc3RhbmRieV9zZXJ2ZXIoc3Vic2NyaWJlcl9kaXIp OworCisJaWYgKGludGVybmFsX2xvZ19maWxlX2ZwICE9IE5VTEwpCisJeworCQlmY2xvc2UoaW50 ZXJuYWxfbG9nX2ZpbGVfZnApOworCQlpbnRlcm5hbF9sb2dfZmlsZV9mcCA9IE5VTEw7CisJfQog fQogCiBzdGF0aWMgdm9pZApAQCAtMjgzLDYgKzQxNyw3IEBAIHVzYWdlKHZvaWQpCiAJCQkgIiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhYmFzZXMgYW5kIGRhdGFiYXNlcyB0 aGF0IGRvbid0IGFsbG93IGNvbm5lY3Rpb25zXG4iKSk7CiAJcHJpbnRmKF8oIiAgLWQsIC0tZGF0 YWJhc2U9REJOQU1FICAgICAgICAgICBkYXRhYmFzZSBpbiB3aGljaCB0byBjcmVhdGUgYSBzdWJz Y3JpcHRpb25cbiIpKTsKIAlwcmludGYoXygiICAtRCwgLS1wZ2RhdGE9REFUQURJUiAgICAgICAg ICAgIGxvY2F0aW9uIGZvciB0aGUgc3Vic2NyaWJlciBkYXRhIGRpcmVjdG9yeVxuIikpOworCXBy aW50ZihfKCIgIC1sLCAtLWxvZ2Rpcj1MT0dESVIgICAgICAgICAgICAgbG9jYXRpb24gZm9yIHRo ZSBuZXcgbG9nIGRpcmVjdG9yeVxuIikpOwogCXByaW50ZihfKCIgIC1uLCAtLWRyeS1ydW4gICAg ICAgICAgICAgICAgICAgZHJ5IHJ1biwganVzdCBzaG93IHdoYXQgd291bGQgYmUgZG9uZVxuIikp OwogCXByaW50ZihfKCIgIC1wLCAtLXN1YnNjcmliZXItcG9ydD1QT1JUICAgICAgc3Vic2NyaWJl ciBwb3J0IG51bWJlciAoZGVmYXVsdCAlcylcbiIpLCBERUZBVUxUX1NVQl9QT1JUKTsKIAlwcmlu dGYoXygiICAtUCwgLS1wdWJsaXNoZXItc2VydmVyPUNPTk5TVFIgIHB1Ymxpc2hlciBjb25uZWN0 aW9uIHN0cmluZ1xuIikpOwpAQCAtNzAyLDYgKzgzNyw3IEBAIG1vZGlmeV9zdWJzY3JpYmVyX3N5 c2lkKGNvbnN0IHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0KQogCWJvb2wJCWNy Y19vazsKIAlzdHJ1Y3QgdGltZXZhbCB0djsKIAorCWNoYXIJICAgKm91dF9maWxlOwogCWNoYXIJ ICAgKmNtZF9zdHI7CiAKIAlwZ19sb2dfaW5mbygibW9kaWZ5aW5nIHN5c3RlbSBpZGVudGlmaWVy IG9mIHN1YnNjcmliZXIiKTsKQEAgLTczNSw4ICs4NzEsMTQgQEAgbW9kaWZ5X3N1YnNjcmliZXJf c3lzaWQoY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zICpvcHQpCiAJZWxzZQog CQlwZ19sb2dfaW5mbygicnVubmluZyBwZ19yZXNldHdhbCBvbiB0aGUgc3Vic2NyaWJlciIpOwog Ci0JY21kX3N0ciA9IHBzcHJpbnRmKCJcIiVzXCIgLUQgXCIlc1wiID4gXCIlc1wiIiwgcGdfcmVz ZXR3YWxfcGF0aCwKLQkJCQkJICAgc3Vic2NyaWJlcl9kaXIsIERFVk5VTEwpOworCisJaWYgKG9w dC0+bG9nX2RpciAhPSBOVUxMKQorCQlvdXRfZmlsZSA9IHBzcHJpbnRmKCIlcy8lcy8lcy5sb2ci LCBvcHQtPmxvZ19kaXIsIGxvZ190aW1lc3RhbXAsIFNFUlZFUl9MT0dfRklMRV9OQU1FKTsKKwll bHNlCisJCW91dF9maWxlID0gREVWTlVMTDsKKworCWNtZF9zdHIgPSBwc3ByaW50ZigiXCIlc1wi IC1EIFwiJXNcIiA+PiBcIiVzXCIiLCBwZ19yZXNldHdhbF9wYXRoLAorCQkJCQkgICBzdWJzY3Jp YmVyX2Rpciwgb3V0X2ZpbGUpOwogCiAJcGdfbG9nX2RlYnVnKCJwZ19yZXNldHdhbCBjb21tYW5k IGlzOiAlcyIsIGNtZF9zdHIpOwogCkBAIC0xNjUwLDYgKzE3OTIsOSBAQCBzdGFydF9zdGFuZGJ5 X3NlcnZlcihjb25zdCBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCwgYm9vbCBy ZXN0cmljdGVkXwogCWlmIChyZXN0cmljdF9sb2dpY2FsX3dvcmtlcikKIAkJYXBwZW5kUFFFeHBC dWZmZXJTdHIocGdfY3RsX2NtZCwgIiAtbyBcIi1jIG1heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3dv cmtlcnM9MFwiIik7CiAKKwlpZiAob3B0LT5sb2dfZGlyICE9IE5VTEwpCisJCWFwcGVuZFBRRXhw QnVmZmVyKHBnX2N0bF9jbWQsICIgLWwgJXMvJXMvJXMubG9nIiwgb3B0LT5sb2dfZGlyLCBsb2df dGltZXN0YW1wLCBTRVJWRVJfTE9HX0ZJTEVfTkFNRSk7CisKIAlwZ19sb2dfZGVidWcoInBnX2N0 bCBjb21tYW5kIGlzOiAlcyIsIHBnX2N0bF9jbWQtPmRhdGEpOwogCXJjID0gc3lzdGVtKHBnX2N0 bF9jbWQtPmRhdGEpOwogCXBnX2N0bF9zdGF0dXMocGdfY3RsX2NtZC0+ZGF0YSwgcmMpOwpAQCAt MjE4MSw2ICsyMzI2LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXsiYWxsIiwg bm9fYXJndW1lbnQsIE5VTEwsICdhJ30sCiAJCXsiZGF0YWJhc2UiLCByZXF1aXJlZF9hcmd1bWVu dCwgTlVMTCwgJ2QnfSwKIAkJeyJwZ2RhdGEiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ0Qn fSwKKwkJeyJsb2dkaXIiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ2wnfSwKIAkJeyJkcnkt cnVuIiwgbm9fYXJndW1lbnQsIE5VTEwsICduJ30sCiAJCXsic3Vic2NyaWJlci1wb3J0IiwgcmVx dWlyZWRfYXJndW1lbnQsIE5VTEwsICdwJ30sCiAJCXsicHVibGlzaGVyLXNlcnZlciIsIHJlcXVp cmVkX2FyZ3VtZW50LCBOVUxMLCAnUCd9LApAQCAtMjIxNSw2ICsyMzYxLDcgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAJY2hhcgkgICAqY29uc2lzdGVudF9sc247CiAKIAljaGFyCQlw aWRmaWxlW01BWFBHUEFUSF07CisJY2hhcgkgICAqaW50ZXJuYWxfbG9nX2ZpbGU7CiAKIAlwZ19s b2dnaW5nX2luaXQoYXJndlswXSk7CiAJcGdfbG9nZ2luZ19zZXRfbGV2ZWwoUEdfTE9HX1dBUk5J TkcpOwpAQCAtMjIzOSw2ICsyMzg2LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJ LyogRGVmYXVsdCBzZXR0aW5ncyAqLwogCXN1YnNjcmliZXJfZGlyID0gTlVMTDsKIAlvcHQuY29u ZmlnX2ZpbGUgPSBOVUxMOworCW9wdC5sb2dfZGlyID0gTlVMTDsKIAlvcHQucHViX2Nvbm5pbmZv X3N0ciA9IE5VTEw7CiAJb3B0LnNvY2tldF9kaXIgPSBOVUxMOwogCW9wdC5zdWJfcG9ydCA9IERF RkFVTFRfU1VCX1BPUlQ7CkBAIC0yMjY3LDcgKzI0MTUsNyBAQCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKIAogCWdldF9yZXN0cmljdGVkX3Rva2VuKCk7CiAKLQl3aGlsZSAoKGMgPSBnZXRv cHRfbG9uZyhhcmdjLCBhcmd2LCAiYWQ6RDpucDpQOnM6dDpUVTp2IiwKKwl3aGlsZSAoKGMgPSBn ZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiYWQ6RDpsOm5wOlA6czp0OlRVOnYiLAogCQkJCQkJCWxv bmdfb3B0aW9ucywgJm9wdGlvbl9pbmRleCkpICE9IC0xKQogCXsKIAkJc3dpdGNoIChjKQpAQCAt MjI4OCw2ICsyNDM2LDE0IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJCXN1YnNj cmliZXJfZGlyID0gcGdfc3RyZHVwKG9wdGFyZyk7CiAJCQkJY2Fub25pY2FsaXplX3BhdGgoc3Vi c2NyaWJlcl9kaXIpOwogCQkJCWJyZWFrOworCQkJY2FzZSAnbCc6CisJCQkJb3B0LmxvZ19kaXIg PSBwZ19zdHJkdXAob3B0YXJnKTsKKwkJCQljYW5vbmljYWxpemVfcGF0aChvcHQubG9nX2Rpcik7 CisJCQkJbWFrZV9vdXRwdXRfZGlycyhvcHQubG9nX2Rpcik7CisJCQkJaW50ZXJuYWxfbG9nX2Zp bGUgPSBwc3ByaW50ZigiJXMvJXMvJXMubG9nIiwgb3B0LmxvZ19kaXIsIGxvZ190aW1lc3RhbXAs IElOVEVSTkFMX0xPR19GSUxFX05BTUUpOworCQkJCWlmICgoaW50ZXJuYWxfbG9nX2ZpbGVfZnAg PSBsb2dmaWxlX29wZW4oaW50ZXJuYWxfbG9nX2ZpbGUsICJhIikpID09IE5VTEwpCisJCQkJCXBn X2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBsb2cgZmlsZSBcIiVzXCI6ICVtIiwgaW50ZXJuYWxfbG9n X2ZpbGUpOworCQkJCWJyZWFrOwogCQkJY2FzZSAnbic6CiAJCQkJZHJ5X3J1biA9IHRydWU7CiAJ CQkJYnJlYWs7CkBAIC0yNjIxLDUgKzI3NzcsOCBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn dikKIAogCXBnX2xvZ19pbmZvKCJEb25lISIpOwogCisJaWYgKGludGVybmFsX2xvZ19maWxlX2Zw ICE9IE5VTEwpCisJCWZjbG9zZShpbnRlcm5hbF9sb2dfZmlsZV9mcCk7CisKIAlyZXR1cm4gMDsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzA0MF9wZ19jcmVhdGVzdWJz Y3JpYmVyLnBsIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDQwX3BnX2NyZWF0ZXN1YnNjcmli ZXIucGwKaW5kZXggMGMyN2ZjYTdiYjcuLjNhODJmODkzZTI4IDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbAorKysgYi9zcmMvYmlu L3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbApAQCAtMTQsNiArMTQs NyBAQCBwcm9ncmFtX3ZlcnNpb25fb2soJ3BnX2NyZWF0ZXN1YnNjcmliZXInKTsKIHByb2dyYW1f b3B0aW9uc19oYW5kbGluZ19vaygncGdfY3JlYXRlc3Vic2NyaWJlcicpOwogCiBteSAkZGF0YWRp ciA9IFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0ZW1wZGlyOworbXkgJGxvZ2RpciA9IFBvc3Rn cmVTUUw6OlRlc3Q6OlV0aWxzOjp0ZW1wZGlyICsgIi9sb2dkaXIiOwogCiAjIEdlbmVyYXRlIGEg ZGF0YWJhc2Ugd2l0aCBhIG5hbWUgbWFkZSBvZiBhIHJhbmdlIG9mIEFTQ0lJIGNoYXJhY3RlcnMu CiAjIEV4dHJhY3RlZCBmcm9tIDAwMl9wZ191cGdyYWRlLnBsLgpAQCAtMzYyLDkgKzM2MywyNSBA QCBjb21tYW5kX29rKAogCQknLS1zdWJzY3JpcHRpb24nID0+ICdzdWIyJywKIAkJJy0tZGF0YWJh c2UnID0+ICRkYjEsCiAJCSctLWRhdGFiYXNlJyA9PiAkZGIyLAorCQknLS1sb2dkaXInID0+ICRs b2dkaXIsCiAJXSwKIAkncnVuIHBnX2NyZWF0ZXN1YnNjcmliZXIgLS1kcnktcnVuIG9uIG5vZGUg UycpOwogCisjIENoZWNrIHRoYXQgdGhlIGxvZyBmaWxlcyB3ZXJlIGNyZWF0ZWQKK215IEBzZXJ2 ZXJfbG9nX2ZpbGVzID0gZ2xvYiAiJGxvZ2Rpci8qL3BnX2NyZWF0ZXN1YnNjcmliZXJfc2VydmVy LmxvZyI7Citpcyggc2NhbGFyKEBzZXJ2ZXJfbG9nX2ZpbGVzKSwgMSwgIgorICAgIHBnX2NyZWF0 ZXN1YnNjcmliZXJfc2VydmVyLmxvZyBmaWxlIHdhcyBjcmVhdGVkIik7CitteSAkc2VydmVyX2xv Z19maWxlX3NpemUgPSAtcyBzaGlmdChAc2VydmVyX2xvZ19maWxlcyk7Citpc250KCRzZXJ2ZXJf bG9nX2ZpbGVfc2l6ZSwgMCwKKwkicGdfY3JlYXRlc3Vic2NyaWJlcl9zZXJ2ZXIubG9nIGZpbGUg bm90IGVtcHR5Iik7CisKK215IEBpbnRlcm5hbF9sb2dfZmlsZXMgPSBnbG9iICIkbG9nZGlyLyov cGdfY3JlYXRlc3Vic2NyaWJlcl9pbnRlcm5hbC5sb2ciOworaXMoIHNjYWxhcihAaW50ZXJuYWxf bG9nX2ZpbGVzKSwgMSwgIgorICAgIHBnX2NyZWF0ZXN1YnNjcmliZXJfaW50ZXJuYWwubG9nIGZp bGUgd2FzIGNyZWF0ZWQiKTsKK215ICRpbnRlcm5hbF9sb2dfZmlsZV9zaXplID0gLXMgc2hpZnQo QGludGVybmFsX2xvZ19maWxlcyk7Citpc250KCRpbnRlcm5hbF9sb2dfZmlsZV9zaXplLCAwLAor CSJwZ19jcmVhdGVzdWJzY3JpYmVyX2ludGVybmFsLmxvZyBmaWxlIG5vdCBlbXB0eSIpOworCiAj IENoZWNrIGlmIG5vZGUgUyBpcyBzdGlsbCBhIHN0YW5kYnkKICRub2RlX3MtPnN0YXJ0OwogaXMo JG5vZGVfcy0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdTRUxFQ1QgcGdfY2F0YWxvZy5wZ19pc19p bl9yZWNvdmVyeSgpJyksCi0tIAoyLjM0LjEKCg== --000000000000299981064d37c18f--