• Alvaro Herrera's avatar
    Modernise pg_hba.conf token processing · e5e2fc84
    Alvaro Herrera authored
    The previous coding was ugly, as it marked special tokens as such in the
    wrong stage, relying on workarounds to figure out if they had been
    quoted in the original or not.  This made it impossible to have specific
    keywords be recognized as such only in certain positions in HBA lines,
    for example.  Fix by restructuring the parser code so that it remembers
    whether tokens were quoted or not.  This eliminates widespread knowledge
    of possible known keywords for all fields.
    
    Also improve memory management in this area, to use memory contexts that
    are reset as a whole instead of using retail pfrees; this removes a
    whole lotta crufty (and probably slow) code.
    
    Instead of calling strlen() three times in next_field_expand on the
    returned token to find out whether there was a comma (and strip it),
    pass back the info directly from the callee, which is simpler.
    
    In passing, update historical artifacts in hba.c API.
    
    Authors: Brendan Jurd, Alvaro Herrera
    Reviewed by Pavel Stehule
    e5e2fc84
auth.c 72.7 KB