E2OpenPlugins / e2openplugin-OpenWebif

GPL Web Interface for e2stabs
GNU General Public License v3.0
204 stars 226 forks source link

Terminal #563

Closed Schimmelreiter closed 7 years ago

Schimmelreiter commented 7 years ago

What do you think about having terminal/shell access in OWIF?

image

Schimmelreiter commented 7 years ago

BTW: The screen shot is not a mockup ...

Schimmelreiter commented 7 years ago

Es gibt wohl einen kleinen Fehler im CSS: Der rot markierte Bereich wird nicht genutzt, aber einmalig (Beim ersten Anzeigen des Prompts) rutscht der erste Buchstabe vom Benutzernamen dorthin. image

Das hier ist das CSS: https://github.com/oe-alliance/oe-alliance-core/blob/367ae0730f4ccdb3c7513fa287f0f5e39d3ce9c0/meta-oe/recipes-connectivity/shellinabox/shellinabox/styles.css

Es ist zwar in shellinabox einkompiliert, man könnte es aber ändern und die geänderte Fassung als Parameter an ShellInABox übergeben.

jbleyel commented 7 years ago

Bei mir passiert das nicht. (Chrome) Ich hab auch keine Scrollbar.

--

Update. Wenn ich nach der Eingabe vom Passwort + Enter kurz warte, dann ist das bei mir auch. Das ist also ein Bug von shellinabox.

jbleyel commented 7 years ago

Wenn ich nach dem Passwort Enter gleich noch mal Enter drücke, dann ist es nicht.

Schimmelreiter commented 7 years ago

Der Unterschied zwischen der Fassung von shellinabox die ich hier hochgeladen hatte und der auf dem Feed ist übrigens: Die Version auf dem Feed ignoriert das Weglassen des Parameters --locahost-only und lauscht trotzdem nur auf localhost bzw. ::1.

Nachdem betacentauri uns einen Anti-Idioten-Patch in busybox-telnet eingebaut hat, der das Freigeben von Telnet nach draußen unmöglich macht, wollte ich mit shellinabox keine Alternative für die Idioten einbauen. Ohne --localhost-only kann man normalerweise auch direkt mit http://hostname_der_box:4200 auf shellinabox zugreifen ... dann hätten die Leute statt Port 23 halt Port 4200 freigegeben ... das wollte ich verhindern.

jbleyel commented 7 years ago
bildschirmfoto 2017-01-25 um 12 23 34

Der Fehler mit dem r rechts sieht nicht nach css aus. Der Fehler ist im HTML und das wird serverseitig generiert.

Es kann jedoch auch ein Javascript Bug sein. CSS ist es auf jeden Fall nicht.

Schimmelreiter commented 7 years ago

Einen nervigen Quirk habe ich gefunden und ich muß zugeben, daß ich damit überfordert bin, ihn zu beheben:

Wenn man auf der Seite "Terminal" stehen bleibt, insbesondere wenn die Sitzung durch Timeout beendet wird, was man besonders schnell reproduzieren kann, indem man sich gar nicht erst einlogged, wird das Log mit dem Mist hier geflutet:

--- <exception caught here> ---
  File "/usr/lib/enigma2/python/e2reactor.py", line 181, in _doReadOrWrite

  File "/usr/lib/python2.7/site-packages/twisted/internet/tcp.py", line 208, in doRead

  File "/usr/lib/python2.7/site-packages/twisted/internet/tcp.py", line 214, in _dataReceived

  File "/usr/lib/python2.7/site-packages/twisted/protocols/basic.py", line 578, in dataReceived

  File "/usr/lib/python2.7/site-packages/twisted/web/http.py", line 532, in rawDataReceived

  File "/usr/lib/python2.7/site-packages/twisted/web/proxy.py", line 77, in handleResponsePart

  File "/usr/lib/python2.7/site-packages/twisted/web/server.py", line 220, in write

  File "/usr/lib/python2.7/site-packages/twisted/web/http.py", line 940, in write

exceptions.AttributeError: 'NoneType' object has no attribute 'writeHeaders'

18:44:11.3381 { E } /usr/lib/python2.7/site-packages/twisted/logger/_file.py:66 __call__ Unhandled Error
Traceback (most recent call last):
  File "/usr/lib/enigma2/python/mytest.py", line 121, in runReactor
    reactor.run(installSignalHandlers=False)
  File "/usr/lib/python2.7/site-packages/twisted/internet/base.py", line 1195, in run

  File "/usr/lib/python2.7/site-packages/twisted/internet/base.py", line 1207, in mainLoop

  File "/usr/lib/enigma2/python/e2reactor.py", line 165, in doPoll

--- <exception caught here> ---
  File "/usr/lib/python2.7/site-packages/twisted/python/log.py", line 101, in callWithLogger

  File "/usr/lib/python2.7/site-packages/twisted/python/log.py", line 84, in callWithContext

  File "/usr/lib/python2.7/site-packages/twisted/python/context.py", line 118, in callWithContext

  File "/usr/lib/python2.7/site-packages/twisted/python/context.py", line 81, in callWithContext

  File "/usr/lib/enigma2/python/e2reactor.py", line 193, in _doReadOrWrite

  File "/usr/lib/python2.7/site-packages/twisted/internet/posixbase.py", line 258, in _disconnectSelectable

  File "/usr/lib/python2.7/site-packages/twisted/internet/tcp.py", line 478, in connectionLost

  File "/usr/lib/python2.7/site-packages/twisted/internet/tcp.py", line 292, in connectionLost

  File "/usr/lib/python2.7/site-packages/twisted/web/http.py", line 486, in connectionLost

  File "/usr/lib/python2.7/site-packages/twisted/web/proxy.py", line 87, in handleResponseEnd

  File "/usr/lib/python2.7/site-packages/twisted/web/server.py", line 231, in finish

  File "/usr/lib/python2.7/site-packages/twisted/web/http.py", line 863, in finish

exceptions.RuntimeError: Request.finish called on a request after its connection was lost; use Request.notifyFinish to keep track of this.

@jbleyel Fällt Dir dazu was ein?

jbleyel commented 7 years ago

Vielleicht hier ->

http://stackoverflow.com/questions/10710047/twisted-http-server-error

https://twistedmatrix.com/trac/ticket/4901

Schimmelreiter commented 7 years ago

Tut mir leid, bin ich zu blöd für, das auf dieses Problem zu übertragen. Zuviel syntaktisches Salz in Python.

jbleyel commented 7 years ago

LOG Trace: Ich hab versucht ReverseProxyResource umzuschreiben um den Fehler abzufangen. -> Ohne Erfolg Dann hab ich versucht den Fehler in der e2Reactor.py abzufangen, das hat zwar funktioniert aber dann schiert das Teilt trotzdem ab. Ich bin daher hier mit meinem Latein am Ende.

jbleyel commented 7 years ago

CSS bzw. Javascipt .. Login issue : Das ist ein Bug von shellinabox JS und muss dort gefixt werden.