{"action":"opened","number":15,"pull_request":{"url":"https://api.github.com/repos/TheFox/smtpd/pulls/15","id":208027960,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA4MDI3OTYw","html_url":"https://github.com/TheFox/smtpd/pull/15","diff_url":"https://github.com/TheFox/smtpd/pull/15.diff","patch_url":"https://github.com/TheFox/smtpd/pull/15.patch","issue_url":"https://api.github.com/repos/TheFox/smtpd/issues/15","number":15,"state":"open","locked":false,"title":"Ensure separator broken over multiple packets doesn't break smtpd","user":{"login":"benwhite-deltas","id":6674452,"node_id":"MDQ6VXNlcjY2NzQ0NTI=","avatar_url":"https://avatars0.githubusercontent.com/u/6674452?v=4","gravatar_id":"","url":"https://api.github.com/users/benwhite-deltas","html_url":"https://github.com/benwhite-deltas","followers_url":"https://api.github.com/users/benwhite-deltas/followers","following_url":"https://api.github.com/users/benwhite-deltas/following{/other_user}","gists_url":"https://api.github.com/users/benwhite-deltas/gists{/gist_id}","starred_url":"https://api.github.com/users/benwhite-deltas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benwhite-deltas/subscriptions","organizations_url":"https://api.github.com/users/benwhite-deltas/orgs","repos_url":"https://api.github.com/users/benwhite-deltas/repos","events_url":"https://api.github.com/users/benwhite-deltas/events{/privacy}","received_events_url":"https://api.github.com/users/benwhite-deltas/received_events","type":"User","site_admin":false},"body":"Where the `\\r` and the `\\n` of the `Client::MSG_SEPARATOR` string appear in separate packets received from a client's socket, this is not currently handled by the `Client::dataRecv()` method and instead the server appears then to hang, expecting more data from the client.\r\n\r\nThis pull request allows this edge case to be handled correctly.","created_at":"2018-08-13T16:09:20Z","updated_at":"2018-08-13T16:09:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/TheFox/smtpd/pulls/15/commits","review_comments_url":"https://api.github.com/repos/TheFox/smtpd/pulls/15/comments","review_comment_url":"https://api.github.com/repos/TheFox/smtpd/pulls/comments{/number}","comments_url":"https://api.github.com/repos/TheFox/smtpd/issues/15/comments","statuses_url":"https://api.github.com/repos/TheFox/smtpd/statuses/203bed0831de4ab01d0da6b9d0532907264a9694","head":{"label":"benwhite-deltas:broken-recv","ref":"broken-recv","sha":"203bed0831de4ab01d0da6b9d0532907264a9694","user":{"login":"benwhite-deltas","id":6674452,"node_id":"MDQ6VXNlcjY2NzQ0NTI=","avatar_url":"https://avatars0.githubusercontent.com/u/6674452?v=4","gravatar_id":"","url":"https://api.github.com/users/benwhite-deltas","html_url":"https://github.com/benwhite-deltas","followers_url":"https://api.github.com/users/benwhite-deltas/followers","following_url":"https://api.github.com/users/benwhite-deltas/following{/other_user}","gists_url":"https://api.github.com/users/benwhite-deltas/gists{/gist_id}","starred_url":"https://api.github.com/users/benwhite-deltas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benwhite-deltas/subscriptions","organizations_url":"https://api.github.com/users/benwhite-deltas/orgs","repos_url":"https://api.github.com/users/benwhite-deltas/repos","events_url":"https://api.github.com/users/benwhite-deltas/events{/privacy}","received_events_url":"https://api.github.com/users/benwhite-deltas/received_events","type":"User","site_admin":false},"repo":{"id":117114598,"node_id":"MDEwOlJlcG9zaXRvcnkxMTcxMTQ1OTg=","name":"smtpd","full_name":"benwhite-deltas/smtpd","owner":{"login":"benwhite-deltas","id":6674452,"node_id":"MDQ6VXNlcjY2NzQ0NTI=","avatar_url":"https://avatars0.githubusercontent.com/u/6674452?v=4","gravatar_id":"","url":"https://api.github.com/users/benwhite-deltas","html_url":"https://github.com/benwhite-deltas","followers_url":"https://api.github.com/users/benwhite-deltas/followers","following_url":"https://api.github.com/users/benwhite-deltas/following{/other_user}","gists_url":"https://api.github.com/users/benwhite-deltas/gists{/gist_id}","starred_url":"https://api.github.com/users/benwhite-deltas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benwhite-deltas/subscriptions","organizations_url":"https://api.github.com/users/benwhite-deltas/orgs","repos_url":"https://api.github.com/users/benwhite-deltas/repos","events_url":"https://api.github.com/users/benwhite-deltas/events{/privacy}","received_events_url":"https://api.github.com/users/benwhite-deltas/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/benwhite-deltas/smtpd","description":"SMTP server (library) for receiving emails, written in pure PHP.","fork":true,"url":"https://api.github.com/repos/benwhite-deltas/smtpd","forks_url":"https://api.github.com/repos/benwhite-deltas/smtpd/forks","keys_url":"https://api.github.com/repos/benwhite-deltas/smtpd/keys{/key_id}","collaborators_url":"https://api.github.com/repos/benwhite-deltas/smtpd/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/benwhite-deltas/smtpd/teams","hooks_url":"https://api.github.com/repos/benwhite-deltas/smtpd/hooks","issue_events_url":"https://api.github.com/repos/benwhite-deltas/smtpd/issues/events{/number}","events_url":"https://api.github.com/repos/benwhite-deltas/smtpd/events","assignees_url":"https://api.github.com/repos/benwhite-deltas/smtpd/assignees{/user}","branches_url":"https://api.github.com/repos/benwhite-deltas/smtpd/branches{/branch}","tags_url":"https://api.github.com/repos/benwhite-deltas/smtpd/tags","blobs_url":"https://api.github.com/repos/benwhite-deltas/smtpd/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/benwhite-deltas/smtpd/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/benwhite-deltas/smtpd/git/refs{/sha}","trees_url":"https://api.github.com/repos/benwhite-deltas/smtpd/git/trees{/sha}","statuses_url":"https://api.github.com/repos/benwhite-deltas/smtpd/statuses/{sha}","languages_url":"https://api.github.com/repos/benwhite-deltas/smtpd/languages","stargazers_url":"https://api.github.com/repos/benwhite-deltas/smtpd/stargazers","contributors_url":"https://api.github.com/repos/benwhite-deltas/smtpd/contributors","subscribers_url":"https://api.github.com/repos/benwhite-deltas/smtpd/subscribers","subscription_url":"https://api.github.com/repos/benwhite-deltas/smtpd/subscription","commits_url":"https://api.github.com/repos/benwhite-deltas/smtpd/commits{/sha}","git_commits_url":"https://api.github.com/repos/benwhite-deltas/smtpd/git/commits{/sha}","comments_url":"https://api.github.com/repos/benwhite-deltas/smtpd/comments{/number}","issue_comment_url":"https://api.github.com/repos/benwhite-deltas/smtpd/issues/comments{/number}","contents_url":"https://api.github.com/repos/benwhite-deltas/smtpd/contents/{+path}","compare_url":"https://api.github.com/repos/benwhite-deltas/smtpd/compare/{base}...{head}","merges_url":"https://api.github.com/repos/benwhite-deltas/smtpd/merges","archive_url":"https://api.github.com/repos/benwhite-deltas/smtpd/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/benwhite-deltas/smtpd/downloads","issues_url":"https://api.github.com/repos/benwhite-deltas/smtpd/issues{/number}","pulls_url":"https://api.github.com/repos/benwhite-deltas/smtpd/pulls{/number}","milestones_url":"https://api.github.com/repos/benwhite-deltas/smtpd/milestones{/number}","notifications_url":"https://api.github.com/repos/benwhite-deltas/smtpd/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/benwhite-deltas/smtpd/labels{/name}","releases_url":"https://api.github.com/repos/benwhite-deltas/smtpd/releases{/id}","deployments_url":"https://api.github.com/repos/benwhite-deltas/smtpd/deployments","created_at":"2018-01-11T14:56:18Z","updated_at":"2018-01-11T14:56:20Z","pushed_at":"2018-08-13T15:57:15Z","git_url":"git://github.com/benwhite-deltas/smtpd.git","ssh_url":"git@github.com:benwhite-deltas/smtpd.git","clone_url":"https://github.com/benwhite-deltas/smtpd.git","svn_url":"https://github.com/benwhite-deltas/smtpd","homepage":"https://fox21.at","size":162,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"TheFox:master","ref":"master","sha":"3817f86c89d9a1353aa5477104fffc68ae44fe25","user":{"login":"TheFox","id":353709,"node_id":"MDQ6VXNlcjM1MzcwOQ==","avatar_url":"https://avatars3.githubusercontent.com/u/353709?v=4","gravatar_id":"","url":"https://api.github.com/users/TheFox","html_url":"https://github.com/TheFox","followers_url":"https://api.github.com/users/TheFox/followers","following_url":"https://api.github.com/users/TheFox/following{/other_user}","gists_url":"https://api.github.com/users/TheFox/gists{/gist_id}","starred_url":"https://api.github.com/users/TheFox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TheFox/subscriptions","organizations_url":"https://api.github.com/users/TheFox/orgs","repos_url":"https://api.github.com/users/TheFox/repos","events_url":"https://api.github.com/users/TheFox/events{/privacy}","received_events_url":"https://api.github.com/users/TheFox/received_events","type":"User","site_admin":false},"repo":{"id":22482968,"node_id":"MDEwOlJlcG9zaXRvcnkyMjQ4Mjk2OA==","name":"smtpd","full_name":"TheFox/smtpd","owner":{"login":"TheFox","id":353709,"node_id":"MDQ6VXNlcjM1MzcwOQ==","avatar_url":"https://avatars3.githubusercontent.com/u/353709?v=4","gravatar_id":"","url":"https://api.github.com/users/TheFox","html_url":"https://github.com/TheFox","followers_url":"https://api.github.com/users/TheFox/followers","following_url":"https://api.github.com/users/TheFox/following{/other_user}","gists_url":"https://api.github.com/users/TheFox/gists{/gist_id}","starred_url":"https://api.github.com/users/TheFox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TheFox/subscriptions","organizations_url":"https://api.github.com/users/TheFox/orgs","repos_url":"https://api.github.com/users/TheFox/repos","events_url":"https://api.github.com/users/TheFox/events{/privacy}","received_events_url":"https://api.github.com/users/TheFox/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/TheFox/smtpd","description":"SMTP server (library) for receiving emails, written in pure PHP.","fork":false,"url":"https://api.github.com/repos/TheFox/smtpd","forks_url":"https://api.github.com/repos/TheFox/smtpd/forks","keys_url":"https://api.github.com/repos/TheFox/smtpd/keys{/key_id}","collaborators_url":"https://api.github.com/repos/TheFox/smtpd/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/TheFox/smtpd/teams","hooks_url":"https://api.github.com/repos/TheFox/smtpd/hooks","issue_events_url":"https://api.github.com/repos/TheFox/smtpd/issues/events{/number}","events_url":"https://api.github.com/repos/TheFox/smtpd/events","assignees_url":"https://api.github.com/repos/TheFox/smtpd/assignees{/user}","branches_url":"https://api.github.com/repos/TheFox/smtpd/branches{/branch}","tags_url":"https://api.github.com/repos/TheFox/smtpd/tags","blobs_url":"https://api.github.com/repos/TheFox/smtpd/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/TheFox/smtpd/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/TheFox/smtpd/git/refs{/sha}","trees_url":"https://api.github.com/repos/TheFox/smtpd/git/trees{/sha}","statuses_url":"https://api.github.com/repos/TheFox/smtpd/statuses/{sha}","languages_url":"https://api.github.com/repos/TheFox/smtpd/languages","stargazers_url":"https://api.github.com/repos/TheFox/smtpd/stargazers","contributors_url":"https://api.github.com/repos/TheFox/smtpd/contributors","subscribers_url":"https://api.github.com/repos/TheFox/smtpd/subscribers","subscription_url":"https://api.github.com/repos/TheFox/smtpd/subscription","commits_url":"https://api.github.com/repos/TheFox/smtpd/commits{/sha}","git_commits_url":"https://api.github.com/repos/TheFox/smtpd/git/commits{/sha}","comments_url":"https://api.github.com/repos/TheFox/smtpd/comments{/number}","issue_comment_url":"https://api.github.com/repos/TheFox/smtpd/issues/comments{/number}","contents_url":"https://api.github.com/repos/TheFox/smtpd/contents/{+path}","compare_url":"https://api.github.com/repos/TheFox/smtpd/compare/{base}...{head}","merges_url":"https://api.github.com/repos/TheFox/smtpd/merges","archive_url":"https://api.github.com/repos/TheFox/smtpd/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/TheFox/smtpd/downloads","issues_url":"https://api.github.com/repos/TheFox/smtpd/issues{/number}","pulls_url":"https://api.github.com/repos/TheFox/smtpd/pulls{/number}","milestones_url":"https://api.github.com/repos/TheFox/smtpd/milestones{/number}","notifications_url":"https://api.github.com/repos/TheFox/smtpd/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/TheFox/smtpd/labels{/name}","releases_url":"https://api.github.com/repos/TheFox/smtpd/releases{/id}","deployments_url":"https://api.github.com/repos/TheFox/smtpd/deployments","created_at":"2014-07-31T20:01:31Z","updated_at":"2018-08-03T19:55:17Z","pushed_at":"2018-01-13T15:16:57Z","git_url":"git://github.com/TheFox/smtpd.git","ssh_url":"git@github.com:TheFox/smtpd.git","clone_url":"https://github.com/TheFox/smtpd.git","svn_url":"https://github.com/TheFox/smtpd","homepage":"https://fox21.at","size":175,"stargazers_count":33,"watchers_count":33,"language":"PHP","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":11,"mirror_url":null,"archived":false,"open_issues_count":5,"license":null,"forks":11,"open_issues":5,"watchers":33,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/TheFox/smtpd/pulls/15"},"html":{"href":"https://github.com/TheFox/smtpd/pull/15"},"issue":{"href":"https://api.github.com/repos/TheFox/smtpd/issues/15"},"comments":{"href":"https://api.github.com/repos/TheFox/smtpd/issues/15/comments"},"review_comments":{"href":"https://api.github.com/repos/TheFox/smtpd/pulls/15/comments"},"review_comment":{"href":"https://api.github.com/repos/TheFox/smtpd/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/TheFox/smtpd/pulls/15/commits"},"statuses":{"href":"https://api.github.com/repos/TheFox/smtpd/statuses/203bed0831de4ab01d0da6b9d0532907264a9694"}},"author_association":"CONTRIBUTOR","merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":1,"additions":7,"deletions":3,"changed_files":1}}
{"actor":{"display_login":"benwhite-deltas"}}