Home Explore Blog CI



postgresql

64th chunk of `doc/src/sgml/protocol.sgml`
357a21dc7f5b9fb49160a061949ebbaa8b987a0d2e2748c50000000100000fa0
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int32</term>
       <listitem>
        <para>
         The length of the function result value, in bytes (this count
         does not include itself).  Can be zero.
         As a special case, -1 indicates a NULL function result.
         No value bytes follow in the NULL case.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Byte<replaceable>n</replaceable></term>
       <listitem>
        <para>
         The value of the function result, in the format indicated by
         the associated format code.
         <replaceable>n</replaceable> is the above length.
        </para>
       </listitem>
      </varlistentry>
     </variablelist>
    </listitem>
   </varlistentry>

   <varlistentry id="protocol-message-formats-GSSENCRequest">
    <term>GSSENCRequest (F)</term>
    <listitem>
     <variablelist>
      <varlistentry>
       <term>Int32(8)</term>
       <listitem>
        <para>
         Length of message contents in bytes, including self.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int32(80877104)</term>
       <listitem>
        <para>
         The <acronym>GSSAPI</acronym> Encryption request code.  The value is chosen to contain
         <literal>1234</literal> in the most significant 16 bits, and <literal>5680</literal> in the
         least significant 16 bits.  (To avoid confusion, this code
         must not be the same as any protocol version number.)
        </para>
       </listitem>
      </varlistentry>
     </variablelist>
    </listitem>
   </varlistentry>

   <varlistentry id="protocol-message-formats-GSSResponse">
    <term>GSSResponse (F)</term>
    <listitem>
     <variablelist>
      <varlistentry>
       <term>Byte1('p')</term>
       <listitem>
        <para>
         Identifies the message as a GSSAPI or SSPI response. Note that
         this is also used for SASL and password response messages.
         The exact message type can be deduced from the context.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int32</term>
       <listitem>
        <para>
         Length of message contents in bytes, including self.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Byte<replaceable>n</replaceable></term>
       <listitem>
        <para>
         GSSAPI/SSPI specific message data.
        </para>
       </listitem>
      </varlistentry>
     </variablelist>
    </listitem>
   </varlistentry>

   <varlistentry id="protocol-message-formats-NegotiateProtocolVersion">
    <term>NegotiateProtocolVersion (B)</term>
    <listitem>
     <variablelist>
      <varlistentry>
       <term>Byte1('v')</term>
       <listitem>
        <para>
         Identifies the message as a protocol version negotiation
         message.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int32</term>
       <listitem>
        <para>
         Length of message contents in bytes, including self.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int32</term>
       <listitem>
        <para>
         Newest minor protocol version supported by the server
         for the major protocol version requested by the client.
        </para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>Int32</term>
       <listitem>
        <para>
         Number of protocol options not recognized by the server.
        </para>
       </listitem>
      </varlistentry>
     </variablelist>

     <para>
      Then, for protocol option not recognized by the server, there
      is the following:
     </para>

     <variablelist>
      <varlistentry>
       <term>String</term>
       <listitem>
        <para>
         The option name.
        </para>
       </listitem>
      </varlistentry>
 

Title: PostgreSQL Protocol Message Formats
Summary
This section describes the message formats for various PostgreSQL protocol messages, including GSSENCRequest, GSSResponse, and NegotiateProtocolVersion, detailing the structure and content of each message type, such as message identifiers, lengths, GSSAPI/SSPI specific data, protocol version numbers, and unrecognized protocol options, which are used to handle authentication, encryption, and protocol version negotiation in PostgreSQL database operations.