diff options
author | Christian Wieninger <cwieninger (at) gmx (dot) de> | 2009-02-19 20:29:24 +0100 |
---|---|---|
committer | Christian Wieninger <cwieninger (at) gmx (dot) de> | 2009-02-19 20:29:24 +0100 |
commit | d5d59f964996c24019898e0573067b919fa83a6f (patch) | |
tree | acbdb7d19f9083c77cb67b52b3c204defb623fca | |
parent | 3b53981b41a59c7935e372a56737c14857432bae (diff) | |
parent | e3343f602dfe288afa1f027563d307d049d95c1e (diff) | |
download | vdr-plugin-live-d5d59f964996c24019898e0573067b919fa83a6f.tar.gz vdr-plugin-live-d5d59f964996c24019898e0573067b919fa83a6f.tar.bz2 |
Merge commit 'tadi/master'
Conflicts:
README
setup.cpp
-rw-r--r-- | README | 4 | ||||
-rw-r--r-- | po/de_DE.po | 812 | ||||
-rw-r--r-- | setup.cpp | 36 | ||||
-rw-r--r-- | tntconfig.cpp | 13 |
4 files changed, 52 insertions, 813 deletions
@@ -164,7 +164,11 @@ SSL Commandline options -c CERT, --cert=CERT path to a custom ssl certificate file (default: $CONFIGDIR/live.pem) -k KEY, --cert=CERT path to a custom ssl certificate key file +<<<<<<< HEAD:README (default: $CONFIGDIR/live-key.pem) +======= + (default: $CONFIGDIR/live-key.pem) +>>>>>>> tadi/master:README Creating a self-signed SSL server certificate diff --git a/po/de_DE.po b/po/de_DE.po deleted file mode 100644 index eb5629e..0000000 --- a/po/de_DE.po +++ /dev/null @@ -1,812 +0,0 @@ -# VDR LIVE plugin language source file. -# Copyright (C) 2007 LIVE Development team. See http://live.vdr-developer.org -# This file is distributed under the same license as the VDR-LIVE package. -# Klaus Schmiedinger <kls@cadsoft.de>, 2003 -# Christian Wieniger <cwieninger@gmx.de>, 2007 -# Dieter Hametner <dh+vdr@gekrumbel.de>, 2007 -# -msgid "" -msgstr "" -"Project-Id-Version: VDR-LIVE 0.2.0\n" -"Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"PO-Revision-Date: 2007-08-19 20:15+0200\n" -"Last-Translator: Dieter Hametner <dh+vdr@gekrumbel.de>\n" -"Language-Team: see developers in README\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-15\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "Last channel to display" -msgstr "EPG-Anzeige bis Kanal" - -msgid "No limit" -msgstr "Alle zeigen" - -msgid "Use authentication" -msgstr "Authentifizierung nutzen" - -msgid "No" -msgstr "Nein" - -msgid "Yes" -msgstr "Ja" - -msgid "Admin login" -msgstr "Admin Login" - -msgid "Admin password" -msgstr "Admin Passwort" - -#, c-format -msgid "%A, %x" -msgstr "%A, %x" - -msgid "Searchtimer" -msgstr "Suchtimer" - -msgid "Error in timer settings" -msgstr "Fehler in den Timer Einstellungen" - -msgid "Timer already defined" -msgstr "Timer ist bereits vorhanden" - -msgid "Timers are being edited - try again later" -msgstr "Timer werden bearbeitet - später nochmal versuchen" - -msgid "Timer not defined" -msgstr "Timer wurde nicht erstellt" - -msgid "On archive DVD No." -msgstr "Auf Archiv-DVD Nr." - -msgid "Couldn't find channel or no channels available." -msgstr "Kann das Programm nicht finden oder keine vorhanden." - -msgid "Couldn't switch to channel." -msgstr "Kann nicht zu dem Programm umschalten." - -msgid "Couldn't find recording or no recordings available." -msgstr "Kann die Aufnahme nicht finden oder keine Aufnahmen vorhanden." - -msgid "Cannot control playback!" -msgstr "Kann die Wiedergabe nicht steuern." - -msgid "Not playing a recording." -msgstr "Es wird keine Aufnahme abgespielt." - -msgid "Not playing the same recording as from request." -msgstr "Es wird nicht die selbe Aufnahme abgespielt." - -msgid "Attempt to delete recording currently in playback." -msgstr "Versuch die gerade abgepielte Aufnahme zu löschen." - -msgid "Epg error" -msgstr "EPG Fehler" - -msgid "Wrong channel id" -msgstr "Fehlerhafte Kanal Id" - -msgid "Channel has no schedule" -msgstr "Kanal hat keine Programminfos" - -msgid "Wrong event id" -msgstr "Fehlerhafte Sendungs Id" - -msgid "Required minimum version of epgsearch: " -msgstr "Benötigte Mindestversion von epgsearch: " - -msgid "All" -msgstr "Alle" - -msgid "FTA" -msgstr "FTA" - -msgid "%I:%M %p" -msgstr "%H:%M" - -msgid "EPGSearch version outdated! Please update." -msgstr "EPGSearch-Version zu alt, bitte updaten!" - -msgid "Couldn't aquire primary device" -msgstr "" - -msgid "Couldn't grab image from primary device" -msgstr "" - -msgid "Timer conflict check detected " -msgstr "Die Timer Konflikt Überprüfung hat " - -msgid "conflict" -msgstr "Timerkonflikt entdeckt" - -msgid "conflicts" -msgstr "Timerkonflikte entdeckt" - -msgid "Couldn't aquire access to channels, please try again later." -msgstr "Zugriff auf die Kanäle wurde verweigert. Bitte später versuchen." - -msgid "Couldn't find searchtimer. Maybe you mistyped your request?" -msgstr "Keinen Suchtimer gefunden. Möglicherweise ein Tippfehler in der Anfrage?" - -#. TRANSLATORS: only adjust the ordering and separators, don't translate the m's, d's and y's -msgid "mm/dd/yyyy" -msgstr "dd.mm.yyyy" - -msgid "Edit search timer" -msgstr "Suchtimer bearbeiten" - -msgid "New search timer" -msgstr "Neuen Suchtimer anlegen" - -msgid "Search text too short - use anyway?" -msgstr "Suchtext zu kurz - trotzdem verwenden?" - -msgid "Search term" -msgstr "Suchbegriff" - -msgid "Search mode" -msgstr "Suchmodus" - -msgid "phrase" -msgstr "Ausdruck" - -msgid "all words" -msgstr "alle Worte" - -msgid "at least one word" -msgstr "ein Wort" - -msgid "match exactly" -msgstr "exakt" - -msgid "regular expression" -msgstr "regulärer Ausdruck" - -msgid "fuzzy" -msgstr "unscharf" - -msgid "Tolerance" -msgstr "Toleranz" - -msgid "Match case" -msgstr "Groß/klein" - -msgid "Search in" -msgstr "Suche in" - -msgid "Title" -msgstr "Titel" - -msgid "Episode" -msgstr "Episode" - -msgid "Description" -msgstr "Beschreibung" - -msgid "Use extended EPG info" -msgstr "Verw. erweiterte EPG Info" - -msgid "Ignore missing EPG info" -msgstr "Ignoriere fehlende EPG Info" - -msgid "When active this can cause very many timers. So please always first test this search before using it as search timer!" -msgstr "Diese Einstellung kann bei Aktivierung sehr viele Timer erzeugen. Also bitte immer zuerst die Suche testen, bevor sie als Suchtimer verwendet wird!" - -msgid "Use channel" -msgstr "Verw. Kanal" - -msgid "interval" -msgstr "Bereich" - -msgid "channel group" -msgstr "Kanalgruppe" - -msgid "only FTA" -msgstr "ohne PayTV" - -msgid "from channel" -msgstr "von Kanal" - -msgid "to channel" -msgstr "bis Kanal" - -msgid "Use time" -msgstr "Verw. Uhrzeit" - -msgid "Start after" -msgstr "Start nach" - -msgid "The time the show may start at the earliest" -msgstr "Die Zeit, zu der die Sendung frühestens anfangen darf" - -msgid "Start before" -msgstr "Start vor" - -msgid "The time the show may start at the latest" -msgstr "Die Zeit, zu der die Sendung spätestens angefangen haben muss" - -msgid "Use duration" -msgstr "Verw. Dauer" - -msgid "Min. duration" -msgstr "Min. Dauer" - -msgid "Max. duration" -msgstr "Max. Dauer" - -msgid "Use day of week" -msgstr "Verw. Wochentag" - -msgid "Monday" -msgstr "Montag" - -msgid "Tuesday" -msgstr "Dienstag" - -msgid "Wednesday" -msgstr "Mittwoch" - -msgid "Thursday" -msgstr "Donnerstag" - -msgid "Friday" -msgstr "Freitag" - -msgid "Saturday" -msgstr "Samstag" - -msgid "Sunday" -msgstr "Sonntag" - -msgid "Use blacklists" -msgstr "Verw. Ausschlusslisten" - -msgid "Selection" -msgstr "Auswahl" - -msgid "all" -msgstr "alle" - -msgid "Use in favorites menu" -msgstr "In Favoritenmenü verw." - -msgid "Use as search timer" -msgstr "Als Suchtimer verwenden" - -msgid "user defined" -msgstr "benutzer-definiert" - -msgid "from date" -msgstr "ab Datum" - -msgid "to date" -msgstr "bis Datum" - -msgid "Record" -msgstr "Aufnehmen" - -msgid "Announce only" -msgstr "Nur ankündigen" - -msgid "Switch only" -msgstr "Nur umschalten" - -msgid "Series recording" -msgstr "Serienaufnahme" - -msgid "Directory" -msgstr "Verzeichnis" - -msgid "Delete recordings after ... days" -msgstr "Aufn. nach ... Tagen löschen" - -msgid "Keep ... recordings" -msgstr "Behalte ... Aufnahmen" - -msgid "Pause when ... recordings exist" -msgstr "Pause, wenn ... Aufnahmen exist." - -msgid "Avoid repeats" -msgstr "Vermeide Wiederholung" - -msgid "Allowed repeats" -msgstr "Erlaubte Wiederholungen" - -msgid "Only repeats within ... days" -msgstr "Nur Wiederh. innerhalb ... Tagen" - -msgid "Compare title" -msgstr "Vergleiche Titel" - -msgid "Compare subtitle" -msgstr "Vergleiche Untertitel" - -msgid "if present" -msgstr "wenn vorhanden" - -msgid "Compare summary" -msgstr "Vergleiche Beschreibung" - -msgid "Compare" -msgstr "Vergleiche" - -msgid "Use VPS" -msgstr "VPS verwenden" - -msgid "Auto-delete search timer" -msgstr "Suchtimer automatisch löschen" - -msgid "after ... recordings" -msgstr "nach ... Aufnahmen" - -msgid "after ... days after first rec." -msgstr "nach ... Tagen nach erster Aufnahme" - -msgid "Switch ... minutes before start" -msgstr "Umschalten ... Minuten vor Start" - -msgid "Test" -msgstr "Testen" - -msgid "Save" -msgstr "Speichern" - -msgid "Cancel" -msgstr "Abbrechen" - -msgid "Couldn't find timer. Maybe you mistyped your request?" -msgstr "Konnte Timer nicht finden. Evtl. fehlerhafte Anforderung?" - -msgid "Please set a title for the timer!" -msgstr "Bitte einen Titel f�r den Timer angeben!" - -msgid "Edit timer" -msgstr "Timer bearbeiten" - -msgid "New timer" -msgstr "Neuen Timer anlegen" - -msgid "Weekday" -msgstr "Wochentag" - -msgid "Electronic program guide information" -msgstr "Elektronische Programminformation" - -msgid "Couldn't find recording or no recordings available" -msgstr "" - -msgid "Error aquiring schedules lock" -msgstr "" - -msgid "Error aquiring schedules" -msgstr "" - -msgid "%b %d %y" -msgstr "%d.%m.%y" - -msgid "Page error" -msgstr "Seitenfehler" - -msgid "playing recording" -msgstr "Wiedergabe" - -msgid "no epg info for current event!" -msgstr "Keine Infos zur Sendung!" - -msgid "no epg info for current channel!" -msgstr "Dieser Kanal hat kein EPG!" - -msgid "no current channel!" -msgstr "Keinen Kanal gefunden!" - -msgid "error retrieving status info!" -msgstr "Fehler: Status nicht verfügbar!" - -msgid "%I:%M:%S %p" -msgstr "%H:%M:%S" - -msgid "Wrong username or password" -msgstr "Falscher Benutzername oder Passwort" - -msgid "Login" -msgstr "Anmelden" - -msgid "VDR Live Login" -msgstr "VDR Live Login" - -msgid "User" -msgstr "Benutzer" - -msgid "Password" -msgstr "Passwort" - -msgid "What's on?" -msgstr "Was läuft?" - -msgid "Search" -msgstr "Suchen" - -msgid "Searchtimers" -msgstr "Suchtimer" - -msgid "Recordings" -msgstr "Aufnahmen" - -msgid "Remote Control" -msgstr "Fernbedienung" - -msgid "Logout" -msgstr "Abmelden" - -msgid "Your attention is required" -msgstr "Ihre Aufmerksamkeit ist erforderlich" - -msgid "React" -msgstr "Reagieren" - -msgid "Dismiss" -msgstr "Verwerfen" - -msgid "Find more at the Internet Movie Database." -msgstr "Weitere Informationen in der Internet Movie Database." - -msgid "Stream this channel into browser." -msgstr "Sendung im Browser anzeigen." - -msgid "Stream this recording into browser." -msgstr "Aufnahme im Browser anzeigen." - -msgid "Record this" -msgstr "Diese Sendung aufnehmen" - -msgid "loading data" -msgstr "Daten nachladen" - -msgid "an error occured!" -msgstr "Es ist ein Fehler aufgetreten!" - -msgid "Request succeeded!" -msgstr "Aktion durchgeführt!" - -msgid "Request failed!" -msgstr "Aktion fehlgeschlagen!" - -msgid "January" -msgstr "Januar" - -msgid "February" -msgstr "Februar" - -msgid "March" -msgstr "März" - -msgid "April" -msgstr "April" - -msgid "May" -msgstr "Mai" - -msgid "June" -msgstr "Juni" - -msgid "July" -msgstr "Juli" - -msgid "August" -msgstr "August" - -msgid "September" -msgstr "September" - -msgid "October" -msgstr "Oktober" - -msgid "November" -msgstr "November" - -msgid "December" -msgstr "Dezember" - -msgid "retrieving status ..." -msgstr "Hole Status ..." - -msgid "Toggle updates on/off." -msgstr "Statusabfrage ein- oder ausschalten." - -msgid "stop playback" -msgstr "Anhalten" - -msgid "resume playback" -msgstr "Fortsetzen" - -msgid "pause playback" -msgstr "Pause" - -msgid "fast rewind" -msgstr "Suchlauf rückwärts" - -msgid "fast forward" -msgstr "Suchlauf vorwärts" - -msgid "previous channel" -msgstr "Sender zurück" - -msgid "next channel" -msgstr "Sender vor" - -msgid "No server response!" -msgstr "Der Server antwortet nicht!" - -msgid "Failed to update infobox!" -msgstr "Kann Infobox nicht aktualisieren!" - -msgid "Switch to this channel." -msgstr "Zu diesem Kanal umschalten." - -msgid "Search for repeats." -msgstr "Nach Wiederholungen suchen." - -msgid "Authors" -msgstr "Autoren" - -msgid "Project Idea" -msgstr "Projekt Idee" - -msgid "Webserver" -msgstr "Webserver" - -msgid "Project leader" -msgstr "Projektleiter" - -msgid "Content" -msgstr "Inhalte" - -msgid "Graphics" -msgstr "Grafiken" - -msgid "Information" -msgstr "Informationen" - -msgid "LIVE version" -msgstr "LIVE Version" - -msgid "VDR version" -msgstr "VDR Version" - -msgid "Features" -msgstr "Unterstütze Plugins" - -msgid "active" -msgstr "aktiv" - -msgid "required" -msgstr "erforderlich" - -msgid "Homepage" -msgstr "Homepage" - -msgid "Bugs and suggestions" -msgstr "Fehlerberichte und Vorschläge" - -msgid "If you encounter any bugs or would like to suggest new features, please use our bugtracker" -msgstr "Für Fehler oder Verbesserungsvorschläge steht unser Bugtracker bereit" - -msgid "ERROR:" -msgstr "FEHLER:" - -msgid "Deleted recording:" -msgstr "Gelöschte Aufnahme:" - -msgid "List of recordings" -msgstr "Liste der Aufnahmen" - -msgid "No recordings found" -msgstr "Keine Aufnahmen vorhanden" - -msgid "Click to view details." -msgstr "Für Details klicken." - -msgid "Delete this recording from hard disc!" -msgstr "Diese Aufnahme von der Festplatte löschen!" - -msgid "play this recording." -msgstr "Diese Aufnahme abspielen." - -msgid "Interval" -msgstr "Intervall" - -msgid "Couldn't find channel or no channels available. Maybe you mistyped your request?" -msgstr "Konnte Kanal nicht finden oder keine Kanäle verfügbar. Ist die Anfrage korrekt?" - -msgid "No schedules available for this channel" -msgstr "Für diesen Kanal liegen keine EPG-Informationen vor" - -msgid "%A, %b %d %Y" -msgstr "%A, %d.%m.%Y" - -msgid "Show schedule of channel" -msgstr "Zeige Programm dieses Kanals" - -msgid "Search settings" -msgstr "Einstellungen zur Suche" - -msgid "Extended search" -msgstr "Erweiterte Suche" - -msgid "no" -msgstr "nein" - -msgid "Search results" -msgstr "Suchergebnisse" - -msgid "No search results" -msgstr "keine Suchergebnisse" - -msgid "Expression" -msgstr "Suchbegriff" - -msgid "Channel" -msgstr "Kanal" - -msgid "Starts between" -msgstr "Beginnt zwischen" - -msgid "Toggle search timer actions (in)active" -msgstr "Aktionen des Suchtimers (de)aktivieren" - -msgid "Browse search timer results" -msgstr "Suchtimerergebnisse betrachten" - -msgid "Delete this search timer?" -msgstr "Diesen Suchtimer löschen?" - -msgid "Delete search timer" -msgstr "Suchtimer löschen" - -msgid "Trigger search timer update" -msgstr "Suchtimer-Update starten" - -msgid "Please set login and password!" -msgstr "Bitte Login und Passwort angeben!" - -msgid "Setup saved." -msgstr "Einstellungen gespeichert." - -msgid "Setup" -msgstr "Einstellungen" - -msgid "Local net (no login required)" -msgstr "Lokales Netz (keine Anmeldung notwendig)" - -msgid "Show live logo image" -msgstr "Zeige das Live Logo" - -msgid "Use ajax technology" -msgstr "Verwende AJAX Technologie" - -msgid "Show dynamic VDR information box" -msgstr "Zeige dynamische VDR Status Box" - -msgid "Allow video streaming" -msgstr "Erlaube Videoanzeige im Browser" - -msgid "Streamdev server port" -msgstr "Streamdev Server Port" - -msgid "Streamdev stream type" -msgstr "Streamdev Stream Typ" - -msgid "Add links to IMDb" -msgstr "Füge Links zur IMDb hinzu" - -msgid "additional fixed times in 'What's on?'" -msgstr "zusätzliche Zeitpunkte in 'Was läuft?'" - -msgid "Format is HH:MM. Separate multiple times with a semicolon" -msgstr "Format ist HH:MM. Mehrere Zeiten durch Semikolon trennen" - -msgid "Show channels without EPG" -msgstr "Zeige Kanäle ohne EPG" - -msgid "Start page" -msgstr "Startseite" - -msgid "Theme" -msgstr "Thema" - -msgid "Timer conflicts" -msgstr "Timer-Konflikte" - -msgid "No timer conflicts" -msgstr "Keine Timer-Konflikte" - -msgid "Timer has a conflict." -msgstr "Timer hat einen Konflikt." - -msgid "Timer is active." -msgstr "Timer ist aktiv." - -msgid "Toggle timer active/inactive" -msgstr "Timer aktiv/inaktiv schalten" - -msgid "Delete timer" -msgstr "Timer löschen" - -msgid "No timer defined" -msgstr "Keine Timer vorhanden" - -msgid "Timer is recording." -msgstr "Timer zeichnet auf." - -msgid "VLC: live video stream" -msgstr "VLC: Video Stream" - -msgid "VLC: play recording" -msgstr "VLC: Aufnahme abspielen" - -msgid "Stop" -msgstr "Stopp" - -msgid "Play" -msgstr "Wiedergabe" - -msgid "Sound on" -msgstr "Ton an" - -msgid "Sound off" -msgstr "Ton aus" - -msgid "Fullscreen" -msgstr "Vollbild" - -msgid "Close" -msgstr "Schließen" - -msgid "VLC media URL" -msgstr "VLC Medien URL" - -#, c-format -msgid "%a, %x" -msgstr "%a, %x" - -msgid "What's running on" -msgstr "Was läuft am" - -msgid "at" -msgstr "um" - -msgid "What's on next?" -msgstr "Was läuft als nächstes?" - -msgid "Favorites" -msgstr "Favoriten" - -msgid "View the schedule of this channel" -msgstr "Zeige Programm dieses Kanals" - -msgid "more" -msgstr "mehr" - -msgid "Now" -msgstr "Jetzt" - -msgid "Next" -msgstr "als Nächstes" - -msgid "What's on" -msgstr "Was läuft" - -msgid "Details view" -msgstr "Ausführliche Ansicht" - -msgid "List view" -msgstr "Listenansicht" - -msgid "Live Interactive VDR Environment" -msgstr "" - -msgid "No EPG information available" -msgstr "Keine EPG Daten vorhanden" - -#~ msgid "%a, %b %d" -#~ msgstr "%a, %d.%m." @@ -155,15 +155,45 @@ bool Setup::CheckServerSslPort() } #endif +namespace { + struct IpValidator + { + bool operator() (string const & ip) + { + struct in6_addr buf; + struct in_addr buf4; + + bool valid = inet_aton(ip.c_str(), &buf4) || inet_pton(AF_INET6, ip.c_str(), &buf); + + if (!valid) { + esyslog( "ERROR: live server ip %s is not a valid ip address", ip.c_str()); + cerr << "ERROR: live server ip '" << ip << "' is not a valid ip address" << endl; + } + return valid; + } + }; +} + bool Setup::CheckServerIps() { struct in6_addr buf; if ( m_serverIps.empty() ) { +<<<<<<< HEAD:setup.cpp +======= + // add a default IPv4 listener address + m_serverIps.push_back( "0.0.0.0" ); + // and be prepared for IPv6 only hosts. +>>>>>>> tadi/master:setup.cpp m_serverIps.push_back( "::" ); +<<<<<<< HEAD:setup.cpp +======= + // we assume these are ok :) +>>>>>>> tadi/master:setup.cpp return true; } +<<<<<<< HEAD:setup.cpp for ( IpList::const_iterator ip = m_serverIps.begin(); ip != m_serverIps.end(); ++ip ) { if ( inet_addr( ip->c_str() ) == static_cast< in_addr_t >( -1 ) ) { if ( ! inet_pton( AF_INET6, ip->c_str(), &buf ) ) { @@ -174,6 +204,12 @@ bool Setup::CheckServerIps() } } return true; +======= + IpList::iterator i = partition(m_serverIps.begin(), m_serverIps.end(), IpValidator()); + m_serverIps.erase(i, m_serverIps.end()); + + return !m_serverIps.empty(); +>>>>>>> tadi/master:setup.cpp } std::string const Setup::GetMD5HashAdminPassword() const diff --git a/tntconfig.cpp b/tntconfig.cpp index 23943a5..d35dad4 100644 --- a/tntconfig.cpp +++ b/tntconfig.cpp @@ -252,8 +252,19 @@ namespace vdrlive { Setup::IpList const& ips = LiveSetup().GetServerIps(); int port = LiveSetup().GetServerPort(); + size_t listenFailures = 0; for ( Setup::IpList::const_iterator ip = ips.begin(); ip != ips.end(); ++ip ) { - app.listen(*ip, port); + try { + app.listen(*ip, port); + } + catch (exception const & ex) { + esyslog("ERROR: live ip = %s is invalid: exception = %s", ip->c_str(), ex.what()); + if (++listenFailures == ips.size()) { + // if no listener was initialized we throw at + // least the last exception to the next layer. + throw; + } + } } #if TNTSSLSUPPORT |