Commit f7cd6b0
gh-150107: Fix asyncio sendfile fallback ignoring non-zero offset
The fallback paths in BaseEventLoop._sock_sendfile_fallback and
_sendfile_fallback only seeked the file when offset was truthy, so an
offset of 0 was respected but later non-zero offsets were dropped when
the file lacked seek tracking. Seek whenever the file supports seek().
Also seek the CRT file pointer on Windows TransmitFile, which ignores
OVERLAPPED.Offset for handles not opened with FILE_FLAG_OVERLAPPED.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>1 parent 1d28f9a commit f7cd6b0
4 files changed
Lines changed: 34 additions & 3 deletions
File tree
- Lib
- asyncio
- test/test_asyncio
- Misc/NEWS.d/next/Core_and_Builtins
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
969 | 969 | | |
970 | 970 | | |
971 | 971 | | |
972 | | - | |
| 972 | + | |
973 | 973 | | |
974 | 974 | | |
975 | 975 | | |
| |||
1286 | 1286 | | |
1287 | 1287 | | |
1288 | 1288 | | |
1289 | | - | |
1290 | 1289 | | |
1291 | 1290 | | |
1292 | 1291 | | |
| |||
1295 | 1294 | | |
1296 | 1295 | | |
1297 | 1296 | | |
1298 | | - | |
| 1297 | + | |
1299 | 1298 | | |
1300 | 1299 | | |
1301 | 1300 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
610 | 610 | | |
611 | 611 | | |
612 | 612 | | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
613 | 616 | | |
614 | 617 | | |
615 | 618 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
228 | 228 | | |
229 | 229 | | |
230 | 230 | | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
231 | 257 | | |
232 | 258 | | |
233 | 259 | | |
| |||
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
0 commit comments