{"action":"created","issue":{"url":"https://api.github.com/repos/gordonwritescode/kad-traverse/issues/2","labels_url":"https://api.github.com/repos/gordonwritescode/kad-traverse/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/gordonwritescode/kad-traverse/issues/2/comments","events_url":"https://api.github.com/repos/gordonwritescode/kad-traverse/issues/2/events","html_url":"https://github.com/gordonwritescode/kad-traverse/issues/2","id":124142771,"number":2,"title":"Implement TURN relay strategy","user":{"login":"gordonwritescode","id":1188875,"avatar_url":"https://avatars.githubusercontent.com/u/1188875?v=3","gravatar_id":"","url":"https://api.github.com/users/gordonwritescode","html_url":"https://github.com/gordonwritescode","followers_url":"https://api.github.com/users/gordonwritescode/followers","following_url":"https://api.github.com/users/gordonwritescode/following{/other_user}","gists_url":"https://api.github.com/users/gordonwritescode/gists{/gist_id}","starred_url":"https://api.github.com/users/gordonwritescode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gordonwritescode/subscriptions","organizations_url":"https://api.github.com/users/gordonwritescode/orgs","repos_url":"https://api.github.com/users/gordonwritescode/repos","events_url":"https://api.github.com/users/gordonwritescode/events{/privacy}","received_events_url":"https://api.github.com/users/gordonwritescode/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/gordonwritescode/kad-traverse/labels/feature","name":"feature","color":"5319e7"}],"state":"open","locked":false,"assignee":{"login":"gordonwritescode","id":1188875,"avatar_url":"https://avatars.githubusercontent.com/u/1188875?v=3","gravatar_id":"","url":"https://api.github.com/users/gordonwritescode","html_url":"https://github.com/gordonwritescode","followers_url":"https://api.github.com/users/gordonwritescode/followers","following_url":"https://api.github.com/users/gordonwritescode/following{/other_user}","gists_url":"https://api.github.com/users/gordonwritescode/gists{/gist_id}","starred_url":"https://api.github.com/users/gordonwritescode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gordonwritescode/subscriptions","organizations_url":"https://api.github.com/users/gordonwritescode/orgs","repos_url":"https://api.github.com/users/gordonwritescode/repos","events_url":"https://api.github.com/users/gordonwritescode/events{/privacy}","received_events_url":"https://api.github.com/users/gordonwritescode/received_events","type":"User","site_admin":false},"milestone":null,"comments":6,"created_at":"2015-12-28T23:55:47Z","updated_at":"2015-12-30T14:57:18Z","closed_at":null,"body":"Consider https://github.com/nicojanssens/turn-js"},"comment":{"url":"https://api.github.com/repos/gordonwritescode/kad-traverse/issues/comments/168014997","html_url":"https://github.com/gordonwritescode/kad-traverse/issues/2#issuecomment-168014997","issue_url":"https://api.github.com/repos/gordonwritescode/kad-traverse/issues/2","id":168014997,"user":{"login":"nicojanssens","id":9429877,"avatar_url":"https://avatars.githubusercontent.com/u/9429877?v=3","gravatar_id":"","url":"https://api.github.com/users/nicojanssens","html_url":"https://github.com/nicojanssens","followers_url":"https://api.github.com/users/nicojanssens/followers","following_url":"https://api.github.com/users/nicojanssens/following{/other_user}","gists_url":"https://api.github.com/users/nicojanssens/gists{/gist_id}","starred_url":"https://api.github.com/users/nicojanssens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicojanssens/subscriptions","organizations_url":"https://api.github.com/users/nicojanssens/orgs","repos_url":"https://api.github.com/users/nicojanssens/repos","events_url":"https://api.github.com/users/nicojanssens/events{/privacy}","received_events_url":"https://api.github.com/users/nicojanssens/received_events","type":"User","site_admin":false},"created_at":"2015-12-30T14:57:18Z","updated_at":"2015-12-30T14:57:18Z","body":"Just checked your turn strategy code.\r\n\r\nWhen sending data to a contact (transport._send), you have to make sure this contact’s socket also executes a createPermission – otherwise your TURN server will drop this data on the floor instead of forwarding it.\r\n\r\nThere are two ways to fix this.\r\n\r\n1) Execute a ‘handshake’ between two sockets (turn-js clients) to make sure all permissions are set before sending data. Disadvantage of this approach is that it requires an additional server to exchange handshake messages between kad nodes.\r\n2) When using coturn, you could also disable those permission checks by using the –server-relay option. Mind that this enters a serious security issue. See coturn manual:\r\n\r\n--server-relay Server relay. NON-STANDARD AND DANGEROUS OPTION. Only for an application that want to run a server on the relay endpoints. This option eliminates the IP permissions check on the packets incoming to the relay endpoints. That makes the system vulnerable to DOS attack, for example, among other bad things. The rule is: if you do not understand what is this option about and why would you need it, then you absolutely must NOT use it under any circumstances. See http://tools.ietf.org/search/rfc5766#section-17.2.3 ."}}