| Commit message (Collapse) | Author | Age |
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
This is a cosmetic change that prevents Nyx from complaining about
missing directories.
|
| |
|
|
|
|
| |
This allows the user to simply copy the config and start Nyx. Prior to
this commit, Nyx won't start in that case, because some of the settings
had placeholders instead of their actual defaults.
|
| |
|
|
| |
Cf. #39.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Back in our old 'arm' days users could configure us through a file at ~/.armrc.
Nyx changed this location to ~/.nyx/config but continued to call it a 'nyxrc'.
Caught thanks to Sai...
https://github.com/torproject/nyx/pull/27
Mostly this changes internal references, but there are two user visible
changes...
* This fixes our FAQ which incorrectly said that we read from ~/.nyx/nyxrc.
* Removes the sample nyxrc path from our man page. Our setup.py no longer
installs such a file.
This intentionally keeps two references to a nyxrc...
* Our website's url for a sample is...
https://nyx.torproject.org/nyxrc.sample
We can't change this prior to our next release without confusing users.
* Our legacy changelog entries still call it a nyxrc because that's what it
was called back then.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I don't run Nyx's unit tests very often so a few regressions slipped in. Some
due to Nyx adjustments, some from Stem.
Stem renamed its is_pep8_available() function to
is_pycodestyle_available() because the upstream project renamed itself...
Traceback (most recent call last):
File "./run_tests.py", line 80, in <module>
main()
File "/home/atagar/Desktop/nyx/stem/util/conf.py", line 289, in wrapped
return func(*args, **kwargs)
File "./run_tests.py", line 46, in main
if stem.util.test_tools.is_pep8_available():
AttributeError: module 'stem.util.test_tools' has no attribute 'is_pep8_available'
|
| |
|
|
|
|
| |
Oops, these config options were used after the 'warn if unused' check...
https://github.com/torproject/nyx/issues/32
|
| |
|
|
|
|
|
| |
When our logged_events has whitespace within it Nyx confusingly claims that the
events are not recognized. Caught thanks to Sai...
https://github.com/torproject/nyx/issues/31
|
| |
|
|
|
|
|
|
| |
Oops, our code that validates color values normalizes into camel case, but
doesn't persist that normalization for its usage. As a result Nyx gets into a
pretty broken state. Caught thanks to Sai.
https://github.com/torproject/nyx/issues/30
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Python 3.8 removed platform.dist(), causing us to error with...
Traceback (most recent call last):
File "./run_nyx", line 14, in <module>
nyx.main()
File "/home/atagar/Desktop/nyx/nyx/__init__.py", line 199, in main
nyx.starter.main()
File "/home/atagar/Desktop/nyx/stem/util/conf.py", line 287, in wrapped
return func(*args, config = config, **kwargs)
File "/home/atagar/Desktop/nyx/nyx/starter.py", line 68, in main
_setup_debug_logging(args)
File "/home/atagar/Desktop/nyx/nyx/starter.py", line 174, in _setup_debug_logging
platform = ' '.join(platform.dist()),
AttributeError: module 'platform' has no attribute 'dist'
Python doesn't have a builtin replacement, instead advising that users install
the distro package...
https://pypi.org/project/distro/
This information isn't worth a new dependency so simply dropping it from our
debug output.
|
| |
|
|
|
|
| |
Minor adjustment of a patch from Sai...
https://github.com/torproject/nyx/issues/21
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Another deprecated method that has been removed from Stem. This fixes...
Traceback (most recent call last):
File "./run_nyx", line 14, in <module>
nyx.main()
File "/home/atagar/Desktop/nyx/nyx/__init__.py", line 199, in main
nyx.starter.main()
File "/home/atagar/Desktop/nyx/stem/util/conf.py", line 287, in wrapped
return func(*args, config = config, **kwargs)
File "/home/atagar/Desktop/nyx/nyx/starter.py", line 128, in main
nyx.curses.start(nyx.draw_loop, acs_support = config.get('acs_support', True), transparent_background = True, cursor = False)
File "/home/atagar/Desktop/nyx/nyx/curses.py", line 219, in start
curses.wrapper(_wrapper)
File "/usr/lib/python3.8/curses/__init__.py", line 105, in wrapper
return func(stdscr, *args, **kwds)
File "/home/atagar/Desktop/nyx/nyx/curses.py", line 217, in _wrapper
function()
File "/home/atagar/Desktop/nyx/nyx/__init__.py", line 257, in draw_loop
interface.redraw(force = not key.is_null())
File "/home/atagar/Desktop/nyx/nyx/__init__.py", line 733, in redraw
panel.redraw(force = force, top = occupied)
File "/home/atagar/Desktop/nyx/nyx/panel/__init__.py", line 175, in redraw
self._last_draw_size = nyx.curses.draw(self._draw, top = self._top, height = self.get_height(), draw_if_resized = draw_dimension)
File "/home/atagar/Desktop/nyx/nyx/curses.py", line 760, in draw
func(_Subwindow(subwindow_width, subwindow_height, curses_subwindow))
File "/home/atagar/Desktop/nyx/nyx/panel/connection.py", line 476, in _draw
_draw_line(subwindow, scroll_offset, y, lines[line_number], lines[line_number] == selected, subwindow.width - scroll_offset, current_time)
File "/home/atagar/Desktop/nyx/nyx/panel/connection.py", line 608, in _draw_line
x = _draw_address_column(subwindow, x, y, line, attr)
File "/home/atagar/Desktop/nyx/nyx/panel/connection.py", line 630, in _draw_address_column
elif not tor_controller().is_geoip_unavailable() and not line.entry.is_private():
AttributeError: 'Controller' object has no attribute 'is_geoip_unavailable'
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Stem 2.x drops deprecated classes. As a result we error with...
Traceback (most recent call last):
File "./run_nyx", line 7, in <module>
import nyx
File "/home/atagar/Desktop/nyx/nyx/__init__.py", line 779, in <module>
import nyx.panel.log
File "/home/atagar/Desktop/nyx/nyx/panel/log.py", line 69, in <module>
NYX_LOGGER = log.LogBuffer(log.Runlevel.DEBUG, yield_records = True)
AttributeError: module 'stem.util.log' has no attribute 'LogBuffer'
This was removed in stem commit 76b6b49. Fortunately it's a simple class to
replace.
|
| |
|
|
|
|
| |
Oops, inverted the words. Caught thanks to saizai...
https://github.com/torproject/nyx/issues/22
|
| |
|
|
| |
This link is to the wrong person. Caught thanks to jg71.
|
| |
|
|
|
|
| |
Nyx's website is based on Stem's. Porting over the following...
https://gitweb.torproject.org/stem.git/commit/?id=0c558be
|
| |
|
|
|
| |
Trac is read-only and will be discontinued at some point. Moving our links to
GitLab.
|
| |
|
|
| |
OnionView's link is now a 404. Caught thanks to Julian.
|
| |\
| |
| | |
Update index.html
|
| |/ |
|
| |
|
|
|
|
|
| |
Happy new year! Bumping the dates for 2020...
% find . -type f -iname '*.py' -exec sed -i 's/-2019/-2020/g' "{}" +;
% grep -R "# Copyright 2019," ./*
|
| |
|
|
| |
Nyx counterpart of https://gitweb.torproject.org/stem.git/commit/?id=7852f52
|
| |
|
|
| |
Adding a basic readme similar to Stem's for our GitHub page.
|
| |
|
|
| |
There was a permission issue. Trying again.
|
| |
|
|
|
| |
Pushing a commit to hopefully trigger this repository to be mirrored within
GitHub (https://github.com/torproject/nyx).
|
| |
|
|
| |
Fixing a typo k0nsl notified me about via email.
|
| |\
| |
| |
| |
| |
| |
| | |
Oops! We used stem's is_available() to provide installation instructions for...
stem. Thanks to bounteous17 for fixing this chicken-and-egg...
https://trac.torproject.org/projects/tor/ticket/32538
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Condensing and providing the same installation advice as Stem's site.
Also, we cannot use shutil.which() because it was added in python 3.3...
Traceback (most recent call last):
File "./run_nyx", line 7, in <module>
import nyx
File "/home/atagar/Desktop/nyx/nyx/__init__.py", line 80, in <module>
if shutil.which(cmd):
AttributeError: 'module' object has no attribute 'which'
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
This was simply returning the result of shutil. The proper ternary is...
return True if shutil.which(command) else False
That said, this really doesn't matter. Usage within conditionals implicitly
converts this to a boolean anyway.
|
| |/ |
|
| |
|
|
|
| |
Oops. I missed these dates when I bumped them for 2019 because they were
already out of date.
|
| |
|
|
|
|
|
|
|
|
| |
Tor just added a getinfo option to retrieve our uptime, so taking advantage of
it here. As a new method naturally this is only present at the moment in the
stem git repo.
From a user perspective this should be transparent. Nyx will now present uptime
when connected to a remote tor process and under the covers we make one fewer
system calls, but that's about all.
|
| | |
|
| | |
|
| |
|
|
|
| |
We renamed ourselves well over a year ago. Past due we stopped noting our old
name on the frontpage.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Oops, my recent change to skip the installation test when offline broke
python3...
======================================================================
ERROR: installation (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: installation
Traceback (most recent call last):
File "/usr/lib/python3.5/unittest/loader.py", line 428, in _find_test_path
module = self._get_module_from_name(name)
File "/usr/lib/python3.5/unittest/loader.py", line 369, in _get_module_from_name
__import__(name)
File "/home/atagar/Desktop/nyx/test/installation.py", line 6, in <module>
import urllib2
ImportError: No module named 'urllib2'
|
| |
|
|
| |
Just deduplicating a few notice runlevel messages hat pop up a lot on my relay.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Python 3.x no longer includes distutils by default...
https://trac.torproject.org/projects/tor/ticket/26099
This is perfectly fine. We only used it to check if pip
or apt-get was installed. We should be using stem for
this anyway. I already dropped our dependency on distutils
in stem for this reason...
https://gitweb.torproject.org/stem.git/commit/?id=9fa85ec
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When a guard, bridge, or exit we scrub sensitive connection data but also
aggregate it into graphs that present the client locales we're being used
from or exit ports.
In reviewing this for an old ticket [1] realized we're counting each
connection made with us rather than unique clients or exit usage. As
such, limiting our counts to one per a remote address.
[1] https://trac.torproject.org/projects/tor/ticket/4281
|
| |
|
|
|
|
| |
On my morning bus commute I was pretty puzzled why our tests broke. Turns out
we fail in a rather confusing way that says our PYTHONPATH is misconfigured
when unable to install stem from pypi.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Oops, line wrapping broke our tests...
======================================================================
FAIL: test_multiline_panel (panel.interpreter.TestInterpreter)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/nyx/test/__init__.py", line 59, in wrapped
return func(self, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/mock/mock.py", line 1305, in patched
return func(*args, **keywargs)
File "/home/atagar/Desktop/nyx/test/panel/interpreter.py", line 107, in test_multiline_panel
self.assertEqual(EXPECTED_MULTILINE_PANEL, test.render(panel._draw).content)
AssertionError: 'Control Interpreter:\n>>> GETINFO version\n250-version=0.2.4.27 (git-412e3f7dc9c6c01a)\n>>> to use this panel press enter' != u'Control Interpreter:\n>>> to use this panel press enter'
======================================================================
FAIL: test_scrollbar (panel.interpreter.TestInterpreter)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/nyx/test/__init__.py", line 59, in wrapped
return func(self, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/mock/mock.py", line 1305, in patched
return func(*args, **keywargs)
File "/home/atagar/Desktop/nyx/test/panel/interpreter.py", line 120, in test_scrollbar
self.assertEqual(EXPECTED_WITH_SCROLLBAR, test.render(panel._draw).content)
AssertionError: 'Control Interpreter:\n |>>> GETINFO version\n |250-version=0.2.4.27 (git-412e3f7dc9c6c01a)\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n |\n-+' != u'Control Interpreter:\n>>> to use this panel press enter'
----------------------------------------------------------------------
With commit 75052e8 tests should no longer directly modify their private
'_lines' attribute. We need to call the _add_line() helper instead to ensure
the wrapped and unwrapped attributes stay in sync.
|
| |
|
|
|
|
| |
I've been inconsistent on if tickets are wrapped with a bold tag or not.
Cursory glance indicates links are already a bold typeface so the presence
or omission of these tags don't look any different.
|
| |
|
|
|
|
|
| |
Special keys (arrows, home/end, etc) require for us to implement their
handling. Doing so for the delete key.
https://trac.torproject.org/projects/tor/ticket/5835
|
| |
|
|
|
|
|
| |
Provide a notice explaining why connection information is unavailable
when the user's system lacks /proc content. Ususally Mac and BSD users.
https://trac.torproject.org/projects/tor/ticket/24958
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We lacked a mechanism for resetting values to their initial value. For
instance, take the following scenario...
* Our ExcludeNodes torrc is unset. The config panel shows it as '<none>'.
* We change the value to 'stuff'.
* We want to change it back to '<none>'.
There wasn't a way of doing so. If we cleared the value and hit enter we'd
change it to an empty string. I can't think of any scenarios where users would
*want* to set things to blank strings (and in those edge cases they can always
do so via the torrc).
Now if a user deletes a config value and hits enter we'll reset it, in the
above scenario changing the config option back to '<none>'.
|
| |
|
|
|
|
|
|
|
| |
Yikes, surprised I let this one slip in. When pressing 'esc' on the
configuration editor if the configuration option already had a value
then it was changed to 'None'. Definitely not what users would
rightfully expect...
https://trac.torproject.org/projects/tor/ticket/28334
|
| |
|
|
|
|
|
|
|
| |
When lines exceed our terminal width we cropped the content. Clearly this sucks
since it makes that content impossible to... well, get.
Wrapping lines that exceed our panel width with a two space indentation.
https://trac.torproject.org/projects/tor/ticket/28297
|
| |
|
|
|
|
|
|
|
|
| |
Each refresh of our interpreter panel iterated over every line of its content,
regardless of if it was visible or not. This is silly. Limiting the range the
draw function consults to only what's visible.
Caught thanks to wagon...
https://trac.torproject.org/projects/tor/ticket/28902
|