diff options
Diffstat (limited to 'torouterui/views.py')
| -rw-r--r-- | torouterui/views.py | 24 | 
1 files changed, 21 insertions, 3 deletions
diff --git a/torouterui/views.py b/torouterui/views.py index f52a89b..9002348 100644 --- a/torouterui/views.py +++ b/torouterui/views.py @@ -199,14 +199,30 @@ def torpage():      msg = list()      status = dict()      status['tor'] = tor.get_tor_status() -    if request.method == 'GET': +    # Check for reset first +    if request.method == 'POST' and \ +            request.form.get('submit') == 'Restart': +        try: +            tor.restart_tor() +            msg.append(("info", +                "Reloading Tor daemon... please wait a minute then <a href='/tor'>revisit this page</a> (don't just reload)."),)   +        except Exception, err: +            msg.append(("error", err),) +        return render_template('tor.html', form=None, status=status, +            formerr=None, messages=msg) +    # Then regular GET +    if request.method == 'GET' or (request.method == 'POST' and \ +            request.form.get('submit') == 'Reset'):          if status['tor']['state'] == 'DISABLED':              msg.append(("warning", -                "Could not connect to Tor daemon for control. Will try to restart daemon if settings are saved from this page."),) +                "Could not connect to Tor daemon for control."),) +            form = None +        elif status['tor']['state'] == 'PERMISSION_DENIED': +            msg.append(("error", +                "Permission denied when connecting to Tor daemon for control."),)              form = None          else:              form = tor.get_tor_settings() -            print form          return render_template('tor.html', form=form, status=status,              formerr=None, messages=msg)      # Got this far, need to validate form @@ -225,6 +241,8 @@ def torpage():              msg.append(("error",                  "Was unable to commit changes...\"%s\""                      % err)) +            return render_template('tor.html', settings=None, status=None, +                form=request.form, formerr=None, messages=msg)      return render_template('tor.html', settings=None, status=None,          form=request.form, formerr=None, messages=msg)  | 
