{"action":"created","issue":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/5533","repository_url":"https://api.github.com/repos/RIOT-OS/RIOT","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/5533/labels{/name}","comments_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/5533/comments","events_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/5533/events","html_url":"https://github.com/RIOT-OS/RIOT/pull/5533","id":159183531,"number":5533,"title":"conn: Simplify and overhaul conn API","user":{"login":"miri64","id":675644,"avatar_url":"https://avatars.githubusercontent.com/u/675644?v=3","gravatar_id":"","url":"https://api.github.com/users/miri64","html_url":"https://github.com/miri64","followers_url":"https://api.github.com/users/miri64/followers","following_url":"https://api.github.com/users/miri64/following{/other_user}","gists_url":"https://api.github.com/users/miri64/gists{/gist_id}","starred_url":"https://api.github.com/users/miri64/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/miri64/subscriptions","organizations_url":"https://api.github.com/users/miri64/orgs","repos_url":"https://api.github.com/users/miri64/repos","events_url":"https://api.github.com/users/miri64/events{/privacy}","received_events_url":"https://api.github.com/users/miri64/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/API%20CHANGE","name":"API CHANGE","color":"e11d21"},{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/network","name":"network","color":"8f00cc"},{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/Request%20for%20Comments","name":"Request for Comments","color":"23F823"}],"state":"open","locked":false,"assignee":{"login":"kaspar030","id":4679640,"avatar_url":"https://avatars.githubusercontent.com/u/4679640?v=3","gravatar_id":"","url":"https://api.github.com/users/kaspar030","html_url":"https://github.com/kaspar030","followers_url":"https://api.github.com/users/kaspar030/followers","following_url":"https://api.github.com/users/kaspar030/following{/other_user}","gists_url":"https://api.github.com/users/kaspar030/gists{/gist_id}","starred_url":"https://api.github.com/users/kaspar030/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kaspar030/subscriptions","organizations_url":"https://api.github.com/users/kaspar030/orgs","repos_url":"https://api.github.com/users/kaspar030/repos","events_url":"https://api.github.com/users/kaspar030/events{/privacy}","received_events_url":"https://api.github.com/users/kaspar030/received_events","type":"User","site_admin":false},"assignees":[{"login":"kaspar030","id":4679640,"avatar_url":"https://avatars.githubusercontent.com/u/4679640?v=3","gravatar_id":"","url":"https://api.github.com/users/kaspar030","html_url":"https://github.com/kaspar030","followers_url":"https://api.github.com/users/kaspar030/followers","following_url":"https://api.github.com/users/kaspar030/following{/other_user}","gists_url":"https://api.github.com/users/kaspar030/gists{/gist_id}","starred_url":"https://api.github.com/users/kaspar030/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kaspar030/subscriptions","organizations_url":"https://api.github.com/users/kaspar030/orgs","repos_url":"https://api.github.com/users/kaspar030/repos","events_url":"https://api.github.com/users/kaspar030/events{/privacy}","received_events_url":"https://api.github.com/users/kaspar030/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/milestones/15","html_url":"https://github.com/RIOT-OS/RIOT/milestones/Release%202016.10","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/milestones/15/labels","id":1875567,"number":15,"title":"Release 2016.10","description":"","creator":{"login":"kYc0o","id":5419775,"avatar_url":"https://avatars.githubusercontent.com/u/5419775?v=3","gravatar_id":"","url":"https://api.github.com/users/kYc0o","html_url":"https://github.com/kYc0o","followers_url":"https://api.github.com/users/kYc0o/followers","following_url":"https://api.github.com/users/kYc0o/following{/other_user}","gists_url":"https://api.github.com/users/kYc0o/gists{/gist_id}","starred_url":"https://api.github.com/users/kYc0o/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kYc0o/subscriptions","organizations_url":"https://api.github.com/users/kYc0o/orgs","repos_url":"https://api.github.com/users/kYc0o/repos","events_url":"https://api.github.com/users/kYc0o/events{/privacy}","received_events_url":"https://api.github.com/users/kYc0o/received_events","type":"User","site_admin":false},"open_issues":210,"closed_issues":17,"state":"open","created_at":"2016-07-11T11:41:17Z","updated_at":"2016-08-15T10:46:51Z","due_on":"2016-10-30T23:00:00Z","closed_at":null},"comments":59,"created_at":"2016-06-08T14:50:04Z","updated_at":"2016-08-16T14:00:49Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5533","html_url":"https://github.com/RIOT-OS/RIOT/pull/5533","diff_url":"https://github.com/RIOT-OS/RIOT/pull/5533.diff","patch_url":"https://github.com/RIOT-OS/RIOT/pull/5533.patch"},"body":"This change (as discussed in #5091) overhauls the `conn` API in the following manner:\r\n\r\n* for every `conn` objects now also one can add a callback for asynchronous\r\n  reception on creation\r\n* The source address on creation may now be `NULL`, implying an implicit bind\r\n  when sending. This makes the `conn_find_best_source()` function unnecessary.\r\n* a common address type for both IPv4 and IPv6 addresses was introduced\r\n* instead of having addresses, address length and ports/protocols given\r\n  separately a new data type called \"end points\" for every connectivity type is\r\n  introduced `conn_ep_x_t`, consisting of the address, its family, an (optional)\r\n  interface identifier (see ~~#5111~~ #5511) and its port/protocol\r\n* send for connection-less communication was simplified by not requiring source\r\n  information anymore (a stack is encouraged to find a best match itself).\r\n  It and the interface one is supposed to send over can however be supplied by\r\n  (optionally) providing an already created `conn` object\r\n* TCP connection establishment was simplified: listen/connect functions were\r\n  dropped, instead a user can either give the remote end point on creation\r\n  (implicit connect) or omit it (implicit listen)\r\n\r\nFor actual porting this API change needs ~~#5111~~ #5511 for interface. #5526 would be helpful for efficient porting to GNRC, but it isn't required (one can easily do the same with a dispatching thread).\r\n\r\nSome doc changes from #5509 are also included in this PR."},"comment":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/comments/240110572","html_url":"https://github.com/RIOT-OS/RIOT/pull/5533#issuecomment-240110572","issue_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/5533","id":240110572,"user":{"login":"miri64","id":675644,"avatar_url":"https://avatars.githubusercontent.com/u/675644?v=3","gravatar_id":"","url":"https://api.github.com/users/miri64","html_url":"https://github.com/miri64","followers_url":"https://api.github.com/users/miri64/followers","following_url":"https://api.github.com/users/miri64/following{/other_user}","gists_url":"https://api.github.com/users/miri64/gists{/gist_id}","starred_url":"https://api.github.com/users/miri64/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/miri64/subscriptions","organizations_url":"https://api.github.com/users/miri64/orgs","repos_url":"https://api.github.com/users/miri64/repos","events_url":"https://api.github.com/users/miri64/events{/privacy}","received_events_url":"https://api.github.com/users/miri64/received_events","type":"User","site_admin":false},"created_at":"2016-08-16T14:00:49Z","updated_at":"2016-08-16T14:00:49Z","body":"@brummer-simon are you available tomorrow? If yes, let's discuss this at the meeting."}}
{"actor":{"display_login":"miri64"}}