{"action":"created","issue":{"url":"https://api.github.com/repos/cjdelisle/cjdns/issues/754","labels_url":"https://api.github.com/repos/cjdelisle/cjdns/issues/754/labels{/name}","comments_url":"https://api.github.com/repos/cjdelisle/cjdns/issues/754/comments","events_url":"https://api.github.com/repos/cjdelisle/cjdns/issues/754/events","html_url":"https://github.com/cjdelisle/cjdns/pull/754","id":59446747,"number":754,"title":"Dynamic endpoints service enhancements","user":{"login":"interfect","id":752054,"avatar_url":"https://avatars.githubusercontent.com/u/752054?v=3","gravatar_id":"","url":"https://api.github.com/users/interfect","html_url":"https://github.com/interfect","followers_url":"https://api.github.com/users/interfect/followers","following_url":"https://api.github.com/users/interfect/following{/other_user}","gists_url":"https://api.github.com/users/interfect/gists{/gist_id}","starred_url":"https://api.github.com/users/interfect/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/interfect/subscriptions","organizations_url":"https://api.github.com/users/interfect/orgs","repos_url":"https://api.github.com/users/interfect/repos","events_url":"https://api.github.com/users/interfect/events{/privacy}","received_events_url":"https://api.github.com/users/interfect/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-03-02T07:17:58Z","updated_at":"2015-03-04T05:42:37Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/cjdelisle/cjdns/pulls/754","html_url":"https://github.com/cjdelisle/cjdns/pull/754","diff_url":"https://github.com/cjdelisle/cjdns/pull/754.diff","patch_url":"https://github.com/cjdelisle/cjdns/pull/754.patch"},"body":"I've fixed up the dynamicEndpoints.py script to be a bit better behaved as a system service. It now will drop root if you start it as root, can take a path to a cjdnsadmin file (so you don't need /root/.cjdnsadmin), and will exit if cjdns closes the other end of the socket (which I accomplished by changing the way cjdnsadmin.py handles exceptions in its reader thread).\r\n\r\nI also fixed cjdnsadminmaker.py to let you specify a path for the file it makes, if you don't want the default. (It should already be relatively safe with respect to clobbering cjdroute.conf.)\r\n\r\nThe whole point of these changes was to get dynamicEndpoints.py ready to package up with the Debian package. I've added a Python dependency to the .deb, and now ship the cjdnasdmin module and all the cjdns contrib Python scripts in /usr/share/cjdns/contrib/python. I've also added an Upstart job to start it up on boot, reading from the config file /etc/dynamicEndpoints.conf, and using /etc/dynamicEndpoints.cjdnsadmin for credentials (both of which are generated, if they don't exist, when the service starts).\r\n\r\nSince this is a fairly big change to the behavior of the .deb package, I want to know what people think of it."},"comment":{"url":"https://api.github.com/repos/cjdelisle/cjdns/issues/comments/77100489","html_url":"https://github.com/cjdelisle/cjdns/pull/754#issuecomment-77100489","issue_url":"https://api.github.com/repos/cjdelisle/cjdns/issues/754","id":77100489,"user":{"login":"interfect","id":752054,"avatar_url":"https://avatars.githubusercontent.com/u/752054?v=3","gravatar_id":"","url":"https://api.github.com/users/interfect","html_url":"https://github.com/interfect","followers_url":"https://api.github.com/users/interfect/followers","following_url":"https://api.github.com/users/interfect/following{/other_user}","gists_url":"https://api.github.com/users/interfect/gists{/gist_id}","starred_url":"https://api.github.com/users/interfect/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/interfect/subscriptions","organizations_url":"https://api.github.com/users/interfect/orgs","repos_url":"https://api.github.com/users/interfect/repos","events_url":"https://api.github.com/users/interfect/events{/privacy}","received_events_url":"https://api.github.com/users/interfect/received_events","type":"User","site_admin":false},"created_at":"2015-03-04T05:42:37Z","updated_at":"2015-03-04T05:42:37Z","body":"OK I successfully pulled out the dynamicEndpoints script as another deb. I couldn't get the proper python dependency adding method to work for that package, but I stuck one in manually and it has it transitively on cjdns.\r\n\r\nI've also thrown most of the symlinks out of /usr/bin. All I kept was peerStats (which everyone should have) and the ones that start with \"cjdns\"."}}