summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Wieninger <cwieninger (at) gmx (dot) de>2009-02-19 20:29:24 +0100
committerChristian Wieninger <cwieninger (at) gmx (dot) de>2009-02-19 20:29:24 +0100
commitd5d59f964996c24019898e0573067b919fa83a6f (patch)
treeacbdb7d19f9083c77cb67b52b3c204defb623fca
parent3b53981b41a59c7935e372a56737c14857432bae (diff)
parente3343f602dfe288afa1f027563d307d049d95c1e (diff)
downloadvdr-plugin-live-d5d59f964996c24019898e0573067b919fa83a6f.tar.gz
vdr-plugin-live-d5d59f964996c24019898e0573067b919fa83a6f.tar.bz2
Merge commit 'tadi/master'
Conflicts: README setup.cpp
-rw-r--r--README4
-rw-r--r--po/de_DE.po812
-rw-r--r--setup.cpp36
-rw-r--r--tntconfig.cpp13
4 files changed, 52 insertions, 813 deletions
diff --git a/README b/README
index 550e398..642af84 100644
--- a/README
+++ b/README
@@ -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."
diff --git a/setup.cpp b/setup.cpp
index 2bdf7bd..81971fd 100644
--- a/setup.cpp
+++ b/setup.cpp
@@ -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