From b8931920233f245060be5b837cb3f7dc08a7c02e Mon Sep 17 00:00:00 2001 From: Johann Latocha Date: Wed, 7 Jul 2010 00:38:57 +0200 Subject: jjls first git commit ever! (svn changes since r793) --- .gitignore | 4 + CMakeLists.txt | 9 +- doc/LaTeX/devel/0300-pvs.tex | 81 ++++----- doc/LaTeX/devel/0400-pvs-console.tex | 2 +- doc/LaTeX/devel/0500-pvs-client.tex | 30 +++- i18n/pvsgui_es_MX.ts | 182 ++++++++++---------- i18n/pvsmgr_es_MX.ts | 310 +++++++++++++++++------------------ src/pvsDaemon.cpp | 21 +-- src/version.h | 4 +- 9 files changed, 339 insertions(+), 304 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d9453b2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.cproject +.project +build/ + diff --git a/CMakeLists.txt b/CMakeLists.txt index 00de7a5..2153497 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -324,19 +324,20 @@ SET_PROPERTY(TARGET pvsmgr PROPERTY COMPILE_DEFINITIONS MAINWINDOW_USE_NORMALGUI # add install target to our makefile CONFIGURE_FILE( org.openslx.pvs.service ${CMAKE_BINARY_DIR}/org.openslx.pvs.service ) INSTALL( TARGETS pvsmgr pvs pvsgui pvsmgrtouch RUNTIME DESTINATION bin ) +INSTALL( PROGRAMS misc/pvs-vncsrv DESTINATION bin) INSTALL( FILES ${CMAKE_BINARY_DIR}/org.openslx.pvs.service DESTINATION share/dbus-1/services ) # add package target to our makefile SET( CPACK_GENERATOR "DEB" ) SET( CPACK_SET_DESTDIR "ON" ) SET( CPACK_PACKAGE_NAME "pvs" ) -SET( CPACK_PACKAGE_VERSION_MAJOR "1" ) -SET( CPACK_PACKAGE_VERSION_MINOR "7" ) -SET( CPACK_PACKAGE_VERSION_PATCH "9" ) +SET( CPACK_PACKAGE_VERSION_MAJOR "2" ) +SET( CPACK_PACKAGE_VERSION_MINOR "0" ) +SET( CPACK_PACKAGE_VERSION_PATCH "1" ) SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY "Pool Video Switch" ) SET( CPACK_PACKAGE_DESCRIPTION "") SET( CPACK_PACKAGE_CONTACT "Simon Wittenberg " ) -SET( CPACK_DEBIAN_PACKAGE_DEPENDS "libvncserver0 (>= 0.9.3.dfsg.1-2), libqtgui4 (>= 4:4.5.3-4), libqt4-dbus (>= 4:4.5.3-4), libqt4-network (4:4.5.3-4)" ) +SET( CPACK_DEBIAN_PACKAGE_DEPENDS "libvncserver0 (>= 0.9.3.dfsg.1-2), libqtgui4 (>= 4:4.5.3-4), libqt4-dbus (>= 4:4.5.3-4), libqt4-network (>= 4:4.5.3-4)" ) SET( CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i386" ) SET( CPACK_DEBIAN_PACKAGE_SECTION "Network" ) SET( CPACK_DEBIAN_PACKAGE_PRIORITY "optional" ) diff --git a/doc/LaTeX/devel/0300-pvs.tex b/doc/LaTeX/devel/0300-pvs.tex index 329e03a..92b36f7 100644 --- a/doc/LaTeX/devel/0300-pvs.tex +++ b/doc/LaTeX/devel/0300-pvs.tex @@ -9,7 +9,7 @@ Generelles Konzept \subsection{Zuordnung von Konsole und Clients} \input{devel/0310-service-discovery} -\subsection{Überblick über Aktivitäten auf Clients} +\section{Überblick über Aktivitäten auf Clients} \subsection{Projektion an Alle} \index{Projektion} @@ -52,7 +52,7 @@ als gelesen markiert durch das Drucken auf dem Knopf \textit{'OK'}. \textbf{Behandlung der Nachrichten im Server} \\ \\ -Chat-Nachtichten werden von Server in der Klasse 'PVSConnectionManager' mittels der Methode 'onChat' behandelt. Dort wird aus der Nachrit den Empfänger +Chat-Nachtichten werden von Server in der Klasse \texttt{PVSConnectionManager} mittels der Methode \texttt{onChat} behandelt. Dort wird aus der Nachrit den Empfänger und den Absender ausglesen und die Nachricht an beide versendet. So gilt das Empfangen eine eigene Nachricht als Bestätigung, dass die Nachricht ordentlich vom Server behandelt und versendet wurde. Das Gestalt von solchen Nachrichten sieht folgendermaßen aus @@ -60,45 +60,47 @@ behandelt und versendet wurde. Das Gestalt von solchen Nachrichten sieht folgend PVSMSG \end{center} \begin{center} -\begin{tabular}{l | l | p{4cm} | p{4cm}} +\begin{tabular}{|l | p{3cm} | p{3cm} | p{3cm}|} \hline Type & Ident & Msg & sndID\\ \hline -PVSMESSAGE & & : & \\ +\texttt{PVSMESSAGE} & \texttt{} & \texttt{<:} & \texttt{<}\\ \end{tabular} \end{center} -Informationsnachrichten werden ausschließlich vom PVSManager versendet.Dies geschiet in der Klasse 'ConnectionList' mittels der Methode 'on\_Message'. +Informationsnachrichten werden ausschließlich vom PVSManager versendet.Dies geschiet in der Klasse \texttt{ConnectionList} mittels der Methode \texttt{on\_Message}. \begin{center} PVSMSG \end{center} \begin{center} -\begin{tabular}{l | l | p{4cm} | p{4cm}} +\begin{tabular}{|l | l | p{6cm} | p{6cm}} \hline Type & Ident & Msg\\ \hline -PVSMESSAGE & BROADCAST & \\ +\texttt{PVSMESSAGE} & \texttt{BROADCAST} & \texttt{} \\ \end{tabular} \end{center} -Informationnachrichten können außerdem einen oder mehrere Clients sperren, wenn sie den Ident 'LOCKSTATION' enthalten. Sobald ein Client die Nachricht empfängt, +Informationnachrichten können außerdem einen oder mehrere Clients sperren, wenn sie den Ident \texttt{LOCKSTATION} enthalten. Sobald ein Client die Nachricht empfängt, wird diese auf dem Bilschirm angezeigt und 10 Sekunden später wird der Client gesperrt. Abgesehen von der Behandlung der Nachrichten muss sich der Server darum kümmern, dass jeder verbunde Client über alle nötige Informationionen verfügt damit er Nachrichten mit andren Clients austauschen kann. Dies wird folgendermaßen erledigt: \begin{itemize} - \item \textbf{Einfügen eines Clients:} um die Verwaltung von Clients kümmert sich die Klasse 'PVSConnectionManager', in der die Methode 'onClientNew' für das Einfügen + \item \textbf{Einfügen eines Clients:} um die Verwaltung von Clients kümmert sich die Klasse \texttt{PVSConnectionManager}, in der die Methode \texttt{onClientNew} für das Einfügen von neuen Clients zuständigt ist. Sowald ein neuer Client in der Client-Liste des Servers eingefügt wird, wird an ihn die Liste aller im Server bereits angemeldete -Clients geschickt. Dazu dient die Methode 'sendEventToClients'. +Clients geschickt. Dazu dient die Methode \texttt{sendEventToClients}. Bis hier ist der neue Client noch unbekannt für den Rest der Nutzer. Der neuer Client wird erst bekannt gegeben sobald er vom Server einen Benutzername zugewissen bekommen hat. Da es sein kann, dass den Name, mit dem der neue Client sich beim Server anmelden wollte, -bereits vergeben ist und muss unter Umständen verändert werden. Diese Zuweisung findet in der Methode 'onLoginUsername' statt, -wo nicht nur alle andere Clients sondern auch der neue Client darüber informiert werden. Auch hier kümmert sich die Methoder 'sendEventToClients' +bereits vergeben ist und muss unter Umständen verändert werden. Diese Zuweisung findet in der Methode \texttt{onLoginUsername} statt, +wo nicht nur alle andere Clients sondern auch der neue Client darüber informiert werden. Auch hier kümmert sich die Methoder \texttt{sendEventToClients} ums Vesenden der entsprechenden Informationen. - \item \textbf{Entfernen eines Clients:} das Entfernen von Clients wird von der Methode 'onClientRemove' erledigt, wo analog wie + \item \textbf{Entfernen eines Clients:} das Entfernen von Clients wird von der Methode +\\ +\texttt{onClientRemove} erledigt, wo analog wie Oben alle Clients darüber informiert werden. \end{itemize} @@ -108,26 +110,26 @@ Für dei Übermittlung solche Informationen werden Nachrichten mit folgenden Ges PVSMSG \end{center} \begin{center} -\begin{tabular}{l | l | p{4cm} | p{4cm}} +\begin{tabular}{|l | l | p{6cm} |} \hline Type & Ident & Msg\\ \hline -PVSMESSAGE & & : \\ +\texttt{PVSMESSAGE} & \texttt{} & \texttt{:} \\ \end{tabular} \end{center} Es gibt drei unterschiedliche Befehle, die welche Änderung in der localen Client-Liste der Clients vorgenommen werden soll angeben. \begin{enumerate} - \item 'clientToAdd' -\item 'clientToRemove' -\item 'assignedName' + \item \texttt{clientToAdd} +\item \texttt{clientToRemove} +\item \texttt{assignedName} \end{enumerate} Wie es bei Servern gewöhnt ist, werden alle relevante Ereignisse in Log-Dateien protokolliert. Ereignisse werden im Chat-Log mit folgendem Befehl eingetragen \begin{center} -'ConsoleLog writeChat()' +\texttt{ConsoleLog writeChat()} \end{center} \textbf{Chat-Interface der Steuerkonsole} @@ -135,28 +137,28 @@ Befehl eingetragen \\ So wie alle Clients ist der PVSManager auch ein Teilnehmer im Chat. Der PVSManager steht wie alle andere Teilnehmer auch in der Nutzer-Liste jedes Chat-Fenster und kann ebenfalls über private Nachrichten direkt angesprochen werden. Die Arbeitsweise dieser Chat-Interface ist sehr simple. -Da sie sich im Server befindet, müssen einfach alle Ereignise (Nachrichten senden ist die einzige Ausnahme) von der Klasse 'PVSConnectionManager' -an die Klasse 'MainWindow' weitergegeben werden. Dies kümmert sich darum, alle Informationen zu verarbeiten und diesein der Chat-Fenster der +Da sie sich im Server befindet, müssen einfach alle Ereignise (Nachrichten senden ist die einzige Ausnahme) von der Klasse \texttt{PVSConnectionManager} +an die Klasse \texttt{MainWindow} weitergegeben werden. Dies kümmert sich darum, alle Informationen zu verarbeiten und diesein der Chat-Fenster der Steuerkonsole anzuzeigen. -Folgende Methoden der Klasse 'MainWindow' ermöglichen das Anzeigen einer empfangenen Nachricht im Chat-Fenster der Steuerkonsole und Änderungen (Clients einfügen +Folgende Methoden der Klasse \texttt{MainWindow} ermöglichen das Anzeigen einer empfangenen Nachricht im Chat-Fenster der Steuerkonsole und Änderungen (Clients einfügen und entfernen) in der sowohl im Chat-Fenster als auch in der Steuerkonsole angezeigten Client-Liste. \\ \\ -'receiveChatMsg(, , )' +\texttt{receiveChatMsg(, , )} \\ -'removeConnection(*pvsClient)' +\texttt{removeConnection(*pvsClient)} \\ -'addConnection(*pvsClient)' +\texttt{addConnection(*pvsClient)} \\ \\ -Alle diese Methoden werden im Gegensatz von der Methode 'sendChatMsg(PVSMsg myMsg)' von der Klasse 'PVSConnectionManager' aus ausgeführt. Da alle durchs +Alle diese Methoden werden im Gegensatz von der Methode \texttt{sendChatMsg(PVSMsg myMsg)} von der Klasse \texttt{PVSConnectionManager} aus ausgeführt. Da alle durchs Netz empfangene Nachrichten müssen an die GUI-Weitergegeben werden. Beim Versenden von Nachrichten funktioniert es genau umgekehrt. Die Nachricht wird -vom Nutzer in der GUI eingegeben und muss an die Klasse 'PVSConnectionManager' weitergeleitet werden, damit diese ins Netz gesendet wird. Darum kümmert -sich die Methode in der Klasse 'MainWindow' +vom Nutzer in der GUI eingegeben und muss an die Klasse \texttt{PVSConnectionManager} weitergeleitet werden, damit diese ins Netz gesendet wird. Darum kümmert +sich die Methode in der Klasse \texttt{MainWindow}. \\ \\ -'MainWindow::sendChatMsg(PVSMsg myMsg)' +\texttt{MainWindow::sendChatMsg(PVSMsg myMsg)} \\ \\ \textbf{Chat-Clients} @@ -166,11 +168,11 @@ So weit haben wir die Funtionsweisen des Servers im Bezug auf dem Chat kennengel Nun wird erläutert wie die einzelnen Clients die Nachrichten bearbeiten. \\ \\ -Auf der Client-Seite in der Klasse 'PVSConnectionServer' werden alle Nachrichten des PVS-Protokolls empfangen und gefiltert (Siehe Methode 'handleClientMsg'). -Nachrichten mit dem Ident 'PVSMESSAGE' werden durch den Dispatcher direkt an die Klasse 'PVSChatClient' weitergeleitet, wo die Methode 'receive' feststellen wird, +Auf der Client-Seite in der Klasse \texttt{PVSConnectionServer} werden alle Nachrichten des PVS-Protokolls empfangen und gefiltert (Siehe Methode \texttt{handleClientMsg}). +Nachrichten mit dem Ident \texttt{PVSMESSAGE} werden durch den Dispatcher direkt an die Klasse \texttt{PVSChatClient} weitergeleitet, wo die Methode \texttt{receive} feststellen wird, ob es sich dabei um eine Gespräch-Nachricht oder eine Befehl-Nachricht handelt. Um es feststellen zu können, wird aus der empfangenen Nachricht ein PVSChatMsg-Objekt -erzeugt (siehe Konstruktor 'PVSChatMsg::PVSChatMsg(PVSMsg pvsMsg)') und mittels der Methode 'isCommand' erfährt man ob es sich um einen Befehl handelt oder nicht. -Falls ja leitet der Dispatche die Nachricht an die Stelle 'PVS::UpdateChatClients' sonst an die Stelle 'PVS::chat\_receive', wo die Änderungen in der Client-Liste +erzeugt (siehe Konstruktor) und mittels der Methode \texttt{isCommand} erfährt man ob es sich um einen Befehl handelt oder nicht. +Falls ja leitet der Dispatche die Nachricht an die Stelle \texttt{PVS::UpdateChatClients} sonst an die Stelle \texttt{PVS::chat\_receive}, wo die Änderungen in der Client-Liste vorgenommen werden oder die Gespräch-Nachricht der GUI abgegeben wird. @@ -182,16 +184,17 @@ vorgenommen werden oder die Gespräch-Nachricht der GUI abgegeben wird. Im Zuge der Entwicklung des PVS wurde ein sehr einfaches Messagingprotokoll entwickelt. Die Nachrichten bzw. Messages bestehen dabei aus Header, Nachrichtentyp, Ident und dem eigentlichen Nachrichtentext. Die einzelnen Nachrichtenteile, welche bis auf den Header selbst definiert werden können, werden verknüpft und versendet. Es sind schon Nachrichtentypen vordefiniert, welche sich nur durch unterschiedliche Dispatcher unterscheiden. Bereits vorhandene Typen sind COMMAND, LOGIN, MESSAGE und UNKNOWN. Die Dispatcher (\_commandDispatcher, \_loginDispatcher und \_chatDispatcher) befinden sich im Client in der Klasse \texttt{ServerConnection}, in der Steuerkonsole in der Klasse \texttt{ClientConnection} bzw. \texttt{ListenServer}. Ein Ident wie z.B. Username, Befehl oder Beschreibung des Nachrichteninhalts dient zur Unterscheidung verschiedener Nachrichten mit demselben Nachrichtentyp, wobei die Nachricht dann den dem Ident entsprechenden Nachrichtentext enthält. -Um eine Funktion zur Behandlung einer bestimmten Nachricht zu definieren, wird diese Funktion als Handler mit dem entsprechenden Dispatcher verknüpft. Im PVS-Client beispielsweise befindet sich der Dispatcher für Nachrichten vom Typ Command in der Klasse \texttt{pvsServerConnection}, daher wird in der Klasse \texttt{pvs} die Funktion \verb|void PVS::onCommand(PVSMsg cmdMessage)| wie folgt als Handler registriert: \verb|_pvsServerConnection->addCommandHandler("*", this, &PVS::onCommand)|. Erhält nun der Client eine Nachricht vom Typ COMMAND, so wird die Funktion onCommand mit dem entsprechenden Nachrichtenobjekt aufgerufen. Auf die eigentliche Nachricht kann dann über die Methoden \texttt{getIdent()} und \texttt{getMessage()} des Objektes zugegriffen werden. +Um eine Funktion zur Behandlung einer bestimmten Nachricht zu definieren, wird diese Funktion als Handler mit dem entsprechenden Dispatcher verknüpft. Im PVS-Client beispielsweise befindet sich der Dispatcher für Nachrichten vom Typ Command in der Klasse \texttt{pvsServerConnection}, daher wird in der Klasse \texttt{pvs} die Funktion \texttt{void PVS::onCommand(PVSMsg cmdMessage)} wie folgt als Handler registriert: +\texttt{\_pvsServerConnection->addCommandHandler("*", this, \&PVS::onCommand)}. Erhält nun der Client eine Nachricht vom Typ COMMAND, so wird die Funktion onCommand mit dem entsprechenden Nachrichtenobjekt aufgerufen. Auf die eigentliche Nachricht kann dann über die Methoden \texttt{getIdent()} und \texttt{getMessage()} des Objektes zugegriffen werden. \subsection{PVS-Messages} \index{Message!PVS} \index{Message} -Im Folgenden sind die Messages, die zwischen den einzelnen PVS Komponenenten ausgetauscht werden, aufgelistet. +In Tabelle \ref{tab:messagelist} sind die Messages, die zwischen den einzelnen PVS Komponenenten ausgetauscht werden, aufgelistet. Der Nachrichtentyp gibt dabei an, welcher Dispatcher die Nachricht behandelt. Der Ident einer Nachricht wird zur Verarbeitung einer empfangenen Nachricht in der aufzurufenden Funktion benötigt (Unterscheidung von anderen Nachrichten gleichen Typs). +\begin{table} \begin{center} -\small \begin{tabular}{l | l | p{2cm} | p{4cm}} \label{pvs-msg-liste} Nachrichtentyp & Nachrichten Ident & Inhalt & Beschreibung \\ @@ -204,7 +207,7 @@ PVSCOMMAND & UNLOCKSTATION & & \\ PVSLOGIN & USERNAME & username & Client Benutzername \\ PVSLOGIN & PASSWORD & password & Serverpasswort \\ PVSLOGIN & ID & id & \\ -PVSLOGIN & FAILED & "`Wrong Password"' & Wird bei falschem Passwort gesendet \\ "` +PVSLOGIN & FAILED & "`Wrong Password"' & Wird bei falschem Passwort gesendet \\ PVSCOMMAND & PORT & port & \\ PVSCOMMAND & PASSWORD & password & VNC Passwort\\ PVSCOMMAND & RWPASSWORD & rwpassword & Passwort für den Zugriff auf die Tastatur und Maus \\ @@ -219,4 +222,6 @@ PVSMESSAGE & clientToRemove & & Client entfernen (Chat)\\ PVSMESSAGE & assignedName & & Festgelegter Name (Chat)\\ \end{tabular} \end{center} - +\caption{Liste der PVS Messages} +\label{tab:messagelist} +\end{table} diff --git a/doc/LaTeX/devel/0400-pvs-console.tex b/doc/LaTeX/devel/0400-pvs-console.tex index 495f52a..d9b1ca0 100644 --- a/doc/LaTeX/devel/0400-pvs-console.tex +++ b/doc/LaTeX/devel/0400-pvs-console.tex @@ -176,6 +176,6 @@ Soll ein Client als Ziel zu einer existierenden Projektion hinzugefügt werden, Zusätzlich zu den Verbindungsdaten werden Qualitätsoptionen zu der gesendeten Nachricht hinzugefügt. Die Qualitätsoption ist ein Integerwert 0,1 oder 2 wobei 0 der besten Qualität, 2 der schlechtesten Qualität entspricht. Dieser Wert wird an den Zielclient einer Projektion gesendet, welcher die Qualitätseinstellungen des VNC-Viewers entsprechend anpasst. Aktuell wird die Qualität immer auf 0 gesetzt, da noch die Einstellungsmöglichkeiten in der GUI fehlen. \subsection{Remote Help} -Remote Help funktioniert analog zur Projektion, jedoch ist hier zu gewährleisten, dass jeweils nur ein Quellclient und ein Zielclient ausgewählt werden, da es nicht sinnvoll ist, Tastatur und Maus eines Clients von mehreren anderen Clients aus zu steuern. Anstelle des Passworts wird das RW-Passwort des Clients verwendet. Die Möglichkeit, die Maus und die Tastatur eines Clients zu steuern, ist mit dem verwendeten VNC-Server schon gegeben, für die Steuerkonsole ändert sich hier nichts, lediglich der VNC Viewer muss die Tastatureingaben und die Mausbewegung an den VNC Server weitergeben (siehe hierzu auch \ref{}. +Remote Help funktioniert analog zur Projektion, jedoch ist hier zu gewährleisten, dass jeweils nur ein Quellclient und ein Zielclient ausgewählt werden, da es nicht sinnvoll ist, Tastatur und Maus eines Clients von mehreren anderen Clients aus zu steuern. Anstelle des Passworts wird das RW-Passwort des Clients verwendet. Die Möglichkeit, die Maus und die Tastatur eines Clients zu steuern, ist mit dem verwendeten VNC-Server schon gegeben, für die Steuerkonsole ändert sich hier nichts, lediglich der VNC Viewer muss die Tastatureingaben und die Mausbewegung an den VNC Server weitergeben (siehe hierzu auch \ref{pvsclient-remotehelp} Tastatur und Maussteuerung). diff --git a/doc/LaTeX/devel/0500-pvs-client.tex b/doc/LaTeX/devel/0500-pvs-client.tex index 9c0b572..bbca766 100644 --- a/doc/LaTeX/devel/0500-pvs-client.tex +++ b/doc/LaTeX/devel/0500-pvs-client.tex @@ -113,21 +113,23 @@ Es gibt zwei Arten von VNC Servern. Server, die eine laufende Sitzung bzw. ein v Motivation für den eigentlichen Vergleich ist die Integration mancher VNC Server in die Desktopumgebung. Hier müsste der x11vnc nicht extra installiert werden. Wichtig für den Einsatz im PVS ist vor allem die Unterstützung von Shared Modus, d.h. mehrere VNC Viewer können sich gleichzeitig mit dem VNC Server verbinden, und Forever Modus, d.h. der VNC Server wird nicht nach Trennung des letzten Clients beendet. Sicherheitsoptionen wie die Vergabe von Passwörtern und die Unterscheidung von RW und Viewonly Modus sind ebenso nicht zu vernachlässigen. \paragraph{Vino} +\begin{sloppypar} ~\\ Vino ist der VNC Server der Gnome Desktopumgebung. Er wird standardmäßig über die graphische Oberfläche \textbf{vino-preferences} konfiguriert. Über die Kommandozeile ist Vino entweder über \textbf{gconftool-2} oder über direktes editieren der Datei \\ \textit{\~{}/.gconf/desktop/gnome/remote\_access/\%gconf.xml} konfigurierbar. Parameter können nicht übergeben werden, was die Verwendbarkeit im PVS einschränkt. -Vino benutzt standardmäßig den Port 5900, um auf eingehende Verbindungen zu warten. Dieser Port kann nur durch \\ -\small \texttt{gconftool-2 -s -t int /desktop/gnome/remote\_access/alternative\_port } bzw. das Einfügen von z.B. \\ -\small \verb|| -in die entsprechende \%gconf.xml Datei geändert werden. Hierbei ist zu beachten, dass nicht überprüft wird, ob der entsprechende Port schon belegt ist. Dementsprechend wird auch kein anderer freier Port gewählt. %TODO Formulierung. +Vino benutzt standardmäßig den Port 5900, um auf eingehende Verbindungen zu warten. Dieser Port kann nur durch +\texttt{gconftool-2 -s -t int \/desktop/gnome/remote\_access/alternative\_port } bzw. das Einfügen von z.B. +\texttt{''/>} +in die entsprechende \%gconf.xml Datei geändert werden. Hierbei ist zu beachten, dass nicht überprüft wird, ob der entsprechende Port schon belegt ist. Dementsprechend wird auch kein anderer freier Port gewählt. Außerdem wird eine Änderung des Ports erst nach dem Neustart der grafischen Oberfläche aktiv. Vino unterstützt die Vergabe eines Passworts, welches base64 kodiert in der gconf Datei abgelegt wird. Ebenso kann man den Zugriff auf den Viewonly Modus beschränken. Unterschiedliche Passwörter für den RW Modus und den Viewonly Modus können jedoch nicht vergeben werden. Der Shared und Forever Modus sind standardmäßig aktiv. +\end{sloppypar} \paragraph{Krfb} ~\\ -Krfb ist das Pendant zu Vino der KDE Desktopumgebung und kann entweder über eine Konfigurationsdatei oder über die grafische Oberfläche konfiguriert werden. Es kann entweder das Einladungssystem verwendet werden, bei dem eine Einladung mit einem Einmalpasswort generiert wird, oder man erlaubt uneingeladene Verbindungen und vergibt ein eigenes Passwort. Um Krfb über eine Konfigurationsdatei mit einem selbstgewählten Passwort für uneingeladene Verbindungen zu konfigurieren, erstellt man die Datei wie in \ref{pvs-client-krfbconfig} angegeben und übergibt sie an krfb mit \texttt{krfb --config } bzw überschreibt oder bearbeitet die eigentliche Konfigurationsdatei in \textit{~/.kde/share/config/krfbrc}. +Krfb ist das Pendant zu Vino der KDE Desktopumgebung und kann entweder über eine Konfigurationsdatei oder über die grafische Oberfläche konfiguriert werden. Es kann entweder das Einladungssystem verwendet werden, bei dem eine Einladung mit einem Einmalpasswort generiert wird, oder man erlaubt uneingeladene Verbindungen und vergibt ein eigenes Passwort. Um Krfb über eine Konfigurationsdatei mit einem selbstgewählten Passwort für uneingeladene Verbindungen zu konfigurieren, erstellt man die Datei wie im folgenden angegeben und übergibt sie an krfb mit \texttt{krfb --config } bzw überschreibt oder bearbeitet die eigentliche Konfigurationsdatei in \textit{~/.kde/share/config/krfbrc}. %\label{pvs-client-krfbconfig} \begin{verbatim} [Security] @@ -190,8 +192,11 @@ Um einen Mehrfachstart des VNC Servers zu verhindern, wird zunächst immer ein \ Der VNC Viewer ist, wie in der \ref{pvsclient-datenstrom} Darstellung von VNC-Datenströmen beschrieben, implementiert. Die direkte Integration des Viewers im Gegensatz zum Einsatz eines externen VNC Servers bietet sich hier wegen der Integrationsmöglichkeiten in die GUI an (der VNC-Server ist GUI unabhängig). Jedoch muss der VNC-Viewer zur Unterstützung des RW-Modus des VNC-Servers noch verändert werden. \subsection{Tastatur und Maussteuerung} -Um die Maus- und Tastatureingaben an den VNC-Server weiterzuleiten, müssen zunächst die Eingaben in der Klasse \texttt{ClientVNCViewer} abgefangen und verarbeitet werden. Dies kann durch Überschreiben der geerbten Methode \texttt{event} erreicht werden \verb|bool ClientVNCViewer::event(QEvent *event)|. Hier kann durch \verb|event->type()| der Typ des Events herausgefunden werden. +\label{pvsclient-remotehelp} +\begin{sloppypar} +Um die Maus- und Tastatureingaben an den VNC-Server weiterzuleiten, müssen zunächst die Eingaben in der Klasse \texttt{ClientVNCViewer} abgefangen und verarbeitet werden. Dies kann durch Überschreiben der geerbten Methode \texttt{event} erreicht werden \texttt{bool ClientVNCViewer::event(QEvent *event)}. Hier kann durch \texttt{event->type()} der Typ des Events herausgefunden werden. Zu behandelnde Eventtypen sind: +\end{sloppypar} \begin{itemize} \item QEvent:KeyPress - Eine Taste wurde gedrückt @@ -215,17 +220,24 @@ Werte sind dabei: \item 0xfd = mittlere Maustaste losgelassen \item 0xfb = rechte Maustaste losgelassen \end{itemize} -\texttt{KeyEvents} bestehen aus einem hexadezimalen Wert, der die Taste repräsentiert, und True oder False je nachdem, ob die Taste gedrückt wurde oder nicht. Die hexadezimalen Werte entsprechen den Werten in einem X Window System und können in der Headerdatei \texttt{} nachgeschlagen werden (siehe hierzu auch \url{http://www.realvnc.com/docs/rfbproto.pdf} - RFB Protokollspezifikation, Abschnitt KeyEvent). Beim Leeren der Queue werden die Methoden der rfbclient Klasse der libvnc Bibliothek \verb|SendPointerEvent(cl, _x, _y, _buttonMask)| und \verb|SendKeyEvent(cl, _key, _pressed)| mit den entsprechenden Werten aufgerufen (cl entspricht dabei einem Pointer auf die eigentliche rfbClient Instanz). +\begin{sloppypar} +\texttt{KeyEvents} bestehen aus einem hexadezimalen Wert, der die Taste repräsentiert, und True oder False je nachdem, ob die Taste gedrückt wurde oder nicht. Die hexadezimalen Werte entsprechen den Werten in einem X Window System und können in der Headerdatei \texttt{} nachgeschlagen werden (siehe hierzu auch \url{http://www.realvnc.com/docs/rfbproto.pdf} - RFB Protokollspezifikation, Abschnitt KeyEvent). Beim Leeren der Queue werden die Methoden der rfbclient Klasse der libvnc Bibliothek \texttt{SendPointerEvent(cl, \_x, \_y, \_buttonMask)} und \texttt{SendKeyEvent(cl, \_key, \_pressed)} mit den entsprechenden Werten aufgerufen (cl entspricht dabei einem Pointer auf die eigentliche rfbClient Instanz). +\end{sloppypar} \section{Signalbehandlung} +\begin{sloppypar} Um zu gewährleisten, dass bei einer Terminierung des PVS-Clients auch der gegebenenfalls gestartete VNC-Server gestoppt wird, werden Sigterm, Sighup, Sigquit und Sigint Signale abgefangen und weiterbehandelt. Um die Signale behandeln zu können, muss die C Bibliothek \texttt{signals.h} eingebunden werden und ein sigaction Objekt erstellt werden. Das Feld sa\_handler des sigaction Objektes gibt dabei die aufzurufende Funktion an (Pointer auf die Funktion). Diese Funktion (in der Klasse \texttt{pvs} die Funktion \texttt{signalHandler}) muss dabei vom Typ void sein und die Signalnummer als Parameter erwarten (\texttt{void PVS::signalHandler(int signal)}). +\end{sloppypar} + \begin{verbatim} struct sigaction act; act.sa_handler = &PVS::signalHandler; \end{verbatim} -Um Signale abfangen zu können, muss nun noch das sigaction Objekt durch \verb|sigaction(SIGTERM, &act, 0)| mit den entsprechenden Signalen (hier SIGTERM) verknüpft werden (muss für alle zu behandelnde Signale durchgeführt werden). +\begin{sloppypar} +Um Signale abfangen zu können, muss nun noch das sigaction Objekt durch \texttt{sigaction(SIGTERM, \&act, 0)} mit den entsprechenden Signalen (hier SIGTERM) verknüpft werden (muss für alle zu behandelnde Signale durchgeführt werden). Danach wird, sobald ein entsprechendes Signal erhalten wird, die Funktion aufgerufen und die Signalnummer übergeben. -Für alle Signale kann die gleiche Funktion aufgerufen werden, hier kann die Unterscheidung dann mittels der in \texttt{signal.h} vorhandenen Konstanten SIGHUP, SIGTERM, SIGQUIT usw. erfolgen. Zu beachten ist hierbei, dass ein SIGKILL nicht abgefangen werden kann. \ No newline at end of file +Für alle Signale kann die gleiche Funktion aufgerufen werden, hier kann die Unterscheidung dann mittels der in \texttt{signal.h} vorhandenen Konstanten SIGHUP, SIGTERM, SIGQUIT usw. erfolgen. Zu beachten ist hierbei, dass ein SIGKILL nicht abgefangen werden kann. +\end{sloppypar} \ No newline at end of file diff --git a/i18n/pvsgui_es_MX.ts b/i18n/pvsgui_es_MX.ts index f3e6d65..32b6195 100644 --- a/i18n/pvsgui_es_MX.ts +++ b/i18n/pvsgui_es_MX.ts @@ -1,12 +1,12 @@ - + AboutDialog Version: - + Version: @@ -14,27 +14,27 @@ PVS - About - + PVS - Acerca de <a href="http://www.gnu.org/licenses/gpl-2.0.txt">License: GNU General Public License Version 2</a> - + <a href="http://www.gnu.org/licenses/gpl-2.0.txt">License: GNU General Public License Version 2</a> About - + Acerca de Authors - + Autores Translation - + Traducción @@ -42,47 +42,47 @@ &Send File... - + Enviar archivo... has joined the chat. - + ha ingresado al chat. has left the chat. - + ha abandonado el chat PVS File Transfer - + PVS Transferencia de datos Send file ' - + Enviar archivo ' ' to - + ' a Connected. - + Conectado. Disconnected. - + Desconectado. Message from < - + Mensaje de < @@ -90,12 +90,12 @@ PVS - Chat - + PVS - Chat &Send - + &Enviar @@ -103,85 +103,85 @@ PVS - Configuration - + PVS - Configuración Allow vnc access to lecturer? - + Permitir al profesor el acceso VNC? Full access - + Acceso completo View only - + Solo ver None - + Ninguno Allow vnc access to other? - + Permitir a otros el acceso VNC? Accept chat messages - + Aceptar mensages de chat? Accept file transfers - + Aceptar transferencias de datos? Permissions - + Permisos Top Left - + Esquina superior izquierda Top Center - + Arriba centrado Top Right - + Esquina superion derecha Bottom Left - + Esquina inferior izquierda Bottom Center - + Abajo centrado Bottom Right - + Esquina inferior derecha Display - + Pantalla @@ -189,38 +189,38 @@ PVS File Transfer - + PVS Transferencia de datos User ' - + Usuario ' ' would like to send you a file: - + ' desea enviarle un archivo: Open File - + Abiri archivo PVS - File Transfer - + PVS - Transferencia de datos File Transfer complete. - + La transferencia de datos ha sido completada. File Transfer canceled! - + La transferencia de datos ha sido cancelada! @@ -228,33 +228,33 @@ PVS - File Transfer - + PVS - Transferencia de datos Receiving from: - + Recibiendo de: unknown - + desconocido 0 - + 0 / - + / &Cancel - + &Cancelar @@ -262,23 +262,23 @@ Open File - + Abrir archivo PVS - File Transfer - + PVS - Transferencia de datos File Transfer complete. - + La transferencia de datos ha sido completada. File Transfer canceled! - + La transferencia de datos ha sido cancelada! @@ -286,33 +286,33 @@ PVS - File Transfer - + PVS - Transferencia de datos Sending to: - + Enviando a: unknown - + desconocido 0 - + 0 / - + / &Cancel - + &Cancelar @@ -320,12 +320,12 @@ PVS - Users - + PVS - Usuarios Select user: - + Seleccionar usuario: @@ -333,37 +333,37 @@ Form - + de Menu - + Menu Host: - + Host: Click to connect - + Click para conectar - - + - Enable/Disable VNC only for this session - + Avilitar/Desavilitar VNC solamente para esta sesión Allow VNC - + Permitir VNC @@ -372,7 +372,11 @@ p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt; font-weight:600; font-style:italic; color:#0055ff;">Pool Video Switch</span></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt; font-weight:600; font-style:italic; color:#0055ff;">Pool Video Switch</span></p></body></html> @@ -380,7 +384,7 @@ p, li { white-space: pre-wrap; } PVS - Information - + PVS - Información @@ -389,7 +393,11 @@ p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:72pt; font-weight:600; color:#0000ff;">HOST</span></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:72pt; font-weight:600; color:#0000ff;">HOST</span></p></body></html> @@ -398,7 +406,11 @@ p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:48pt; font-weight:600; color:#ff0000;">PASSWD</span></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:48pt; font-weight:600; color:#ff0000;">PASSWD</span></p></body></html> @@ -406,82 +418,82 @@ p, li { white-space: pre-wrap; } Connect - + Conectar &Disconnect - + &Desconectar C&hat - + ??? &Send File - + &Enviar archivo &Config - + &Configuración &Information - + &Información &About - + &Acerca de &Quit - + &Cerrar PVS Connection - + PVS Connección Please enter password (If not needed leave blank): - + Porfavor ingrese una contraseña (Deje la seccion vacia si no lo necesita): Are you sure you want to disconnect? - + Realmente desea desconectarse? PVS connection - + PVS Connección Connected to - + Connectar a Disconnected - + Desconectado New host available: - + Nuevo Host disponible: diff --git a/i18n/pvsmgr_es_MX.ts b/i18n/pvsmgr_es_MX.ts index bc5c69c..fc53e6d 100644 --- a/i18n/pvsmgr_es_MX.ts +++ b/i18n/pvsmgr_es_MX.ts @@ -1,12 +1,12 @@ - + AboutDialog Version: - + Version: @@ -14,27 +14,27 @@ PVS - About - + PVS - Acerca de <a href="http://www.gnu.org/licenses/gpl-2.0.txt">License: GNU General Public License Version 2</a> - + <a href="http://www.gnu.org/licenses/gpl-2.0.txt">Licencia: GNU General Public License Version 2</a> About - + Acerca de Authors - + Autores Translation - + Traducción @@ -42,33 +42,33 @@ PVS - File Transfer - + PVS - Transferencia de datos Sending to: - + Enviando a: unknown - + desconocido 0 - + 0 / - + / &Cancel - + &Cancelar @@ -76,42 +76,42 @@ &Remove dummy... - + &Remover dummy... &Lock Client(s) - + &Bloquear Cliente(s) &Unlock Client(s) - + &Desbloquear Cliente(s) &MsgLock Client(s) - + &Bloquear Cliente(s) con mensaje &MsgLock all Client(s) - + &Bloquear todos los clientes con mensaje &Message Client(s) - + &Enviar mensaje a Cliente(s) &Projection - + &Proyección &Unprojection - + Retirar proyección @@ -119,89 +119,89 @@ Name - + Nombre IP - + IP Username - + Nombre de usuario &Lock Client(s) - + &Bloquear cliente(s) &Unlock Client(s) - + &Desbloquear Cliente(s) &MsgLock Client(s) - + &Bloquear Cliente(s) con mensaje &MsgLock all Client(s) - + &Bloquear todos los Clientes con mensaje &Message Client(s) - + &Enviar mensaje a Cliente(s) &Projection - + Proyección &Unprojection - + Retirar proyección No Target is available for a projection! Perform an unprojection to get a target. - + El objetivo no esta disponible para ser proyectado! Retire una proyección para obtener un objetivo. This source is already in a projection process involved. You can perform a unprojection on it to get it free. - + Esta fuente ya ha sido proyectada. Usted puede remover la proyección para liberar la fuente. To perform a projection you have to select only one source in a list with more than one index! - + Para realizar una proyección debe seleccionar una fuente con más de un indice en la lista! An unprojection is only possible on a selected source that is involved in a projection process, in a list with more than one index! - + Una projección solamente puede ser removida si la fuente ya ha sido proyectada en una lista con más de un indice. No Target is available for remote Help! Perform an unprojection or remove remote help to get a target. - + No hay objetivos disponibles para asistencia remota! Retire una projección o retire una asistencia remota para obtener objetivos. This source is already in a projection or remote Help process involved. You can perform a unprojection or remove remote Help on it to get it free. - + Esta fuente ya esta envuelta en un proceso de proyección o asistencia remota. Usted puede retirar la projección o asistencia remota para liberar la fuente. @@ -209,14 +209,14 @@ Perform an unprojection or remove remote help to get a target. &Add a dummy... - + &Agregar un dummy... You have to set a Superclient-machine before performing this action. - + Usted debe asignar un super cliente antes de iniciar esta acción. @@ -224,47 +224,47 @@ Perform an unprojection or remove remote help to get a target. Enter the Text for the client(s) - + Ingrese el mensage ProfileDialog - + Diálogo de perfil background-color: rgb(255, 255, 255); - + background-color: rgb(255, 255, 255); &Remove - + &Remover &Edit - + &Editar &New - + &Nuevo &Load - + &Cargar Add - + Agregar Close - + Cerrar @@ -272,43 +272,43 @@ Perform an unprojection or remove remote help to get a target. View - + Ver Foto - + Imagen Lock this client - + Bloquear este cliente Set as Superclient - + Asignar como super cliente Unlock this client - + Desbloquear este cliente You can't lock a Superclient-machine. - + Super clientes no pueden ser bloqueados. Set client as Superclient - + Asignar cliente como super cliente Unset client as Superclient - + Desactivar como super cliente @@ -317,359 +317,359 @@ Perform an unprojection or remove remote help to get a target. Exit - + Salir Remove the vnc-Connection for the selected client(s) - + Remover la conexión VNC de los clientes seleccionados Show the selected client in the whole window - + Mostrar el cliente seleccionado en toda la ventana Make a screenshot for the selected client(s) - + Capturar la pantalla de los clientes seleccionados Lock or Unlock all Clients - + Bloquear o desbloquear todos los clientes The pvs manager - + PVS Manager This operation can only be performed for one selected Client! - + Esta operación solamente puede ser realizada para un cliente! This operation can only be performed for at least one selected Client! - + Esta operación solamente puede ser realizada para el ultimo cliente seleccionado! You have to set a Superclient-machine before performing this action. - + Usted debe asignar un super cliente antes de realizar esta acción. Open Image - + Abrir imagen Image Files (*.png *.jpg *.svg) - + Extensión de imagenes (*.png *.jpg *.svg) PVSmgr - + PVSmgr Show Username - + Mostrar nombre de usuario Ctrl+3 - + Ctrl+3 Show IP - + Mostrar IP Ctrl+2 - + Ctrl+2 VNC-Placeholders - + VNC - Marcadores de posición Show Log - + Mostrar Log Ctrl+L - + Ctrl+L Show Normal - + Mostrar normal Ctrl+O - + Ctrl+O Show Error - + Mostrar Errores Ctrl+E - + Ctrl+E Show Network - + Mostrar Red Ctrl+N - + Show Terminal - + Mostrar Linea de comandos Ctrl+T - + Ctrl+T Show Chat - + Mostrar Chat Ctrl+G - + Ctrl+G About pvs - + Acerca de PVS Ctrl+P - + Ctrl+P 100 x 100 - + 100 x 100 200 x 200 - + 200 x 200 500 x 500 - + 500 x 500 &Disconnect - + &Desconectar Ctrl+W - + Ctrl+W &Exit - + &Salir Ctrl+Q - + Ctrl+Q Foto - + Imagen Ctrl+F - + Ctrl+F view - + ver View - + Ver Ctrl+V - + Ctrl+V lock - + bloquear Ctrl+A - + Ctrl+A Profile &manager - + Perfil &manager Ctrl+M - + Ctrl+M Show Name - + Mostrar nombre Ctrl+1 - + Ctrl+1 Chat - + Chat Start Chat with client(s) - + Iniciar Chat con cliente(s) Ctrl+D - + Ctrl+D - - + - border-color: rgb(0, 0, 0); - + border-color: rgb(0, 0, 0); VNC quality - + VNC calidad HIGH - + Alta MEDIUM - + Media LOW - + Baja Set password - + Asignar contraseña Thumbnailratio - + Radio de la vista en miniatura Thumbnailrate - + Frecuancia de actualización para las vistas en miniatura 0 - + 0 % - + % background-color: rgb(255, 255, 255); - + background-color: rgb(255, 255, 255); background-color: rgb(150, 150, 150); - + background-color: rgb(150, 150, 150); &File - + &Archivo Load profile - + Cargar perfil &Clients - + &Clientes &Logging - + &Logging &Help - + &Ayuda toolBar - + Barra de herramientas @@ -677,17 +677,17 @@ Perform an unprojection or remove remote help to get a target. Dialog - + Dialogo Cancel - + Cancelar Send - + Enviar @@ -695,7 +695,7 @@ Perform an unprojection or remove remote help to get a target. Target for Projection - + Objetivo para projección @@ -703,32 +703,32 @@ Perform an unprojection or remove remote help to get a target. &Send File... - + &Enviar archivo... has joined the chat. - + ha ingresado en el chat. has left the chat. - + ha abandonado el chat. PVS File Transfer with - + PVS transferencia de datos con Send file ' - + Enviar archivo ' ' to - + ' a @@ -736,12 +736,12 @@ Perform an unprojection or remove remote help to get a target. PVSmgr - Chat - + PVSmgr - Chat &Send - + &Enviar @@ -750,38 +750,38 @@ Perform an unprojection or remove remote help to get a target. Open File - + Abrir archivo PVS File Transfer - + PVS Transferencia de datos User ' - + Usuario ' ' would like to send you a file: - + ' desea enviarle un archivo: PVS - File Transfer - + PVS - Transferecia de datos File Transfer complete. - + La transferencia de datos ha sido completada. File Transfer canceled! - + La transferencia de datos ha sido cancelada! @@ -789,22 +789,22 @@ Perform an unprojection or remove remote help to get a target. Profile - + Perfil This field can't be empty. - + Esta sección no puede estar vacía This name is already in the list. - + Este nombre ya se encuentra en la lista. You can only load one profile at time - + Solamenten se puede cargar un perfil a la vez. @@ -812,27 +812,27 @@ Perform an unprojection or remove remote help to get a target. Dialog - + Dialogo Select all - + Seleccionar todo Cancel - + Cancelar Project - + Proyectar Select Target for projection - + Seleccionar objetivo para proyección diff --git a/src/pvsDaemon.cpp b/src/pvsDaemon.cpp index 961e0f3..e87bfe7 100644 --- a/src/pvsDaemon.cpp +++ b/src/pvsDaemon.cpp @@ -66,11 +66,13 @@ int main(int argc, char** argv) { int frequency = 5; int port = -1; - QString homeDir("/home/"); - QString scriptPath = homeDir; - scriptPath.append(getUserName().append(QString("/.pvs/pvs-vncsrv"))); - QString scriptName; - scriptName = getFilenameFromPath(scriptPath); + + QFileInfo script; + script.setFile("/usr/bin/pvs-vncsrv"); + if (!script.exists()) + script.setFile("/usr/local/bin/pvs-vncsrv"); + if (!script.exists()) + script.setFile("/home/" + getUserName() + "/.pvs/pvs-vncsrv"); QCoreApplication app(argc, argv); app.setOrganizationName("openslx"); @@ -259,8 +261,7 @@ int main(int argc, char** argv) { if (option_index + 1 < argc) { - scriptPath = QString(argv[option_index + 1]); - scriptName = getFilenameFromPath(scriptPath); + script.setFile(QString(argv[option_index + 1])); option_index++; continue; } @@ -347,13 +348,13 @@ int main(int argc, char** argv) if (port <= 0) port = SERVER_PORT_INT; ConsoleLog writeLine(QString("TCP-Port: ").append(int2String(port))); - mainClient->setScriptPath(scriptPath); - ConsoleLog writeLine(QString("VNCScriptPath: ").append(scriptPath)); + mainClient->setScriptPath(script.filePath()); + ConsoleLog writeLine(QString("VNCScriptPath: ").append(script.filePath())); createPolicyDir(); createPolicyFiles(); // long int gr = 0; - mainClient->setScriptPath(scriptPath); + mainClient->setScriptPath(script.filePath()); app.exec(); delete mainClient; diff --git a/src/version.h b/src/version.h index c217c07..ac24ac2 100644 --- a/src/version.h +++ b/src/version.h @@ -1,2 +1,2 @@ -#define VERSION_STRING "1.9.8.0" -#define VERSION_NUMBER 1980 +#define VERSION_STRING "2.0.1.0" +#define VERSION_NUMBER 2010 -- cgit v1.2.3-55-g7522