{"action":"created","issue":{"url":"https://api.github.com/repos/NebulousLabs/Sia/issues/1045","repository_url":"https://api.github.com/repos/NebulousLabs/Sia","labels_url":"https://api.github.com/repos/NebulousLabs/Sia/issues/1045/labels{/name}","comments_url":"https://api.github.com/repos/NebulousLabs/Sia/issues/1045/comments","events_url":"https://api.github.com/repos/NebulousLabs/Sia/issues/1045/events","html_url":"https://github.com/NebulousLabs/Sia/pull/1045","id":144414726,"number":1045,"title":"NetAddress fixup","user":{"login":"VoidingWarranties","id":5420909,"avatar_url":"https://avatars.githubusercontent.com/u/5420909?v=3","gravatar_id":"","url":"https://api.github.com/users/VoidingWarranties","html_url":"https://github.com/VoidingWarranties","followers_url":"https://api.github.com/users/VoidingWarranties/followers","following_url":"https://api.github.com/users/VoidingWarranties/following{/other_user}","gists_url":"https://api.github.com/users/VoidingWarranties/gists{/gist_id}","starred_url":"https://api.github.com/users/VoidingWarranties/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VoidingWarranties/subscriptions","organizations_url":"https://api.github.com/users/VoidingWarranties/orgs","repos_url":"https://api.github.com/users/VoidingWarranties/repos","events_url":"https://api.github.com/users/VoidingWarranties/events{/privacy}","received_events_url":"https://api.github.com/users/VoidingWarranties/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":17,"created_at":"2016-03-29T23:08:58Z","updated_at":"2016-04-29T01:13:50Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/NebulousLabs/Sia/pulls/1045","html_url":"https://github.com/NebulousLabs/Sia/pull/1045","diff_url":"https://github.com/NebulousLabs/Sia/pull/1045.diff","patch_url":"https://github.com/NebulousLabs/Sia/pull/1045.patch"},"body":"Cleans up the NetAddress type. The main change is adding to the `IsValid()` method, which checks whether a NetAddress is a valid address. Valid is defined as being of the form \"host:port\" such that \"host\" is not a loopback address (except in testing) nor an unspecified IP address, and such that neither the host nor port are blank, contain white space, or contain the null character.\r\n\r\nPreviously some methods allowed loopback addresses in testing while others did not. This change makes loopback addresses always valid in testing only. This allows us to get rid of some kludges in the gateway testing.\r\n\r\nFixes #1040"},"comment":{"url":"https://api.github.com/repos/NebulousLabs/Sia/issues/comments/215606270","html_url":"https://github.com/NebulousLabs/Sia/pull/1045#issuecomment-215606270","issue_url":"https://api.github.com/repos/NebulousLabs/Sia/issues/1045","id":215606270,"user":{"login":"lukechampine","id":3344749,"avatar_url":"https://avatars.githubusercontent.com/u/3344749?v=3","gravatar_id":"","url":"https://api.github.com/users/lukechampine","html_url":"https://github.com/lukechampine","followers_url":"https://api.github.com/users/lukechampine/followers","following_url":"https://api.github.com/users/lukechampine/following{/other_user}","gists_url":"https://api.github.com/users/lukechampine/gists{/gist_id}","starred_url":"https://api.github.com/users/lukechampine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukechampine/subscriptions","organizations_url":"https://api.github.com/users/lukechampine/orgs","repos_url":"https://api.github.com/users/lukechampine/repos","events_url":"https://api.github.com/users/lukechampine/events{/privacy}","received_events_url":"https://api.github.com/users/lukechampine/received_events","type":"User","site_admin":false},"created_at":"2016-04-29T01:13:50Z","updated_at":"2016-04-29T01:13:50Z","body":"Requiring qualification broke some other tests, probably because they used hostnames like `\"foo\"`"}}