{"action":"created","comment":{"url":"https://api.github.com/repos/shazow/urllib3/pulls/comments/48002689","id":48002689,"diff_hunk":"@@ -110,7 +110,7 @@ def set_ciphers(self, cipher_suite):\n                 )\n             self.ciphers = cipher_suite\n \n-        def wrap_socket(self, socket, server_hostname=None):\n+        def wrap_socket(self, socket, server_hostname=None, server_side=False):","path":"urllib3/util/ssl_.py","position":5,"original_position":5,"commit_id":"e3c38272137d8a2563e57a8caebf2b7890f0fa4f","original_commit_id":"448b612c7a79c2f67ac1b1c3774c3be1bc002b15","user":{"login":"Lukasa","id":1382556,"avatar_url":"https://avatars.githubusercontent.com/u/1382556?v=3","gravatar_id":"","url":"https://api.github.com/users/Lukasa","html_url":"https://github.com/Lukasa","followers_url":"https://api.github.com/users/Lukasa/followers","following_url":"https://api.github.com/users/Lukasa/following{/other_user}","gists_url":"https://api.github.com/users/Lukasa/gists{/gist_id}","starred_url":"https://api.github.com/users/Lukasa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Lukasa/subscriptions","organizations_url":"https://api.github.com/users/Lukasa/orgs","repos_url":"https://api.github.com/users/Lukasa/repos","events_url":"https://api.github.com/users/Lukasa/events{/privacy}","received_events_url":"https://api.github.com/users/Lukasa/received_events","type":"User","site_admin":false},"body":"Yeah, I stole this name from the actual `wrap_socket` function in the `ssl` module. So you can take it up with python-dev. ;)","created_at":"2015-12-18T08:12:13Z","updated_at":"2015-12-18T08:12:13Z","html_url":"https://github.com/shazow/urllib3/pull/762#discussion_r48002689","pull_request_url":"https://api.github.com/repos/shazow/urllib3/pulls/762","_links":{"self":{"href":"https://api.github.com/repos/shazow/urllib3/pulls/comments/48002689"},"html":{"href":"https://github.com/shazow/urllib3/pull/762#discussion_r48002689"},"pull_request":{"href":"https://api.github.com/repos/shazow/urllib3/pulls/762"}}},"pull_request":{"url":"https://api.github.com/repos/shazow/urllib3/pulls/762","id":53737792,"html_url":"https://github.com/shazow/urllib3/pull/762","diff_url":"https://github.com/shazow/urllib3/pull/762.diff","patch_url":"https://github.com/shazow/urllib3/pull/762.patch","issue_url":"https://api.github.com/repos/shazow/urllib3/issues/762","number":762,"state":"open","locked":false,"title":"Add SOCKS support via contrib module (AKA SOCKS support, take 4)","user":{"login":"Lukasa","id":1382556,"avatar_url":"https://avatars.githubusercontent.com/u/1382556?v=3","gravatar_id":"","url":"https://api.github.com/users/Lukasa","html_url":"https://github.com/Lukasa","followers_url":"https://api.github.com/users/Lukasa/followers","following_url":"https://api.github.com/users/Lukasa/following{/other_user}","gists_url":"https://api.github.com/users/Lukasa/gists{/gist_id}","starred_url":"https://api.github.com/users/Lukasa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Lukasa/subscriptions","organizations_url":"https://api.github.com/users/Lukasa/orgs","repos_url":"https://api.github.com/users/Lukasa/repos","events_url":"https://api.github.com/users/Lukasa/events{/privacy}","received_events_url":"https://api.github.com/users/Lukasa/received_events","type":"User","site_admin":false},"body":"@Anorov did fantastic work in #692 but did not have time to go back through and respond to code review, so I've adopted the work done there and refactored it. Credit should be joint between me and @Anorov should this satisfy the bounty: however, @Anorov has previously claimed they don't want the bounty. For that reason, if @Anorov doesn't change their mind and this submission does qualify for it, I'll donate the bounty, in full, to PyLadies. (I don't need it because I'm paid full-time to work on libraries like this.)\r\n\r\nThis change essentially pulls most of the work done in #692 out into a contrib module. This allows us to avoid having to change too many things in the mainline of urllib3, and also ensures that it is not affected by the requirements to have tests and coverage. This helps us get the work initially off the ground and out into the world.\r\n\r\nIf we decide to take this change as-is, I'll also volunteer to be \"on the hook\" for supporting it going forward until such time as I can add sufficient test coverage for it.\r\n\r\nFeedback is encouraged!","created_at":"2015-12-15T17:48:24Z","updated_at":"2015-12-18T08:12:13Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3d6c6429322f4c7f601844ba74e6271ce5649ae1","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/shazow/urllib3/pulls/762/commits","review_comments_url":"https://api.github.com/repos/shazow/urllib3/pulls/762/comments","review_comment_url":"https://api.github.com/repos/shazow/urllib3/pulls/comments{/number}","comments_url":"https://api.github.com/repos/shazow/urllib3/issues/762/comments","statuses_url":"https://api.github.com/repos/shazow/urllib3/statuses/e3c38272137d8a2563e57a8caebf2b7890f0fa4f","head":{"label":"Lukasa:lukasa/socks","ref":"lukasa/socks","sha":"e3c38272137d8a2563e57a8caebf2b7890f0fa4f","user":{"login":"Lukasa","id":1382556,"avatar_url":"https://avatars.githubusercontent.com/u/1382556?v=3","gravatar_id":"","url":"https://api.github.com/users/Lukasa","html_url":"https://github.com/Lukasa","followers_url":"https://api.github.com/users/Lukasa/followers","following_url":"https://api.github.com/users/Lukasa/following{/other_user}","gists_url":"https://api.github.com/users/Lukasa/gists{/gist_id}","starred_url":"https://api.github.com/users/Lukasa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Lukasa/subscriptions","organizations_url":"https://api.github.com/users/Lukasa/orgs","repos_url":"https://api.github.com/users/Lukasa/repos","events_url":"https://api.github.com/users/Lukasa/events{/privacy}","received_events_url":"https://api.github.com/users/Lukasa/received_events","type":"User","site_admin":false},"repo":{"id":7964060,"name":"urllib3","full_name":"Lukasa/urllib3","owner":{"login":"Lukasa","id":1382556,"avatar_url":"https://avatars.githubusercontent.com/u/1382556?v=3","gravatar_id":"","url":"https://api.github.com/users/Lukasa","html_url":"https://github.com/Lukasa","followers_url":"https://api.github.com/users/Lukasa/followers","following_url":"https://api.github.com/users/Lukasa/following{/other_user}","gists_url":"https://api.github.com/users/Lukasa/gists{/gist_id}","starred_url":"https://api.github.com/users/Lukasa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Lukasa/subscriptions","organizations_url":"https://api.github.com/users/Lukasa/orgs","repos_url":"https://api.github.com/users/Lukasa/repos","events_url":"https://api.github.com/users/Lukasa/events{/privacy}","received_events_url":"https://api.github.com/users/Lukasa/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Lukasa/urllib3","description":"Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more.","fork":true,"url":"https://api.github.com/repos/Lukasa/urllib3","forks_url":"https://api.github.com/repos/Lukasa/urllib3/forks","keys_url":"https://api.github.com/repos/Lukasa/urllib3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Lukasa/urllib3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Lukasa/urllib3/teams","hooks_url":"https://api.github.com/repos/Lukasa/urllib3/hooks","issue_events_url":"https://api.github.com/repos/Lukasa/urllib3/issues/events{/number}","events_url":"https://api.github.com/repos/Lukasa/urllib3/events","assignees_url":"https://api.github.com/repos/Lukasa/urllib3/assignees{/user}","branches_url":"https://api.github.com/repos/Lukasa/urllib3/branches{/branch}","tags_url":"https://api.github.com/repos/Lukasa/urllib3/tags","blobs_url":"https://api.github.com/repos/Lukasa/urllib3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Lukasa/urllib3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Lukasa/urllib3/git/refs{/sha}","trees_url":"https://api.github.com/repos/Lukasa/urllib3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Lukasa/urllib3/statuses/{sha}","languages_url":"https://api.github.com/repos/Lukasa/urllib3/languages","stargazers_url":"https://api.github.com/repos/Lukasa/urllib3/stargazers","contributors_url":"https://api.github.com/repos/Lukasa/urllib3/contributors","subscribers_url":"https://api.github.com/repos/Lukasa/urllib3/subscribers","subscription_url":"https://api.github.com/repos/Lukasa/urllib3/subscription","commits_url":"https://api.github.com/repos/Lukasa/urllib3/commits{/sha}","git_commits_url":"https://api.github.com/repos/Lukasa/urllib3/git/commits{/sha}","comments_url":"https://api.github.com/repos/Lukasa/urllib3/comments{/number}","issue_comment_url":"https://api.github.com/repos/Lukasa/urllib3/issues/comments{/number}","contents_url":"https://api.github.com/repos/Lukasa/urllib3/contents/{+path}","compare_url":"https://api.github.com/repos/Lukasa/urllib3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Lukasa/urllib3/merges","archive_url":"https://api.github.com/repos/Lukasa/urllib3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Lukasa/urllib3/downloads","issues_url":"https://api.github.com/repos/Lukasa/urllib3/issues{/number}","pulls_url":"https://api.github.com/repos/Lukasa/urllib3/pulls{/number}","milestones_url":"https://api.github.com/repos/Lukasa/urllib3/milestones{/number}","notifications_url":"https://api.github.com/repos/Lukasa/urllib3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Lukasa/urllib3/labels{/name}","releases_url":"https://api.github.com/repos/Lukasa/urllib3/releases{/id}","created_at":"2013-02-01T18:51:13Z","updated_at":"2015-02-07T19:27:26Z","pushed_at":"2015-12-17T18:30:58Z","git_url":"git://github.com/Lukasa/urllib3.git","ssh_url":"git@github.com:Lukasa/urllib3.git","clone_url":"https://github.com/Lukasa/urllib3.git","svn_url":"https://github.com/Lukasa/urllib3","homepage":"http://urllib3.readthedocs.org/","size":2507,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"shazow:master","ref":"master","sha":"47d7a9de5fdfc863708a2a83b0c84fc329fff170","user":{"login":"shazow","id":6292,"avatar_url":"https://avatars.githubusercontent.com/u/6292?v=3","gravatar_id":"","url":"https://api.github.com/users/shazow","html_url":"https://github.com/shazow","followers_url":"https://api.github.com/users/shazow/followers","following_url":"https://api.github.com/users/shazow/following{/other_user}","gists_url":"https://api.github.com/users/shazow/gists{/gist_id}","starred_url":"https://api.github.com/users/shazow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shazow/subscriptions","organizations_url":"https://api.github.com/users/shazow/orgs","repos_url":"https://api.github.com/users/shazow/repos","events_url":"https://api.github.com/users/shazow/events{/privacy}","received_events_url":"https://api.github.com/users/shazow/received_events","type":"User","site_admin":false},"repo":{"id":2410676,"name":"urllib3","full_name":"shazow/urllib3","owner":{"login":"shazow","id":6292,"avatar_url":"https://avatars.githubusercontent.com/u/6292?v=3","gravatar_id":"","url":"https://api.github.com/users/shazow","html_url":"https://github.com/shazow","followers_url":"https://api.github.com/users/shazow/followers","following_url":"https://api.github.com/users/shazow/following{/other_user}","gists_url":"https://api.github.com/users/shazow/gists{/gist_id}","starred_url":"https://api.github.com/users/shazow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shazow/subscriptions","organizations_url":"https://api.github.com/users/shazow/orgs","repos_url":"https://api.github.com/users/shazow/repos","events_url":"https://api.github.com/users/shazow/events{/privacy}","received_events_url":"https://api.github.com/users/shazow/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/shazow/urllib3","description":"Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more.","fork":false,"url":"https://api.github.com/repos/shazow/urllib3","forks_url":"https://api.github.com/repos/shazow/urllib3/forks","keys_url":"https://api.github.com/repos/shazow/urllib3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/shazow/urllib3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/shazow/urllib3/teams","hooks_url":"https://api.github.com/repos/shazow/urllib3/hooks","issue_events_url":"https://api.github.com/repos/shazow/urllib3/issues/events{/number}","events_url":"https://api.github.com/repos/shazow/urllib3/events","assignees_url":"https://api.github.com/repos/shazow/urllib3/assignees{/user}","branches_url":"https://api.github.com/repos/shazow/urllib3/branches{/branch}","tags_url":"https://api.github.com/repos/shazow/urllib3/tags","blobs_url":"https://api.github.com/repos/shazow/urllib3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/shazow/urllib3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/shazow/urllib3/git/refs{/sha}","trees_url":"https://api.github.com/repos/shazow/urllib3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/shazow/urllib3/statuses/{sha}","languages_url":"https://api.github.com/repos/shazow/urllib3/languages","stargazers_url":"https://api.github.com/repos/shazow/urllib3/stargazers","contributors_url":"https://api.github.com/repos/shazow/urllib3/contributors","subscribers_url":"https://api.github.com/repos/shazow/urllib3/subscribers","subscription_url":"https://api.github.com/repos/shazow/urllib3/subscription","commits_url":"https://api.github.com/repos/shazow/urllib3/commits{/sha}","git_commits_url":"https://api.github.com/repos/shazow/urllib3/git/commits{/sha}","comments_url":"https://api.github.com/repos/shazow/urllib3/comments{/number}","issue_comment_url":"https://api.github.com/repos/shazow/urllib3/issues/comments{/number}","contents_url":"https://api.github.com/repos/shazow/urllib3/contents/{+path}","compare_url":"https://api.github.com/repos/shazow/urllib3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/shazow/urllib3/merges","archive_url":"https://api.github.com/repos/shazow/urllib3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/shazow/urllib3/downloads","issues_url":"https://api.github.com/repos/shazow/urllib3/issues{/number}","pulls_url":"https://api.github.com/repos/shazow/urllib3/pulls{/number}","milestones_url":"https://api.github.com/repos/shazow/urllib3/milestones{/number}","notifications_url":"https://api.github.com/repos/shazow/urllib3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/shazow/urllib3/labels{/name}","releases_url":"https://api.github.com/repos/shazow/urllib3/releases{/id}","created_at":"2011-09-18T18:08:28Z","updated_at":"2015-12-17T13:10:59Z","pushed_at":"2015-12-17T22:16:32Z","git_url":"git://github.com/shazow/urllib3.git","ssh_url":"git@github.com:shazow/urllib3.git","clone_url":"https://github.com/shazow/urllib3.git","svn_url":"https://github.com/shazow/urllib3","homepage":"http://urllib3.readthedocs.org/","size":4437,"stargazers_count":946,"watchers_count":946,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":295,"mirror_url":null,"open_issues_count":92,"forks":295,"open_issues":92,"watchers":946,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/shazow/urllib3/pulls/762"},"html":{"href":"https://github.com/shazow/urllib3/pull/762"},"issue":{"href":"https://api.github.com/repos/shazow/urllib3/issues/762"},"comments":{"href":"https://api.github.com/repos/shazow/urllib3/issues/762/comments"},"review_comments":{"href":"https://api.github.com/repos/shazow/urllib3/pulls/762/comments"},"review_comment":{"href":"https://api.github.com/repos/shazow/urllib3/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/shazow/urllib3/pulls/762/commits"},"statuses":{"href":"https://api.github.com/repos/shazow/urllib3/statuses/e3c38272137d8a2563e57a8caebf2b7890f0fa4f"}}}}