Skip to content
Snippets Groups Projects
Select Git revision
  • 04818c170b2fb6d64eccdec5aa97673ad4419a9f
  • experimental default protected
  • v2023.2.5-ffs
  • nrb/ex400-remove-wps
  • nrb/airmax-test
  • v2023.2.4-ffs
  • nrb/ar9344-reset-sequence
  • autinerd/experimental-openwrt-24.10
  • v2023.2.3-ffs
  • v2023.2.2-ffs
  • v2023.2-ffs
  • v2023.1-ffs
  • v2022.1.4-ffs
  • feature/addMikrotikwAP
  • v2022.1.3-ffs
  • v2021.1.2-ffs
  • v2022.1.1-ffs
  • master protected
  • v2021.1.1-ffs
  • nrb/gluon-master-cpe510
  • v2021.1-ffs
  • v2023.2.5-ffs0.1
  • experimental-2025-06-08
  • experimental-2025-06-08-base
  • experimental-2025-06-06
  • experimental-2025-06-06-base
  • experimental-2025-05-27
  • experimental-2025-05-27-base
  • experimental-2025-05-18
  • experimental-2025-05-18-base
  • experimental-2025-05-15
  • experimental-2025-05-15-base
  • experimental-2025-05-13
  • experimental-2025-05-13-base
  • experimental-2025-05-08
  • experimental-2025-05-08-base
  • experimental-2025-05-05
  • experimental-2025-05-05-base
  • experimental-2025-05-02
  • experimental-2025-05-02-base
  • experimental-2025-05-01
41 results

0012-kernel-fs-seq_file-fallback-to-vmalloc-instead-of-oom-kill-processes.patch

Blame
  • helper.js 4.52 KiB
    "use strict"
    define([ "bacon" ], function (Bacon) {
      function get(url) {
        return Bacon.fromBinder(function(sink) {
          var req = new XMLHttpRequest()
          req.open("GET", url)
    
          req.onload = function() {
            if (req.status === 200)
              sink(new Bacon.Next(req.response))
            else
              sink(new Bacon.Error(req.statusText))
            sink(new Bacon.End())
          }
    
          req.onerror = function() {
            sink(new Bacon.Error("network error"))
            sink(new Bacon.End())
          }
    
          req.send()
    
          return function () {}
        })
      }
    
      function getJSON(url) {
        return get(url).map(JSON.parse)
      }
    
      function buildUrl(ip, object, param) {
        var url = "http://[" + ip + "]/cgi-bin/" + object
        if (param) url += "?" + param
    
        return url
      }
    
      function request(ip, object, param) {
        return getJSON(buildUrl(ip, object, param))
      }
    
      function dictGet(dict, key) {
        var k = key.shift()
    
        if (!(k in dict))
          return null
    
        if (key.length === 0)
          return dict[k]
    
        return dictGet(dict[k], key)
      }
    
      function localizeNumber(d) {
        var sep = ','
        return d.replace('.', sep)
      }
    
      function formatNumberFixed(d, digits) {
        return localizeNumber(d.toFixed(digits))
      }
    
      function formatNumber(d, digits) {
        digits--
    
        for (var v = d; v >= 10 && digits > 0; v /= 10)
          digits--
    
        // avoid toPrecision as it might produce strings in exponential notation
        return formatNumberFixed(d, digits)
      }
    
      function haversine() {
        var radians = Array.prototype.map.call(arguments, function(deg) { return deg / 180.0 * Math.PI })
        var lat1 = radians[0], lon1 = radians[1], lat2 = radians[2], lon2 = radians[3]
        var R = 6372.8 // km
        var dLat = lat2 - lat1
        var dLon = lon2 - lon1
        var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(lat1) * Math.cos(lat2)
        var c = 2 * Math.asin(Math.sqrt(a))
        return R * c
      }
    
      function _(s) {
        var i, lang, langs, dict = {
          "de": {
            "Node": "Knoten",
            "Distance": "Entfernung",
            "Inactive": "Inaktiv",
            "Node name": "Knotenname",
            "Contact": "Kontakt",
            "Model": "Modell",
            "Primary MAC": "Primäre MAC",
            "IP Address": "IP-Adresse",
            "Automatic updates": "Automatische Updates",
            "Overview": "Übersicht",
            "used": "belegt",
            "Uptime": "Laufzeit",
            "Load average": "Systemlast",
            "Transmitted": "Gesendet",
            "Received": "Empfangen",
            "Forwarded": "Weitergeleitet",
            "Day": "Tag",
            "Days": "Tage",
            "connected": "verbunden",
            "not connected": "nicht verbunden",
            "Packets/s": "Pakete/s",
            "Statistic": "Statistik",
            "Neighbors": "Nachbarknoten"
          },
          "ru": {
            "Node": "Узел",
            "Distance": "Дальность",
            "Inactive": "Не активен",
            "Node name": "Имя узла",
            "Contact": "Контакт",
            "Model": "Модель",
            "Primary MAC": "Основной MAC",
            "IP Address": "IP Адрес",
            "Automatic updates": "Автоматические обновления",
            "Overview": "Обзор",
            "used": "используется",
            "Uptime": "Время работы",
            "Load average": "Загрузка системы",
            "Gateway": "Шлюз",
            "Clients": "Клиенты",
            "Transmitted": "Передано",
            "Received": "Получено",
            "Forwarded": "Переправленно",
            "Day": "День",
            "Days": "Дней",
            "connected": "подключено",
            "not connected": "не подключено",
            "Packets/s": "Пакетов/c",
            "Statistic": "Статистика",
            "Traffic": "Трафик",
            "Neighbors": "Соседи",
            "Firmware": "Прошивка",
            "Branch": "Ветка"
          }
        }
        if (navigator.languages)
          langs = navigator.languages
        else if (navigator.language)
          langs = [navigator.language]
        else
          langs = []
        for (i=0; i<langs.length; i++) {
          lang = langs[i].split('-')[0]
          if (lang == "en")
            return s
          else if (lang in dict && s in dict[lang])
            return dict[lang][s]
        }
        return s
      }
    
      return { buildUrl: buildUrl
             , request: request
             , getJSON: getJSON
             , dictGet: dictGet
             , formatNumber: formatNumber
             , formatNumberFixed: formatNumberFixed
             , haversine: haversine
             , _: _
             }
    })