• Gerrit Renker's avatar
    dccp: Integration of dynamic feature activation - part 1 (socket setup) · 6eb55d17
    Gerrit Renker authored
    This first patch out of three replaces the hardcoded default settings with
    initialisation code for the dynamic feature negotiation.
    
    The patch also ensures that the client feature-negotiation queue is flushed
    only when entering the OPEN state.
    
    Since confirmed Change options are removed as soon as they are confirmed
    (in the DCCP-Response), this ensures that Confirm options are retransmitted.
    
    Note on retransmitting Confirm options:
    ---------------------------------------
    Implementation experience showed that it is necessary to retransmit Confirm
    options. Thanks to Leandro Melo de Sales who reported a bug in an earlier
    revision of the patch set, resulting from not retransmitting these options.
    
    As long as the client is in PARTOPEN, it needs to retransmit the Confirm
    options for the Change options received on the DCCP-Response from the server.
    
    Otherwise, if the packet containing the Confirm options gets dropped in the
    network, the connection aborts due to undefined feature negotiation state.
    Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
    Acked-by: default avatarIan McDonald <ian.mcdonald@jandi.co.nz>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6eb55d17
proto.c 27.4 KB