switch (context)
{ case ASTREAMER_MEMBER_HEADER: /* Must copy provided data so we have the option to modify it. */
memcpy(&mystreamer->member, member, sizeof(astreamer_member));
/* *Onv12+,skipstandby.signalandeditpostgresql.auto.conf;on *olderversions,skiprecovery.conf.
*/ if (mystreamer->is_recovery_guc_supported)
{
mystreamer->skip_file =
(strcmp(member->pathname, "standby.signal") == 0);
mystreamer->is_postgresql_auto_conf =
(strcmp(member->pathname, "postgresql.auto.conf") == 0); if (mystreamer->is_postgresql_auto_conf)
{ /* Remember we saw it so we don't add it again. */
mystreamer->found_postgresql_auto_conf = true;
/* Increment length by data to be injected. */
mystreamer->member.size +=
mystreamer->recoveryconfcontents->len;
/* *Zapdataandlenbecausethearchiveheaderisno *longervalid;somesubsequentastreamermustregenerate *itifit'snecessary.
*/
data = NULL;
len = 0;
}
} else
mystreamer->skip_file =
(strcmp(member->pathname, "recovery.conf") == 0);
/* Do not forward if the file is to be skipped. */ if (mystreamer->skip_file) return; break;
case ASTREAMER_MEMBER_CONTENTS: /* Do not forward if the file is to be skipped. */ if (mystreamer->skip_file) return; break;
case ASTREAMER_MEMBER_TRAILER: /* Do not forward it the file is to be skipped. */ if (mystreamer->skip_file) return;
/* Append provided content to whatever we already sent. */ if (mystreamer->is_postgresql_auto_conf)
astreamer_content(mystreamer->base.bbs_next, member,
mystreamer->recoveryconfcontents->data,
mystreamer->recoveryconfcontents->len,
ASTREAMER_MEMBER_CONTENTS); break;
case ASTREAMER_ARCHIVE_TRAILER: if (mystreamer->is_recovery_guc_supported)
{ /* *Ifwedidn'talreadyfind(andthusmodify) *postgresql.auto.conf,injectitasanadditionalarchive *membernow.
*/ if (!mystreamer->found_postgresql_auto_conf)
astreamer_inject_file(mystreamer->base.bbs_next, "postgresql.auto.conf",
mystreamer->recoveryconfcontents->data,
mystreamer->recoveryconfcontents->len);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.