Frage
Antwort
Lösung
am 01.12.2019 04:12
Leider lassen sich bei der Vodafone Station (Firmware AR01.02.037.03.09_092819_711.SIP.10) keine Geräte in die Static DHCP Liste eintragen wenn man mehr als 6 Geräte im LAN hat.
Warum ausgerechnet nur wenn man mehr als 6 Geräte hat?
Weil eure Programmierer den genialen Fehler gemacht haben und innerhalb einer For-Schleife die von i=0 bis i=[anzahl] läuft eine verschachtelte For-Schleife verwenden die von i=0 bis i=6 läuft. Da beide Variablen den gleichen Bezeichner haben überschreibt die innere Schleife bei jedem Durchlauf die Iterationsvariable i, wodurch die äußere Schleife nie beendet werden kann und die Administrationsoberfläche des Routers nach einiger Zeit abstürzt.
Bitte fixen. Den Code findet ihr in der Klasse "VM", Funktion "addRow", Zeile 78. Iterationsvariable i dort umbenennen.
am 29.01.2020 11:42
Hallo Philipp211,
unsere Geräte haben eine andere Softwareversion, als die hier im Beitrag genannten. Wir haben die 01.02.037.08. Also doch mal bei UM nachfragen...
Viele Grüße, Manu
am 29.01.2020 17:34
Die Kernfunktionen der Firmware werden vermutlich direkt von Arris kommen oder? Allerdings bin ich mir bei der UI, welche in diesem Fall ja den Fehler verursacht, nicht sicher, ob diese nicht doch von Vodafone direkt implementiert werden 😉 Der Unitymedia Support kann auf jeden Fall genau gar nichts tun.
Auf jeden Fall kann man das Problem umgehen indem man mit den Debug Tools des Browsers die Javascript ausführung pausiert bevor man auf den Button drückt. Danach durchsteppen bis man in der function AddRow, Zeile 78 ankommt. Dann dort die Iterationsvariable der inneren Schleife umbenennen und ohne neuladen der Seite das Skript durch Drücken des Buttons neu starten.
Voll gut, dass der Bug immer noch existiert. Sehr vielsagend.
am 29.01.2020 18:33
Wenn dein Anliegen geklärt ist, den Beitrag als gelöst markieren das er geschlossen werden kann.
am 30.01.2020 06:39
Danke für den Workaround, ist besser als immer alle Geräte ausschalten. Für mich jetzt vollkommen in Ordnung, für die meisten aber immer noch ein no go. Vor allem hast du ja schon gebau beschrieben was zu tun ist und trotzdem kommt das hier nicht bei den Entwicklern an...
am 30.01.2020 13:25
@MasterScorpion warum sollte man hier schliessen? das Problem ist nicht gelöst und der Workaround für Laien auch nicht unbedingt praktikabel.
30.01.2020 20:24 - bearbeitet 30.01.2020 20:32
@ikaros88Danke für den Workaround. Nur leider kann ich damit nichts anfangen.
Kannst du bitte, auch wenn es nicht Deine Aufgabe ist, eine Step by Step Anleitung machen wie genau das mit dem Debuggen gehen soll?
Vielen Dank
02.02.2020 17:57 - bearbeitet 02.02.2020 18:02
Dann für alle die nicht so firm sind, eine einfachere Lösung:
Kopiert den unten stehenden code. Wenn ihr auf der Seite seid, auf der ihr statische DHCP IP Adressen pflegen könnt, dann drückt ihr F12 auf der Tastatur um die Entwicklertools für chrome zu öffnen. Dann geht ihr auf den Reiter/Tab Console und fügt den code ein. Dann drückt ihr enter, was die fehlerhafte Funktion überschreibt. Daraufhin könnt ihr ohne Probleme Geräte zur Liste hinzufügen.
function addRow(index) { var i; var MAC, IP; var tt = $("#TemplateRow").clone(); var indexVal = $('.LanStaticDHCPTable').find('[idx]').length; tt.attr('idx', indexVal); var SelDeviceName = $("#AddDevicesSelect option:selected").val(); var MacAddrToAdd = $('#LANpopUpAddDevice .extra_mac_address1').val() + ":" + $('#LANpopUpAddDevice .extra_mac_address2').val() + ":" + $('#LANpopUpAddDevice .extra_mac_address3').val() + ":" + $('#LANpopUpAddDevice .extra_mac_address4').val() + ":" + $('#LANpopUpAddDevice .extra_mac_address5').val() + ":" + $('#LANpopUpAddDevice .extra_mac_address6').val(); var IPAddrToAdd = $('#LANpopUpAddDevice .extra_ip_address1').val() + "." + $('#LANpopUpAddDevice .extra_ip_address2').val() + "." + $('#LANpopUpAddDevice .extra_ip_address3').val() + "." + $('#LANpopUpAddDevice .extra_ip_address4').val(); for (i = 0; i < getdata['StaticNHostTable'].length; i++) { if (index != null) { if (index == i) { tt.find('span.inner-dropbox').text(getdata['StaticNHostTable'][i]['HostName']); MAC = (getdata['StaticNHostTable'][i]['MAC']).split(":"); IP = (getdata['StaticNHostTable'][i]['IP']).split("."); for (j = 0; j < 6; j++) { tt.find('.extra_mac_address' + (j + 1)).text(MAC[j]); } for (k = 0; k < 4; k++) { tt.find('.extra_ip_address' + (k + 1)).text(IP[k]); } } } else { tt.find('.inner-dropbox').text(SelDeviceName); MAC = MacAddrToAdd.split(":"); IP = IPAddrToAdd.split("."); for (k = 0; k < 6; k++) { tt.find('.extra_mac_address' + (k + 1)).text(MAC[k]); } for (j = 0; j < 4; j++) { tt.find('.extra_ip_address' + (j + 1)).text(IP[j]); } } } tt.show(); tt.removeClass('template-row'); tt.addClass('tableRow'); tt.removeAttr('id'); tt.find('.chosen-container').hide(); tt.insertBefore("#addRow"); RowNum++; var MACad = MacAddrToAdd.split(":"); var IPad = IPAddrToAdd.split("."); for (i = 1; i <= 6; i++) { tt.find('.extra_mac_address' + i).attr("id", "staticdhcpmac" + RowNum + i); } for (i = 1; i <= 4; i++) { tt.find('.extra_ip_address' + i).attr("id", "staticdhcpip" + RowNum + i); } $(".chosen-results").css("white-space", "nowrap"); $(".chosen-container").click(function() { var liObj = $(this).closest('tr').find('li'); for (i = 0; i <= getdata['StaticNHostTable'].length; i++) { liObj.bind("mouseenter", function() { $("#content").on("mousemove", mouseMove); $("#deviceNameTip").html($(this).text()); $("#deviceNameTip").css("display", "block"); }); liObj.bind("mouseleave", function() { $("#deviceNameTip").css("display", "none"); }); liObj.bind("click", function() { $("#deviceNameTip").css("display", "none"); }); liObj = liObj.next(); } }); BindEditButton(tt); BindDeleteButton(tt); $('.noEntryTD').hide(); }
Wenn ihr das öfter benötigt, könnt ihr die Funktion auch unter Sources -> Snippets abspeichern, damit ihr bei bedarf nur noch die Entwicklertools öffnen müsst und die funktion mit rechtsklick -> Run überschreiben könnt.
Ich denke das ist eine bessere Lösung als auf einen Fix von Vodafone zu warten der ja anscheinend schon ewig auf sich warten lässt.
am 04.02.2020 20:33
@Philipp211 Vielen Dank. Für deine Arbeit.
So ein Support würde ich mir von Vodafone wünschen.
am 05.02.2020 15:33
am 05.02.2020 19:54
Wenn Vodafone eine kleine Hinterhof Firma wäre, würde ich es ja noch verstehen das sie nicht in der Lage (Position) ist, Arris klar zu machen das auf den Geräte die Vodafone an ihre Kunden gibt (aufzwingt), eine Bugfrei Firmware zu veröffentlichen.