Skip to content
  • Michael Olbrich's avatar
    souphttpsrc: reset read_position when reading fails · 8666b7d8
    Michael Olbrich authored
    souphttpsrc maintains two variables for the position:
     * 'request_position' is where we want to be
     * 'read_position' is where we are
    During Normal operations both are updated in sync when data arrives. A seek
    changes 'request_position' but not 'read_position'.
    When the two positions get out of sync, then a new request is send and the
    'Range' header is adjusted to the current 'request_position'.
    
    Without this patch, if reading fails, then the source is destroyed. This
    triggers a new request, but the range remains unchanged. As a result, the
    old range is used and old data will be read.
    
    Changing the 'read_position' to -1 makes it explicitly different from
    'request_position' and as a result the 'Range' header is updated correctly.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=773509
    8666b7d8