{"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":58,"created_at":"2016-06-08T14:50:04Z","updated_at":"2016-08-16T13:43:33Z","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/240105485","html_url":"https://github.com/RIOT-OS/RIOT/pull/5533#issuecomment-240105485","issue_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/5533","id":240105485,"user":{"login":"brummer-simon","id":3950119,"avatar_url":"https://avatars.githubusercontent.com/u/3950119?v=3","gravatar_id":"","url":"https://api.github.com/users/brummer-simon","html_url":"https://github.com/brummer-simon","followers_url":"https://api.github.com/users/brummer-simon/followers","following_url":"https://api.github.com/users/brummer-simon/following{/other_user}","gists_url":"https://api.github.com/users/brummer-simon/gists{/gist_id}","starred_url":"https://api.github.com/users/brummer-simon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brummer-simon/subscriptions","organizations_url":"https://api.github.com/users/brummer-simon/orgs","repos_url":"https://api.github.com/users/brummer-simon/repos","events_url":"https://api.github.com/users/brummer-simon/events{/privacy}","received_events_url":"https://api.github.com/users/brummer-simon/received_events","type":"User","site_admin":false},"created_at":"2016-08-16T13:43:33Z","updated_at":"2016-08-16T13:43:33Z","body":"Without having read the whole discussion: Is this Point:\r\n\r\n\" TCP connection establishment was simplified: listen/connect functions were dropped, instead a user can either give the remote end point on creation (implicit connect) or omit it (implicit listen)\"\r\n\r\nstill up to debate? This would remove the possiblity to allow only specific connections that came from a specified IP-Address.  "}}
{"actor":{"display_login":"brummer-simon"}}