pax_global_header00006660000000000000000000000064113742325520014516gustar00rootroot0000000000000052 comment=228b99d9c30cd57c951153d18672710ba70fb30d
nuapplet-2.3.0/000077500000000000000000000000001137423255200133505ustar00rootroot00000000000000nuapplet-2.3.0/CMakeLists.txt000066400000000000000000000065301137423255200161140ustar00rootroot00000000000000PROJECT(nuapplet2)
SET(PROJECT_VERSION_MAJOR "2")
SET(PROJECT_VERSION_MINOR "3")
SET(PROJECT_VERSION_PATCH "0")
SET(PROJECT_VERSION_STR "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
cmake_minimum_required(VERSION 2.6)
# apt-get install libqt4-dev
INCLUDE (CheckIncludeFile)
INCLUDE (CheckIncludeFiles)
INCLUDE (CheckLibraryExists)
INCLUDE (CheckSymbolExists)
INCLUDE (FindPkgConfig)
INCLUDE(FindQt4)
INCLUDE(FindNuclient.cmake)
IF (NOT QT4_FOUND)
MESSAGE(FATAL_ERROR "Qt4 development files not found. Please install libqt4-dev")
ENDIF (NOT QT4_FOUND)
IF (NOT LIBNUCLIENT_FOUND)
MESSAGE(FATAL_ERROR "Libnuclient development files not found. Please install libnuclient-dev")
ENDIF (NOT LIBNUCLIENT_FOUND)
INCLUDE(${QT_USE_FILE})
ADD_DEFINITIONS(-DPROJECT_VERSION_STR="${PROJECT_VERSION_STR}")
ADD_DEFINITIONS(${QT_DEFINITIONS})
ADD_DEFINITIONS(-DTRANSLATION_DIR="${CMAKE_INSTALL_PREFIX}/share/qt4/translations/" -DDATA_DIR="${CMAKE_INSTALL_PREFIX}/share/nuapplet2/" ${LIBNUCLIENT_DEFINITIONS})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${QT_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR})
LINK_DIRECTORIES(${QT_LIBRARY_DIR} ${LIBNUSSL_LIBDIR} ${LIBNUCLIENT_LIBDIR})
IF(APPLE)
ADD_DEFINITIONS(-DFREEBSD)
ENDIF(APPLE)
INCLUDE_DIRECTORIES(${LIBNUSSL_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${LIBNUCLIENT_INCLUDE_DIRS})
SET(GUI_SRCS
src/auth_dlg.cpp
src/editbox.cpp
src/logs.cpp
src/preferences.cpp
src/systray.cpp
src/thread_session.cpp
)
SET(GUI_HDRS
src/auth_dlg.h
src/editbox.h
src/logs.h
src/preferences.h
src/systray.h
src/thread_session.h
)
SET(GUI_UIS
ui/logs.ui
ui/prefs.ui
)
# there's a typo in cmake documentation: QT4_ADD_RESOURCES (with an S)
QT4_ADD_RESOURCES(GUI_SRCS application.qrc)
# for this to work, $name.cpp file must include $name.moc
QT4_AUTOMOC( ${GUI_SRCS} )
QT4_WRAP_UI(GUI_UIS_H ${GUI_UIS})
ADD_EXECUTABLE(nuapplet2
src/main.cpp
${GUI_SRCS}
${GUI_HDRS}
${GUI_UIS_H}
)
#QT4_GENERATE_MOC(${CMAKE_CURRENT_SOURCE_DIR}/mainwindow.h ${CMAKE_CURRENT_BINARY_DIR}/moc_mainwindow.cpp)
##QT4_AUTOMOC(${GUI_HDRS)
TARGET_LINK_LIBRARIES(nuapplet2 ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${LIBNUSSL_LDFLAGS} ${LIBNUCLIENT_LDFLAGS})
INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/nuapplet2 DESTINATION bin)
INSTALL(FILES nuapplet2.desktop DESTINATION share/applications)
INSTALL(FILES images/nuapplet2-running.png DESTINATION share/pixmaps)
INSTALL(FILES lang/nuapplet2_fr_FR.qm DESTINATION share/qt4/translations)
SET(ts_files "lang/nuapplet2_fr_FR.ts")
ADD_CUSTOM_TARGET(lupdate
COMMAND
"lupdate"
"src/*.cpp"
"src/*.h"
"ui/*.ui"
-ts "${ts_files}"
WORKING_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}
COMMENT
"Runs lupdate command"
)
ADD_CUSTOM_TARGET(lrelease
COMMAND
"lrelease"
"${ts_files}"
WORKING_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}
COMMENT
"Runs lrelease command"
)
## Packaging infos
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "NuApplet")
SET(CPACK_PACKAGE_VENDOR "EdenWall")
#SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
#SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
SET(CPACK_PACKAGE_VERSION_MAJOR "$PROJECT_VERSION_MAJOR")
SET(CPACK_PACKAGE_VERSION_MINOR "$PROJECT_VERSION_MINOR")
SET(CPACK_PACKAGE_VERSION_PATCH "$PROJECT_VERSION_PATCH")
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
INCLUDE(CPack)
nuapplet-2.3.0/Changelog000066400000000000000000000003311137423255200151570ustar00rootroot000000000000002.2 - 10/12/07
- MacOs support
- Main loop rewrite
- Graphism
2.1 - 12/11/07
- Build language file during compilation
- Add support for command line arguments
- Fix a dependency in the packaging
2.0 Initial release
nuapplet-2.3.0/FindGnuTls.cmake000066400000000000000000000010621137423255200163660ustar00rootroot00000000000000## libnetfilter_conntrack
INCLUDE(UsePkgConfig)
PKGCONFIG("gnutls" GNUTLS_INCLUDE_DIR GNUTLS_LINK_DIR
GNUTLS_LINK_FLAGS GNUTLS_CFLAGS)
IF(GNUTLS_LINK_FLAGS)
MESSAGE(STATUS "gnutls library found")
INCLUDE_DIRECTORIES(${GNUTLS_INCLUDE_DIR})
SET(LIBS ${LIBS} ${GNUTLS_LINK_FLAGS})
SET(CFLAGS ${CFLAGS} ${GNUTLS_CFLAGS})
SET(LIBS_DIR ${LIBS_DIR} ${GNUTLS_LINK_DIR})
SET(GNUTLS_FOUND TRUE)
ELSE(GNUTLS_LINK_FLAGS)
MESSAGE(FATAL_ERROR "Can't find gnutls library developpement files!")
ENDIF(GNUTLS_LINK_FLAGS)
nuapplet-2.3.0/FindNuclient.cmake000066400000000000000000000054111137423255200167350ustar00rootroot00000000000000# export PKG_CONFIG_PATH to $prefix/lib/pkgconfig if needed
pkg_search_module(LIBNUSSL "libnussl")
IF (LIBNUSSL_FOUND)
MESSAGE (STATUS "Found libnussl ${LIBNUSSL_VERSION}")
SET (CMAKE_REQUIRED_INCLUDES "${LIBNUSSL_INCLUDE_DIRS};${CMAKE_REQUIRED_INCLUDES}")
CHECK_INCLUDE_FILES("sys/socket.h;nussl.h" HAVE_NUSSL_H)
SET (HAVE_NUSSL 1 CACHE INTERNAL "libnussl detected")
ELSE (LIBNUSSL_FOUND)
MESSAGE(FATAL_ERROR "Could not find libnussl")
ENDIF (LIBNUSSL_FOUND)
# export PKG_CONFIG_PATH to $prefix/lib/pkgconfig if needed
pkg_search_module(LIBNUCLIENT "libnuclient")
IF (LIBNUCLIENT_FOUND)
MESSAGE (STATUS "Found libnuclient ${LIBNUCLIENT_VERSION}")
SET (CMAKE_REQUIRED_INCLUDES "${LIBNUSSL_INCLUDE_DIRS};${CMAKE_REQUIRED_INCLUDES}")
CHECK_INCLUDE_FILES("sys/socket.h;nussl.h;nuclient.h" HAVE_NUCLIENT_H)
SET (HAVE_NUSSL 1 CACHE INTERNAL "libnussl detected")
ELSE (LIBNUCLIENT_FOUND)
MESSAGE(FATAL_ERROR "Could not find libnuclient")
ENDIF (LIBNUCLIENT_FOUND)
# Define nuauth default port
SET(LIBNUCLIENT_DEFINITIONS "${LIBNUCLIENT_DEFINITIONS} -DDEFAULT_NUAUTH_PORT=\"4129\"")
SET(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES};${LIBNUSSL_LIBRARIES};${LIBNUCLIENT_LIBRARIES}")
# Had some defines depending on libnuclient's version
# We cannot use CHECK_SYMBOL_EXISTS here since the symbol is not defined in header
# (but is present in lib)
CHECK_LIBRARY_EXISTS("nussl" load_sys_config "" HAVE_DEFAULT_NUAUTH_IP)
#CHECK_SYMBOL_EXISTS (load_sys_config "sys/socket.h;nussl.h;nuclient.h" HAVE_DEFAULT_NUAUTH_IP)
IF(HAVE_DEFAULT_NUAUTH_IP)
SET(LIBNUCLIENT_DEFINITIONS "${LIBNUCLIENT_DEFINITIONS} -DHAVE_DEFAULT_NUAUTH_IP")
MESSAGE(STATUS "HAVE_DEFAULT_NUAUTH_IP")
ENDIF(HAVE_DEFAULT_NUAUTH_IP)
#CHECK_LIBRARY_EXISTS(${NUCLIENT_LIBRARY} nu_client_default_hostname "" HAVE_DEFAULT_HOSTNAME_FUNC)
CHECK_SYMBOL_EXISTS (nu_client_default_hostname "sys/socket.h;nussl.h;nuclient.h" HAVE_DEFAULT_HOSTNAME_FUNC)
IF(HAVE_DEFAULT_HOSTNAME_FUNC)
SET(LIBNUCLIENT_DEFINITIONS "${LIBNUCLIENT_DEFINITIONS} -DHAVE_DEFAULT_HOSTNAME_FUNC")
MESSAGE(STATUS "HAVE_DEFAULT_HOSTNAME_FUNC")
ENDIF(HAVE_DEFAULT_HOSTNAME_FUNC)
#CHECK_LIBRARY_EXISTS("nussl" nu_client_default_tls_ca "" HAVE_DEFAULT_TLS_FUNC)
CHECK_SYMBOL_EXISTS (nu_client_default_tls_ca "sys/socket.h;nussl.h;nuclient.h" HAVE_DEFAULT_TLS_FUNC)
IF(HAVE_DEFAULT_TLS_FUNC)
SET(LIBNUCLIENT_DEFINITIONS "${LIBNUCLIENT_DEFINITIONS} -DHAVE_DEFAULT_TLS_FUNC")
MESSAGE(STATUS "HAVE_DEFAULT_TLS_FUNC")
ENDIF(HAVE_DEFAULT_TLS_FUNC)
# Uses libnuclient new API (with NuSSL)
#CHECK_LIBRARY_EXISTS("nussl" nu_client_set_pkcs12 "" HAVE_NUFW24)
CHECK_SYMBOL_EXISTS (nu_client_set_pkcs12 "sys/socket.h;nussl.h;nuclient.h" HAVE_NUFW24)
IF(HAVE_NUFW24)
SET(LIBNUCLIENT_DEFINITIONS "${LIBNUCLIENT_DEFINITIONS} -DHAVE_NUFW24")
MESSAGE(STATUS "HAVE_NUFW24")
ENDIF(HAVE_NUFW24)
nuapplet-2.3.0/Makefile000066400000000000000000000011451137423255200150110ustar00rootroot00000000000000CMAKE_OPTIONS = -DCMAKE_BUILD_TYPE=Debug -DCMAKE_VERBOSE_MAKEFILE=0
CMAKE_RELEASE_OPTIONS = -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=0 -DCMAKE_INSTALL_PREFIX=/usr
all: build/Makefile lrelease
make -C build all
build/Makefile:
[ -d build ] || mkdir build; \
cd build && cmake $(CMAKE_OPTIONS) ..
release:
[ -d release ] || mkdir release; \
cd release && cmake $(CMAKE_RELEASE_OPTIONS) .. && make lrelease && make
lupdate: build/Makefile
make -C build lupdate
lrelease: build/Makefile
make -C build lrelease
clean:
rm -rf build
rm -rf release
.PHONY: all clean lupdate lrelease release
nuapplet-2.3.0/application.qrc000066400000000000000000000005341137423255200163640ustar00rootroot00000000000000
images/nuapplet2-running.png
images/nuapplet2-stopped.png
images/nuapplet2-trying.png
images/bouclier.png
images/edenwall.png
lang/nuapplet2_fr_FR.qm
nuapplet-2.3.0/debian/000077500000000000000000000000001137423255200145725ustar00rootroot00000000000000nuapplet-2.3.0/debian/changelog000066400000000000000000000015711137423255200164500ustar00rootroot00000000000000nuapplet (2.2-3) unstable; urgency=medium
* Add pkg-config to build deps (Closes: #477020)
* Urgency=medium because of bug severity
-- Pierre Chifflier Sun, 27 Apr 2008 17:46:46 +0200
nuapplet (2.2-2) unstable; urgency=low
* Fix FTBFS (Closes: #477020)
-- Pierre Chifflier Sun, 20 Apr 2008 18:19:18 +0200
nuapplet (2.2-1) unstable; urgency=low
* New upstream release
* Bump Standards-Version (no changes)
* Add Homepage header
-- Pierre Chifflier Mon, 10 Dec 2007 11:14:58 +0100
nuapplet (2.0-2) unstable; urgency=low
* Add missing build-dep on cmake (Closes: #449197)
-- Pierre Chifflier Mon, 05 Nov 2007 15:32:02 +0100
nuapplet (2.0-1) unstable; urgency=low
* Initial release (Closes: #448135)
-- Pierre Chifflier Fri, 26 Oct 2007 09:45:11 +0200
nuapplet-2.3.0/debian/compat000066400000000000000000000000021137423255200157700ustar00rootroot000000000000005
nuapplet-2.3.0/debian/control000066400000000000000000000011621137423255200161750ustar00rootroot00000000000000Source: nuapplet
Section: net
Priority: extra
Maintainer: Pierre Chifflier
Build-Depends: debhelper (>= 5),
libnuclient-dev (>= 2.2.0),
libqt4-dev (>= 4.2.1),
cmake,
pkg-config
Standards-Version: 3.7.3
Homepage: http://software.inl.fr/trac/trac.cgi/wiki/EdenWall/NuApplet2
Package: nuapplet
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Graphical client for NuFW
NuApplet2 is a systray application for the authenticating firewall NuFW,
written in Qt.
.
It is compliant with FreeDesktop and can be used with several desktop
environments.
nuapplet-2.3.0/debian/copyright000066400000000000000000000022741137423255200165320ustar00rootroot00000000000000This package was debianized by Pierre Chifflier on
Fri, 26 Oct 2007 09:45:11 +0200.
It was downloaded from http://software.inl.fr/trac/trac.cgi/wiki/EdenWall/NuApplet2
Upstream Author: Laurent Deffert
Copyright (C) 2007 INL
License:
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 dated June, 1991.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this package; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301, USA.
On Debian GNU/Linux systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.
The Debian packaging is (C) 2007, Pierre Chifflier and
is licensed under the GPL, see `/usr/share/common-licenses/GPL'.
nuapplet-2.3.0/debian/dirs000066400000000000000000000000101137423255200154450ustar00rootroot00000000000000usr/bin
nuapplet-2.3.0/debian/docs000066400000000000000000000000171137423255200154430ustar00rootroot00000000000000CMakeLists.txt
nuapplet-2.3.0/debian/nuapplet.manpages000066400000000000000000000000231137423255200201320ustar00rootroot00000000000000debian/nuapplet2.1
nuapplet-2.3.0/debian/nuapplet2.1000066400000000000000000000023251137423255200165700ustar00rootroot00000000000000.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH NUAPPLET 1 "octobre 26, 2007"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME
nuapplet \- Graphical client for NuFW
.SH SYNOPSIS
.B nuapplet
.SH DESCRIPTION
.B nuapplet
is a systray application for the authenticating firewall NuFW
written in Qt.
It is compliant with FreeDesktop and can be used with several desktop
environments.
.PP
.SH SEE ALSO
.BR nufw (1),
.BR nuauth (1),
.BR http://software.inl.fr/trac/trac.cgi/wiki/EdenWall/NuApplet2
.br
.SH AUTHOR
nuapplet was written by INL.
.PP
This manual page was written by Pierre Chifflier ,
for the Debian project (but may be used by others).
nuapplet-2.3.0/debian/rules000077500000000000000000000032471137423255200156600ustar00rootroot00000000000000#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
configure: configure-stamp
configure-stamp:
dh_testdir
# Add here commands to configure the package.
touch configure-stamp
build: build-stamp
build-stamp: configure-stamp
dh_testdir
# Add here commands to compile the package.
$(MAKE) release
#docbook-to-man debian/nuapplet.sgml > nuapplet.1
touch $@
clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
$(MAKE) clean
rm -f lang/nuapplet2_fr_FR.qm
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
# Add here commands to install the package into debian/nuapplet.
cd release && $(MAKE) DESTDIR=$(CURDIR)/debian/nuapplet install
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installexamples
# dh_install
dh_installmenu
# dh_installdebconf
dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
# dh_makeshlibs
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure
nuapplet-2.3.0/images/000077500000000000000000000000001137423255200146155ustar00rootroot00000000000000nuapplet-2.3.0/images/bouclier.png000066400000000000000000000352051137423255200171340ustar00rootroot00000000000000�PNG
IHDR���>a�bKGD������� pHYsqq{b��tIME��$0� IDATx��w|TU���wJ&�Lz'R ��
� �"`W\��(.�ׂ�eź�}ݵ�k[W{�+"���ti��Jz�d�=�?nɝ�L2�(��^7s�d���|��)�9ϑ� !��6I�.��������7I�����I�2�ǀ�@t��5��������g�_w8"�2�8��jY�z'�/�_k��s�������߁3��C��>�l����Vࣱ�������ٸq>_�{/�B4��#��L�-�,�����h�>�Dn�u��!�ȀO?�������W�p��l�VN@7`70x\��
��
E�FV��ޏk����W_��,����~�>^v�0��O��ӵ��]��2��xR��7�<7Q�I�������wp��=�z���*�V�A�rH��@9�*��eӦ��?�-�Hyys�KkV�!��
���/f�G�g��l�Q���r��0�$U�2a���x�/��
Bx���M|��w,_�����`����v��B���г�n�rS�g23S9���\r�T�8c�A���C�� ���ѫ�����T��W�di!�ח�v˝����B�����%���P >�36�����9㌉\}�����'����A����G`�� £��UU�!����_nd��|�M ����n��|��9]�#�$�Ӏ3�c�^�%�g�Ғ;v$]4��矃��cB�fm�0���Vh6��(�i,��!��s�|���,�������֭
��R'���{8P?;T�=Y���U��d1^�W�����^/mmm~�ֿ_�M��E�F�~����*x� �ƠG��4��;�{��
<��-m�[���u��_櫓��CZ�m����B����HKs0bD_��{3tH�;��y Y�$�*hK��
��A2
�l��P�7���.T��XZZʫs���yoRRRjPG&rss2dYYYȲ̾}�رcEEEx<��?�\x���w'��+��<�`�p�ހ�B�p)*A���,��6`�*^��.֮me��V֭k�������2 �y�Y�u���cɪHf?t���ܤ�}�������0@�kjX�x ��>_|��ώ���g�С2���h��peY1=����ر��{��P�'�8�.ϔ���;+>�p�U�*#t����O�����o�[�Z�%�����*!Dz�DmOM��?�M�,�b5�N-ld�'�ԃ�� D��%�Q���*5��M~�v{شi3˖-�����+;Q��b!;;���\���G\\�.H���G����p82�A����Nii)%%%����r�hhhe��U,X�
�Ib��&O.`� }:4�E�$�����$��Z8��g-)�ܥ��@N����D�R ����Q�?��C��ݻ��z�Z֬Y���kٰa#nw缋��xrrr��ˣO�>DDD I&���-`#�!0�L:��_g��Fvv6}�����P]]MYY���466"˂U�v�j�nu���q�e2��L���1�$�o��τq@|$69�btS��=@�f���&��H�F@�J
M�Y�k֬g͚u�^����ڠc6���� ''������1�L��f]��l��M�k���C�̓��Jbb"�
������
������A�e��<|����v��?&�Mb��F�Jb��X�b��q�O�=@/�Æ�l ���P@0��hllb۶"
w�m�
��`k�v��CO���ƒ��JZZ��餤�`�X0�͘�f]�F�(4`A0�k�7�,c2�B`�����!++��CCC�������r)�WfÆj6l�楗���Ϗa��8F�tp�q�ddU`dU���)����ߨ�E��l�Z�����l�VD�]l۶���.(""���D���HII!55���(�f��Ѓ ?�@�0
4��٬�k@Ю+>>����p�>�1118���iiiуR;v4�cG3o����F��f�H;�F��͵
��
����� ��=���u������p�p8���%11���X?a[,�.Gxw �T����`�
��5F�^3�͜z�`�x#���rrrHJJ�#�---�����ޮ���͇���C%9)��ȑvF��3j��!C����f��0��"�*�'�HH��\
�U�{�M��#""���$**���h]�V�U�v��@A�AW0�Fd �j�oTF������)��f��b�N'QQQz��������r��ֆ�����誨����/�X�e�ܓ�����f��7@FO�HLt<�� �:���Yw����HHH��ڨ6
�((�{�L�X�����@#dY���PZZJee%UUUTWW#�2�z��W�^��������I��L�����#�;�]�N'��ѝ����a�X����b���z�z�x<���׆
��d{��Rz
�(t<���m��L7�BW���F������O?Mcc#v����TRRRp��l߾�o��I�6l�ƍ:��M&11�X�2���w:���W�V��d�`6������v�v�������S���A�ò55�L��`E�=D8
^���«��O��f�F�Sڑ}�W8�����[y���ٻw/�'O&99���/� //
!�d��O}}}о f�N�x2_}�����:�2mm2QQ��x1A�U��I
�c���w���L���@V|̓<222���KY�t����R���i=Y��g��u�{Oo^z�6���X�`���A�����̐!��"=݁�n�l
�yDGGs���'))II���ޯ�
�bb�h���P�fh���gG�T�� ��a2�(((`��q���O��R4���$��a$˻?����Og̘�X�x1���!A�r���;X#��!���sc�G�ޙ��g��wx0�C���N�Ah����k�Fz�q�(?o�Z3f�Q�<��F��F�ݽ,������<���t-Z���z�n����=o!"��-h@�<�dJJ��y�ʒ�����LR�w���T�Y�܁�`�C#���PXXHII�n���fC�%333��y ��������ʹiV.��/O��2��rn���ڵ���|�絛�紉ǐ�ؑ�i���M>͜y[�n�F�6z�����$��[IE�z�Ih��Cq�0�LTWW���߳u�VJJJ���"??_��}>����p89r$&L ===��o2��ׯ��>۶Od`��&pr�ɩ�=���0`��k���f�3�e
����@�k��W��A����q:�DDD�}N6L]��� �@�+�H�����G��̇~�G���;�?����KJ��Í��U࣪��?���OW��0j�(�N�Jll����|����W�ʠ���d��e���oVQQQAjj�A�'1bx���'PT�qޣ��a�����aӦ���އH���j��
[���T�0䪉Nɘ�ͭA�'@�F^���N�l6233���ôi�3|���e��[0�wa���fێ�^HN�j�Ms��+����a�I�y�,^�8�ݑ��˖�a6� '{s����\~��G�:���˴i'����f�����K�~9<��l��#y���ihhЧ�g'k���`�@I��5x"p��ɝ�/���6�*v`|��{���+��cG/��_f�|���FI�`L&��|u�V�]��O����ʺu�x�'hnn�����L6o.E�A�'!��K/=�={����Jcc#^��q���C�L��5��^|>��v�y�nRRb�������b2�t�@S��3@@"��~��Z<�����@�JWơ�l&%%�!C�p�0{�l��L\y僬\��ٜd��X6s҄�̝{d1g�6oެ���lF�%*+#���,�r�ɽIMMe���lذ�;g_@\���/�[PUU��f��E5�y����/0��o���Hdddȹ �W���DȊ�E �wZ�:���zjZ,�L��
7��m�=ɂd9/�}������r�=�2�~�m�~�mݽ����j�5dG����Hc�֭L�>�SO���[W뤭����H���n7
���1rd����n�f��k��8�l:H`2��(_��-�ׄ�䊐#�'�S�2c�
�Gᥗ�쳻p:���Ӑ�Z7q�E���tZZ�3g6l 99��rwv��z1u�i\}�d��s���I{{��������W�g���� 2���/���DLLL�3�A
Y����h��}�����vP@!^L�%����S�Нq�� --�'�x���6wܑ��p�s�z+:��=;��;�y�>��t��2��ΌA��ATI;�&�ر �l�J7ʜbb"���de��ԓ���I����ūX�d�>���zCf3u�*( p��V梛1\��#�>T]���#��Att4��w~��+,�L�!o\�v����t���Wr��������.�:�F|\}�שׁl��rQ[[� 'e����ΎՅ�r�<��˴�����2AsW���[;`X 'z�N�^_��1ʑ���P�C��8��E���+�˲̶m�صk�������v����!99������6l���A� ))�Y�f��C�7�j����*rs���/�%���P�,�-H�5DD��������O�������U��[Kظq�����NK����G߾�|����z�����H��w*�]�|2B���n�c�y0�\./^�ƍB0b�Ə?���Xbc�DFڨ�������+W�p�B"""8��c;v,:N9��/_/���r���r�r3O�*����y}f**�x�ջ�pR���S55�<��<�^/���A��b��?��k��I�}�p�=@�� g��#����Cf�(+h����~�}��1k�uL�v6YYQ$$�Ѯ,��]@�t,TT�SV���6��+���~
ĉ'�Ș1c�����[oeƌ�|�&L��p�{lm�����t��X�F�+s?eϞ�z��h\�r�-7q���O�:����S���;F�@�
/Hv{���v'�p����o�>n��O�~����Q�͵#�>d�iX��bHOw���e��٫.�0H�0��@RR� T)����_Lee%K�|CVV'�8��Iqq1w߭L��v۵�{n�ֲ.~�
!����p�Mq�q�U,\����l��D�<;>�/Sz�&Ũ�������SO�駟¤I'�����$*^��?�/�KM��T4����_uu�i)�G���X 99N��
�;@��撟���j�3��v;�z�b ���㦛�a��+���3��)
�-�&;���nK��s����7���#I�""�L�2�K/=��ǐ�����g��?cժ��,b��a���J�1��������, �,����] =�=�Pσ}~�����ݛ'�|I�ٳ'a����W��]J^^2.W�!^�~�>}27�x�RCA������_��k.:������ԫ�_�����*��\�����1����СC���x�����d9�g��[����/�K0]o�v��s.a����l+��sXl�ܬ�{�?i'�ŕ�bgI�1~3\ZC���S!w���N8������爏�3�_��R���n������?PT��ł�f��t"����ec���GB8�"Q�m�ehU6 H�G d�| $�:��x�Y�����j��������R�vmv,0�-�LHH`Μg����.HD���R�n��y����ϰ�.|�Ҷ���PY�M��Seߜ̝����"|%�'+uINv��p�P����磤�D_W���Bff&}��aҤ�1bI�L>5��C��ȲP}�\v�.eÆm,X�����9��D��<�D/�b���i֯߄B_F8��1���r������z�O�$���L�b1���hoo�v�k��v���֭[�X,��y�{�Ydf��EzF,�YnU#Z�G�6�L�=:�K/��)�uk;7�1"���}K��9s�żyhoo�n�c����@$&v/�ݻux�5=-JY�*[p��e�)���$! f����^���>��ۻ��>��+V��~��j:�^{
C��3[y��H�g7��BD��#��L����Hґ=�l�ˬ���?��W�B��>4θ�dw?'Q��2.�7�6o.������T�>���((��+#`͚5TUUq�
�����夼��Ǎ�,�H�'2Ҭn>�&��j0�� ��x<>����M�J��Gq�5�3xP.߯��K/����z��∋��W��"#%22�����K���[�q��|e����W�(��G����4�`p�ݔ��!I111�r�l���\.dee1r�F�NVV��'a�U
���=���~z��ko���s7�b�F������G��4�ζ�5������ �h�$�
D([��T�7�����w(��^���o5��b�0b����Y�l9���<�͆�륶����j>��^x�e$I���G3s�e��Kr�IU
GO�fƉl�V�g��D�$��M���y�f�55��t_2���KC�Ξ��4O�]5�(:j�I�=����ȼ���B��������-(���";;�~����v��ŪU���������f�z8*`wG��P;����Q6_f�����q����N��Ν���2���QYYIii)
8�)S�2j�@��#��p!��m��>t����5���Z����6��!áa@�S��6 �����1�%N����
��N*���r�v�;U�
G�^�W/�T__��b!++�1c�eƌ�ѫWyy1X�Nd� !�e��v�-���{��k7���#I�� �X�#D(Yf�&�4/�vm������7�`��y�Ɉf"##��Q�����ٳ���F��U�/e�<���de�b2���e��t�y�u�r��7��x0�LDFFb6�u/a�h{��S.��A�u(�)0������U��։���Krr4���p[9���z!�PBW�:ײe�L&3g��3'���Nd���M�aé
\�kmmm.����x<,�>���gp|X�V_�$!>����Q;��;�v�T��mS�MǏ�Ʒ[��,�y�f�/_��O���ុ�cĈ�DE t�#}�G���������>�Nw��[��@�$��T��5�{�]����υ�B�*I����o����W�
�����N��K�^����'6����e������i�5��Z�9�_� ���Ú��y�w)..�25��ç�.C������Я�-��o���
������ 4���vMB(!`A)�B��c�����f}�#�k�������n7�*uz`���0y�&�z�~��w��۷�aٲ5Ȳ�W)40�o�چө�Cow�ٞ�M���j?���7N��1K�T16&�1�+��
�T��ҍ7����=G��GɪnHeU��̿Z X,0u�X�{�AV�����[���
���;�_J�<��?��RzV�B�pf�$�p�0�_����V\.�ZhA��ݻw���wP_����KX�l9NgQQ6����ۣ��/����df�ѫ�Cu)}�* x�>�x�
**�;�W�ͫ(���0!�{��aVt��l� �h�$��p�nn��xu^+& ���Ap�9��Oq������W�r:�0���"fͺ���F������ڊ,�DFF���Fff&�&����O&'G:
E�.�Lqq9k����7�l�46���F�rrL����)�r���cu�,tw�*��]�Zش����3���&����
�cb�L�ԟO>�FCC~tVTT��Ͽ@NN���o,������͛���d���v�H����zG^+/�)*ڏd2a����Z�^��j�i{9����sg^�OO��$ ��FDDV�U=���=7���_����6<��
�0���v�K�Euٸ$��s��
�O��r�hii!66���$�v;v�]wu���h3`n���[�b��y�;9�c��jC�:�q�g��ֿ���j�^�,::�ժ��Q���s8L�rJ����'��F!ġg!D�$I[��}V���1�@�T7Ye�SO�KBB��m�����%:jB,��g��������K�ɱ�˻�\z����v����t]�,c�X��`^�W�vn������ɱ�l]��uu^V�h6�m�C���n����ӎ�/BV�DV��y�
н����Am�������k���c���ܘ#> �c��G]�������NZZ���@LL������I �6����7����a��u�b>(�p����s���̙Ð$�
��ԂN��U�V��ߟy����I#0���H`U���7NCCzBGWG �g>����l��^�G��_��~����K����
�ٲ�S�&/9��9Gل�����۩C���Y�f
cǞ����Æ�!���VYif�U��e�z��MZZZ�&�@F������>�X�;h+-u�CG��p��`0G���Y�Q��+��
�]���Y7��uZmm�_'444�q�F�>�,�{����8*&|$)�ٳW�u����0`@�#?���^Ӛ�8�p���ʤ�x�@�=J� /�\�o���ɻ
� �ĉʮe555�q���Laa!�&��SO>B��(y4�]��Y�����t
�
��@��]�ح�/�����d�B����t(*j��K:Ԁ���s
�f
�u[]]>���{�ǭ��L�^����v��%u��C�#8��i�f�OJhkk�O�>:����y�@��3ft�3ؗ_6��c��=
GL!��$� ����p��L2`F�>$�Y
����1��Z�_/s�t:���.ओ�P��'�y�E֮]Occ#>����|�M;�s�=������aw� >�G\\A�( �Z��ۈ��!&&�O��
>��B��� ��t���뫾���������@9Y��YV,�IPԀb(����55
S
4���63u�e����������Jee%_}�5�f��o|�߁7+WF1sf!^���S��ƛ�0������7���#p�k�[,p��)�^ǪU-lڤ��g�y� ��!��SϿ��PԀ���@�0rd,Ӧ��3t��k��wͰa�(((`����5
��̹�ŕW�v�r�$�ΪUV���M\{�G|��f���iii�z��@Z�>���7,��V��w���v��_��u�z2}�t����K��w�����Y�֬��`�V� ���S�û�@\l�h���7F�(���RXXȰaC�����94�����3'K�V>rr2�8q"'�t���T�w����?��s�d�+�I�o���L��U;��4��FJ���fuo���
}�g~w3�����.�Q�Ie�I'������(2a2��s0��L����>@�"�{1�L�����06[M�X��������c��k����i۱��M�ZY����;kX��0���5/!B�O����/���c���fp8~0ZX�#�x<:�x�7矟�m���>��5L#�hCV��T����fV��S��c� Tu ��.�$�a�b������GIcc#���̜9��c1��f�7�\dz�.>����
!������.��ܿ����\�����)S��b�f�AMMeH�`����?�谄_���g��+�?G��Sܪ����_����:n.u&ύ����a6+������(--%77�K/9S�hk�X�p�'7�|?�Wo:X'��Kdi��l�e��+~��E�l��m��L��O��ˏ���<(���Z���s��
�7~�B[#�?�3{��� ܭ����+5���W�<���R�wȐn�5Kw��������t2s�t�����;k��ڿ1s�lv�ڍ��a}�|��-����ho�p�k�qV ���U�_>
IBOl �4CXS7ߜ���Q�~�W_5������{= �N@�j!��ۯ��O�
+t���kS7.V���P&����9�����n`��e���1p�@}O���[KT 6�����n���EL��|�B�R��Zv�D�;���͝A���<�1c�\]�n��%���z��6���:��<@��x��K=$�͓O��S���vG4}�-�]?��̀����|>"##imm����0�|��������R_��=����?n��B�ɀ�˼��M�hԟ�`��'��*����5����Vq�����S�،�=�dI˖w/��d3O=�e�lٲ��o����d����F��fSp��;ʲ�ի�Z�6���W_sιKY��
!��:��KMM+�5-�h7@�����&-�{v)+s�������/|@���Uz���q��wOǍs0k�B�����s�X,�Vk'�f�!�2ᄏ�E�J��v,x�јLv$)I���3�X�\��F�����P�h��lЫW/��Z������|��~���߷zu }��a��)/o��@��F�?cF2���5=�p���OSIP�P�B��3�W.�8�����&M��ݻV���'--��FP---��2Cdd�ZH:����⢉�4e%*�Jd���H3&bc#�Ϸӿ�����×���ghm���f�&z����VJJJp�\�L&22L��Kv�$rs�e������;�h�i��4�?qb/<߷۹~�/�4q�u{�� !�?@��<�Pl50�駳8���Ӛ|>�u��嫯Ց��DRRR'455���Hkk�ޡ=iDEE����С�$%Eg&)��O;����l�\��� ''�/t���hhh���^�ߵ�5���f��G��9��h^{-����I�������Ҋ>� �����F)N��M|�Q?r������e����
����Lbbb�}}�[�#l]�]����V�C��7�����W_�컜N'---�p�>�F�����zu��モV�_�Opɥ���>g!>;��|P�D�@<(�����6��
W�.*�X-sGrr�.���v��{�7�ө3��������ڊ�j��p�����j
��,�,�M�e?��Ȱ��{ya��x��J^xQ����b�A������G-1s�IaG���=̜��-?*ӝ��Ѥ���l3�`v���"���u%|�z0��\.}�/++�W�f�U���o[���b-�H�������Û���������������.m�):##��t�H#�7�YK�F��������yᅾa�����p�Y;����F��!���E�Wm��7r6,:L�\��#�:�V��[HKK�˧w�y8�P�)h�*��~<�>�IDDx^��%s��Y�^��S��~�?>XH��f�{//,�Pk��^��#�ʍ���uP|(��@0hF���筷�q�
�'��|�n(a�R}��B���~9����,x?����c�_��M7�� $&&����b�@�<�M��dq�q=�{�)�w���5B��q���P/⯨ŃE��[�8��(,l�3�PU�Wv����8�fsX��P0@��5OBq[-���a�8�=�t��WG�� Y>G<��y��ر^�O߰u$@E��?������zD0>>^W ���}��c�����v���+(�����W���/�曵��z=���:�ί��|�0iR,�|&�G hi����|����[ll�_�'n`�y�M�ײ���WB�wݕ���6�|��-���ܽV �PX�G<�����&�^|�/��=��Z���{�+ӃF�$a���H\O�F/F�:4��Ű��=����RF��s`�b�a��#&�`8���D��+�a�eln�̋/U��ո�Bw��G�`����po|���oO������؞a?O<����' !V��>�`��e�M�Ο�CrR�s������}e|���O-h��z�p�|~S��_��������s��=�h%���3���(!D����G&ԋ{� ;;��_��1����y��
��:*&DDD�U:����{�o�4:D��a�t]>�ˌ�9�!B������\�����o���a��}WC��<^łu���M�������tڭ+!�̭��q�ʼnD��Lp�r�>V|��2V�
?c��P/�A�^�fߑ�5�$�����yu^-�[Gkk�h6��zu2ͥ3w��mL�����LJ5w�m���K��п�:��?s��P/�b�
����Ί�o��`lMM>�z��y�k����uJཞrJW_�̸q����7ި塇+�x��X(�������b��lW�J"�/����A��r�|�Q/��Ƹ�&��&~���OO:��e&��{����v��A��/اG��V���9&�%�$�5����}�U3�����\]�}5�pۚ5��{_EE:��q����U�p�OҞ{l4=�ɀ�H��VS���G+Y���]�8U�[����� � Y���ڙ)�xcjXif���|��_�婧�hi�������A}x��p�ף�k��'��<$ہ�u�Z��r}bJm_�!����;���H�9P��v�y��}wF�;j2����U��~t��H����_7t=�$�:��x3w�Ngڴ��J�o�Y�SOU�ܬӽxLq��_�.�7��m�zѯߡ5o����),���o��uGA_��`��I��@(�L��ڙ��%)u��&�ͫeM�v,�$n\&�Xr�ѯ��| %�Hw
�og�)������հo�_��<%���Q�7�~�7��8Cݷ�|3g�p���X��o���������~�ѥe���mG�u�B�p�j$Nt� #���W's�% z
�ڵ��:��%K�7�.W
��
���/��}(Ŭ�e�11&�NM�����c����[�������_:a:JI��A���7
!*~����q
�,0��� 1����䧐]��IEND�B`�nuapplet-2.3.0/images/edenwall.png000066400000000000000000000167261137423255200171320ustar00rootroot00000000000000�PNG
IHDR�-��$� pHYs��
MiCCPPhotoshop ICC profilexڝSwX��>��eVB��l�"#��Y��a�@Ņ�
V�HU�
H���(�gA��Z�U\8�ܧ�}z�����������y��&��j9R�<:��OH�ɽ�H� ���g��yx~t�?��op�.$�����P&W ��"��R�.T���S�d
�ly|B"�
��I>ة��آ���(G$@�`U�R,����@".���Y�2G��v�X�@`��B,� 8C� L�0ҿ�_p��H�˕͗K�3���w����!��l�Ba)f �"���#H�L�����8?������f�l��Ţ�k�o">!�����N���_���p��u�k�[�Vh��]3� �Z
�z��y8�@��P�<
�%b��0�>�3�o��~��@��z�q�@������qanv�R���B1n��#�Dž��)��4�\,��X��P"M�y�R�D!ɕ��2��� �w
��O�N���l�~��X�v@~�-��g42y�����@+͗����\��L�D��*�A�������aD@$�<B�
��AT�:��������18
��\��p`���� A�a!:�b��"���"aH4��� �Q"��r��Bj�]H#�-r9�\@���� 2����G1���Q�u@���Ơs�t4]���k��=�����K�ut}��c��1f��a\��E`�X&�c�X5V�5cX7v��a�$���^��l���GXLXC�%�#��W ��1�'"��O�%z��xb:��XF�&�!!�%^'_�H$ɒ�N
!%�2IIkH�H-�S�>�i�L&�m������ �����O�����:ň�L �$R��J5e?���2B���Qͩ����:�ZIm�vP/S��4u�%͛Cˤ-��Кigi�h/�t� ݃E�З�k�����w
�
��Hb(k{��/�L�ӗ��T0�2�g��oUX*�*|���:�V�~��TUsU?�y�T�U�^V}�FU�P� ��թU��6��RwR�P�Q_��_���c
���F��H�Tc���!�2e�XB�rV�,k�Mb[���Lv�v/{LSCs�f�f�f��q�Ʊ��9ٜJ�!�
�{--?-��j�f�~�7�zھ�b�r�����up�@�,��:m:�u �6�Q����u��>�c�y� ������G�m��������7046�l18c�̐c�k�i������h���h��I�'�&�g�5x>f�ob�4�e�kVyV�VI�\�,�m�WlPW��:�˶�����v�m���)�)�Sn�1���
���9�a�%�m����;t;|rtu�vlp���4éĩ��Wgg�s��5�K���v�Sm���n�z˕��ҵ������ܭ�m���=�}��M.��]�=�A���X�q�㝧�����/^v^Y^��O��&��0m���[��{`:>=e���>�>�z�����"�=�#~�~�~���;�������y��N`������k��5��/>B
Yr�o���c3�g,����Z�0�&L�����~o��L�̶��Gl��i��})*2�.�Q�Stqt�,֬�Y�g���;�j�rvg�jlRlc웸�����x��E�t$ �����=��s�l�3��T�tc��ܢ����˞w�|��/����%ҟ3 cHRMz%������u0�`:�o�_�FIDATx��]kl�u�Ν}p��DѲ��Dٴ���%���T��-� *(�$�GQ�D�S��� � �"
�?%)�4��M�0�j�ز[{Eْ]7���H���{�c���g�]��z0��̽3w�=�=�9�ΐ�+ a#d�t
� �v�� ��Ibg@&�2���/?��Y
i�ʪ����ޡAj#�L:��GO��I�# ����m>δ��t��/�}�����I5��![ ��?�MP��R�5V�6?��/��c4ka��!�MO�n�{
�Ґ5��q5l��ύ���j����ma����ы(Q/^��O�_��CW�Cߐ��
����餐8F���_��ǁ�B;%�]����/i����*����O@��f4´ >�����eiȯ@~�7]�l�8�}������j����&·�h2b� �v�;�
吣��]T,�|�ё�>?3��lJ���O��-<.M�,Η�M��>�nZT�wvi��N�����۱;��w`���Ͽ���b�&R??r���Ɛ7dS�?��E�`iQ*Y �}Ç�W5���B+��w�S����~���: �@8B��h������9�!���>�7a��7�Ěw�$6C��#Q��������t���.����M�8���|L:
@w�yly������`��8G�{ُ¬�?P.Б��vU(># �_�0`Zm���o�"&ss��;�b�lF�� ���u��$�M�H����Hr�7�����cМ�p3)�[2n+�/k�Xo:�*��'5���t��zq����l<@����~i�M�
�r75�A�hT!䲔��p�CYx*��s�쭓f�bfX�C�����ٲ68��@�$}
;�-������ �w�C�1���@ү&��0��;A��E^Х���2�
�5��0�Fv���yD\��f�;�������<�� ;;m�9��d���ؗ�[���J��5��[�)u��$@Q*"����|m ȁ��/~����M:'�v���8K��|Ҁ�.��SZE�{K���}�Ã�%C o�����))%��ACݓѶ*��b;�D��7H��%!M �DXZ �ZP�GUG�����4��\O�74�ُ�x����s��)�3�Z(Mj�s[I��e�=�@g�%��|a-H� ��+B�p+÷ʳ��fYseC:!�bbg���� �o���h(�� g��@��G|����t]�Y9����,Z�5�W
U`��`����G:�8U���z����H���������d-�g8�:�hѫ]_���:�Q��Xozz�Z_����l��e�{�e���[���U��`� �b~��n����ӯ���`���d������
y��R��+��1#��ȀS���Quߊ��p<2^e���GN�qD�Y�ZA��#��F���`W����x$ ``���؈;P��[@�T�'Y
N����
hn#�|�֣U�1
����䙠��Țb#�1��6�{5Z� e�}�DX�����Ī�W
\(��p��Q�E5il!"�TVLR��������8��A�njW�_0z��� ��"|6��<2@N�#ǼN��S1�U��P
���{��4�3����#�c���Xo:9�<5v�� 쭢�����5:�(��+=�bDTlNy�k���)Q�z��� �v������`[YC��.�֣�!6��ڜrʋ���M������B�R͒�n��M�*�����T�eV����q;��λ���G٣U�;�PJ�}�7Mc�i��y���`ARN��E=����_O/���y�ҁ =5�@!�3*�%p,�c}�Պy)��:�s_���(���sμ��x��*�撇%�UQ��r�c�9Z�YT21����p<2�р�p�� �`}/]m��RTK�/i����9W.W����htg$�t[�b(�c1���ާ�,T=��Ki�ӿ��\ŏHT�dU�6���E���ᾮ�ұId�W�-��;���B/�.���գ�l���_����!/�呩��l=*�c!���Q�f���Tt�MZE�m�P�x��2E]J�Re�x(}�G���̨����
����e�O��:����k�N�q k�u*z��c1c��UN�Lm�N�=h�q�2'V��'�mtR��xd�qӨ�Ų¼N��x6Fa��\ΙM�����l�R�%�\_2J�����6���_N��/�>
�@��lp,�y�W_�Vp����N���_}���C�<ڋ��t�#z�W�z(��_���4ld+�4C�
�F6���2�%X4��z?x1�;9���~~�dB�(e�mG�@�w_9 ��g.HNY�GH-ԧ��8Y@�,A̕��(I�3�j?�B��#�����H����/V�`�&6%
w�!�Dk%-*K~�)+��3(q�#��O�J�Y������|���68րbņ����@�p���HƃO�)������Ak�yV�l����)��wL~Hb%g�E;S�<[��a����Ƞ
��T���fC^����#{s�AǚN��Px�#@V��+faO�Dܖ弆)�����报-�����9cuD��
�EFj�J)�z��a�1�Ae�8�VH�zX���5�D��O�b5Z/����jz��>xO�UbL�&%��`fl��7���(<�\>C�>�E�20IWtdق�=y����h�%'�9@ ~
%p�+KR�R<��Z�j�$���b�/1]#�Z
�<�����-K-�4��1�us�i9�&?@�����e�t�}zf��LW�L��gg��?73��YZ�ڪ����o`oK/�z�}���T�_#,�Ê��*���fɞ�J�*��ՆnX�K���'�
+�*��u�V�S�>�sM$�����N6�G�\KD]�^��d��QI����Y�gy�k��R &|���BA!�e���[భG�X�b�#��l�Y+@T��p<ҍ�K�/8墚q�Hxq����p���PyF@5ە��~|m���2p�{r#:��Ɂ�̹���C��T��<75�����������TC�79@�*���#�p��i���%`�b��VT�aen�U�2�˽�-�p�m��P �L��?}0��w
>�b�3E�{��SIG� ����P
�mߢ�!��V����o�(�NF�����h�֑3j����s@�,���|+�k%Hm�U1vڭ�AgD�կ�bj?��y�]4+��T��!�j�{og�����+E�*�S`�vX��Ĺ� [��'��%�VV!�r"�4ӟ89Ч�9�-���Q��&���p�w�ӾO���5Ě6��d?=���p��8�s��v�1�"�k!,u
�ä�D�w�a;���*-i����B)�k�#W����gր.];75AJ��+%��v�
T��׃�]��:���>u��䨳l��2d@=�j�}���T�m�k�ày:75��P�՝t��� �I��f`b��J }����%��3����q��r�c��ɢ�����o
N9��q���&M:(���
��)p$U}`���S��'U�z6�K���)�q��E��$6An�WE��i�ѫ��/_m������GG[b�\�h�6�]�r��*'8rE>}�o�����6�>���ݐsSgrƋ.)]qPH�l�ჹi&�y7U�?�pv�v�2����ob�8�핫�mp��n5���/����G���o����i��"��Ο890����P�=qr`�5�ۖ���]g`%�2��T&�;�u�.���P�M������IE?����~���:@$����[?�^Ǧ9�ѐcV?��y,��J�Q��O9��P�àÀR`;�>���>�Tum���}�U�)W;/��'�X��<.'�^��ׇt�<�sQ�qt�H8yPO�8��_�1�E�'��~������w�75@�*Hl:5U��i�fK�p��d�A@�Ա&���d������`��X@���/9}&��I��I��? T�Ȍ<�(P�,@9@�����"�H��4R@X@nd����f��!�s u@�1� ̦���`I @���cH�}ԯ�Џ�(^�S��?�Cda�B���G����AcUN�4�H�(� �1��6�n�/�����r
}�H
�;�4 [�y�!�0��`��YS0�d)� �I�&&�&J�K�&�R����)��g���¨��VF �~���f'�����4� ���D�g����#���H+4ԬA�45�2p+ ���̲�6�����C�1s��� ���D�8`�+���G`�e�%Jf��esB��2 $A0`Q+��`�+�(�IDAT8�u�[l�u�?�ko[K�ֵ�0������8�Bt�H|c1qO�h�h�>�&��$���82���h��8�8;��u��VJo�����XŅ��9���������~��/��b�K�i�_~�-������8
��,�������oo�mn���������C��L�1|�2'��.b�*���σi��Ţ��ZB�eĮ��?�!Ƀ�^���7��|o�IM�(�jz��Þ�7zd2�5�4��x�7c��䧭��oyK�@���ي���,���3͏u���K��I�uV}%)q�;�M�YX4��_L�=���Y�|�r��A-��9����Y8�uaHN�R�]�-�����P���N��wY)�h<�(5K �0��s �5`:*�BA����r��-��8l�h�k�dž�ڨŎ6q�#9tY�S�Is�Z��706�GL^���!��x<���
��/|>��j�$��ub�=^��#[J��{�mr�p���
S3E*�"��+��K���s��'F�[�s����xco�))�Q��L���Cc��㥧��ƻ,�շ�v�o�rXd��\���/O���V1A�q���IEND�B`�nuapplet-2.3.0/images/nuapplet2-stopped.png000066400000000000000000000016021137423255200207100ustar00rootroot00000000000000�PNG
IHDR��abKGD������� pHYsHHF�k>"IDAT8�uS]h�g~��{�|Mj����&]�J�%ٌs��U�4�E�b�f*n+���؍7^l���!"��W��1�?��X�4Ɵmc*�q6�I�&_�}��]�su<�9��C0��t����?�z�
�d����7O��i��??(�L&mmm��:=�o����E���:���X�p-�4�A&�F�$&�r��}:we�ғ��)��I_ymW�I�VH�oAt����n<c��7G�ȑ��Đ�6��_Le9�tN���(b�"H�tTUѺ��̈ј����ɧPk|�9�]��hjF��I8s�(���܈o�d��s ��V ���v��'@x��weDpBu]��q!�d���2TG�wA�>�k�� �2fg�s�b�k�*�Rx:�����+���?�����>���,`��CfjIp���T�)W_g�p�̛����_v\�{�ӈ�.����|��c���`߆�o�2���:�@�H�7�_ɓy�7-y
��8�~,V�-gp��(b��Cf�1��*O�0p�p��R�kW5��wU�ZV3�x����Y��tWsB��x\?B��Ѷ��}��&[��?W0�����V,�!Q�Hfd�O�]�4l� �:��r�^�`�CϺ��ÿ[E��"�tV��*�v�p:���pO{��o�S�b�&ӵ:�E�M]L�-o]��OC�YCx�M+b�����T+G7���� T�w�ew���wqE�k�S�����/�o^���,�Գ�x�g���Z���`����
�H����dD`4�IEND�B`�nuapplet-2.3.0/images/nuapplet2-trying.png000066400000000000000000000016061137423255200205520ustar00rootroot00000000000000�PNG
IHDR��abKGD������� pHYsHHF�k>&IDAT8�uSmhSg=���M��m�ۏ,mӖFik����V[tVKQA�1�럕��`�1� ���E��h�VŶ�PD��X�a��,�X�ٮ�h�&�ɽ�?Z������s������ v���Y��#n�\��㓉�k7C��3P�?,���8��\[���Ֆ�
EEr���B��S`������Hc/����xE=�c���a��z�̞�H��s@Ի��*�S�c����T����
?6��!�B�P$V�xL}T'%J4F��OA�f�X
k��1��g�:�������0�
�u8��bn����师�w�!"*��8�*�m���������O�(:v!p�K4�+Y��s*I8�p�?�FV���p�s�Y�H($IB2 0�1�N�c�B\e�x�%�-�P�Í�����0I��D(���&c��P&p�r�y�0Ѓg�9M�����EI����Ք�c>����wl��W�-(�-����~I��%��`v�=#=�|7�By��C�x�:�PI6²Ɍ�Z\ ,ǁ��SwH8=���5}���1������m��F3�s5"���P+�g,;:=�y(-�V_9M�ˬ���_�\)�%|��!��o�E�E4�/~�^��@�ߟ���Nf�]h����������&�e��l6n��yyy9w���3>v��w6�x���P̷���#_U�B�
_
UM�X[�|%��'�ԛ:u�n��0���Yki��ĕ�ͬN��#�Nh��R�z���q��K����[�oMz�{:��x�^�"����?�HSF.OXIEND�B`�nuapplet-2.3.0/lang/000077500000000000000000000000001137423255200142715ustar00rootroot00000000000000nuapplet-2.3.0/lang/nuapplet2_fr_FR.ts000066400000000000000000000271641137423255200176430ustar00rootroot00000000000000
AppPreferences
NuApplet Preferences
Paramêtres de NuApplet
Authentication
Authentification
Authentication Server
Serveur d'authentification
Hostname
Nom d'hôte
Port
Port
Certificates
Certificats
Certificate Authority
Autorité de certification
Trusted Certificate Authority
Autorité de certification de Confiance
Verify remote server certificate
Vérifier le certificat du serveur
Check remote FQDN
Vérifier le nom DNS (FQDN) du serveur
...
...
Certificate Revocation List (CRL)
Liste de Certificats Révoqués (CRL)
Client Certificate
Certificat Client
Send a client certificate
Envoyer un Certificat Client
Client Certificate File
Fichier du Certificat Client
Client Key File
Clé du Certificat Client
Authenticate using certificate
Utiliser un Certificat pour s'authentifier
Advanced
Avancé
Advanced options
Options avancées
Load plugins
Charger les plugins
LogsWindow
NuApplet logs
Logs de NuApplet
NuAppAuthDialog
Username
Nom d'utilisateur
Password
Mot de passe
Authentication
Authentification
NuAppPreferences
Hostname
Nom d'hôte
Port
Port
Authentication server
Serveur d'authentification
Use certificates
Utiliser un certificat
Current key:
Clé actuelle:
Select key...
Choisir une clé...
Current certificate:
Certificat actuel:
Select certificate...
Choisir un certificat...
Current CA certificate:
Certificat de la CA actuel:
Select CA certificate...
Choisir le certificat de la CA...
Certificate authentication
Authentification par certificat
Preferences
Préférences
None
Aucun
Select key
Choisir une clé
Key (*.key *.pem);;All Files (*)
Clé (*.key *.pem);;Tous les fichiers (*)
Select certificate
Choisir un certificat
Key (*.crt *.pem);;All Files (*)
Clé (*.key *.pem);;Tous les fichiers (*)
Select CA certificate
Choisir un certificat de CA
Certficate (*.crt *.pem);;All Files (*)
Certificate (*.crt *.pem);;All Files (*)
Select CRL
CRL (*.crl *.pem);;All Files (*)
NuAppSystray
&Connect
&Connecter
Ctrl+C
Ctrl+C
Connect to the authentication server
Se connecter au serveur d'authentification
&Disconnect
&Déconnecter
Ctrl+D
Ctrl+D
Disconnect from the authentication server
Se déconnecter du serveur d'authentification
&Preferences
&Préférences
Preferences
Préférences
&About
&À propos
Ctrl+A
Ctrl+A
About
À propos
&Quit
&Quitter
Ctrl+Q
Ctrl+Q
Quit application
Quitter l'application
Error
Erreur
Unable to connect.
Error was:
Impossible de se connecter.
Cause:
Connection succeeded
La connexion a réussi
You are now connected to
Vous êtes maintenant connecté à
Warning
Attention
You have been disconnected
Reason:
Vous avez été déconnecté
Cause:
NuApplet 2.0 edited by <a href="http://inl.fr/">INL</a>
NuApplet 2.0 édité par <a href="http://inl.fr/">INL</a>
Unable to connect.
Check your username and your password are alright.
Error was:
Impossible de se connecter.
Vérifiez votre nom d'utilisateur et votre mot de passe.
L'erreur est:
Unable to connect.
Check your username and your password are correct.
Error is:
Impossible de se connecter.Vérifiez votre nom d'utilisateur et votre mot de passe.L'erreur est:
NuApplet 2 edited by <a href="http://www.inl.fr/">INL</a>.<br>Distributed under the <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a><br>
NuApplet 2 édité par <a href="http://inl.fr/">INL</a>
&Log messages
Fenêtre de &Logs
Show log messages
Afficher les messages de log
Nuapplet isn't totally strict about TLS verifications.
Run it from a terminal to see any warning that could happen.
NuApplet ne va pas vérifier les certificats TLS de manière stricte.
Lancez-le depuis un terminal pour vérifier les erreurs possibles.
Unable to connect.
Check your username and your password are correct.
Impossible de se connecter.
Vérifiez que votre nom d'utilisateur et mot de passe sont corrects.
NuApplet %1 edited by <a href="http://www.edenwall.com/">EdenWall Technologies</a>.<br>Distributed under the <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a><br>
NuApplet %1 édité par <a href="http://www.edenwall.com/">EdenWall Technologies</a>.<br>Distribué sous les termes de la <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a><br>
nuapplet-2.3.0/nuapplet2.desktop000066400000000000000000000003351137423255200166560ustar00rootroot00000000000000[Desktop Entry]
Version=2.0
Encoding=UTF-8
Type=Application
Name=NuApplet
GenericName=NuFW Client
Comment=QT NuFW Client
Icon=nuapplet2-running.png
Exec=nuapplet2
Terminal=false
StartupNotify=false
Categories=Network;
nuapplet-2.3.0/osx/000077500000000000000000000000001137423255200141615ustar00rootroot00000000000000nuapplet-2.3.0/osx/NuApplet2.app/000077500000000000000000000000001137423255200165525ustar00rootroot00000000000000nuapplet-2.3.0/osx/NuApplet2.app/Contents/000077500000000000000000000000001137423255200203475ustar00rootroot00000000000000nuapplet-2.3.0/osx/NuApplet2.app/Contents/Info.plist000066400000000000000000000016501137423255200223210ustar00rootroot00000000000000
CFBundleDevelopmentRegion
English
CFBundleExecutable
nuapplet2
CFBundleGetInfoString
2.1 Copyright © 2004-2007 INL. All Rights Reserved.
CFBundleIconFile
NuApplet2.icns
CFBundleName
NuApplet2
CFBundlePackageType
APPL
CFBundleShortVersionString
2.1
LSMinimumSystemVersion
10.4.0
NSHumanReadableCopyright
Copyright © 2004-2007 INL. All Rights Reserved.
NSMainNibFile
MainMenu
NSPrincipalClass
PVApplication
nuapplet-2.3.0/osx/NuApplet2.app/Contents/Resources/000077500000000000000000000000001137423255200223215ustar00rootroot00000000000000nuapplet-2.3.0/osx/NuApplet2.app/Contents/Resources/NuApplet2.icns000066400000000000000000001343061137423255200250200ustar00rootroot00000000000000icns��it32x�����������������S<�������-�����3�������Z���������z*�������0�������������n"�������^Հ��������������c������� 9����������������������b#�������W���������������������������~9�������2{�����������������������������S�������Q����������������������������������m,�������1uՌ���������������������������������ЈJ�������%R�ڄ����������������������������������������ƍW#�������D{��������������fj���!�����������������������������̗c.������;j���������������%� p������������������������������߀�Ӣm8������
!Ag�������������������Q�
�%z���������������������������߄�ثwB�����Gm���������������������������$PmkN(�1�������������������������߈�ܶ�K����x��������������������������I�=isrqqoniH"�<����������������������ߍ���V!�����������������������������ʀ6�)Xu�vuttrqpnldA�*q�������������������ߐ�_����������������������������_�Bo�yxxwutsqomki]:�T����������������ߐ�u���������������������������Ȉ=�$Fjyz{||}}||{{zxwvtrpnlifd\@"�8~������������ߐ����������������������������ۤn7�1Trxy{|}~��~~}|zxwuspnlifc`^YD)� BFJNRVZ^bfimqux|���������������0��������~L������cd`\XT0���/840,($i�
���m�fg���������r*/37;?CGKOSW[_cgkorvz~�����������gIJMP\�����������ko������?ea]YCt���7951-($ "μ
���q�fh���������^ +048<@DHLPTX\`dhlptx|��������I /963.L���������:�������Bfb^Z.����>:61-)%!x�fr��s�fi���������J
,049=AEIMQUY]afimquy}�������� N���������B
B�������R�������Mc_SJ����D:62.*&U��_��v�`k���������=-159=BFJNRVZ^bfkorwz~��������$4����������߲IZ�����tj�������&!d`4�����K:73/+"@��a�K��y�`l���������:-26:>BGKOSW[_cglptx|�����������}Z6v��������١&,�����<�������YQ0�����9<840(0���
�=��|�`m���������9.26;?CGKOTX\`dhlquy}��������������m$����������Sn���:��������1 ������"
=84-#���\
�:���`o���������7/37;?DHLPTY]aeimrvz~���������������� ���������ևA��@��������0������=9.�����7����`q���������6/37<@DHMQUY]afjnrvz�����������������+s��������ޭ5cT��������WW�������>,-����N�4����`m���������5/48<@EIMQUZ^bfkosw{������������������5j����������vi�������������� #&C����� �%����fZ���������3048BGKOk����������������������������������������������������������Zd��܅�2����c���������w159=BFJIx_1! =q��������������������������������������������������v\�|"
(������a����\��-49=AEIM0#8P\c_L7 @������������������������������������������������N{�"
I��̀��g��=���������%48<@DHLPTX\`dhlptvR-�����������������������������������������������q���;
j����������_������37;?CGKOSW[_cgkorvz~b)&��������������������������������������������������[e ����������Ӏ�^�����%26:>BFJNRVZ^bfimqux|�i9��������������������������������������������������|���y
���f������b���������^159=AEIMQUY]`dhlosucK/:��������������������������������������������������������CЅ�7�����cQ��������+48<@DHLPTW[_cdL4#'D|����������������������������������������������������������7 (��������c���������37;?CGJNRVZE%B��������������������������������������������������������������^���������������Y��*26:=AEIMQC}���������������������������������������������������������������,
���r������������Q�g048<@DHJ#^����������������������������������������������������������������e�ʅ�=�����K������V�(37;?BE~�����������������������������������������������������������3N
$���
�������T�����269=A����������������������������������������������������������������I! �[�������������Y����:048<,>������������������������������������������������������������������
���w�������t���X���)369
�סaW`ju����������������������������������������������������������uЅ�B�����$����V���15$'�"
:�������������������������������������������������ǒQ
G��� ������������T�M03"(CHLOSVVHS����������������������������������������̩����X.
�����������`������<�$25-8@CGJMPTN%������������������������������������������B� օ�@���������T���037:>AEHKM0j������������������������������������������)'$"&,.*'#
S���������Z���������`+259:730,)%" ����������M������Q�037:=A<8��������������������������������������������-,B?<851.*'$
څ�2����� �T�����N,158;4E��������������������������������������������+C@=:630,)%"
s����������X���������/36+R��������������������������������������������ACA>;841.*'$ Ѕ�s������#����P���C,1)I�������������������������������������������� EB?<962/,(%"
f��� �����������N�.
���������������������������������������������q6B@<:630-*&# ȅ��������+߁���K8]��b-C������������������������ݻ������������
C@=:741.+($!Y��/��������߁�M����" ���������������������ߥB~���������ۀ!3>;852/,)&"����������5�߁��U�Er;,7:<8S��������������������Fi������������c2630-*'$ c��>��������݁߀�I�+25781�������������������ߗdF,DWR�������������C..+($!х���������>�݂�H�-025������������������������߹�C���������������('%"���M���������݁�F�.&-0&}����喀���������������������pF�����������������
4��������� ׂ�H��߲
*-
#����5I����������������������{����������������n���A�������s��D�v����Q%�����������������������F���������������q����������C�;���"
+:�����������������������v��������������6
8ۅ���������E��A���467
������������������������wC������������7Ɔ�q����������?�
�%/135������������������������@/�����������"����������ֆ�=m *,.02R�����������������������L637������b��F�������X��1"')+-/#&:IQZcksy����������P310%a���j�
Cچ�������������C&(*,. �1^q��m10/-+(��3Ն�������������1&')+,./.-*&#! �"-,*(&%#
%Ά��2�������+ֆ��!#&()+,-/001233�43) &+*)'%$" ć�i�������]���-
!%&()*+--./�0�1�0//.,,+*)'&$#!��������������D$%&')**+,,--�.�-,++*)('%$#!
4ˇ���������
����a"#$%&'())�*)(('&%$#!
Pׇ��3����������� !"#$%&&�'&&%$$#"!�r���E�������Ɉ��
!"##�$##"!! ���X�������+ш�� �!
���l�������:�
�(��(���������E��S����
Y҉���������;Ӊ��!���-�����������2ω��o�
�ۊ�s�������(Ɋ��:��
� X̊��c������� Ë����
��-����S�����������X� ���ۋ��=�������z���b�
�&�Ռ���������Kӌ��u��A�����������%���և"�
]����N��������܍�ܙWzЏ��#�������2����P�������j֝��}�����������(�������Pʗ��Q�����������~
�������7����*�������I���ۖ6�������8����|�������&���b�������z��ݨG�������
^,��������������������������������S<�������-�����3�������Z���������z*�������0���������������n"�������^����������������c������� 9����������������������b#�������W���������������������������}9�������2{������������������������������S�������Q����������������������������������m,�������1uՌ���������������������������������χI�������%R�ڑ������������������������������������ŌW#�������D{��������������fj���!�����������������������������˗b.������;j���������������%� p������������������������������ހ�ҡm7������!Ag��������������������Q�
�%z���������������������������ބ�תvB�����Gm��������������������������~�$PmkN(�1�������������������������ވ�۵�K����x���������������������������I�=isrqqoniH"�<����������������������ލ���U!�����������������������������ʀ6�)Xu�vuttrqpnldA�*p�������������������ސ�_����������������������������_�Bo�yxxwutsqomki]:�T����������������ސ�t�� �������������������������Ȉ=�$Fjyz{||}}||{{zxwvtrpnlifd\@"�8~������������ސ���������������������������ۤn7�1Trxy{|}~��~~}|zxwuspnlifc`^YD)� BFJNRVZ^bfimqux|���������������0��������~L�����߽cd`\XT0���/840,($i�
���m�ff���������r*/37;?CGKOSW[_cgkorvz~�����������gIJMP\�����������ko������?ea]YCs���6951-($ "μ
���p�fh���������^ +048<@DHLPTX\`dhlptx|��������I /963.L���������:�������Bfb^Z.����>:61-)%!x�fq��s�fi���������J
,049=AEIMQUY]afimquy}�������� N���������B
B�������R�������Mc_SJ����D:62.*&U��^��u�`k���������=-159=BFJNRVZ^bfkorwz~��������$4����������߲IZ�����tj�������&!d`4�����K:73/+"@��a�K��y�`l���������:-26:>BGKOSW[_cglptx|�����������}Z6v��������٠&,�����<�������YQ0�����9<840(0���
�=��{�`m���������9.26;?CGKOTX\`dhlquy}��������������m$����������Sn���:�������1 ������"
=84-#���\
�9���`o���������7/37;?DHLPTY]aeimrvz~���������������� ���������ՇA��@��������0������=9.�����7����`q���������6/37<@DHMQUY]afjnrvz�����������������+s��������ݭ5cT��������WW�������>,-����N�4����`l���������5/48<@EIMQUZ^bfkosw{������������������5j����������vi�������������� #&C����� �%����fZ���������3048BGKOk����������������������������������������������������������Yd��ۅ�1����c���������v159=BFJIx_1! =q��������������������������������������������������v\�|"
(����g��a��������-49=AEIM0#8P\c_L7 @������������������������������������������������M{�"
I��ˀ��g��=���������%48<@DHLPTX\`dhlptvR-�����������������������������������������������p���:
j�������������[��37;?CGKOSW[_cgkorvz~b)&��������������������������������������������������[e ����������������Z�%26:>BFJNRVZ^bfimqux|�i9��������������������������������������������������|���y
���f�������������Y^159=AEIMQUY]`dhlosucK/:��������������������������������������������������������Cυ�6�����Q��\����+48<@DHLPTW[_cdL4#'D|����������������������������������������������������������7 (�����������[����37;?CGJNRVZE%B��������������������������������������������������������������^��������������Z���)26:=AEIMQC}���������������������������������������������������������������,
���r�����������R��f048<@DHJ#^����������������������������������������������������������������e�Ʌ�<������K�����W�(37;?BE~����������������������������������������������������������ߪ3N
$���
�����[���������269=A���������������������������������������������������������������I! �Z����������^���������9048<,>������������������������������������������������������������������
���w�������^t��������)369
�סaW`ju����������������������������������������������������������uυ�B�����$����V���15$'�"
:�������������������������������������������������ƑP
F��� �����������U��L03"(CHLOSVVHS����������������������������������������˨����W.
�����������`������<�$25-8@CGJMPTN%������������������������������������������A� Յ�@�����]���������037:>AEHKM0j������������������������������������������)'$"&,.*'#
R��������������S��`+259:730,)%" ����������M������Q�037:=A<8��������������������������������������������-,B?<851.*'$
م�2�����[ ���������N,158;4E��������������������������������������������+C@=:630,)%"
r����������������O�/36+R��������������������������������������������@CA>;841.*'$ υ�s������#����P���C,1)I�������������������������������������������߽ EB?<962/,(%"
e��� �����������N�.
���������������������������������������������p6B@<:630-*&# Dž��������+ށ���K8]��b-C������������������������ݻ������������
C@=:741.+($!X��/��������ށ�M����" ���������������������ߥB~���������ڀ!3>;852/,)&"����������5��߁��U�Er;,7:<8S��������������������Fh������������b2630-*'$ c��=��������܁ހ�I�+25781�������������������ߗdF,DWR�������������B..+($!Ѕ���������>�܁�I���-025������������������������߹�C���������������('%"���M���������܁�F�.&-0&}����喀���������������������pF���������������߀
3��������� ւ�H��ޱ
*-
#����5I����������������������{����������������n���A�������s��D�u����Q%�����������������������F���������������q���������
�C�;���"
+:�����������������������u��������������5
8څ���������E��A���467
������������������������wC������������6ņ�p����������?�
�%/135������������������������@/�����������"����������Ն�=m *,.02R�����������������������L637������b��F�������W��1"')+-/#&:IQZcksy����������O310%a���j�
Cن�������������C&(*,. �1^q��m10/-+(��2Ԇ�������������1&')+,./.-*&#! �"-,*(&%#
%͆��2�������*Ն��!#&()+,-/001233�43) &+*)'%$" Ç�h�������\���,
!%&()*+--./�0�1�0//.,,+*)'&$#!��������������D$%&')**+,,--�.�-,++*)('%$#!
3ʇ���������
����`"#$%&'())�*)(('&%$#!
Pև��3���������� !"#$%&&�'&&%$$#"!�q���D�������Ȉ��
!"##�$##"!! ���W�������*Ј�� �!
���l�������:ֈ�
�(��(���������Eֈ��R����
Xщ���������;҉��!���-�����������1Ή��o�
�ڊ�s�������(Ɋ��9��
� Xˊ��b������� ����
��,����S�����������X� ���ڋ��<�������y���b�
�%�Ԍ���������KҌ��t��A�����������%���Ն"�
]����N��������ۍ�ۘWyϏ��#�������2����O�������i՝��|�����������(�������Oɗ��Q�����������~
�������6����*�������I���ږ6�������7����{�������&�׃��a�������y��ܧG�������
^,��������������������������������;(������� l�¿�`!�������
F����������T�������%z���������������H�������O������������¿�������=
�������/����������������¿��������t9�������%L��������������������������������F�������+n���$����������������������������������Q&�������G���)��������������������������������������{Y/�������*i�����-����������������������¿��������������}wrm[5�������G����������1��������������������������������������ztohc]WD+�������7j��������������5�������������ޥY[������¿��������������|vqke^YRLE?2! ������,U����������������������������������y!�(^�������������������~wrlg`ZTNGA:4--+!������-Lr�����������������������
��������K�
�d�¿�������������ytnhb\VPHB;5�-,#
����!�+Gj������������������������������������w�$PmkN(�'i��������������{vojd^WQJD=5/�-,%���"�K����������������������������������ߚE�=isrqqoniH"�.k�����������|wqke_YRLE?71�-'���!\�������������������������������������}4�)Xu�vuttrqpnldA�P�������~yrmg`ZTMGA92�-��m����������������������������������]�Bo�yxxwutsqomki]:�8d����ytnha\UNHA:4�-��#��������������������������������ą<�$Fjyz{||}}||{{zxwvtrpnlifd\@"�"Jh~{uohc]VPHB;4�-�����������������������������ՠk6�1Trxy{|}~��~~}|zxwuspnlifc`^YD)�
;Sed^WPJC<5.�-������������������������{G�=^rtwxz|~���������~}{yxusqnlifc`]ZVSF-� *=KKD=5/�-#�����������������ղ�gA�$;Shlortwy{}�������������~|zxvsqnkheb_[XUQNJE5�
(00�-'�����������ӥ�`<�+@V_bfilortwy|~��������� ������}{xvspmjgda^ZWSPLHE8s�&�-+�����������^�
"0BPSWZ^aehknqtwy|~����������$��������}{xurplifc`\YUQNJG;�!20,#�$�-�/$����������".:?BFJNQUY\`cfjmpsvy|����������+������������}{xurokhea^ZWSOLH=�W(1-)%!��-�e0����������)-048<@DHKOSWZ^aehlorvx|~���������������������hP9$"BFJNRVZ^bfimqux|���������������0��������~IwEJOU]�cd`\XT0���.840,($c�
�-�fA���������`*/37;?CGKOSW[_cgkorvz~�����������gIJMP\�����������k]gJOUZiz?ea]YCa���3951-($ "��
�-�fB���������O +048<@DHLPTX\`dhlptx|��������I /963.L���������:}JOUZ_<fb^Z.����8:61-)%!o�a�-�fB���������>
,049=AEIMQUY]afimquy}�������� L��������w?
B�������RrPOUZ_iyMc_SA����=:62.*&OҸ�-�`C���������3-159=BFJNRVZ^bfkorwz~��������$2����vpkf`m��CZ�����tU_OUZ_d�&!d`4}����B:73/+"=��[��-�`D���������1-26:>BGKOSW[_cglptx|�����������}Z6k�kf`[VWz}&,�����9kOUZ_dufYQ.�����4<840(-�Ӳ
��-�`D���������0.26;?CGKOTX\`dhlquy}��������������m$��f`[VQLU�In���:qOUZ_dj�1 ������"
=84-"���V
��-�`E���������./37;?DHLPTY]aeimrvz~���������������� �`[VQLFCkjA��@vOUZ_dj�.g������=9.��ͭ��-�`G���������,/37<@DHMQUY]afjnrvz�����������������+e�\VQLFA,*����H�
�-�`C���������+/48<@EIMQUZ^bfkosw{������������������5^VQLFA<79k[R_UZ_djvy������� #&=���ȗ ��-�f6���������)048BGKOj��������Ŀ������������{upkf`[VQLFA<715:@EJOUZ_djoty������cEN���,�-
����cJ��������T159=BFJIw^1! =m��ƾ�����������{upkf`[VQLFA<715:@EJOUZ_djoty�����VJ�h"
�-��g��0��������n-49=AEIM0#8P\c_L7 ?������������{upkf`[VQLFA<715:@EJOUZ_djoty������<`��"
�-)���g�����������%48<@DHLPTX\`dhlptvR-����������{upkf`[VQLFA<715:@EJOUZ_djoty�������aW���3
�-"���g�����������37;?CGKOSW[_cgkorvz~b)&��������{upkf`[VQLFA<715:@EJOUZ_djoty�������������R[ �-������br��������26:>BFJNRVZ^bfimqux|�i8������{upkf`[VQLFA<715:@EJOUZ_djoty������������êj���o
#�-������bF��������>159=AEIMQUY]`dhlosucK/:t�������{upkf`[VQLFA<715:@EJOUZ_djoty������������������>*�-�����c$~�������f+48<@DHLPTW[_cdL4#'Bt�����������{upkf`[VQLFA<715:@EJOUZ_djoty���������������Ӛ2 �-+�����cz~�������37;?CGJNRVZE%A����¶����������{upkf`[VQLFA<715:@EJOUZ_djoty��������������ͨ�-"�������`cz~������26:=AEIMQCz����Ŀ������������{upkf`[VQLFA<715:@EJOUZ_djoty���������������'
�-������Y=vz~�����?048<@DHJ#]������Ŀ������������{upkf`[VQLFA<715:@EJOUZ_djoty��������������W�)�-�����arvz~����b(37;?BE}�������Ŀ������������{upkf`[VQLFA<715:@EJOUZ_djoty���������+B
�-,�����[nrvz~����269=A���������Ŀ������������{upkf`[VQLFA<715:@EJOUZ_djoty����������~< ��-#�������^Unrvy|���"048<,>���������Ŀ������������{upkf`[VQLFA<715:@EJOUZ_djoty�������������
�-�������^.jnquy|�P)369
�Ԟ_V]fp����·����������{upkf`[VQLFA<715:@EJOUZ_djoty������������`*�-
�����_ehmqtwz~y15$'�"
:w�����������{upkf`[VQLFA<715:@EJOUZ_djoty���������p@
�-+������\Jehlosvy|)03"(CHLOSVVHO������������{upkf`[VQLFA<715:@EJOUZ_djotwiknqmZ@#
�-�������E"`dgknqtwT$25-8@CGJMPTN%�ú�����������{upkf`[VQLFA<715:@EJOUZ_djoy.� +�-
�����]Z_cfjlors 037:>AEHKM0e�ȿ������������{upkf`[VQLFA<715:@EJOUZ_djpS)'$"&,.*'#
�-)�������Z9Z^aehknq0+259:730,)%" �-������\VY\`cehk^037:=A<7����Ŀ������������{upkf`[VQLFA<715:@EJOUZ_dk ,B?<851.*'$
,�-
�����[KTWZ^adgj$,158;4D�����Ŀ������������{upkf`[VQLFA<715:@EJOUZ_g C@=:630,)%"
�-'�������X*NQVY\^adT/36+Q������Ŀ������������{upkf`[VQLFA<715:@EJOUZe*CA>;841.*'$ *�-������Y HLPSVY\^a,1)H�������Ŀ������������{upkf`[VQLFA<715:@EJOUZ] EB?<962/,(%"
�-,������V*GKNQTWY\H.
��������Ŀ������������{upkf`[VQLFA<715:@EJOU\?6B@<:630-*&# (�-������W
BEHLNQTVY\��`-A���������������{upkf`[VQYXUI715:@EJOUa
C@=:741.+($!�- ������T*?BFHLNQSB��" �ź�����������{upkf`[bZ/D715:@EJOU]D3>;852/,)&"'�-!������:=ACFHLNP�Eq;,7:<8PĿ������������{upkfk`38:15:@EJOUZ`c82630-*'$ �-�������R&7;=ABEHJE+25780�Ŀ������������{upkqaG0$DW.>15:@EJOUZ_dlb)..+($!*�-$�������Q
257:=?BDG*-025��Ŀ������������{upkfcb_^VK-G15:@EJOUZ_djovY'%"�-�������O /247:\_djoty�}�-'������+�-= *,.02H���������ysmg`[VQLFA<76!63Iejotya�-��������-1')+-/##0:=BGJMOU`b[PHA<::%310%0CUW:�
,�-��������-,
&(*,. � 4��������������������������������������������������������������������������������������������������������������������b���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������q��������������������������������������������������������������������������������������������������������������������T��������������������������������������������������������������������������������������������������������������������1��������������������������������������������������������������������������������������������������������������������
�������������������������������������������������������������������������������������������������������������������t�������������������������������������������������������������������������������������������������������������������T���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������P�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������w�����������������������������������������������������������������������������������������������������������������8����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������J�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Pp�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������7��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������]��������������������������������������������������������������������������������������������������������#����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������:������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������k����������������������������������������������������������������������������������������������������m����������������������������������������������������������������������������������������������������|�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
����������������������������������������������������������������������������������������������s�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.������������������������������������������������������������������������������������������h����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.b�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������
������������������������������������������������������������������������������������K<�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PC�����������������������������������������������������������������������������b����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
������������������������������������������������������������������������������������������������������������������������������������������(������������������������������������������������������������������8����������������������������������������������������������������*������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������W�������������������������������������������������������%����������������������������������������������������g��������������������������������������������������(������������������������������������������������?��������������������������������������������w������������������������������������������!��������������������������������������?j�������������������������������������������������������������������E����������������������������E������������������������������������������������
�����������������n}������������>_��������A���nuapplet-2.3.0/src/000077500000000000000000000000001137423255200141375ustar00rootroot00000000000000nuapplet-2.3.0/src/auth_dlg.cpp000066400000000000000000000061601137423255200164350ustar00rootroot00000000000000/*
** Copyright 2004-2007 - INL
** Written by Eric Leblond
** Vincent Deffontaines
** INL http://www.inl.fr/
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, version 2 of the License.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include
#include
#include "systray.h"
#include "auth_dlg.h"
#include "auth_dlg.moc"
/*
* See http://doc.trolltech.com/4.3/mainwindows-application.html
*/
NuAppAuthDialog::NuAppAuthDialog(QObject* _parent) : QDialog(NULL, Qt::Dialog),
parent(_parent)
{
createDialog();
resize(250, 10);
}
void NuAppAuthDialog::createDialog()
{
settings.sync();
// Logo
QPixmap logo(":/images/bouclier.png");
QLabel* logo_label = new QLabel();
logo_label->setPixmap(logo);
logo_label->setAlignment(Qt::AlignHCenter);
// Username
QLabel *usernameLabel = new QLabel( tr("Username"));
username = new NuEditBox();
username->setFocus();
QObject::connect(username, SIGNAL(returnPressed()), this, SLOT(get_user_infos()));
QObject::connect(username, SIGNAL(escapePressed()), this, SLOT(reject()));
// Password
QLabel *passwordLabel = new QLabel( tr("Password"));
password = new NuEditBox();
password->setEchoMode(QLineEdit::Password);
QObject::connect(password, SIGNAL(returnPressed()), this, SLOT(get_user_infos()));
QObject::connect(password, SIGNAL(escapePressed()), this, SLOT(reject()));
QVBoxLayout *v_layout = new QVBoxLayout();
v_layout->addWidget(usernameLabel);
v_layout->addWidget(username);
v_layout->addWidget(passwordLabel);
v_layout->addWidget(password);
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal);
v_layout->addWidget(buttonBox);
QHBoxLayout *h_layout = new QHBoxLayout(this);
h_layout->addWidget(logo_label);
h_layout->addLayout(v_layout);
QObject::connect(this, SIGNAL(start_auth(QString, QString)), parent, SLOT(start_auth(QString, QString)));
QObject::connect(buttonBox, SIGNAL(accepted()), this, SLOT(get_user_infos()));
QObject::connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
QIcon icon = QIcon(":/images/nuapplet2-running.png");
setWindowIcon(icon);
setWindowTitle(tr("Authentication"));
}
void NuAppAuthDialog::get_user_infos()
{
settings.setValue("username", username->text());
settings.sync();
emit start_auth(username->text(), password->text());
password->setText("");
accept();
}
void NuAppAuthDialog::show()
{
if(settings.value("username").toString() != "")
password->setFocus();
username->setText(settings.value("username").toString());
QDialog::show();
}
nuapplet-2.3.0/src/auth_dlg.h000066400000000000000000000024761137423255200161100ustar00rootroot00000000000000/*
** Copyright 2004-2007 - INL
** Written by Eric Leblond
** Vincent Deffontaines
** INL http://www.inl.fr/
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, version 2 of the License.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __AUTH_DLG__
#define __AUTH_DLG__
#include
#include
#include
#include "editbox.h"
class NuAppAuthDialog : public QDialog {
Q_OBJECT
QSettings settings;
NuEditBox *username;
NuEditBox *password;
QObject *parent;
public:
NuAppAuthDialog (QObject* _parent);
public slots:
void get_user_infos();
void show();
signals:
void start_auth(QString username, QString password);
private:
void createDialog();
};
#endif /* __AUTH_DLG__ */
nuapplet-2.3.0/src/editbox.cpp000066400000000000000000000020741137423255200163040ustar00rootroot00000000000000/*
** Copyright 2004-2007 - INL
** Written by Eric Leblond
** Vincent Deffontaines
** INL http://www.inl.fr/
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, version 2 of the License.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include
#include "editbox.h"
#include "editbox.moc"
void NuEditBox::keyPressEvent(QKeyEvent* key)
{
if(key->key() == Qt::Key_Escape)
{
emit escapePressed();
key->accept();
return;
}
QLineEdit::keyPressEvent(key);
}
nuapplet-2.3.0/src/editbox.h000066400000000000000000000020521137423255200157450ustar00rootroot00000000000000/*
** Copyright 2004-2007 - INL
** Written by Eric Leblond
** Vincent Deffontaines
** INL http://www.inl.fr/
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, version 2 of the License.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __EDITBOX__
#define __EDITBOX__
#include
class NuEditBox : public QLineEdit {
Q_OBJECT
signals:
void escapePressed();
protected:
void keyPressEvent(QKeyEvent* key);
};
#endif /* __EDITBOX__ */
nuapplet-2.3.0/src/logs.cpp000066400000000000000000000027161137423255200156150ustar00rootroot00000000000000/*
** Copyright 2004-2009 - INL
** Written by Pierre Chifflier
** INL http://www.inl.fr/
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, version 2 of the License.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include
#include "logs.h"
#include "logs.moc"
#include
extern "C" {
extern int debug_level;
}
NuLogsWindow::NuLogsWindow(QWidget *parent)
{
ui = new Ui::LogsWindow();
ui->setupUi(this);
}
void NuLogsWindow::addLine(int area, int level, char *format, va_list args)
{
QString msg, text;
QDateTime date = QDateTime::currentDateTime();
const char *dateformat = "yyyy-MM-dd hh:mm:ss.zzz";
msg.vsprintf(format, args);
text = QString("[%1] %2").arg(date.toString(dateformat)).arg(msg);
ui->edit->append( text );
ui->edit->textCursor().movePosition(QTextCursor::End);
ui->edit->ensureCursorVisible();
}
void NuLogsWindow(int level)
{
debug_level = level;
}
nuapplet-2.3.0/src/logs.h000066400000000000000000000021651137423255200152600ustar00rootroot00000000000000/*
** Copyright 2004-2009 - INL
** Written by Pierre Chifflier
** INL http://www.inl.fr/
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, version 2 of the License.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __LOGS__
#define __LOGS__
#include
namespace Ui {
class LogsWindow;
};
class NuLogsWindow : public QWidget {
Q_OBJECT
public:
NuLogsWindow(QWidget *parent = NULL);
void addLine(int area, int level, char *format, va_list args);
void setLogLevel(int level);
protected:
Ui::LogsWindow *ui;
};
#endif /* __LOGS__ */
nuapplet-2.3.0/src/main.cpp000066400000000000000000000055021137423255200155710ustar00rootroot00000000000000/*
** Copyright 2004-2010 - EdenWall Technologies
** Written by Eric Leblond
** Vincent Deffontaines
** Pierre Chifflier
** INL http://www.inl.fr/
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, version 2 of the License.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include
#include
#include /* setrlimit() */
#include
#include
#include
#include
#include
//#include
//#include
extern int debug_areas;
extern int debug_level;
extern int log_engine;
#include "systray.h"
using std::cout;
nuclient_error_t *err = NULL;
void init_library()
{
struct rlimit core_limit;
/* Avoid creation of core file which may contains username and password */
if (getrlimit(RLIMIT_CORE, &core_limit) == 0)
{
core_limit.rlim_cur = 0;
setrlimit(RLIMIT_CORE, &core_limit);
}
/* Prepare error structure */
if (nu_client_error_init(&err) != 0)
{
fprintf(stderr, "Cannot init error structure!\n");
exit(EXIT_FAILURE);
}
/* XXX default values: log to stdout, normal level */
log_engine = 1;
debug_level = 3;
debug_areas = 31;
/* global libnuclient init */
if (!nu_client_global_init(err))
{
fprintf(stderr, "Unable to initiate nuclient library!\n");
#if (defined(NUCLIENT_VERSION_MAJOR) && NUCLIENT_VERSION_MAJOR>=4)
fprintf(stderr, "Problem: %s\n", nu_client_strerror(NULL, err));
#else
fprintf(stderr, "Problem: %s\n", nu_client_strerror(err));
#endif
exit(EXIT_FAILURE);
}
#if (defined(NUCLIENT_VERSION_MAJOR) && NUCLIENT_VERSION_MAJOR>=4)
nu_client_init_config();
nu_client_init_plugins();
#endif
}
int main(int argc, char **argv)
{
init_library();
/* needed by iconv */
setlocale(LC_ALL, "");
QApplication app(argc, argv);
app.setOrganizationName("EdenWall");
app.setApplicationName("NuApplet");
app.setQuitOnLastWindowClosed(false);
/* load translation */
QString locale = QLocale::system().name();
QTranslator translator;
translator.load(QString(":/lang/nuapplet2_") + locale);
//printf("Loading translation: nuapplet2_%s.qm\n", locale.toStdString().c_str());
app.installTranslator(&translator);
NuAppSystray nuapplet2;
return app.exec();
}
nuapplet-2.3.0/src/preferences.cpp000066400000000000000000000147321137423255200171530ustar00rootroot00000000000000/*
** Copyright 2004-2009 - INL
** Written by Eric Leblond
** Vincent Deffontaines
** Pierre Chifflier
** INL http://www.inl.fr/
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, version 2 of the License.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include
#include "preferences.h"
#include "preferences.moc"
#include "editbox.h"
#include
NuAppPreferences::NuAppPreferences() : QDialog(NULL, Qt::Dialog)
{
ui = new Ui::AppPreferences();
ui->setupUi(this);
load_preferences();
createDialog();
}
void NuAppPreferences::createDialog()
{
// Set initial values *before* connecting slots, or you will go in
// an infinite loop
setCertificateButtons();
connect(ui->cert_verify_remote, SIGNAL(stateChanged(int)), this, SLOT(switch_verify_remote(int)));
connect(ui->cert_use_client_cert, SIGNAL(stateChanged(int)), this, SLOT(switch_use_client_cert(int)));
connect(ui->ca_open, SIGNAL(pressed()), this, SLOT(popup_open_ca()));
connect(ui->cert_open, SIGNAL(pressed()), this, SLOT(popup_open_cert()));
connect(ui->key_open, SIGNAL(pressed()), this, SLOT(popup_open_key()));
connect(ui->crl_open, SIGNAL(pressed()), this, SLOT(popup_open_crl()));
connect(this, SIGNAL(accepted()), this, SLOT(save_preferences()));
QIcon icon = QIcon(":/images/nuapplet2-running.png");
setWindowIcon(icon);
}
void NuAppPreferences::setCertificateButtons()
{
bool cert_verify_remote = (ui->cert_verify_remote->checkState() == Qt::Checked);
if (cert_verify_remote) {
ui->ca_label->setEnabled(true);
ui->ca_path->setEnabled(true);
ui->ca_open->setEnabled(true);
ui->crl_label->setEnabled(true);
ui->crl_path->setEnabled(true);
ui->crl_open->setEnabled(true);
ui->cert_check_fqdn->setEnabled(true);
} else {
ui->ca_label->setEnabled(false);
ui->ca_path->setEnabled(false);
ui->ca_open->setEnabled(false);
ui->crl_label->setEnabled(false);
ui->crl_path->setEnabled(false);
ui->crl_open->setEnabled(false);
ui->cert_check_fqdn->setEnabled(false);
}
bool cert_use_client_cert = (ui->cert_use_client_cert->checkState() == Qt::Checked);
if (cert_use_client_cert) {
ui->cert_label->setEnabled(true);
ui->cert_path->setEnabled(true);
ui->cert_open->setEnabled(true);
ui->key_label->setEnabled(true);
ui->key_path->setEnabled(true);
ui->key_open->setEnabled(true);
ui->cert_auth_by_cert->setEnabled(true);
} else {
ui->cert_label->setEnabled(false);
ui->cert_path->setEnabled(false);
ui->cert_open->setEnabled(false);
ui->key_label->setEnabled(false);
ui->key_path->setEnabled(false);
ui->key_open->setEnabled(false);
ui->cert_auth_by_cert->setEnabled(false);
}
}
void NuAppPreferences::show()
{
load_preferences();
setCertificateButtons();
QDialog::show();
}
void NuAppPreferences::load_preferences()
{
QString str;
settings.sync();
ui->hostname->setText(settings.value("hostname").toString());
ui->port->setText(settings.value("port").toString());
bool cert_verify_remote = settings.value("cert_verify_remote").toBool();
ui->cert_verify_remote->setCheckState(cert_verify_remote ? Qt::Checked : Qt::Unchecked);
bool cert_check_fqdn = settings.value("cert_check_fqdn").toBool();
ui->cert_check_fqdn->setCheckState(cert_check_fqdn ? Qt::Checked : Qt::Unchecked);
bool cert_use_client_cert = settings.value("cert_use_client_cert").toBool();
ui->cert_use_client_cert->setCheckState(cert_use_client_cert ? Qt::Checked : Qt::Unchecked);
bool cert_auth_by_cert = settings.value("cert_auth_by_cert").toBool();
ui->cert_auth_by_cert->setCheckState(cert_auth_by_cert ? Qt::Checked : Qt::Unchecked);
str = settings.value("ca").toString();
ui->ca_path->setText(str);
str = settings.value("cert").toString();
ui->cert_path->setText(str);
str = settings.value("key").toString();
ui->key_path->setText(str);
str = settings.value("crl").toString();
ui->crl_path->setText(str);
settings.sync();
}
void NuAppPreferences::switch_use_client_cert(int state)
{
setCertificateButtons();
}
void NuAppPreferences::switch_verify_remote(int state)
{
setCertificateButtons();
}
void NuAppPreferences::save_preferences()
{
settings.setValue("hostname", ui->hostname->text());
settings.setValue("port", ui->port->text());
bool cert_verify_remote = (ui->cert_verify_remote->checkState() == Qt::Checked);
settings.setValue("cert_verify_remote", cert_verify_remote);
bool cert_check_fqdn = (ui->cert_check_fqdn->checkState() == Qt::Checked);
settings.setValue("cert_check_fqdn", cert_check_fqdn);
settings.setValue("ca", ui->ca_path->text());
settings.setValue("crl", ui->crl_path->text());
settings.setValue("cert_use_client_cert", ui->cert_use_client_cert->checkState() == Qt::Checked);
settings.setValue("key", ui->key_path->text());
settings.setValue("cert", ui->cert_path->text());
settings.setValue("cert_auth_by_cert", ui->cert_auth_by_cert->checkState() == Qt::Checked);
settings.sync();
//accept();
}
void NuAppPreferences::popup_open_key()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Select key"),
QDir::homePath(),
tr("Key (*.key *.pem);;All Files (*)"));
if (fileName.length() > 0) {
ui->key_path->setText(fileName);
}
}
void NuAppPreferences::popup_open_cert()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Select certificate"),
QDir::homePath(),
tr("Certficate (*.crt *.pem);;All Files (*)"));
if (fileName.length() > 0) {
ui->cert_path->setText(fileName);
}
}
void NuAppPreferences::popup_open_ca()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Select CA certificate"),
QDir::homePath(),
tr("Certificate (*.crt *.pem);;All Files (*)"));
if (fileName.length() > 0) {
ui->ca_path->setText(fileName);
}
}
void NuAppPreferences::popup_open_crl()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Select CRL"),
QDir::homePath(),
tr("CRL (*.crl *.pem);;All Files (*)"));
if (fileName.length() > 0) {
ui->crl_path->setText(fileName);
}
}
nuapplet-2.3.0/src/preferences.h000066400000000000000000000027701137423255200166170ustar00rootroot00000000000000/*
** Copyright 2004-2009 - INL
** Written by Eric Leblond
** Vincent Deffontaines
** Pierre Chifflier
** INL http://www.inl.fr/
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, version 2 of the License.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __PREFERENCES__
#define __PREFERENCES__
#include
#include "editbox.h"
namespace Ui {
class AppPreferences;
};
class NuAppPreferences : public QDialog {
Q_OBJECT
public:
NuAppPreferences ();
public slots:
void save_preferences();
void show();
void switch_use_client_cert(int state);
void switch_verify_remote(int state);
void popup_open_key();
void popup_open_cert();
void popup_open_ca();
void popup_open_crl();
protected:
Ui::AppPreferences *ui;
private:
void load_preferences();
void createDialog();
void setCertificateButtons();
QSettings settings;
};
#endif /* __PREFERENCES__ */
nuapplet-2.3.0/src/systray.cpp000066400000000000000000000236431137423255200163710ustar00rootroot00000000000000/*
** Copyright 2004-2010 - EdenWall Technologies
** Written by Eric Leblond
** Vincent Deffontaines
** Pierre Chifflier
** INL http://www.inl.fr/
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, version 2 of the License.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include
#include
#include "systray.h"
#include "systray.moc"
#include "auth_dlg.h"
#include "preferences.h"
#include "logs.h"
extern "C" {
typedef void (*log_callback_t)(int area, int priority, char *format, va_list args);
extern log_callback_t nubase_log_set_callback(log_callback_t cb);
extern int log_engine;
extern int debug_level;
}
static NuLogsWindow *_logs_window = NULL;
static void log_callback(int area, int priority, char *format, va_list args)
{
if (_logs_window != NULL) {
_logs_window->addLine(area, priority, format, args);
}
}
/*
* See http://doc.trolltech.com/4.3/mainwindows-application.html
*/
NuAppSystray::NuAppSystray() : timer(this)
{
QCoreApplication* app = QCoreApplication::instance();
parse_cmdline_options(app->argc(), app->argv());
logs_dlg = new NuLogsWindow();
_logs_window = logs_dlg;
pref_dlg = new NuAppPreferences();
auth_dlg = new NuAppAuthDialog(this);
QObject::connect(this, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(onClick(QSystemTrayIcon::ActivationReason)));
QObject::connect(this, SIGNAL(showAuthDlg()), auth_dlg, SLOT(show()));
// Create actions
// connect
connectAct = new QAction(tr("&Connect"), this);
connectAct->setStatusTip(tr("Connect to the authentication server"));
connect(connectAct, SIGNAL(triggered()), auth_dlg, SLOT(show()));
// disconnect
disconnectAct = new QAction(tr("&Disconnect"), this);
disconnectAct->setStatusTip(tr("Disconnect from the authentication server"));
connect(disconnectAct, SIGNAL(triggered()), this, SLOT(stop_auth()));
// preferences
preferencesAct = new QAction(tr("&Preferences"), this);
preferencesAct->setStatusTip(tr("Preferences"));
connect(preferencesAct, SIGNAL(triggered()), pref_dlg, SLOT(show()));
// logs
logsAct = new QAction(tr("&Log messages"), this);
logsAct->setStatusTip(tr("Show log messages"));
connect(logsAct, SIGNAL(triggered()), logs_dlg, SLOT(show()));
// about
aboutAct = new QAction(tr("&About"), this);
aboutAct->setStatusTip(tr("About"));
connect(aboutAct, SIGNAL(triggered()), this, SLOT(popup_about()));
// exit
exitAct = new QAction(tr("&Quit"), this);
exitAct->setStatusTip(tr("Quit application"));
connect(exitAct, SIGNAL(triggered()), qApp, SLOT(quit()));
createTrayIcon();
settings.sync();
// Display the authentication dialog
auth_dlg->show();
nubase_log_set_callback(log_callback);
log_engine = 3;
debug_level = 9;
#ifdef HAVE_DEFAULT_TLS_FUNC
// Load defaults settings
if(strcmp(settings.value("hostname").toString().toStdString().c_str(), "") == 0)
{
printf("Loading default params\n");
//suppress_fqdn_verif |= nu_client_default_suppress_fqdn_verif();
const char* default_cafile = nu_client_default_tls_ca();
if (default_cafile)
settings.setValue("ca", default_cafile);
const char* default_cert = nu_client_default_tls_cert();
if (default_cert)
settings.setValue("cert", default_cert);
const char* default_key = nu_client_default_tls_key();
if (default_key)
settings.setValue("key", default_key);
const char* default_crl = nu_client_default_tls_crl();
if (default_crl)
settings.setValue("crl", default_crl);
const int default_suppress_fqdn = nu_client_default_suppress_fqdn_verif();
if (default_suppress_fqdn)
settings.setValue("suppress_fqdn", default_suppress_fqdn);
if(default_cafile || default_cert || default_key)
settings.setValue("use_certificate", true);
}
#endif
#ifdef HAVE_DEFAULT_HOSTNAME_FUNC
// Load defaults settings
if(strcmp(settings.value("hostname").toString().toStdString().c_str(), "") == 0)
{
const char* nuauth_ip = nu_client_default_hostname();
if(nuauth_ip != NULL)
settings.setValue("hostname", nuauth_ip);
const char* nuauth_port = nu_client_default_port();
if(nuauth_port != NULL)
settings.setValue("port", nuauth_port);
else
settings.setValue("port", DEFAULT_NUAUTH_PORT);
}
#endif
#if defined(HAVE_DEFAULT_HOSTNAME_FUNC) || !defined(HAVE_NUAUTH_IP)
if(strcmp(settings.value("hostname").toString().toStdString().c_str(), "") == 0)
pref_dlg->show();
#endif
}
NuAppSystray::~NuAppSystray()
{
stop_auth();
}
void NuAppSystray::createTrayIcon()
{
if ( ! QSystemTrayIcon::isSystemTrayAvailable() ) {
fprintf(stderr, "Your environnement doesn't support a system tray icon...\n");
fprintf(stderr, "Exiting ...\n");
exit(EXIT_FAILURE);
}
trayIconMenu = new QMenu(/*this*/);
trayIconMenu->addAction(connectAct);
connectAct->setEnabled(true);
trayIconMenu->addAction(disconnectAct);
disconnectAct->setEnabled(false);
trayIconMenu->addAction(logsAct);
trayIconMenu->addAction(preferencesAct);
trayIconMenu->addSeparator();
trayIconMenu->addAction(aboutAct);
trayIconMenu->addSeparator();
trayIconMenu->addAction(exitAct);
QIcon icon = QIcon(":/images/nuapplet2-stopped.png");
setIcon(icon);
show();
setContextMenu(trayIconMenu);
}
void NuAppSystray::usage(void)
{
fprintf(stderr, "usage: nuapplet2 [options...]\n");
fprintf(stderr, "\n");
fprintf(stderr, "Options:\n");
fprintf(stderr, " -H HOSTNAME: nuauth host address\n");
fprintf(stderr, " -p PORT: nuauth port number\n");
fprintf(stderr, " -U USERNAME: set default username\n");
fprintf(stderr, "\n");
fprintf(stderr, "Certificate options:\n");
fprintf(stderr, " -C CERTFILE: certificate filename\n");
fprintf(stderr, " -A AUTHFILE: authority certificate filename\n");
fprintf(stderr, " -K KEYFILE: key filename\n");
fprintf(stderr, " -R CRLFILE: crl filename\n");
fprintf(stderr, " -N: suppress error if server FQDN does not match certificate CN.\n");
fprintf(stderr, "\n");
exit(EXIT_FAILURE);
}
void NuAppSystray::parse_cmdline_options(int argc, char **argv)
{
/* Parse all command line arguments */
int ch;
int opterr = 0;
while ((ch = getopt(argc, argv, "H:p:U:C:K:A:R:N")) != -1) {
switch (ch) {
case 'H':
settings.setValue("hostname", QString(optarg));
break;
case 'p':
settings.setValue("port", QString(optarg));
break;
case 'U':
settings.setValue("username", QString(optarg));
break;
case 'C':
settings.setValue("cert", QString(optarg));
break;
case 'K':
settings.setValue("key", QString(optarg));
break;
case 'A':
settings.setValue("ca", QString(optarg));
break;
case 'R':
settings.setValue("crl", QString(optarg));
break;
case 'N':
settings.setValue("suppress_fqdn", 1);
default:
usage();
}
}
}
void NuAppSystray::onClick(QSystemTrayIcon::ActivationReason reason)
{
if( reason == QSystemTrayIcon::Trigger && !timer.isRunning())
{
// Display the authentication dialog
emit showAuthDlg();
}
}
void NuAppSystray::start_auth(QString username, QString password)
{
if(!timer.isRunning())
{
timer.setUserInfos(username, password);
timer.start();
showMessage(tr("Warning"), tr("Nuapplet isn't totally strict about TLS verifications.\nRun it from a terminal to see any warning that could happen."), Warning, 5000);
}
}
void NuAppSystray::stop_auth()
{
// Close Nuauth connection
timer.askStop();
timer.wait(ULONG_MAX);
}
void NuAppSystray::tray_set_connected()
{
disconnectAct->setEnabled(true);
connectAct->setEnabled(false);
//printf("Icon running\n");
QIcon icon = QIcon(":/images/nuapplet2-running.png");
setIcon(icon);
}
void NuAppSystray::tray_set_trying()
{
QIcon icon = QIcon(":/images/nuapplet2-trying.png");
setIcon(icon);
//printf("Icon trying\n");
}
void NuAppSystray::tray_set_stopped()
{
// Enable / disable menu entries
disconnectAct->setEnabled(false);
connectAct->setEnabled(true);
// Change the icon in the systray
QIcon icon = QIcon(":/images/nuapplet2-stopped.png");
setIcon(icon);
//printf("Icon stopped\n");
}
/**
* Stupid wrapper
*/
const char *wrap_error_message(const char *str)
{
if (strncmp(str,"A TLS packet with unexpected length was received.",49) == 0) {
return("Access denied");
}
if (strncmp(str,"Success.",9) == 0) {
return NULL;
}
return(str);
}
void NuAppSystray::tray_report_error()
{
QString msg = tr("Unable to connect.\nCheck your username and your password are correct.");
QString str_err = "";
if(wrap_error_message(timer.GetNuclientError()))
{
str_err = QString("\nError is: ") + QString(wrap_error_message(timer.GetNuclientError()));
}
logs_dlg->show();
QMessageBox::critical(NULL, tr("Error"), msg + str_err, QMessageBox::Ok);
}
void NuAppSystray::tray_report_connected()
{
showMessage(tr("Connection succeeded"), tr("You are now connected to ") + settings.value("hostname").toString(), Information,3000 );
printf("Connnected\n");
}
void NuAppSystray::tray_report_disconnected()
{
showMessage(tr("Warning"), tr("You have been disconnected\nReason: ") + QString(timer.GetNuclientError()), Warning,5000 );
printf("Disconnected\n");
}
void NuAppSystray::popup_about()
{
QMessageBox msgBox;
msgBox.setWindowTitle(tr("About"));
msgBox.setIcon(QMessageBox::Information);
msgBox.setTextFormat(Qt::RichText);
msgBox.setText(tr("NuApplet %1 edited by EdenWall Technologies.
Distributed under the GPL
").arg(PROJECT_VERSION_STR) + "
");
msgBox.exec();
}
nuapplet-2.3.0/src/systray.h000066400000000000000000000037501137423255200160330ustar00rootroot00000000000000/*
** Copyright 2004-2007 - INL
** Written by Eric Leblond
** Vincent Deffontaines
** INL http://www.inl.fr/
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, version 2 of the License.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __SYSTRAY__
#define __SYSTRAY__
#include
#include
#include
#include
#include "auth_dlg.h"
#include "logs.h"
#include "preferences.h"
#include "thread_session.h"
class NuAppSystray : public QSystemTrayIcon {
Q_OBJECT
public:
NuAppSystray();
~NuAppSystray();
public slots:
void onClick(QSystemTrayIcon::ActivationReason reason);
void start_auth(QString _username, QString _password);
void stop_auth();
void popup_about();
void tray_set_connected();
void tray_set_stopped();
void tray_set_trying();
void tray_report_error();
void tray_report_connected();
void tray_report_disconnected();
signals:
void showAuthDlg();
private:
void createActions();
void createTrayIcon();
void parse_cmdline_options(int argc, char **argv);
void usage();
// Authentication related
QSettings settings;
QMenu *trayIconMenu;
// GUI related
QAction *exitAct;
QAction *preferencesAct;
QAction *logsAct;
QAction *connectAct;
QAction *disconnectAct;
QAction *aboutAct;
ThreadCheckConn timer;
NuAppAuthDialog* auth_dlg;
NuLogsWindow* logs_dlg;
NuAppPreferences* pref_dlg;
};
#endif /* __SYSTRAY__ */
nuapplet-2.3.0/src/thread_session.cpp000066400000000000000000000135661137423255200176700ustar00rootroot00000000000000/*
** Copyright 2004-2007 - INL
** Written by Eric Leblond
** Vincent Deffontaines
** INL http://www.inl.fr/
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, version 2 of the License.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "thread_session.h"
#include "thread_session.moc"
#include
extern nuclient_error_t *err; /* defined in main.cpp */
ThreadCheckConn::ThreadCheckConn(QObject* _parent) : QThread(_parent)
{
session = NULL;
username = "";
password = "";
connect(this, SIGNAL(tray_set_connected()), parent(), SLOT(tray_set_connected()));
connect(this, SIGNAL(tray_set_trying()), parent(), SLOT(tray_set_trying()));
connect(this, SIGNAL(tray_set_stopped()), parent(), SLOT(tray_set_stopped()));
connect(this, SIGNAL(tray_report_error()), parent(), SLOT(tray_report_error()));
connect(this, SIGNAL(tray_report_connected()), parent(), SLOT(tray_report_connected()));
connect(this, SIGNAL(tray_report_disconnected()), parent(), SLOT(tray_report_disconnected()));
}
void ThreadCheckConn::askStop()
{
loop_mutex.lock();
loop_continue = false;
loop_mutex.unlock();
}
void ThreadCheckConn::setUserInfos(QString _username, QString _password)
{
username = _username;
password = _password;
// We don't know if those username/passwords are valid
// so if the authentication fails, there is no need to
// trying reauthenticating to Nuauth in a loop
loop_continue = false;
report_errors = true;;
}
void ThreadCheckConn::run()
{
startAuth();
while(1)
{
loop_mutex.lock();
if(!loop_continue)
{
loop_mutex.unlock();
break;
}
loop_mutex.unlock();
if(session)
{
// A session is opened, so check we are still connected to Nuauth
if(nu_client_check(session, err) == -1)
{
nu_client_delete(session);
session = NULL;
if(report_errors)
{
emit tray_set_trying();
emit tray_report_disconnected();
report_errors = false;
}
}
}
else
{
// We have been disconnected
// Restart the authentication using the last username and password used
startAuth();
}
}
stopAuth();
}
void ThreadCheckConn::startAuth()
{
// Stop automatic reauthentication after the connection has been lost
session = nu_client_new(username.toStdString().c_str(),
password.toStdString().c_str(),
1,
err);
nu_client_set_client_info(session, "nuapplet", "3.0");
QSettings settings;
settings.sync();
// Configure certificate related parameters
int cert_verify_remote = settings.value("cert_verify_remote").toBool();
int cert_use_client_cert = settings.value("cert_use_client_cert").toBool();
QString str_ca = settings.value("ca").toString();
QString str_key = settings.value("key").toString();
QString str_cert = settings.value("cert").toString();
QString str_crl = settings.value("crl").toString();
int cert_check_fqdn = settings.value("cert_check_fqdn").toBool();
if (cert_verify_remote) {
if (!nu_client_set_ca(session, (const char*)str_ca.toAscii(), err)) {
goto label_exit_connection;
}
if (cert_use_client_cert) {
if (str_key.length() > 0 &&
!nu_client_set_key(session, (const char*)str_key.toAscii(), (const char*)str_cert.toAscii(), err)) {
goto label_exit_connection;
}
}
if (str_crl.length()>0 && !nu_client_set_crlfile(session, (const char*)str_crl.toAscii(), err)) {
goto label_exit_connection;
}
if (!cert_check_fqdn)
nu_client_set_fqdn_suppress_verif(session, 1);
} else { // we don't check server certificate
nu_client_set_cert_suppress_verif(session, 1);
}
// Connect to NuAuth
char* chr_hostname;
char* chr_port;
#if defined(HAVE_DEFAULT_NUAUTH_IP) && !defined(HAVE_DEFAULT_HOSTNAME_FUNC)
if(strcmp(settings.value("hostname").toString().toStdString().c_str(), "")==0 && session->default_hostname)
{
printf("setting hostname\n");
settings.setValue("hostname", session->default_hostname);
}
if(strcmp(settings.value("port").toString().toStdString().c_str(), "")==0 && session->default_port)
settings.setValue("port", session->default_port);
settings.sync();
#endif // #if defined(HAVE_DEFAULT_NUAUTH_IP) && !defined(HAVE_DEFAULT_HOSTNAME_FUNC)
chr_hostname = strdup(settings.value("hostname").toString().toStdString().c_str());
chr_port = strdup(settings.value("port").toString().toStdString().c_str());
if(!nu_client_connect(session, chr_hostname, chr_port, err))
{
fprintf(stderr,"%s\n", nu_client_strerror(session, err));
if(report_errors)
emit tray_report_error();
free(chr_hostname);
free(chr_port);
if(session)
nu_client_delete(session);
session = NULL;
return;
}
free(chr_hostname);
free(chr_port);
emit tray_set_connected();
emit tray_report_connected();
loop_continue = true;
report_errors = true;
return;
label_exit_connection:
printf("Initialization error: %s\n", nu_client_strerror(session, err));
// If the timer is active, this connection is done automatically
// so we don't display the error message
if(report_errors)
emit tray_report_error();
if(session)
nu_client_delete(session);
session = NULL;
return;
}
void ThreadCheckConn::stopAuth()
{
if(session)
nu_client_delete(session);
session = NULL;
emit tray_set_stopped();
}
const char* ThreadCheckConn::GetNuclientError()
{
#if (defined(NUCLIENT_VERSION_MAJOR) && NUCLIENT_VERSION_MAJOR>=4)
return nu_client_strerror(session, err);
#else
return nu_client_strerror(err);
#endif
}
nuapplet-2.3.0/src/thread_session.h000066400000000000000000000030061137423255200173210ustar00rootroot00000000000000/*
** Copyright 2004-2007 - INL
** Written by Eric Leblond
** Vincent Deffontaines
** INL http://www.inl.fr/
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, version 2 of the License.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __THREAD_CHECK__
#define __THREAD_CHECK__
#include
#include
class ThreadCheckConn : public QThread {
Q_OBJECT
nuauth_session_t *session;
QString username, password;
QMutex loop_mutex;
bool loop_continue;
bool report_errors;
signals:
void tray_set_connected();
void tray_set_stopped();
void tray_set_trying();
void tray_report_error();
void tray_report_connected();
void tray_report_disconnected();
protected:
void run();
void stopAuth();
public:
ThreadCheckConn(QObject* _parent);
void setUserInfos(QString _username, QString _password);
void startAuth();
void askStop();
const char* GetNuclientError();
};
#endif /* __THREAD_CHECK__ */
nuapplet-2.3.0/ui/000077500000000000000000000000001137423255200137655ustar00rootroot00000000000000nuapplet-2.3.0/ui/logs.ui000066400000000000000000000011421137423255200152660ustar00rootroot00000000000000
LogsWindow
0
0
400
300
NuApplet logs
-
true
nuapplet-2.3.0/ui/prefs.ui000066400000000000000000000223101137423255200154410ustar00rootroot00000000000000
AppPreferences
0
0
492
403
NuApplet Preferences
-
1
Authentication
-
Authentication Server
-
Hostname
-
-
Port
-
-
Qt::Vertical
20
40
Certificates
-
Certificate Authority
-
Trusted Certificate Authority
-
Verify remote server certificate
true
-
Check remote FQDN
true
-
0
0
-
...
-
-
...
-
Certificate Revocation List (CRL)
-
Client Certificate
-
Send a client certificate
-
Client Certificate File
-
Client Key File
-
Authenticate using certificate
-
0
0
-
...
-
...
-
Advanced
-
Advanced options
-
Load plugins
true
-
Qt::Vertical
20
40
-
QDialogButtonBox::Cancel|QDialogButtonBox::Ok
buttonBox
accepted()
AppPreferences
accept()
384
373
367
-16
buttonBox
rejected()
AppPreferences
reject()
452
376
410
-15