• Gerrit Renker's avatar
    dccp: Integration of dynamic feature activation - part 3 (client side) · c49b2272
    Gerrit Renker authored
    This integrates feature-activation in the client, with these details:
    
     1. When dccp_parse_options() fails, the reset code is already set, request_sent
        _state_process() currently overrides this with `Packet Error', which is not
        intended - so changed to use the reset code set in dccp_parse_options();
    
     2. There was a FIXME to change the error code when dccp_ackvec_add() fails.
        I have looked this up and found that: 
        * the check whether ackno < ISN is already made earlier,
        * this Response is likely the 1st packet with an Ackno that the client gets,
        * so when dccp_ackvec_add() fails, the reason is likely not a packet error.
    
     3. When feature negotiation fails, the socket should be marked as not usable,
        so that the application is notified that an error occurs. This is achieved
        by a new label, which uses an error code of `Aborted' and which sets the
        socket state to CLOSED, as well as sk_err.
    
     4. Avoids parsing the Ack twice in Respond state by not doing option processing
        again in dccp_rcv_respond_partopen_state_process (as option processing has
        already been done on the request_sock in dccp_check_req).    
    
    Since this addresses congestion-control initialisation, a corresponding
    FIXME has been removed.
    Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
    Acked-by: default avatarIan McDonald <ian.mcdonald@jandi.co.nz>
    c49b2272
input.c 22 KB