{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":311175268,"defaultBranch":"master","name":"pyopenssl","ownerLogin":"webknjaz","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2020-11-08T23:27:08.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/578543?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1664060500.534826","currentOid":""},"activityList":{"items":[{"before":"873866aad430ec2ca0ce8407e35e417ed9d48fc3","after":"9836c42b2626edd60a6f92b97bc866e0e619cc36","ref":"refs/heads/bugfixes/176-sendall-want-write-read-processing","pushedAt":"2024-01-23T21:27:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"webknjaz","name":"Sviatoslav Sydorenko (Святослав Сидоренко)","path":"/webknjaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/578543?s=80&v=4"},"commit":{"message":"Retry on `WANT_WRITE` & `WANT_READ` in `sendall()`\n\nThis change introduces retries in `OpenSSL.SSL.Connection.sendall()`\nwhen `WANT_WRITE_ERROR` or `WANT_READ_ERROR` happen.\n\nIt relies on `SSL_MODE_ENABLE_PARTIAL_WRITE` being set on the context,\nthat changes the mode of `SSL_write()` to return errors only if zero\nbytes has been sent making it safe to retry in these cases.\n\nIdeally, the calling code is supposed to `poll()`/`select()` the\nsocket to know when it's okay to attempt the next retry (hence it is\nreadable or writable) but it's not available in the `sendall()` method\nand just retrying the operation is good enough.\n\nFixes #176\n\nRefs:\n* http://openssl.6102.n7.nabble.com/SSL-MODE-ACCEPT-MOVING-WRITE-BUFFER-td6421.html\n* https://stackoverflow.com/a/28992313/595220\n* https://www.openssl.org/docs/manmaster/man3/SSL_write.html\n* https://stackoverflow.com/a/20817394/595220","shortMessageHtmlLink":"Retry on WANT_WRITE & WANT_READ in sendall()"}},{"before":"4c70c577325e5e9fbbd8881b98de7a815d97dcc1","after":"9dae3c68db8783e053d73e5b538be620722bda9c","ref":"refs/heads/testing/176-sendall-want-write","pushedAt":"2024-01-23T19:00:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"webknjaz","name":"Sviatoslav Sydorenko (Святослав Сидоренко)","path":"/webknjaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/578543?s=80&v=4"},"commit":{"message":"Add a test for `WANT_READ` during `sendall()`","shortMessageHtmlLink":"Add a test for WANT_READ during sendall()"}},{"before":"f98ed653ec374a0d1ccb7836113dca742f50030c","after":"4c70c577325e5e9fbbd8881b98de7a815d97dcc1","ref":"refs/heads/testing/176-sendall-want-write","pushedAt":"2024-01-23T18:59:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"webknjaz","name":"Sviatoslav Sydorenko (Святослав Сидоренко)","path":"/webknjaz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/578543?s=80&v=4"},"commit":{"message":"Add a test for `WANT_READ` during `sendall()`","shortMessageHtmlLink":"Add a test for WANT_READ during sendall()"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAD50--YQA","startCursor":null,"endCursor":null}},"title":"Activity · webknjaz/pyopenssl"}