pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = gsignond.pc
-dist_sysconf_DATA = gsignond.conf
+sysconf_DATA = gsignond.conf
SUBDIRS = src test docs
git push ; \
popd > /dev/null && \
rm -rf $(PACKAGE)-$(VERSION)
+
+lcov: check
+ @rm -rf lcov-report
+ @lcov -c --directory src/ --output-file lcov.output
+ @genhtml lcov.output --output-directory lcov-report
+ @rm lcov.output
+ @echo "Coverage report is in file://$(abs_srcdir)/lcov-report/index.html"
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
build_triplet = @build@
host_triplet = @host@
subdir = .
-DIST_COMMON = README $(am__configure_deps) $(dist_sysconf_DATA) \
+DIST_COMMON = README $(am__configure_deps) \
$(srcdir)/${PACKAGE_NAME}-uninstalled.pc.in \
$(srcdir)/${PACKAGE_NAME}.pc.in $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
- $(top_srcdir)/configure \
+ $(srcdir)/gsignond.conf.in $(top_srcdir)/configure \
$(top_srcdir)/src/daemon/dbus/services/com.google.code.AccountsSSO.gSingleSignOn.service.in \
$(top_srcdir)/test/daemon/services/com.google.code.AccountsSSO.gSingleSignOn.service.in \
AUTHORS COPYING.LIB ChangeLog INSTALL NEWS build-aux/ar-lib \
- build-aux/config.guess build-aux/config.sub build-aux/depcomp \
- build-aux/install-sh build-aux/ltmain.sh build-aux/missing
+ build-aux/compile build-aux/config.guess build-aux/config.sub \
+ build-aux/depcomp build-aux/install-sh build-aux/ltmain.sh \
+ build-aux/missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_gnu_make.m4 \
$(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = ${PACKAGE_NAME}.pc ${PACKAGE_NAME}-uninstalled.pc \
+ gsignond.conf \
src/daemon/dbus/services/com.google.code.AccountsSSO.gSingleSignOn.service \
test/daemon/services/com.google.code.AccountsSSO.gSingleSignOn.service
CONFIG_CLEAN_VPATH_FILES =
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
-am__installdirs = "$(DESTDIR)$(sysconfdir)" \
- "$(DESTDIR)$(pkgconfigdir)"
-DATA = $(dist_sysconf_DATA) $(pkgconfig_DATA)
+am__installdirs = "$(DESTDIR)$(pkgconfigdir)" \
+ "$(DESTDIR)$(sysconfdir)"
+DATA = $(pkgconfig_DATA) $(sysconf_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = gsignond.pc
-dist_sysconf_DATA = gsignond.conf
+sysconf_DATA = gsignond.conf
SUBDIRS = src test docs
EXTRA_DIST = dists tools
all: config.h
cd $(top_builddir) && $(SHELL) ./config.status $@
${PACKAGE_NAME}-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/${PACKAGE_NAME}-uninstalled.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $@
+gsignond.conf: $(top_builddir)/config.status $(srcdir)/gsignond.conf.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
src/daemon/dbus/services/com.google.code.AccountsSSO.gSingleSignOn.service: $(top_builddir)/config.status $(top_srcdir)/src/daemon/dbus/services/com.google.code.AccountsSSO.gSingleSignOn.service.in
cd $(top_builddir) && $(SHELL) ./config.status $@
test/daemon/services/com.google.code.AccountsSSO.gSingleSignOn.service: $(top_builddir)/config.status $(top_srcdir)/test/daemon/services/com.google.code.AccountsSSO.gSingleSignOn.service.in
distclean-libtool:
-rm -f libtool config.lt
-install-dist_sysconfDATA: $(dist_sysconf_DATA)
+install-pkgconfigDATA: $(pkgconfig_DATA)
@$(NORMAL_INSTALL)
- @list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(sysconfdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(sysconfdir)" || exit 1; \
- fi; \
+ test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
done
-uninstall-dist_sysconfDATA:
+uninstall-pkgconfigDATA:
@$(NORMAL_UNINSTALL)
- @list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(sysconfdir)'; $(am__uninstall_files_from_dir)
-install-pkgconfigDATA: $(pkgconfig_DATA)
+ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
+install-sysconfDATA: $(sysconf_DATA)
@$(NORMAL_INSTALL)
- @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
- fi; \
+ test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)"
+ @list='$(sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \
done
-uninstall-pkgconfigDATA:
+uninstall-sysconfDATA:
@$(NORMAL_UNINSTALL)
- @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+ @list='$(sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
+ dir='$(DESTDIR)$(sysconfdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
*.zip*) \
unzip $(distdir).zip ;;\
esac
- chmod -R a-w $(distdir); chmod u+w $(distdir)
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
all-am: Makefile $(DATA) config.h
installdirs: installdirs-recursive
installdirs-am:
- for dir in "$(DESTDIR)$(sysconfdir)" "$(DESTDIR)$(pkgconfigdir)"; do \
+ for dir in "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(sysconfdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
install-dvi-am:
-install-exec-am: install-dist_sysconfDATA
+install-exec-am: install-sysconfDATA
install-html: install-html-recursive
ps-am:
-uninstall-am: uninstall-dist_sysconfDATA uninstall-pkgconfigDATA
+uninstall-am: uninstall-pkgconfigDATA uninstall-sysconfDATA
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
ctags-recursive install-am install-strip tags-recursive
distclean-hdr distclean-libtool distclean-tags distcleancheck \
distdir distuninstallcheck dvi dvi-am html html-am info \
info-am install install-am install-data install-data-am \
- install-dist_sysconfDATA install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-pkgconfigDATA install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- installdirs-am maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
- ps ps-am tags tags-recursive uninstall uninstall-am \
- uninstall-dist_sysconfDATA uninstall-pkgconfigDATA
+ install-dvi install-dvi-am install-exec install-exec-am \
+ install-html install-html-am install-info install-info-am \
+ install-man install-pdf install-pdf-am install-pkgconfigDATA \
+ install-ps install-ps-am install-strip install-sysconfDATA \
+ installcheck installcheck-am installdirs installdirs-am \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-recursive uninstall uninstall-am \
+ uninstall-pkgconfigDATA uninstall-sysconfDATA
valgrind:
popd > /dev/null && \
rm -rf $(PACKAGE)-$(VERSION)
+lcov: check
+ @rm -rf lcov-report
+ @lcov -c --directory src/ --output-file lcov.output
+ @genhtml lcov.output --output-directory lcov-report
+ @rm lcov.output
+ @echo "Coverage report is in file://$(abs_srcdir)/lcov-report/index.html"
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
-# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.3 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
+[m4_warning([this file was generated for autoconf 2.68.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])
[am__api_version='1.11'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.11.6], [],
+m4_if([$1], [1.11.3], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.6])dnl
+[AM_AUTOMAKE_VERSION([1.11.3])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# Wrapper for Microsoft lib.exe
me=ar-lib
-scriptversion=2012-03-01.08; # UTC
+scriptversion=2012-01-30.22; # UTC
# Copyright (C) 2010, 2012 Free Software Foundation, Inc.
# Written by Peter Rosin <peda@lysator.liu.se>.
delete=
extract=
list=
-quick=
replace=
-index=
create=
while test -n "$action"
d*) delete=yes ;;
x*) extract=yes ;;
t*) list=yes ;;
- q*) quick=yes ;;
r*) replace=yes ;;
- s*) index=yes ;;
- S*) ;; # the index is always updated implicitly
c*) create=yes ;;
u*) ;; # TODO: don't ignore the update modifier
v*) ;; # TODO: don't ignore the verbose modifier
action=${action#?}
done
-case $delete$extract$list$quick$replace,$index in
- yes,* | ,yes)
+case $delete$extract$list$replace in
+ yes)
;;
yesyes*)
func_error "more than one action specified"
done
fi
-elif test -n "$quick$replace"; then
+elif test -n "$replace"; then
if test ! -f "$orig_archive"; then
if test -z "$create"; then
echo "$me: creating $orig_archive"
--- /dev/null
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# 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; either version 2, or (at your option)
+# any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" "" $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN*)
+ file_conv=cygwin
+ ;;
+ *)
+ file_conv=wine
+ ;;
+ esac
+ fi
+ case $file_conv/,$2, in
+ *,$file_conv,*)
+ ;;
+ mingw/*)
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+ ;;
+ cygwin/*)
+ file=`cygpath -m "$file" || echo "$file"`
+ ;;
+ wine/*)
+ file=`winepath -w "$file" || echo "$file"`
+ ;;
+ esac
+ ;;
+ esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+ func_file_conv "$1"
+ if test -z "$lib_path"; then
+ lib_path=$file
+ else
+ lib_path="$lib_path;$file"
+ fi
+ linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+ lib=$1
+ found=no
+ save_IFS=$IFS
+ IFS=';'
+ for dir in $lib_path $LIB
+ do
+ IFS=$save_IFS
+ if $shared && test -f "$dir/$lib.dll.lib"; then
+ found=yes
+ lib=$dir/$lib.dll.lib
+ break
+ fi
+ if test -f "$dir/$lib.lib"; then
+ found=yes
+ lib=$dir/$lib.lib
+ break
+ fi
+ if test -f "$dir/lib$lib.a"; then
+ found=yes
+ lib=$dir/lib$lib.a
+ break
+ fi
+ done
+ IFS=$save_IFS
+
+ if test "$found" != yes; then
+ lib=$lib.lib
+ fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+ # Assume a capable shell
+ lib_path=
+ shared=:
+ linker_opts=
+ for arg
+ do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ eat=1
+ case $2 in
+ *.o | *.[oO][bB][jJ])
+ func_file_conv "$2"
+ set x "$@" -Fo"$file"
+ shift
+ ;;
+ *)
+ func_file_conv "$2"
+ set x "$@" -Fe"$file"
+ shift
+ ;;
+ esac
+ ;;
+ -I)
+ eat=1
+ func_file_conv "$2" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -I*)
+ func_file_conv "${1#-I}" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -l)
+ eat=1
+ func_cl_dashl "$2"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -l*)
+ func_cl_dashl "${1#-l}"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -L)
+ eat=1
+ func_cl_dashL "$2"
+ ;;
+ -L*)
+ func_cl_dashL "${1#-L}"
+ ;;
+ -static)
+ shared=false
+ ;;
+ -Wl,*)
+ arg=${1#-Wl,}
+ save_ifs="$IFS"; IFS=','
+ for flag in $arg; do
+ IFS="$save_ifs"
+ linker_opts="$linker_opts $flag"
+ done
+ IFS="$save_ifs"
+ ;;
+ -Xlinker)
+ eat=1
+ linker_opts="$linker_opts $2"
+ ;;
+ -*)
+ set x "$@" "$1"
+ shift
+ ;;
+ *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+ func_file_conv "$1"
+ set x "$@" -Tp"$file"
+ shift
+ ;;
+ *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+ func_file_conv "$1" mingw
+ set x "$@" "$file"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+ done
+ if test -n "$linker_opts"; then
+ linker_opts="-link$linker_opts"
+ fi
+ exec "$@" $linker_opts
+ exit 1
+}
+
+eat=
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+ func_cl_wrapper "$@" # Doesn't return...
+ ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ # So we strip '-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+ # If no '-o' option was seen then we might have been invoked from a
+ # pattern rule where we don't need one. That is ok -- this is a
+ # normal compilation that the losing compiler can handle. If no
+ # '.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file. Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+ test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011, 2012 Free Software Foundation, Inc.
-timestamp='2012-04-18'
+timestamp='2012-02-10'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
- -lynx*178)
- os=-lynxos178
- ;;
- -lynx*5)
- os=-lynxos5
- ;;
-lynx*)
os=-lynxos
;;
c4x-* | tic4x-*)
os=-coff
;;
- hexagon-*)
- os=-elf
- ;;
tic54x-*)
os=-coff
;;
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
-scriptversion=2012-03-27.16; # UTC
+scriptversion=2011-12-04.11; # UTC
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
+# 2011 Free Software Foundation, Inc.
# 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
case $1 in
'')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
Environment variables:
depmode Dependency tracking mode.
- source Source file read by 'PROGRAMS ARGS'.
- object Object file output by 'PROGRAMS ARGS'.
+ source Source file read by `PROGRAMS ARGS'.
+ object Object file output by `PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputting dependencies.
;;
esac
-# A tabulation character.
-tab=' '
-# A newline character.
-nl='
-'
-
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
depmode=msvc7
fi
-if test "$depmode" = xlc; then
- # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
- gccflag=-qmakedep=gcc,-MF
- depmode=gcc
-fi
-
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the "deleted header file" problem.
+## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
- tr ' ' "$nl" < "$tmpdepfile" |
-## Some versions of gcc put a space before the ':'. On the theory
+ tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well. hp depmode also adds that space, but also prefixes the VPATH
## to the object. Take care to not repeat it in the output.
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
- # the IRIX cc adds comments like '#:fec' to the end of the
+ # the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
- tr ' ' "$nl" < "$tmpdepfile" \
+ tr ' ' '
+' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
- tr "$nl" ' ' >> "$depfile"
+ tr '
+' ' ' >> "$depfile"
echo >> "$depfile"
# The second pass generates a dummy entry for each header file.
- tr ' ' "$nl" < "$tmpdepfile" \
+ tr ' ' '
+' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> "$depfile"
else
rm -f "$tmpdepfile"
;;
-xlc)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
- # current directory. Also, the AIX compiler puts '$object:' at the
+ # current directory. Also, the AIX compiler puts `$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
- # Each line is of the form 'foo.o: dependent.h'.
+ # Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
- # '$object: dependent.h' and one to simply 'dependent.h:'.
+ # `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
;;
icc)
- # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
- # However on
- # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+ # Intel's C compiler understands `-MD -MF file'. However on
+ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# ICC 7.0 will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
- # which is wrong. We want
+ # which is wrong. We want:
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
# ICC 7.1 will output
# foo.o: sub/foo.c sub/foo.h
- # and will wrap long lines using '\':
+ # and will wrap long lines using \ :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
- # tcc 0.9.26 (FIXME still under development at the moment of writing)
- # will emit a similar output, but also prepend the continuation lines
- # with horizontal tabulation characters.
+
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
exit $stat
fi
rm -f "$depfile"
- # Each line is of the form 'foo.o: dependent.h',
- # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
+ # Each line is of the form `foo.o: dependent.h',
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
- # '$object: dependent.h' and one to simply 'dependent.h:'.
- sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \
- < "$tmpdepfile" > "$depfile"
- sed '
- s/[ '"$tab"'][ '"$tab"']*/ /g
- s/^ *//
- s/ *\\*$//
- s/^[^:]*: *//
- /^$/d
- /:$/d
- s/$/ :/
- ' < "$tmpdepfile" >> "$depfile"
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+ sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
- # Add 'dependent.h:' lines.
+ # Add `dependent.h:' lines.
sed -ne '2,${
s/^ *//
s/ \\*$//
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
- # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+ # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
- # dependencies in 'foo.d' instead, so we check for that too.
+ # dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
p
}' | $cygpath_u | sort -u | sed -n '
s/ /\\ /g
-s/\(.*\)/'"$tab"'\1 \\/p
+s/\(.*\)/ \1 \\/p
s/.\(.*\) \\/\1:/
H
$ {
- s/.*/'"$tab"'/
+ s/.*/ /
G
p
}' >> "$depfile"
shift
fi
- # Remove '-o $object'.
+ # Remove `-o $object'.
IFS=" "
for arg
do
done
test -z "$dashmflag" && dashmflag=-M
- # Require at least two characters before searching for ':'
+ # Require at least two characters before searching for `:'
# in the target name. This is to cope with DOS-style filenames:
- # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
+ # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
"$@" $dashmflag |
- sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
+ sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
- tr ' ' "$nl" < "$tmpdepfile" | \
+ tr ' ' '
+' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
# makedepend may prepend the VPATH from the source file name to the object.
# No need to regex-escape $object, excess matching of '.' is harmless.
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
- sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
+ sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
shift
fi
- # Remove '-o $object'.
+ # Remove `-o $object'.
IFS=" "
for arg
do
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
- sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
- echo "$tab" >> "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
+ echo " " >> "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
# compiler: $LTCC
# compiler flags: $LTCFLAGS
# linker: $LD (gnu? $with_gnu_ld)
-# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu2
+# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu1
# automake: $automake_version
# autoconf: $autoconf_version
#
PROGRAM=libtool
PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1ubuntu2"
+VERSION="2.4.2 Debian-2.4.2-1ubuntu1"
TIMESTAMP=""
package_revision=1.3337
--- /dev/null
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2013-07-13.22; # UTC
+
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+#
+# 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; either version 2, or (at your option)
+# any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+# Make unconditional expansion of undefined variables an error. This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+ echo "$0: $*" >&2
+ print_usage >&2
+ exit 2
+}
+
+print_usage ()
+{
+ cat <<END
+Usage:
+ test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
+ [--expect-failure={yes|no}] [--color-tests={yes|no}]
+ [--enable-hard-errors={yes|no}] [--]
+ TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+END
+}
+
+test_name= # Used for reporting.
+log_file= # Where to save the output of the test script.
+trs_file= # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+ case $1 in
+ --help) print_usage; exit $?;;
+ --version) echo "test-driver $scriptversion"; exit $?;;
+ --test-name) test_name=$2; shift;;
+ --log-file) log_file=$2; shift;;
+ --trs-file) trs_file=$2; shift;;
+ --color-tests) color_tests=$2; shift;;
+ --expect-failure) expect_failure=$2; shift;;
+ --enable-hard-errors) enable_hard_errors=$2; shift;;
+ --) shift; break;;
+ -*) usage_error "invalid option: '$1'";;
+ *) break;;
+ esac
+ shift
+done
+
+missing_opts=
+test x"$test_name" = x && missing_opts="$missing_opts --test-name"
+test x"$log_file" = x && missing_opts="$missing_opts --log-file"
+test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
+if test x"$missing_opts" != x; then
+ usage_error "the following mandatory options are missing:$missing_opts"
+fi
+
+if test $# -eq 0; then
+ usage_error "missing argument"
+fi
+
+if test $color_tests = yes; then
+ # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+ red='\e[0;31m' # Red.
+ grn='\e[0;32m' # Green.
+ lgn='\e[1;32m' # Light green.
+ blu='\e[1;34m' # Blue.
+ mgn='\e[0;35m' # Magenta.
+ std='\e[m' # No color.
+else
+ red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here.
+"$@" >$log_file 2>&1
+estatus=$?
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+ estatus=1
+fi
+
+case $estatus:$expect_failure in
+ 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+ 0:*) col=$grn res=PASS recheck=no gcopy=no;;
+ 77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
+ 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
+ *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
+ *:*) col=$red res=FAIL recheck=yes gcopy=yes;;
+esac
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
extensionsdir = $(pkglibdir)/extensions
-pluginsdir = $(pkglibdir)/plugins
+pluginloadersdir = $(pkglibdir)/pluginloaders
+gpluginsdir = $(pkglibdir)/gplugins
/* config.h.in. Generated from configure.ac by autoheader. */
+/* Base path for user specific storage directories */
+#undef BASE_STORAGE_DIR
+
/* Enable ACL triggers */
#undef ENABLE_DB_ACL_TRIGGERS
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gsignond 0.0.3.
+# Generated by GNU Autoconf 2.68 for gsignond 1.0.1.
#
#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+# Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
else
exitcode=1; echo positional parameters were not saved.
fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
+test x\$exitcode = x0 || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
if test "x$CONFIG_SHELL" != x; then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ # Preserve -v and -x to the replacement shell.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+ esac
+ exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
fi
if test x$as_have_required = xno; then :
} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
+ # In both cases, we have to default to `cp -p'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
as_mkdir_p=false
fi
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Identity of this package.
PACKAGE_NAME='gsignond'
PACKAGE_TARNAME='gsignond'
-PACKAGE_VERSION='0.0.3'
-PACKAGE_STRING='gsignond 0.0.3'
+PACKAGE_VERSION='1.0.1'
+PACKAGE_STRING='gsignond 1.0.1'
PACKAGE_BUGREPORT=''
PACKAGE_URL='http://01.org/gsso'
GTK_DOC_BUILD_HTML_TRUE
ENABLE_GTK_DOC_FALSE
ENABLE_GTK_DOC_TRUE
+HAVE_GTK_DOC_FALSE
+HAVE_GTK_DOC_TRUE
GTKDOC_DEPS_LIBS
GTKDOC_DEPS_CFLAGS
HTML_DIR
GTKDOC_MKPDF
GTKDOC_REBASE
+GTKDOC_CHECK_PATH
GTKDOC_CHECK
DBUS_INTERFACES_DIR
DBUS_SERVICES_DIR
MESSAGE_BUS_TYPE
USE_GTESTDBUS_FALSE
USE_GTESTDBUS_TRUE
+BASE_STORAGE_DIR
+KEYCHAIN_SYSCTX
GTestDBus_LIBS
GTestDBus_CFLAGS
GLIB_MKENUMS
with_gnu_ld
with_sysroot
enable_libtool_lock
+enable_coverage
enable_distcheck
enable_dbus_type
enable_keychain
+enable_storagedir
enable_debug
enable_sql_log
enable_acltriggers
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
+ $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used" >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gsignond 0.0.3 to adapt to many kinds of systems.
+\`configure' configures gsignond 1.0.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gsignond 0.0.3:";;
+ short | recursive ) echo "Configuration of gsignond 1.0.1:";;
esac
cat <<\_ACEOF
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
+ --enable-coverage compile with coverage info
--enable-distcheck build for distcheck target
--enable-dbus-type=dbus-type specify daemon dbus type:
p2p(default): uses peer to peer dbus
--enable-keychain=sysctx
enable keychain access with
system context "sysctx"
+ --enable-storagedir=path
+ enable storage at location "path"
+ instead of default "/var/db"
--enable-debug enable debug features
--enable-sql-log enable sql log feature
--enable-acltriggers enable ACL before delete triggers
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gsignond configure 0.0.3
-generated by GNU Autoconf 2.69
+gsignond configure 1.0.1
+generated by GNU Autoconf 2.68
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
+ $as_test_x conftest$ac_exeext
}; then :
ac_retval=0
else
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gsignond $as_me 0.0.3, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+It was created by gsignond $as_me 1.0.1, which was
+generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_STRIP="strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
test -z "$as_dir" && as_dir=.
for ac_prog in mkdir gmkdir; do
for ac_exec_ext in '' $ac_executable_extensions; do
- as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
'mkdir (GNU coreutils) '* | \
'mkdir (coreutils) '* | \
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_AWK="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
# Define the identity of the package.
PACKAGE='gsignond'
- VERSION='0.0.3'
+ VERSION='1.0.1'
cat >>confdefs.h <<_ACEOF
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-struct stat;
+#include <sys/types.h>
+#include <sys/stat.h>
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_AR="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
for ac_prog in sed gsed; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_SED" || continue
+ { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
# Check for GNU ac_path_SED and select it if it is found.
# Check for GNU $ac_path_SED
case `"$ac_path_SED" --version 2>&1` in
for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
for ac_prog in fgrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_FGREP" || continue
+ { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
# Check for GNU ac_path_FGREP and select it if it is found.
# Check for GNU $ac_path_FGREP
case `"$ac_path_FGREP" --version 2>&1` in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_OBJDUMP="objdump"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_DLLTOOL="dlltool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_AR="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_STRIP="strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_NMEDIT="nmedit"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_LIPO="lipo"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_OTOOL="otool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_OTOOL64="otool64"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_GLIB_MKENUMS="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
+# Check whether --enable-coverage was given.
+if test "${enable_coverage+set}" = set; then :
+ enableval=$enable_coverage;
+fi
+
+if test "x$enable_coverage" = "xyes"; then :
+ CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
+fi
+
# allow fake installations for "distcheck"
# Check whether --enable-distcheck was given.
if test "${enable_distcheck+set}" = set; then :
#define KEYCHAIN_SYSCTX "$enable_keychain"
_ACEOF
+ KEYCHAIN_SYSCTX="#KeychainSystemContext = $enable_keychain"
+
+else
+ KEYCHAIN_SYSCTX="#KeychainSystemContext = \"\""
+
+fi
+
+# Check whether --enable-storagedir was given.
+if test "${enable_storagedir+set}" = set; then :
+ enableval=$enable_storagedir; enable_storagedir=$enableval
+else
+ enable_storagedir="/var/db"
fi
+
+cat >>confdefs.h <<_ACEOF
+#define BASE_STORAGE_DIR "$enable_storagedir"
+_ACEOF
+
+BASE_STORAGE_DIR="#StoragePath = $enable_storagedir"
+
+
# Check whether --enable-debug was given.
if test "${enable_debug+set}" = set; then :
enableval=$enable_debug; enable_debug=yes
- # Extract the first word of "gtkdoc-check", so it can be a program name with args.
+ gtk_doc_requires="gtk-doc >= 1.18"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk-doc" >&5
+$as_echo_n "checking for gtk-doc... " >&6; }
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gtk_doc_requires\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "$gtk_doc_requires") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ have_gtk_doc=yes
+else
+ have_gtk_doc=no
+fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gtk_doc" >&5
+$as_echo "$have_gtk_doc" >&6; }
+
+ if test "$have_gtk_doc" = "no"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+ You will not be able to create source packages with 'make dist'
+ because $gtk_doc_requires is not found." >&5
+$as_echo "$as_me: WARNING:
+ You will not be able to create source packages with 'make dist'
+ because $gtk_doc_requires is not found." >&2;}
+ fi
+
+ # Extract the first word of "gtkdoc-check", so it can be a program name with args.
set dummy gtkdoc-check; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GTKDOC_CHECK+:} false; then :
+if ${ac_cv_prog_GTKDOC_CHECK+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $GTKDOC_CHECK in
+ if test -n "$GTKDOC_CHECK"; then
+ ac_cv_prog_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_GTKDOC_CHECK="gtkdoc-check.test"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+GTKDOC_CHECK=$ac_cv_prog_GTKDOC_CHECK
+if test -n "$GTKDOC_CHECK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
+$as_echo "$GTKDOC_CHECK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ # Extract the first word of "gtkdoc-check", so it can be a program name with args.
+set dummy gtkdoc-check; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GTKDOC_CHECK_PATH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GTKDOC_CHECK_PATH in
[\\/]* | ?:[\\/]*)
- ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path.
+ ac_cv_path_GTKDOC_CHECK_PATH="$GTKDOC_CHECK_PATH" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext"
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_GTKDOC_CHECK_PATH="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
;;
esac
fi
-GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK
-if test -n "$GTKDOC_CHECK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
-$as_echo "$GTKDOC_CHECK" >&6; }
+GTKDOC_CHECK_PATH=$ac_cv_path_GTKDOC_CHECK_PATH
+if test -n "$GTKDOC_CHECK_PATH"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK_PATH" >&5
+$as_echo "$GTKDOC_CHECK_PATH" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_GTKDOC_REBASE="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_GTKDOC_MKPDF="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
- if test x$enable_gtk_doc = xyes; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.18\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.18") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- :
-else
- as_fn_error $? "You need to have gtk-doc >= 1.18 installed to build $PACKAGE_NAME" "$LINENO" 5
-fi
- if test "x$PACKAGE_NAME" != "xglib"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5
+$as_echo_n "checking whether to build gtk-doc documentation... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5
+$as_echo "$enable_gtk_doc" >&6; }
+
+ if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then
+ as_fn_error $? "
+ You must have $gtk_doc_requires installed to build documentation for
+ $PACKAGE_NAME. Please install gtk-doc or disable building the
+ documentation by adding '--disable-gtk-doc' to '$0'." "$LINENO" 5
+ fi
+
+ if test "x$PACKAGE_NAME" != "xglib"; then
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5
$as_echo "yes" >&6; }
fi
- fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5
-$as_echo_n "checking whether to build gtk-doc documentation... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5
-$as_echo "$enable_gtk_doc" >&6; }
-
# Check whether --enable-gtk-doc-html was given.
if test "${enable_gtk_doc_html+set}" = set; then :
enableval=$enable_gtk_doc_html;
fi
+ if test x$have_gtk_doc = xyes; then
+ HAVE_GTK_DOC_TRUE=
+ HAVE_GTK_DOC_FALSE='#'
+else
+ HAVE_GTK_DOC_TRUE='#'
+ HAVE_GTK_DOC_FALSE=
+fi
+
if test x$enable_gtk_doc = xyes; then
ENABLE_GTK_DOC_TRUE=
ENABLE_GTK_DOC_FALSE='#'
GSIGNOND_CFLAGS="$GSIGNOND_CFLAGS -D_POSIX_C_SOURCE=\\\"200809L\\\" -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE"
# Checks for typedefs, structures, and compiler characteristics.
-GSIGNOND_CFLAGS="$GSIGNOND_CFLAGS -Wall -Werror -DG_LOG_DOMAIN=\\\"gsignond\\\""
+GSIGNOND_CFLAGS="$GSIGNOND_CFLAGS -Wall -DG_LOG_DOMAIN=\\\"gsignond\\\""
+if test "x$enable_debug" = "xno" ; then
+ GSIGNOND_CFLAGS="$GSIGNOND_CFLAGS -Werror"
+fi
+
# GSIGNOND_LIBS="$GSIGNOND_LIBS -lduma"
# Checks for library functions.
-ac_config_files="$ac_config_files Makefile ${PACKAGE_NAME}.pc ${PACKAGE_NAME}-uninstalled.pc docs/Makefile src/Makefile src/common/Makefile src/common/db/Makefile src/daemon/Makefile src/daemon/db/Makefile src/daemon/dbus/Makefile src/daemon/dbus/services/com.google.code.AccountsSSO.gSingleSignOn.service src/daemon/plugins/Makefile src/daemon/plugins/plugind/Makefile src/extensions/Makefile src/extensions/test/Makefile src/extensions/tizen/Makefile src/plugins/Makefile src/plugins/password/Makefile src/plugins/ssotest/Makefile src/plugins/digest/Makefile test/Makefile test/common/Makefile test/db/Makefile test/daemon/Makefile test/daemon/gsignond-dbus.conf test/plugins/Makefile"
+ac_config_files="$ac_config_files Makefile ${PACKAGE_NAME}.pc ${PACKAGE_NAME}-uninstalled.pc gsignond.conf docs/Makefile src/Makefile src/common/Makefile src/common/db/Makefile src/daemon/Makefile src/daemon/db/Makefile src/daemon/dbus/Makefile src/daemon/dbus/services/com.google.code.AccountsSSO.gSingleSignOn.service src/daemon/plugins/Makefile src/gplugind/Makefile src/extensions/Makefile src/extensions/test/Makefile src/extensions/tizen/Makefile src/plugins/Makefile src/plugins/password/Makefile src/plugins/ssotest/Makefile src/plugins/digest/Makefile test/Makefile test/common/Makefile test/db/Makefile test/daemon/Makefile test/daemon/gsignond-dbus.conf test/plugins/Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
as_fn_error $? "conditional \"SET_PERMISSIONS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${HAVE_GTK_DOC_TRUE}" && test -z "${HAVE_GTK_DOC_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_GTK_DOC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
+ # In both cases, we have to default to `cp -p'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
as_mkdir_p=false
fi
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gsignond $as_me 0.0.3, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+This file was extended by gsignond $as_me 1.0.1, which was
+generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gsignond config.status 0.0.3
-configured by $0, generated by GNU Autoconf 2.69,
+gsignond config.status 1.0.1
+configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"${PACKAGE_NAME}.pc") CONFIG_FILES="$CONFIG_FILES ${PACKAGE_NAME}.pc" ;;
"${PACKAGE_NAME}-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES ${PACKAGE_NAME}-uninstalled.pc" ;;
+ "gsignond.conf") CONFIG_FILES="$CONFIG_FILES gsignond.conf" ;;
"docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;;
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
"src/common/Makefile") CONFIG_FILES="$CONFIG_FILES src/common/Makefile" ;;
"src/daemon/dbus/Makefile") CONFIG_FILES="$CONFIG_FILES src/daemon/dbus/Makefile" ;;
"src/daemon/dbus/services/com.google.code.AccountsSSO.gSingleSignOn.service") CONFIG_FILES="$CONFIG_FILES src/daemon/dbus/services/com.google.code.AccountsSSO.gSingleSignOn.service" ;;
"src/daemon/plugins/Makefile") CONFIG_FILES="$CONFIG_FILES src/daemon/plugins/Makefile" ;;
- "src/daemon/plugins/plugind/Makefile") CONFIG_FILES="$CONFIG_FILES src/daemon/plugins/plugind/Makefile" ;;
+ "src/gplugind/Makefile") CONFIG_FILES="$CONFIG_FILES src/gplugind/Makefile" ;;
"src/extensions/Makefile") CONFIG_FILES="$CONFIG_FILES src/extensions/Makefile" ;;
"src/extensions/test/Makefile") CONFIG_FILES="$CONFIG_FILES src/extensions/test/Makefile" ;;
"src/extensions/tizen/Makefile") CONFIG_FILES="$CONFIG_FILES src/extensions/tizen/Makefile" ;;
as_fn_error $? "conditional \"SET_PERMISSIONS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${HAVE_GTK_DOC_TRUE}" && test -z "${HAVE_GTK_DOC_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_GTK_DOC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
+ # In both cases, we have to default to `cp -p'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
else
- as_ln_s='cp -pR'
+ as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
as_mkdir_p=false
fi
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gsignond $as_me 0.0.3, which was
-generated by GNU Autoconf 2.69. Invocation command line was
+This file was extended by gsignond $as_me 1.0.1, which was
+generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gsignond config.status 0.0.3
-configured by $0, generated by GNU Autoconf 2.69,
+gsignond config.status 1.0.1
+configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"${PACKAGE_NAME}.pc") CONFIG_FILES="$CONFIG_FILES ${PACKAGE_NAME}.pc" ;;
"${PACKAGE_NAME}-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES ${PACKAGE_NAME}-uninstalled.pc" ;;
+ "gsignond.conf") CONFIG_FILES="$CONFIG_FILES gsignond.conf" ;;
"docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;;
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
"src/common/Makefile") CONFIG_FILES="$CONFIG_FILES src/common/Makefile" ;;
"src/daemon/dbus/Makefile") CONFIG_FILES="$CONFIG_FILES src/daemon/dbus/Makefile" ;;
"src/daemon/dbus/services/com.google.code.AccountsSSO.gSingleSignOn.service") CONFIG_FILES="$CONFIG_FILES src/daemon/dbus/services/com.google.code.AccountsSSO.gSingleSignOn.service" ;;
"src/daemon/plugins/Makefile") CONFIG_FILES="$CONFIG_FILES src/daemon/plugins/Makefile" ;;
- "src/daemon/plugins/plugind/Makefile") CONFIG_FILES="$CONFIG_FILES src/daemon/plugins/plugind/Makefile" ;;
+ "src/gplugind/Makefile") CONFIG_FILES="$CONFIG_FILES src/gplugind/Makefile" ;;
"src/extensions/Makefile") CONFIG_FILES="$CONFIG_FILES src/extensions/Makefile" ;;
"src/extensions/test/Makefile") CONFIG_FILES="$CONFIG_FILES src/extensions/test/Makefile" ;;
"src/extensions/tizen/Makefile") CONFIG_FILES="$CONFIG_FILES src/extensions/tizen/Makefile" ;;
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.60])
-AC_INIT([gsignond], [0.0.3],[],[],[http://01.org/gsso])
+AC_INIT([gsignond], [1.0.1],[],[],[http://01.org/gsso])
AC_CONFIG_SRCDIR([src/daemon/main.c])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_AUX_DIR([build-aux])
AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums)
+AC_ARG_ENABLE([coverage],
+ [AS_HELP_STRING([--enable-coverage], [compile with coverage info])])
+AS_IF([test "x$enable_coverage" = "xyes"],
+ [CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"])
+
# allow fake installations for "distcheck"
AC_ARG_ENABLE(distcheck,
[ --enable-distcheck build for distcheck target],
system context "sysctx"],
[enable_keychain=$enableval])
if test "x$enable_keychain" != "x" ; then
- AC_DEFINE_UNQUOTED(KEYCHAIN_SYSCTX, ["$enable_keychain"], [Keychain system context])
+ AC_DEFINE_UNQUOTED(KEYCHAIN_SYSCTX,
+ ["$enable_keychain"],
+ [Keychain system context])
+ AC_SUBST(KEYCHAIN_SYSCTX,
+ ["#KeychainSystemContext = $enable_keychain"])
+else
+ AC_SUBST(KEYCHAIN_SYSCTX,
+ ["#KeychainSystemContext = \"\""])
fi
+AC_ARG_ENABLE(storagedir,
+ [ --enable-storagedir=path
+ enable storage at location "path"
+ instead of default "/var/db"],
+ [enable_storagedir=$enableval],
+ [enable_storagedir="/var/db"])
+AC_DEFINE_UNQUOTED(BASE_STORAGE_DIR,
+ ["$enable_storagedir"],
+ [Base path for user specific storage directories])
+AC_SUBST(BASE_STORAGE_DIR,
+ ["#StoragePath = $enable_storagedir"])
+
AC_ARG_ENABLE(debug,
[ --enable-debug enable debug features],
[enable_debug=yes], [enable_debug=no])
GSIGNOND_CFLAGS="$GSIGNOND_CFLAGS -D_POSIX_C_SOURCE=\\\"200809L\\\" -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE"
# Checks for typedefs, structures, and compiler characteristics.
-GSIGNOND_CFLAGS="$GSIGNOND_CFLAGS -Wall -Werror -DG_LOG_DOMAIN=\\\"gsignond\\\""
+GSIGNOND_CFLAGS="$GSIGNOND_CFLAGS -Wall -DG_LOG_DOMAIN=\\\"gsignond\\\""
+if test "x$enable_debug" = "xno" ; then
+ GSIGNOND_CFLAGS="$GSIGNOND_CFLAGS -Werror"
+fi
+
# GSIGNOND_LIBS="$GSIGNOND_LIBS -lduma"
# Checks for library functions.
Makefile
${PACKAGE_NAME}.pc
${PACKAGE_NAME}-uninstalled.pc
+gsignond.conf
docs/Makefile
src/Makefile
src/common/Makefile
src/daemon/dbus/Makefile
src/daemon/dbus/services/com.google.code.AccountsSSO.gSingleSignOn.service
src/daemon/plugins/Makefile
-src/daemon/plugins/plugind/Makefile
+src/gplugind/Makefile
src/extensions/Makefile
src/extensions/test/Makefile
src/extensions/tizen/Makefile
+gsignond (1.0.1-4) unstable; urgency=low
+
+ * Update to 1.0.1
+
+ -- Jussi Laako <jussi.laako@linux.intel.com> Fri, 07 Mar 2014 16:22:00 +0200
+
+gsignond (0.0.4-3) unstable; urgency=low
+
+ * Update to 0.0.4
+
+ -- Jussi Laako <jussi.laako@linux.intel.com> Fri, 28 Feb 2014 15:44:00 +0200
+
+gsignond (0.0.3-2) unstable; urgency=low
+
+ * Minor update
+
+ -- Jussi Laako <jussi.laako@linux.intel.com> Wed, 08 Jan 2014 17:37:00 +0200
+
+gsignond (0.0.3-1) unstable; urgency=low
+
+ * Bug fixes in UI interaction
+ * Documentation support
+
+ -- Alexander Kanavin <alex.kanavin@gmail.com> Fri, 23 Aug 2013 15:55:07 +0300
+
gsignond (0.0.2-1) unstable; urgency=low
* Initial Release.
/usr/bin/gsignond
-/usr/bin/gsignond-plugind
/usr/lib/libgsignond-*.so.*
/usr/lib/gsignond/extensions/*.so*
-/usr/lib/gsignond/plugins/*.so*
+/usr/lib/gsignond/gplugins/*.so*
+/usr/lib/gsignond/pluginloaders/gsignond-plugind
/usr/share/dbus-1/services/*SingleSignOn*.service
/etc/gsignond.conf
configure)
ldconfig
groupadd -f -r gsignond
+ chmod 4755 /usr/bin/gsignond
;;
abort-upgrade|abort-remove|abort-deconfigure)
DEB_CONFIGURE_EXTRA_FLAGS += --enable-dbus-type=session
+# Optionally build a debug version
+#DEB_CONFIGURE_EXTRA_FLAGS += --enable-debug
+
# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1
+++ /dev/null
-# define used dbus type [p2p, session, system]
-%define dbus_type session
-# enable debug features such as control environment variables
-# WARNING! do not use for production builds as it will break security
-%define debug_build 0
-
-Name: gsignond
-Summary: GLib based Single Sign-On daemon
-Version: 0.0.2
-Release: 11
-Group: System/Daemons
-License: LGPL-2.1+
-Source: %{name}-%{version}.tar.gz
-Provides: gsignon
-%if %{dbus_type} != "p2p"
-Requires: dbus-1
-%endif
-Requires(post): /sbin/ldconfig
-Requires(postun): /sbin/ldconfig
-BuildRequires: pkgconfig(dbus-1)
-BuildRequires: pkgconfig(gtk-doc)
-BuildRequires: pkgconfig(glib-2.0) >= 2.30
-BuildRequires: pkgconfig(gobject-2.0)
-BuildRequires: pkgconfig(gio-2.0)
-BuildRequires: pkgconfig(gio-unix-2.0)
-BuildRequires: pkgconfig(gmodule-2.0)
-BuildRequires: pkgconfig(sqlite3)
-
-
-%description
-%{summary}.
-
-
-%package devel
-Summary: Development files for %{name}
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-
-%description devel
-%{summary}.
-
-
-%package doc
-Summary: Documentation files for %{name}
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-
-%description doc
-%{summary}.
-
-
-%prep
-%setup -q -n %{name}-%{version}
-#gtkdocize
-# for repository snapshot packages
-#aclocal
-#autoheader
-#libtoolize --copy --force
-#autoconf
-#automake --add-missing --copy
-#autoreconf --install --force
-# fore release source packages
-autoreconf -f -i
-
-
-%build
-%if %{debug_build} == 1
-%configure --enable-dbus-type=%{dbus_type} --enable-debug
-%else
-%configure --enable-dbus-type=%{dbus_type}
-%endif
-
-make %{?_smp_mflags}
-
-
-%install
-rm -rf %{buildroot}
-%make_install
-
-
-%post
-/sbin/ldconfig
-chmod u+s %{_bindir}/%{name}
-groupadd -f -r gsignond
-
-
-%postun -p /sbin/ldconfig
-
-
-%files
-%defattr(-,root,root,-)
-%doc AUTHORS COPYING.LIB INSTALL NEWS README
-%{_bindir}/%{name}
-%{_bindir}/%{name}-plugind
-%{_libdir}/lib%{name}-*.so.*
-%{_libdir}/%{name}/extensions/*.so*
-%{_libdir}/%{name}/plugins/*.so*
-%if %{dbus_type} != "p2p"
-%{_datadir}/dbus-1/services/*SingleSignOn*.service
-%endif
-%exclude %{_libdir}/gsignond/extensions/*.la
-%exclude %{_libdir}/gsignond/plugins/*.la
-%config(noreplace) %{_sysconfdir}/gsignond.conf
-
-
-%files devel
-%defattr(-,root,root,-)
-%{_includedir}/%{name}/*.h
-%{_libdir}/lib%{name}-*.so
-%{_libdir}/lib%{name}-*.la
-%{_libdir}/pkgconfig/%{name}.pc
-%if %{dbus_type} != "p2p"
-%{_datadir}/dbus-1/interfaces/*SSO*.xml
-%endif
-
-
-%files doc
-%defattr(-,root,root,-)
-%{_datadir}/gtk-doc/html/gsignond/*
-
-
-%changelog
-* Mon Jun 24 2013 Imran Zaman <imran.zaman@intel.com>
-- Release 0.0.2 that comprises of bug fixes
-
-* Wed Jun 12 2013 Jussi Laako <jussi.laako@linux.intel.com>
-- Prepare for first release
-
-* Thu Feb 08 2013 Jussi Laako <jussi.laako@linux.intel.com>
-- Initial RPM packaging
-
+++ /dev/null
-* Mon Jun 24 2013 Imran Zaman <imran.zaman@intel.com>
-- Release 0.0.2 that comprises of bug fixes
-
-* Wed Jun 12 2013 Jussi Laako <jussi.laako@linux.intel.com>
-- Prepare for first release
-
-* Thu Feb 08 2013 Jussi Laako <jussi.laako@linux.intel.com>
-- Initial RPM packaging
+++ /dev/null
-# define used dbus type [p2p, session, system]
-%define dbus_type p2p
-# enable debug features such as control environment variables
-# WARNING! do not use for production builds as it will break security
-%define debug_build 0
-
-Name: gsignond
-Summary: GLib based Single Sign-On daemon
-Version: 0.0.2
-Release: 10
-VCS: p/accounts-sso.gsignond/#b31ed6e880b0dcd7635147a57b870c0c137cfce0
-Group: System/Daemons
-License: LGPL-2.1+
-Source: %{name}-%{version}.tar.gz
-Provides: gsignon
-%if %{dbus_type} != "p2p"
-Requires: dbus-1
-%endif
-Requires(post): /sbin/ldconfig
-Requires(postun): /sbin/ldconfig
-BuildRequires: pkgconfig(dbus-1)
-BuildRequires: pkgconfig(glib-2.0) >= 2.30
-BuildRequires: pkgconfig(gobject-2.0)
-BuildRequires: pkgconfig(gio-2.0)
-BuildRequires: pkgconfig(gio-unix-2.0)
-BuildRequires: pkgconfig(gmodule-2.0)
-BuildRequires: pkgconfig(sqlite3)
-
-
-%description
-%{summary}.
-
-
-%package devel
-Summary: Development files for %{name}
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-
-%description devel
-%{summary}.
-
-
-%package doc
-Summary: Documentation files for %{name}
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-
-%description doc
-%{summary}.
-
-
-%prep
-%setup -q -n %{name}-%{version}
-if [ -f = "gtk-doc.make" ]
-then
-rm gtk-doc.make
-fi
-touch gtk-doc.make
-autoreconf -f -i
-
-
-%build
-%if %{debug_build} == 1
-%configure --enable-dbus-type=%{dbus_type} --enable-debug
-%else
-%configure --enable-dbus-type=%{dbus_type}
-%endif
-
-make %{?_smp_mflags}
-
-
-%install
-rm -rf %{buildroot}
-%make_install
-
-
-%post
-/sbin/ldconfig
-chmod u+s %{_bindir}/%{name}
-groupadd -f -r gsignond
-
-
-%postun -p /sbin/ldconfig
-
-
-%files
-%defattr(-,root,root,-)
-%doc AUTHORS COPYING.LIB INSTALL NEWS README
-%{_bindir}/%{name}
-%{_bindir}/%{name}-plugind
-%{_libdir}/lib%{name}-*.so.*
-%{_libdir}/%{name}/extensions/*.so*
-%{_libdir}/%{name}/plugins/*.so*
-%if %{dbus_type} != "p2p"
-%{_datadir}/dbus-1/services/*SingleSignOn*.service
-%endif
-%config(noreplace) %{_sysconfdir}/gsignond.conf
-
-
-%files devel
-%defattr(-,root,root,-)
-%{_includedir}/%{name}/*.h
-%{_libdir}/lib%{name}-*.so
-%{_libdir}/pkgconfig/%{name}.pc
-%if %{dbus_type} != "p2p"
-%{_datadir}/dbus-1/interfaces/*SSO*.xml
-%endif
-
-
-%files doc
-%defattr(-,root,root,-)
-%{_datadir}/gtk-doc/html/gsignond/*
-
Name: gsignond
Summary: GLib based Single Sign-On daemon
-Version: 0.0.3
+Version: 1.0.1
Release: 1
Group: System/Daemons
License: LGPL-2.1+
Source: %{name}-%{version}.tar.gz
+URL: https://01.org/gsso
Provides: gsignon
%if %{dbus_type} != "p2p"
Requires: dbus-1
%prep
%setup -q -n %{name}-%{version}
-#gtkdocize
# for repository snapshot packages
-#aclocal
-#autoheader
-#libtoolize --copy --force
-#autoconf
-#automake --add-missing --copy
-#autoreconf --install --force
+#gtkdocize
# fore release source packages
autoreconf -f -i
%build
%if %{debug_build} == 1
-%configure --enable-dbus-type=%{dbus_type} --enable-debug
+%configure --enable-dbus-type=%{dbus_type} --enable-debug --enable-gtk-doc
%else
%configure --enable-dbus-type=%{dbus_type}
%endif
%defattr(-,root,root,-)
%doc AUTHORS COPYING.LIB INSTALL NEWS README
%{_bindir}/%{name}
-%{_bindir}/%{name}-plugind
%{_libdir}/lib%{name}-*.so.*
%{_libdir}/%{name}/extensions/*.so*
-%{_libdir}/%{name}/plugins/*.so*
+%{_libdir}/%{name}/gplugins/*.so*
+%{_libdir}/%{name}/pluginloaders/%{name}-plugind
%if %{dbus_type} != "p2p"
%{_datadir}/dbus-1/services/*SingleSignOn*.service
%endif
%exclude %{_libdir}/gsignond/extensions/*.la
-%exclude %{_libdir}/gsignond/plugins/*.la
+%exclude %{_libdir}/gsignond/gplugins/*.la
%config(noreplace) %{_sysconfdir}/gsignond.conf
%changelog
+* Fri Mar 07 2014 Jussi Laako <jussi.laako@linux.intel.com>
+- Release 1.0.1
+
+* Thu Mar 06 2014 Imran Zaman <imran.zaman@intel.com>
+- Release 1.0.0
+
+* Fri Feb 28 2014 Jussi Laako <jussi.laako@linux.intel.com>
+- Release 0.0.4
+
+* Thu Aug 22 2013 Amarnath Valluri <amarnath.valluri@linux.intel.com>
+- Release 0.0.3
+- Bug fixes in UI interaction
+- Documentation support
+
* Mon Jun 24 2013 Imran Zaman <imran.zaman@intel.com>
- Release 0.0.2 that comprises of bug fixes
+* Fri Mar 07 2014 Jussi Laako <jussi.laako@linux.intel.com>
+- Release 1.0.1
+
+* Thu Mar 06 2014 Imran Zaman <imran.zaman@intel.com>
+- Release 1.0.0
+- Assorted fixes and cleanups, updated version
+- docs: add documentation for multple plugin loaders
+- Update .gitignore
+- plugins: simplify process killing
+- plugind: export the plugin object on d-bus after connecting all the signals and setting properties
+- Other memory leak and bug fixes
+
+* Fri Feb 28 2014 Jussi Laako <jussi.laako@linux.intel.com>
+- Release 0.0.4
+
* Thu Aug 22 2013 Amarnath Valluri <amarnath.valluri@linux.intel.com>
- Release 0.0.3
- Bug fixes in UI interaction
--- /dev/null
+<manifest>
+ <request>
+ <domain name="_"/>
+ </request>
+</manifest>
Name: gsignond
Summary: GLib based Single Sign-On daemon
-Version: 0.0.3
+Version: 1.0.0
Release: 1
Group: System/Daemons
License: LGPL-2.1+
Source: %{name}-%{version}.tar.gz
+URL: https://01.org/gsso
+Source1001: %{name}.manifest
Provides: gsignon
%if %{dbus_type} != "p2p"
Requires: dbus-1
%install
rm -rf %{buildroot}
%make_install
+cp -a %{SOURCE1001} %{buildroot}%{_datadir}/%{name}.manifest
%post
/sbin/ldconfig
chmod u+s %{_bindir}/%{name}
-groupadd -f -r gsignond
+getent group gsignond > /dev/null || /usr/sbin/groupadd -r gsignond
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
+%manifest %{_datadir}/%{name}.manifest
%doc AUTHORS COPYING.LIB INSTALL NEWS README
%{_bindir}/%{name}
-%{_bindir}/%{name}-plugind
%{_libdir}/lib%{name}-*.so.*
%{_libdir}/%{name}/extensions/*.so*
-%{_libdir}/%{name}/plugins/*.so*
+%{_libdir}/%{name}/gplugins/*.so*
+%{_libdir}/%{name}/pluginloaders/%{name}-plugind
%if %{dbus_type} != "p2p"
%{_datadir}/dbus-1/services/*SingleSignOn*.service
%endif
gsignond-identity-info-internal.h\
gsignond-pipe-stream.h\
gsignond-plugin-enum-types.h\
-gsignond-plugin-loader.h\
gsignond-db-defines.h\
gsignond-db-error.h\
gsignond-db-secret-database.h\
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
-content_files=building.xml
+content_files=building.xml plugin-loaders-overview.xml
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
# These files must be listed here *and* in content_files
# Comment this out if you want 'make check' to test you doc status
# and run some sanity checks
if ENABLE_GTK_DOC
-TESTS_ENVIRONMENT = cd $(srcdir) && \
+TESTS_ENVIRONMENT = \
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
TESTS = $(GTKDOC_CHECK)
endif
+
+CLEANFILES += $(DOC_MODULE)-*.txt $(DOC_MODULE).types
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# Everything below here is generic #
####################################
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
am__v_at_0 = @
SOURCES =
DIST_SOURCES =
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
am__tty_colors = \
red=; grn=; lgn=; blu=; std=
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
gsignond-identity-info-internal.h\
gsignond-pipe-stream.h\
gsignond-plugin-enum-types.h\
-gsignond-plugin-loader.h\
gsignond-db-defines.h\
gsignond-db-error.h\
gsignond-db-secret-database.h\
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
-content_files = building.xml
+content_files = building.xml plugin-loaders-overview.xml
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
# These files must be listed here *and* in content_files
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES)
-DOC_STAMPS = setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \
+DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \
html-build.stamp pdf-build.stamp \
- tmpl.stamp sgml.stamp html.stamp pdf.stamp
+ sgml.stamp html.stamp pdf.stamp
SCANOBJ_FILES = \
$(DOC_MODULE).args \
$(DOC_MODULE)-undeclared.txt \
$(DOC_MODULE)-unused.txt
-CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
-@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP =
-@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp
-@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP =
-@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp
+CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) \
+ gtkdoc-check.test $(DOC_MODULE)-*.txt $(DOC_MODULE).types
+@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP =
+@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp
+@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP =
+@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp
#### setup ####
GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V))
GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects";
-#### templates ####
-GTK_DOC_V_TMPL = $(GTK_DOC_V_TMPL_$(V))
-GTK_DOC_V_TMPL_ = $(GTK_DOC_V_TMPL_$(AM_DEFAULT_VERBOSITY))
-GTK_DOC_V_TMPL_0 = @echo " DOC Rebuilding template files";
-
#### xml ####
GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V))
GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
# Comment this out if you want 'make check' to test you doc status
# and run some sanity checks
-@ENABLE_GTK_DOC_TRUE@TESTS_ENVIRONMENT = cd $(srcdir) && \
+@ENABLE_GTK_DOC_TRUE@TESTS_ENVIRONMENT = \
@ENABLE_GTK_DOC_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
@ENABLE_GTK_DOC_TRUE@ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
check-am: all-am
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: check-am
+@ENABLE_GTK_DOC_FALSE@all-local:
all-am: Makefile all-local
installdirs:
install: install-am
uninstall-local
-@ENABLE_GTK_DOC_TRUE@all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
-@ENABLE_GTK_DOC_FALSE@all-local:
+gtkdoc-check.test: Makefile
+ $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \
+ echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \
+ chmod +x $@
+
+all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+.PHONY: all-gtk-doc
+
+@ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc
docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
if test "x$$files" != "x" ; then \
for file in $$files ; do \
+ destdir=`dirname $(abs_builddir)/$$file`; \
+ test -d "$$destdir" || mkdir -p "$$destdir"; \
test -f $(abs_srcdir)/$$file && \
- cp -pu $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
+ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
done; \
fi; \
- test -d $(abs_srcdir)/tmpl && \
- { cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \
- chmod -R u+w $(abs_builddir)/tmpl; } \
fi
$(AM_V_at)touch setup-build.stamp
-scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
+scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
$(GTK_DOC_V_SCAN)_source_dir='' ; \
for i in $(DOC_SOURCE_DIR) ; do \
_source_dir="$${_source_dir} --source-dir=$$i" ; \
$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
@true
-tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
- $(GTK_DOC_V_TMPL)gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
- $(AM_V_at)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
- if test -w $(abs_srcdir) ; then \
- cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
- fi \
- fi
- $(AM_V_at)touch tmpl-build.stamp
-
-tmpl.stamp: tmpl-build.stamp
- @true
-
-$(srcdir)/tmpl/*.sgml:
- @true
-
-sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
- -$(GTK_DOC_V_XML)chmod -R u+w $(srcdir) && _source_dir='' ; \
+sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
+ $(GTK_DOC_V_XML)_source_dir='' ; \
for i in $(DOC_SOURCE_DIR) ; do \
_source_dir="$${_source_dir} --source-dir=$$i" ; \
done ; \
clean-local:
@rm -f *~ *.bak
@rm -rf .libs
+ @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
+ rm -f $(DOC_MODULE).types; \
+ fi
distclean-local:
@rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
$(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
- rm -rf tmpl; \
fi
maintainer-clean-local:
#
# Require gtk-doc when making dist
#
-@ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc: docs
-@ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc:
-@ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist"
-@ENABLE_GTK_DOC_FALSE@ @false
-
-dist-hook: dist-check-gtkdoc dist-hook-local
- @mkdir $(distdir)/tmpl
+@HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs
+@HAVE_GTK_DOC_FALSE@dist-check-gtkdoc:
+@HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc is needed to run 'make dist'. ***"
+@HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc was not found when 'configure' ran. ***"
+@HAVE_GTK_DOC_FALSE@ @echo "*** please install gtk-doc and rerun 'configure'. ***"
+@HAVE_GTK_DOC_FALSE@ @false
+
+dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local
@mkdir $(distdir)/html
- @-cp ./tmpl/*.sgml $(distdir)/tmpl
@cp ./html/* $(distdir)/html
@-cp ./$(DOC_MODULE).pdf $(distdir)/
@-cp ./$(DOC_MODULE).types $(distdir)/
</para>
</formalpara>
+ <formalpara>
+ <title><systemitem>--enable-keychain=sysctx</systemitem></title>
+
+ <para>
+ Sets the system security context of keychain UI process as returned by
+ the default <link linkend="GSignondAccessControlManager">
+ GSignondAccessControlManager</link>. This value becomes written to the
+ gsignond.conf in addition to being encoded as default value
+ through config.h.
+ </para>
+ </formalpara>
+
+ <formalpara>
+ <title><systemitem>--enable-storagedir=path</systemitem></title>
+
+ <para>
+ Sets the base path for user specific storage directories where
+ database files will be located as utilised by
+ <link linkend="GSignondStorageManager">
+ GSignondStorageManager</link>.
+ Default location is <filename>/var/db</filename>
+ </para>
+ </formalpara>
+
</refsect1>
<refsect1 id="building-packages">
<title>Building distribution packages</title>
<title>GSignond configuration</title>
<xi:include href="xml/gsignond-config.xml"/>
<xi:include href="xml/gsignond-config-general.xml"/>
- <xi:include href="xml/gsignond-config-db.xml"/>
<xi:include href="xml/gsignond-config-dbus.xml"/>
</chapter>
+ <chapter>
+ <title>Authentication plugins, plugin loaders and D-Bus IPC</title>
+ <xi:include href="plugin-loaders-overview.xml"/>
+ </chapter>
+
<chapter>
- <title>GSignond API for writing authentication plugins</title>
+ <title>GSignond API for writing GLib-based authentication plugins</title>
<xi:include href="xml/gsignond-plugin-interface.xml"/>
<xi:include href="xml/gsignond-dictionary.xml"/>
<xi:include href="xml/gsignond-session-data.xml"/>
<SECTION>
<FILE>gsignond-access-control-manager</FILE>
<TITLE>GSignondAccessControlManager</TITLE>
-GSignondAccessControlManager
-GSignondAccessControlManagerClass
-gsignond_access_control_manager_acl_is_valid
+gsignond_access_control_manager_security_context_of_peer
gsignond_access_control_manager_peer_is_allowed_to_use_identity
gsignond_access_control_manager_peer_is_owner_of_identity
+gsignond_access_control_manager_acl_is_valid
gsignond_access_control_manager_security_context_of_keychain
-gsignond_access_control_manager_security_context_of_peer
<SUBSECTION Standard>
GSIGNOND_ACCESS_CONTROL_MANAGER
GSIGNOND_ACCESS_CONTROL_MANAGER_CLASS
GSIGNOND_IS_ACCESS_CONTROL_MANAGER
GSIGNOND_IS_ACCESS_CONTROL_MANAGER_CLASS
GSIGNOND_TYPE_ACCESS_CONTROL_MANAGER
+GSignondAccessControlManager
+GSignondAccessControlManagerClass
gsignond_access_control_manager_get_type
</SECTION>
<SECTION>
<FILE>gsignond-config</FILE>
<TITLE>GSignondConfig</TITLE>
-GSignondConfig
-GSignondConfigClass
-gsignond_config_get_integer
-gsignond_config_get_string
gsignond_config_new
+gsignond_config_get_integer
gsignond_config_set_integer
+gsignond_config_get_string
gsignond_config_set_string
<SUBSECTION Standard>
GSIGNOND_CONFIG
GSIGNOND_IS_CONFIG
GSIGNOND_IS_CONFIG_CLASS
GSIGNOND_TYPE_CONFIG
+GSignondConfig
+GSignondConfigClass
GSignondConfigPrivate
gsignond_config_get_type
</SECTION>
<SECTION>
-<FILE>gsignond-config-db</FILE>
-GSIGNOND_CONFIG_DB_METADATA_DB_FILENAME
-GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME
-GSIGNOND_CONFIG_DB_SSO
-</SECTION>
-
-<SECTION>
<FILE>gsignond-config-dbus</FILE>
-GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT
+GSIGNOND_CONFIG_DBUS_TIMEOUTS
GSIGNOND_CONFIG_DBUS_DAEMON_TIMEOUT
GSIGNOND_CONFIG_DBUS_IDENTITY_TIMEOUT
-GSIGNOND_CONFIG_DBUS_TIMEOUTS
+GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT
</SECTION>
<SECTION>
<FILE>gsignond-config-general</FILE>
GSIGNOND_CONFIG_GENERAL
-GSIGNOND_CONFIG_GENERAL_BIN_DIR
+GSIGNOND_CONFIG_GENERAL_STORAGE_PATH
GSIGNOND_CONFIG_GENERAL_EXTENSION
-GSIGNOND_CONFIG_GENERAL_EXTENSIONS_DIR
-GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR
GSIGNOND_CONFIG_GENERAL_SECURE_DIR
-GSIGNOND_CONFIG_GENERAL_STORAGE_PATH
GSIGNOND_CONFIG_PLUGIN_TIMEOUT
+GSIGNOND_CONFIG_GENERAL_KEYCHAIN_SYSCTX
</SECTION>
<SECTION>
<FILE>gsignond-credentials</FILE>
<TITLE>GSignondCredentials</TITLE>
-GSignondCredentials
-GSignondCredentialsClass
-gsignond_credentials_equal
-gsignond_credentials_get_id
-gsignond_credentials_get_password
-gsignond_credentials_get_username
gsignond_credentials_new
gsignond_credentials_set_data
gsignond_credentials_set_id
-gsignond_credentials_set_password
+gsignond_credentials_get_id
gsignond_credentials_set_username
+gsignond_credentials_get_username
+gsignond_credentials_set_password
+gsignond_credentials_get_password
+gsignond_credentials_equal
<SUBSECTION Standard>
GSIGNOND_CREDENTIALS
GSIGNOND_CREDENTIALS_CLASS
GSIGNOND_IS_CREDENTIALS
GSIGNOND_IS_CREDENTIALS_CLASS
GSIGNOND_TYPE_CREDENTIALS
+GSignondCredentials
+GSignondCredentialsClass
GSignondCredentialsPrivate
gsignond_credentials_get_type
</SECTION>
<SECTION>
<FILE>gsignond-dictionary</FILE>
-GSignondDictionary
-gsignond_dictionary_copy
-gsignond_dictionary_get
-gsignond_dictionary_get_boolean
-gsignond_dictionary_get_int32
-gsignond_dictionary_get_int64
-gsignond_dictionary_get_string
-gsignond_dictionary_get_uint32
-gsignond_dictionary_get_uint64
gsignond_dictionary_new
-gsignond_dictionary_new_from_variant
gsignond_dictionary_ref
-gsignond_dictionary_remove
+gsignond_dictionary_unref
+gsignond_dictionary_copy
+gsignond_dictionary_new_from_variant
+gsignond_dictionary_to_variant
+gsignond_dictionary_to_variant_builder
+gsignond_dictionary_get
gsignond_dictionary_set
+gsignond_dictionary_get_boolean
gsignond_dictionary_set_boolean
+gsignond_dictionary_get_int32
gsignond_dictionary_set_int32
-gsignond_dictionary_set_int64
-gsignond_dictionary_set_string
+gsignond_dictionary_get_uint32
gsignond_dictionary_set_uint32
+gsignond_dictionary_get_int64
+gsignond_dictionary_set_int64
+gsignond_dictionary_get_uint64
gsignond_dictionary_set_uint64
-gsignond_dictionary_to_variant
-gsignond_dictionary_unref
+gsignond_dictionary_get_string
+gsignond_dictionary_set_string
+gsignond_dictionary_remove
+gsignond_dictionary_contains
<SUBSECTION Standard>
GSIGNOND_DICTIONARY
GSIGNOND_IS_DICTIONARY
GSIGNOND_TYPE_DICTIONARY
+GSignondDictionary
</SECTION>
<SECTION>
<FILE>gsignond-digest-plugin</FILE>
<TITLE>GSignondDigestPlugin</TITLE>
-GSignondDigestPlugin
-GSignondDigestPluginClass
<SUBSECTION Standard>
GSIGNOND_DIGEST_PLUGIN
GSIGNOND_DIGEST_PLUGIN_CLASS
GSIGNOND_IS_DIGEST_PLUGIN
GSIGNOND_IS_DIGEST_PLUGIN_CLASS
GSIGNOND_TYPE_DIGEST_PLUGIN
+GSignondDigestPlugin
+GSignondDigestPluginClass
GSignondDigestPluginPrivate
gsignond_digest_plugin_get_type
</SECTION>
<FILE>gsignond-error</FILE>
GSIGNOND_ERROR
GSignondError
-gsignond_error_new_from_variant
gsignond_error_quark
+gsignond_error_new_from_variant
gsignond_error_to_variant
gsignond_get_gerror_for_id
</SECTION>
<SECTION>
<FILE>gsignond-extension-interface</FILE>
<TITLE>GSignondExtension</TITLE>
-GSignondExtension
-GSignondExtensionClass
-gsignond_extension_get_access_control_manager
gsignond_extension_get_name
-gsignond_extension_get_secret_storage
-gsignond_extension_get_storage_manager
gsignond_extension_get_version
+gsignond_extension_get_storage_manager
+gsignond_extension_get_secret_storage
+gsignond_extension_get_access_control_manager
<SUBSECTION Standard>
GSIGNOND_EXTENSION
GSIGNOND_EXTENSION_CLASS
GSIGNOND_IS_EXTENSION
GSIGNOND_IS_EXTENSION_CLASS
GSIGNOND_TYPE_EXTENSION
+GSignondExtension
+GSignondExtensionClass
GSignondExtensionPrivate
gsignond_extension_get_type
</SECTION>
<SECTION>
<FILE>gsignond-log</FILE>
-DBG
-ERR
-INFO
TRACEBACK
+INFO
+ERR
WARN
+DBG
</SECTION>
<SECTION>
<FILE>gsignond-password-plugin</FILE>
<TITLE>GSignondPasswordPlugin</TITLE>
-GSignondPasswordPlugin
-GSignondPasswordPluginClass
<SUBSECTION Standard>
GSIGNOND_IS_PASSWORD_PLUGIN
GSIGNOND_IS_PASSWORD_PLUGIN_CLASS
GSIGNOND_PASSWORD_PLUGIN_CLASS
GSIGNOND_PASSWORD_PLUGIN_GET_CLASS
GSIGNOND_TYPE_PASSWORD_PLUGIN
+GSignondPasswordPlugin
+GSignondPasswordPluginClass
gsignond_password_plugin_get_type
</SECTION>
<SECTION>
<FILE>gsignond-plugin-interface</FILE>
<TITLE>GSignondPlugin</TITLE>
-GSignondPluginInterface
GSignondPluginState
+GSignondPluginInterface
gsignond_plugin_cancel
-gsignond_plugin_error
-gsignond_plugin_refresh
-gsignond_plugin_refreshed
-gsignond_plugin_request
gsignond_plugin_request_initial
+gsignond_plugin_request
+gsignond_plugin_user_action_finished
+gsignond_plugin_refresh
gsignond_plugin_response
gsignond_plugin_response_final
-gsignond_plugin_status_changed
gsignond_plugin_store
-gsignond_plugin_user_action_finished
+gsignond_plugin_error
gsignond_plugin_user_action_required
+gsignond_plugin_refreshed
+gsignond_plugin_status_changed
<SUBSECTION Standard>
GSIGNOND_IS_PLUGIN
GSIGNOND_PLUGIN
GSIGNOND_PLUGIN_GET_INTERFACE
GSIGNOND_TYPE_PLUGIN
+GSignondPlugin
gsignond_plugin_get_type
</SECTION>
<SECTION>
<FILE>gsignond-secret-storage</FILE>
<TITLE>GSignondSecretStorage</TITLE>
-GSignondSecretStorage
-GSignondSecretStorageClass
-gsignond_secret_storage_check_credentials
-gsignond_secret_storage_clear_db
+gsignond_secret_storage_open_db
gsignond_secret_storage_close_db
-gsignond_secret_storage_get_last_error
+gsignond_secret_storage_clear_db
gsignond_secret_storage_is_open_db
gsignond_secret_storage_load_credentials
-gsignond_secret_storage_load_data
-gsignond_secret_storage_open_db
-gsignond_secret_storage_remove_credentials
-gsignond_secret_storage_remove_data
gsignond_secret_storage_update_credentials
+gsignond_secret_storage_remove_credentials
+gsignond_secret_storage_check_credentials
+gsignond_secret_storage_load_data
gsignond_secret_storage_update_data
+gsignond_secret_storage_remove_data
+gsignond_secret_storage_get_last_error
<SUBSECTION Standard>
GSIGNOND_IS_SECRET_STORAGE
GSIGNOND_IS_SECRET_STORAGE_CLASS
GSIGNOND_SECRET_STORAGE_CLASS
GSIGNOND_SECRET_STORAGE_GET_CLASS
GSIGNOND_TYPE_SECRET_STORAGE
+GSignondSecretStorage
+GSignondSecretStorageClass
GSignondSecretStoragePrivate
gsignond_secret_storage_get_type
</SECTION>
<FILE>gsignond-security-context</FILE>
GSignondSecurityContext
GSignondSecurityContextList
-gsignond_security_context_check
-gsignond_security_context_compare
-gsignond_security_context_copy
-gsignond_security_context_free
-gsignond_security_context_from_variant
-gsignond_security_context_get_application_context
-gsignond_security_context_get_system_context
-gsignond_security_context_list_copy
-gsignond_security_context_list_free
-gsignond_security_context_list_from_variant
-gsignond_security_context_list_to_variant
-gsignond_security_context_match
gsignond_security_context_new
gsignond_security_context_new_from_values
-gsignond_security_context_set_application_context
+gsignond_security_context_free
+gsignond_security_context_copy
gsignond_security_context_set_system_context
+gsignond_security_context_get_system_context
+gsignond_security_context_set_application_context
+gsignond_security_context_get_application_context
gsignond_security_context_to_variant
+gsignond_security_context_from_variant
+gsignond_security_context_compare
+gsignond_security_context_match
+gsignond_security_context_check
+gsignond_security_context_list_to_variant
+gsignond_security_context_list_from_variant
+gsignond_security_context_list_copy
+gsignond_security_context_list_free
</SECTION>
<SECTION>
<FILE>gsignond-session-data</FILE>
-GSignondSessionData
GSignondUiPolicy
-gsignond_session_data_get_caption
-gsignond_session_data_get_network_proxy
-gsignond_session_data_get_network_timeout
+gsignond_session_data_get_username
+gsignond_session_data_set_username
+gsignond_session_data_get_secret
+gsignond_session_data_set_secret
gsignond_session_data_get_realm
+gsignond_session_data_set_realm
+gsignond_session_data_get_allowed_realms
+gsignond_session_data_set_allowed_realms
+gsignond_session_data_get_caption
+gsignond_session_data_set_caption
gsignond_session_data_get_renew_token
-gsignond_session_data_get_secret
+gsignond_session_data_set_renew_token
gsignond_session_data_get_ui_policy
-gsignond_session_data_get_username
-gsignond_session_data_get_window_id
-gsignond_session_data_set_caption
+gsignond_session_data_set_ui_policy
+gsignond_session_data_get_network_proxy
gsignond_session_data_set_network_proxy
+gsignond_session_data_get_network_timeout
gsignond_session_data_set_network_timeout
-gsignond_session_data_set_realm
-gsignond_session_data_set_renew_token
-gsignond_session_data_set_secret
-gsignond_session_data_set_ui_policy
-gsignond_session_data_set_username
+gsignond_session_data_get_window_id
gsignond_session_data_set_window_id
<SUBSECTION Standard>
GSIGNOND_IS_SESSION_DATA
GSIGNOND_SESSION_DATA
GSIGNOND_TYPE_SESSION_DATA
+GSignondSessionData
</SECTION>
<SECTION>
<FILE>gsignond-signonui-data</FILE>
-GSignondSignonuiData
GSignondSignonuiError
gsignond_signonui_data_get_captcha_response
-gsignond_signonui_data_get_captcha_url
-gsignond_signonui_data_get_caption
-gsignond_signonui_data_get_confirm
-gsignond_signonui_data_get_final_url
-gsignond_signonui_data_get_forgot_password
-gsignond_signonui_data_get_forgot_password_url
-gsignond_signonui_data_get_message
-gsignond_signonui_data_get_open_url
-gsignond_signonui_data_get_password
-gsignond_signonui_data_get_query_error
-gsignond_signonui_data_get_query_password
-gsignond_signonui_data_get_query_username
-gsignond_signonui_data_get_remember_password
-gsignond_signonui_data_get_request_id
-gsignond_signonui_data_get_test_reply
-gsignond_signonui_data_get_title
-gsignond_signonui_data_get_url_response
-gsignond_signonui_data_get_username
gsignond_signonui_data_set_captcha_response
+gsignond_signonui_data_get_captcha_url
gsignond_signonui_data_set_captcha_url
+gsignond_signonui_data_get_caption
gsignond_signonui_data_set_caption
+gsignond_signonui_data_get_confirm
gsignond_signonui_data_set_confirm
+gsignond_signonui_data_get_final_url
gsignond_signonui_data_set_final_url
+gsignond_signonui_data_get_forgot_password
gsignond_signonui_data_set_forgot_password
+gsignond_signonui_data_get_forgot_password_url
gsignond_signonui_data_set_forgot_password_url
+gsignond_signonui_data_get_message
gsignond_signonui_data_set_message
+gsignond_signonui_data_get_open_url
gsignond_signonui_data_set_open_url
+gsignond_signonui_data_get_password
gsignond_signonui_data_set_password
+gsignond_signonui_data_get_query_error
gsignond_signonui_data_set_query_error
+gsignond_signonui_data_get_query_password
gsignond_signonui_data_set_query_password
+gsignond_signonui_data_get_query_username
gsignond_signonui_data_set_query_username
+gsignond_signonui_data_get_remember_password
gsignond_signonui_data_set_remember_password
+gsignond_signonui_data_get_request_id
gsignond_signonui_data_set_request_id
+gsignond_signonui_data_get_test_reply
gsignond_signonui_data_set_test_reply
+gsignond_signonui_data_get_title
gsignond_signonui_data_set_title
+gsignond_signonui_data_get_url_response
gsignond_signonui_data_set_url_response
+gsignond_signonui_data_get_username
gsignond_signonui_data_set_username
<SUBSECTION Standard>
GSIGNOND_IS_SIGNONUI_DATA
GSIGNOND_SIGNONUI_DATA
GSIGNOND_TYPE_SIGNONUI_DATA
+GSignondSignonuiData
</SECTION>
<SECTION>
<FILE>gsignond-ssotest-plugin</FILE>
<TITLE>GSignondSsoTestPlugin</TITLE>
-GSignondSsoTestPlugin
-GSignondSsoTestPluginClass
<SUBSECTION Standard>
GSIGNOND_IS_SSOTEST_PLUGIN
GSIGNOND_IS_SSOTEST_PLUGIN_CLASS
GSIGNOND_SSOTEST_PLUGIN_CLASS
GSIGNOND_SSOTEST_PLUGIN_GET_CLASS
GSIGNOND_TYPE_SSOTEST_PLUGIN
+GSignondSsoTestPlugin
+GSignondSsoTestPluginClass
GSignondSsoTestPluginPrivate
gsignond_ssotest_plugin_get_type
</SECTION>
<SECTION>
<FILE>gsignond-storage-manager</FILE>
<TITLE>GSignondStorageManager</TITLE>
-GSignondStorageManager
-GSignondStorageManagerClass
-gsignond_storage_manager_delete_storage
-gsignond_storage_manager_filesystem_is_mounted
gsignond_storage_manager_initialize_storage
-gsignond_storage_manager_mount_filesystem
+gsignond_storage_manager_delete_storage
gsignond_storage_manager_storage_is_initialized
+gsignond_storage_manager_mount_filesystem
gsignond_storage_manager_unmount_filesystem
+gsignond_storage_manager_filesystem_is_mounted
<SUBSECTION Standard>
GSIGNOND_IS_STORAGE_MANAGER
GSIGNOND_IS_STORAGE_MANAGER_CLASS
GSIGNOND_STORAGE_MANAGER_CLASS
GSIGNOND_STORAGE_MANAGER_GET_CLASS
GSIGNOND_TYPE_STORAGE_MANAGER
+GSignondStorageManager
+GSignondStorageManagerClass
GSignondStorageManagerPrivate
gsignond_storage_manager_get_type
</SECTION>
<SECTION>
<FILE>gsignond-utils</FILE>
-gsignond_generate_nonce
-gsignond_wipe_directory
gsignond_wipe_file
+gsignond_wipe_directory
+gsignond_generate_nonce
+gsignond_sequence_to_variant
+gsignond_variant_to_sequence
+gsignond_sequence_to_array
+gsignond_array_to_sequence
+gsignond_copy_array_to_sequence
+gsignond_is_host_in_domain
</SECTION>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignondAccessControlManager</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignondAccessControlManager</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch05.html" title="GSignond API for writing platform adaptation extensions">
+<link rel="up" href="ch06.html" title="GSignond API for writing platform adaptation extensions">
<link rel="prev" href="GSignondExtension.html" title="GSignondExtension">
<link rel="next" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#GSignondAccessControlManager.description" class="shortcut">Description</a>
- |
- <a href="#GSignondAccessControlManager.object-hierarchy" class="shortcut">Object Hierarchy</a>
- |
- <a href="#GSignondAccessControlManager.properties" class="shortcut">Properties</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#GSignondAccessControlManager.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#GSignondAccessControlManager.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span>
+ <a href="#GSignondAccessControlManager.properties" class="shortcut">Properties</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch05.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch06.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GSignondExtension.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gsignond-GSignondSecurityContext.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h2><span class="refentrytitle"><a name="GSignondAccessControlManager.top_of_page"></a>GSignondAccessControlManager</span></h2>
<p>GSignondAccessControlManager — an object that performs access control checks</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GSignondAccessControlManager.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-access-control-manager.h>
-
-struct <a class="link" href="GSignondAccessControlManager.html#GSignondAccessControlManager-struct" title="struct GSignondAccessControlManager">GSignondAccessControlManager</a>;
-struct <a class="link" href="GSignondAccessControlManager.html#GSignondAccessControlManagerClass" title="struct GSignondAccessControlManagerClass">GSignondAccessControlManagerClass</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-acl-is-valid" title="gsignond_access_control_manager_acl_is_valid ()">gsignond_access_control_manager_acl_is_valid</a>
- (<em class="parameter"><code><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> *self</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *peer_ctx</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> *identity_acl</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-allowed-to-use-identity" title="gsignond_access_control_manager_peer_is_allowed_to_use_identity ()">gsignond_access_control_manager_peer_is_allowed_to_use_identity</a>
- (<em class="parameter"><code><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> *self</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *peer_ctx</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *owner_ctx</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> *identity_acl</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-owner-of-identity" title="gsignond_access_control_manager_peer_is_owner_of_identity ()">gsignond_access_control_manager_peer_is_owner_of_identity</a>
- (<em class="parameter"><code><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> *self</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *peer_ctx</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *owner_ctx</code></em>);
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> * <a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-keychain" title="gsignond_access_control_manager_security_context_of_keychain ()">gsignond_access_control_manager_security_context_of_keychain</a>
- (<em class="parameter"><code><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> *self</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-peer" title="gsignond_access_control_manager_security_context_of_peer ()">gsignond_access_control_manager_security_context_of_peer</a>
- (<em class="parameter"><code><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *peer_ctx</code></em>,
- <em class="parameter"><code><span class="type">int</span> peer_fd</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *peer_service</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *peer_app_ctx</code></em>);
-</pre>
+<div class="refsect1">
+<a name="GSignondAccessControlManager.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-peer" title="gsignond_access_control_manager_security_context_of_peer ()">gsignond_access_control_manager_security_context_of_peer</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-allowed-to-use-identity" title="gsignond_access_control_manager_peer_is_allowed_to_use_identity ()">gsignond_access_control_manager_peer_is_allowed_to_use_identity</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-owner-of-identity" title="gsignond_access_control_manager_peer_is_owner_of_identity ()">gsignond_access_control_manager_peer_is_owner_of_identity</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-acl-is-valid" title="gsignond_access_control_manager_acl_is_valid ()">gsignond_access_control_manager_acl_is_valid</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-keychain" title="gsignond_access_control_manager_security_context_of_keychain ()">gsignond_access_control_manager_security_context_of_keychain</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GSignondAccessControlManager.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody><tr>
+<td class="property_type">
+<a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *</td>
+<td class="property_name"><a class="link" href="GSignondAccessControlManager.html#GSignondAccessControlManager--config" title="The “config” property">config</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
+</tr></tbody>
+</table></div>
</div>
<div class="refsect1">
<a name="GSignondAccessControlManager.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
- <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
- +----GSignondAccessControlManager
+<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ <span class="lineart">╰──</span> GSignondAccessControlManager
</pre>
</div>
<div class="refsect1">
-<a name="GSignondAccessControlManager.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
- "<a class="link" href="GSignondAccessControlManager.html#GSignondAccessControlManager--config" title='The "config" property'>config</a>" <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>* : Read / Write / Construct Only
+<a name="GSignondAccessControlManager.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-access-control-manager.h>
</pre>
</div>
<div class="refsect1">
<a name="GSignondAccessControlManager.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> performs access control checks using
+<p><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> performs access control checks using
available system services. gSSO can be configured to use a custom extension
that provides a subclassed implementation of <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a>
-(see <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a>), otherwise a default implementation is used.
-</p>
+(see <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a>), otherwise a default implementation is used.</p>
</div>
<div class="refsect1">
-<a name="GSignondAccessControlManager.details"></a><h2>Details</h2>
+<a name="GSignondAccessControlManager.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
-<a name="GSignondAccessControlManager-struct"></a><h3>struct GSignondAccessControlManager</h3>
-<pre class="programlisting">struct GSignondAccessControlManager;</pre>
-<p>
-Opaque <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> data structure.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GSignondAccessControlManagerClass"></a><h3>struct GSignondAccessControlManagerClass</h3>
-<pre class="programlisting">struct GSignondAccessControlManagerClass {
- GObjectClass parent_class;
-
- void (*security_context_of_peer) (
- GSignondAccessControlManager *self,
- GSignondSecurityContext *peer_ctx,
- int peer_fd, const gchar *peer_service,
- const gchar *peer_app_ctx);
- gboolean (*peer_is_allowed_to_use_identity) (
- GSignondAccessControlManager *self,
- const GSignondSecurityContext *peer_ctx,
- const GSignondSecurityContext *owner_ctx,
- const GSignondSecurityContextList *identity_acl);
- gboolean (*peer_is_owner_of_identity) (
- GSignondAccessControlManager *self,
- const GSignondSecurityContext *peer_ctx,
- const GSignondSecurityContext *owner_ctx);
- gboolean (*acl_is_valid) (
- GSignondAccessControlManager *self,
- const GSignondSecurityContext *peer_ctx,
- const GSignondSecurityContextList *identity_acl);
- GSignondSecurityContext * (*security_context_of_keychain) (
- GSignondAccessControlManager *self);
-};
-</pre>
-<p>
-<a class="link" href="GSignondAccessControlManager.html#GSignondAccessControlManagerClass" title="struct GSignondAccessControlManagerClass"><span class="type">GSignondAccessControlManagerClass</span></a> class containing pointers to class methods.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-access-control-manager-security-context-of-peer"></a><h3>gsignond_access_control_manager_security_context_of_peer ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_access_control_manager_security_context_of_peer
+ (<em class="parameter"><code><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *peer_ctx</code></em>,
+ <em class="parameter"><code><span class="type">int</span> peer_fd</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *peer_service</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *peer_app_ctx</code></em>);</pre>
+<p>Retrieves and sets <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> of the specified peer.</p>
+<p>The default implementation sets the app context as it was passed, and sets
+the system context to the binary path of the process that is determined from
+<em class="parameter"><code>peer_fd</code></em>
+ and <em class="parameter"><code>peer_service</code></em>
+ parameters.</p>
+<div class="refsect3">
+<a name="id-1.7.3.8.2.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GSignondAccessControlManagerClass.parent-class"></a>parent_class</code></em>;</span></p></td>
-<td>parent class.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondAccessControlManagerClass.security-context-of-peer"></a>security_context_of_peer</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-peer" title="gsignond_access_control_manager_security_context_of_peer ()"><code class="function">gsignond_access_control_manager_security_context_of_peer()</code></a>
-</td>
+<td class="parameter_name"><p>peer_ctx</p></td>
+<td class="parameter_description"><p>instance of security context to be set.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondAccessControlManagerClass.peer-is-allowed-to-use-identity"></a>peer_is_allowed_to_use_identity</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-allowed-to-use-identity" title="gsignond_access_control_manager_peer_is_allowed_to_use_identity ()"><code class="function">gsignond_access_control_manager_peer_is_allowed_to_use_identity()</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondAccessControlManagerClass.peer-is-owner-of-identity"></a>peer_is_owner_of_identity</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-owner-of-identity" title="gsignond_access_control_manager_peer_is_owner_of_identity ()"><code class="function">gsignond_access_control_manager_peer_is_owner_of_identity()</code></a>
-</td>
+<td class="parameter_name"><p>peer_fd</p></td>
+<td class="parameter_description"><p>file descriptor of the peer connection if using peer-to-peer dbus, -1 otherwise.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondAccessControlManagerClass.acl-is-valid"></a>acl_is_valid</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-acl-is-valid" title="gsignond_access_control_manager_acl_is_valid ()"><code class="function">gsignond_access_control_manager_acl_is_valid()</code></a>
-</td>
+<td class="parameter_name"><p>peer_service</p></td>
+<td class="parameter_description"><p>g_dbus_method_invocation_get_sender() of the peer connection, if not using peer-to-peer dbus, NULL otherwise</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondAccessControlManagerClass.security-context-of-keychain"></a>security_context_of_keychain</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-keychain" title="gsignond_access_control_manager_security_context_of_keychain ()"><code class="function">gsignond_access_control_manager_security_context_of_keychain()</code></a>
-</td>
+<td class="parameter_name"><p>peer_app_ctx</p></td>
+<td class="parameter_description"><p>application context of the peer connection.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-access-control-manager-acl-is-valid"></a><h3>gsignond_access_control_manager_acl_is_valid ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_access_control_manager_acl_is_valid
- (<em class="parameter"><code><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> *self</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *peer_ctx</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> *identity_acl</code></em>);</pre>
-<p>
-Checks if the specified peer is allowed to set the specified access
-control list. <a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-owner-of-identity" title="gsignond_access_control_manager_peer_is_owner_of_identity ()"><code class="function">gsignond_access_control_manager_peer_is_owner_of_identity()</code></a>
-is used before calling this method to verify identity ownership.
-</p>
-<p>
-The default implementation always returns TRUE.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-access-control-manager-peer-is-allowed-to-use-identity"></a><h3>gsignond_access_control_manager_peer_is_allowed_to_use_identity ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_access_control_manager_peer_is_allowed_to_use_identity
+ (<em class="parameter"><code><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *peer_ctx</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *owner_ctx</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> *identity_acl</code></em>);</pre>
+<p>Checks if specified peer is allowed to access the specified identity.</p>
+<p>The default implementation goes over items in <em class="parameter"><code>identity_acl</code></em>
+, using
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-check" title="gsignond_security_context_check ()"><code class="function">gsignond_security_context_check()</code></a> to check them against <em class="parameter"><code>peer_ctx</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.7.3.8.3.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>peer_ctx</code></em> :</span></p></td>
-<td>security context of the peer connection.</td>
+<td class="parameter_name"><p>peer_ctx</p></td>
+<td class="parameter_description"><p>security context of the peer connection.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>identity_acl</code></em> :</span></p></td>
-<td>access control list for the identity.</td>
+<td class="parameter_name"><p>owner_ctx</p></td>
+<td class="parameter_description"><p>security context of the identity owner.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>access control list is OK?</td>
+<td class="parameter_name"><p>identity_acl</p></td>
+<td class="parameter_description"><p>access control list for the identity in question. Includes the <em class="parameter"><code>owner_ctx</code></em>
+as well.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.3.8.3.7"></a><h4>Returns</h4>
+<p> access is allowed?</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-access-control-manager-peer-is-allowed-to-use-identity"></a><h3>gsignond_access_control_manager_peer_is_allowed_to_use_identity ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_access_control_manager_peer_is_allowed_to_use_identity
- (<em class="parameter"><code><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> *self</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *peer_ctx</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *owner_ctx</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> *identity_acl</code></em>);</pre>
-<p>
-Checks if specified peer is allowed to access the specified identity.
-</p>
-<p>
-The default implementation goes over items in <em class="parameter"><code>identity_acl</code></em>, using
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-check" title="gsignond_security_context_check ()"><code class="function">gsignond_security_context_check()</code></a> to check them against <em class="parameter"><code>peer_ctx</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-access-control-manager-peer-is-owner-of-identity"></a><h3>gsignond_access_control_manager_peer_is_owner_of_identity ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_access_control_manager_peer_is_owner_of_identity
+ (<em class="parameter"><code><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *peer_ctx</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *owner_ctx</code></em>);</pre>
+<p>Checks if the peer specified in <em class="parameter"><code>peer_ctx</code></em>
+ is the owner of the identity.</p>
+<p>The default implementation is using <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-check" title="gsignond_security_context_check ()"><code class="function">gsignond_security_context_check()</code></a>
+to check <em class="parameter"><code>peer_ctx</code></em>
+ against <em class="parameter"><code>owner_ctx</code></em>
+ directly.</p>
+<div class="refsect3">
+<a name="id-1.7.3.8.4.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>peer_ctx</code></em> :</span></p></td>
-<td>security context of the peer connection.</td>
+<td class="parameter_name"><p>peer_ctx</p></td>
+<td class="parameter_description"><p>security context of the peer connection.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>owner_ctx</code></em> :</span></p></td>
-<td>security context of the identity owner.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>identity_acl</code></em> :</span></p></td>
-<td>access control list for the identity in question. Includes the <em class="parameter"><code>owner_ctx</code></em> as well.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>access is allowed?</td>
+<td class="parameter_name"><p>owner_ctx</p></td>
+<td class="parameter_description"><p>security context of the identity owner.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.3.8.4.7"></a><h4>Returns</h4>
+<p> is owner?</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-access-control-manager-peer-is-owner-of-identity"></a><h3>gsignond_access_control_manager_peer_is_owner_of_identity ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_access_control_manager_peer_is_owner_of_identity
- (<em class="parameter"><code><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> *self</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *peer_ctx</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *owner_ctx</code></em>);</pre>
-<p>
-Checks if the peer specified in <em class="parameter"><code>peer_ctx</code></em> is the owner of the identity.
-</p>
-<p>
-The default implementation is using <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-check" title="gsignond_security_context_check ()"><code class="function">gsignond_security_context_check()</code></a>
-to check <em class="parameter"><code>peer_ctx</code></em> against <em class="parameter"><code>owner_ctx</code></em> directly.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-access-control-manager-acl-is-valid"></a><h3>gsignond_access_control_manager_acl_is_valid ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_access_control_manager_acl_is_valid
+ (<em class="parameter"><code><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *peer_ctx</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> *identity_acl</code></em>);</pre>
+<p>Checks if the specified peer is allowed to set the specified access
+control list. <a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-owner-of-identity" title="gsignond_access_control_manager_peer_is_owner_of_identity ()"><code class="function">gsignond_access_control_manager_peer_is_owner_of_identity()</code></a>
+is used before calling this method to verify identity ownership.</p>
+<p>The default implementation always returns TRUE.</p>
+<div class="refsect3">
+<a name="id-1.7.3.8.5.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>peer_ctx</code></em> :</span></p></td>
-<td>security context of the peer connection.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>owner_ctx</code></em> :</span></p></td>
-<td>security context of the identity owner.</td>
+<td class="parameter_name"><p>peer_ctx</p></td>
+<td class="parameter_description"><p>security context of the peer connection.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>is owner?</td>
+<td class="parameter_name"><p>identity_acl</p></td>
+<td class="parameter_description"><p>access control list for the identity.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.3.8.5.7"></a><h4>Returns</h4>
+<p> access control list is OK?</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-access-control-manager-security-context-of-keychain"></a><h3>gsignond_access_control_manager_security_context_of_keychain ()</h3>
-<pre class="programlisting"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> * gsignond_access_control_manager_security_context_of_keychain
- (<em class="parameter"><code><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> *self</code></em>);</pre>
-<p>
-Retrieves security context of the keychain application. Keychain application
+<a name="gsignond-access-control-manager-security-context-of-keychain"></a><h3>gsignond_access_control_manager_security_context_of_keychain ()</h3>
+<pre class="programlisting"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> *
+gsignond_access_control_manager_security_context_of_keychain
+ (<em class="parameter"><code><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> *self</code></em>);</pre>
+<p>Retrieves security context of the keychain application. Keychain application
has a special management access to all stored identities and is able to
-perform deletion of all identities from storage.
-</p>
-<p>
-The default implementation returns an empty context. If gSSO was compiled
+perform deletion of all identities from storage.</p>
+<p>The default implementation returns a context either set in <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>,
+or if not set, a value specified through a configure --enable-keychain
+option (see</p>
+<a class="link" href="gsignond-building.html" title="Building and installing the gsignond daemon">Building gsignond</a>), or if that is not
+<p>set either then an empty string "" is returned. </p>
+<p>If gSSO was compiled
with --enable-debug and SSO_KEYCHAIN_SYSCTX environment variable is set, then
-the value of that variable is used to set the returned system context instead.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>security context of the keychain application.</td>
-</tr>
-</tbody>
+the value of that variable is used to set the returned system context instead.</p>
+<div class="refsect3">
+<a name="id-1.7.3.8.6.9"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-access-control-manager-security-context-of-peer"></a><h3>gsignond_access_control_manager_security_context_of_peer ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_access_control_manager_security_context_of_peer
- (<em class="parameter"><code><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *peer_ctx</code></em>,
- <em class="parameter"><code><span class="type">int</span> peer_fd</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *peer_service</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *peer_app_ctx</code></em>);</pre>
-<p>
-Retrieves and sets <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> of the specified peer.
-</p>
-<p>
-The default implementation sets the app context as it was passed, and sets
-the system context to the binary path of the process that is determined from
-<em class="parameter"><code>peer_fd</code></em> and <em class="parameter"><code>peer_service</code></em> parameters.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>peer_ctx</code></em> :</span></p></td>
-<td>instance of security context to be set.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>peer_fd</code></em> :</span></p></td>
-<td>file descriptor of the peer connection if using peer-to-peer dbus, -1 otherwise.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>peer_service</code></em> :</span></p></td>
-<td>g_dbus_method_invocation_get_sender() of the peer connection, if not using peer-to-peer dbus, NULL otherwise</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>peer_app_ctx</code></em> :</span></p></td>
-<td>application context of the peer connection.</td>
-</tr>
-</tbody>
-</table></div>
+<div class="refsect3">
+<a name="id-1.7.3.8.6.10"></a><h4>Returns</h4>
+<p> security context of the keychain application.</p>
+<p></p>
+</div>
</div>
</div>
<div class="refsect1">
+<a name="GSignondAccessControlManager.other_details"></a><h2>Types and Values</h2>
+</div>
+<div class="refsect1">
<a name="GSignondAccessControlManager.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
-<a name="GSignondAccessControlManager--config"></a><h3>The <code class="literal">"config"</code> property</h3>
-<pre class="programlisting"> "config" <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>* : Read / Write / Construct Only</pre>
+<a name="GSignondAccessControlManager--config"></a><h3>The <code class="literal">“config”</code> property</h3>
+<pre class="programlisting"> “config” <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *</pre>
<p>Configuration object.</p>
+<p>Flags: Read / Write / Construct Only</p>
</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignondConfig</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignondConfig</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
<link rel="up" href="ch02.html" title="GSignond configuration">
<link rel="prev" href="ch02.html" title="GSignond configuration">
<link rel="next" href="gsignond-General-configuration.html" title="General configuration">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#GSignondConfig.description" class="shortcut">Description</a>
- |
- <a href="#GSignondConfig.object-hierarchy" class="shortcut">Object Hierarchy</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#GSignondConfig.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#GSignondConfig.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<h2><span class="refentrytitle"><a name="GSignondConfig.top_of_page"></a>GSignondConfig</span></h2>
<p>GSignondConfig — gSSO configuration information</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GSignondConfig.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-config.h>
-
-struct <a class="link" href="GSignondConfig.html#GSignondConfig-struct" title="struct GSignondConfig">GSignondConfig</a>;
-struct <a class="link" href="GSignondConfig.html#GSignondConfigClass" title="struct GSignondConfigClass">GSignondConfigClass</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="GSignondConfig.html#gsignond-config-get-integer" title="gsignond_config_get_integer ()">gsignond_config_get_integer</a> (<em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="GSignondConfig.html#gsignond-config-get-string" title="gsignond_config_get_string ()">gsignond_config_get_string</a> (<em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);
-<a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="returnvalue">GSignondConfig</span></a> * <a class="link" href="GSignondConfig.html#gsignond-config-new" title="gsignond_config_new ()">gsignond_config_new</a> ();
-<span class="returnvalue">void</span> <a class="link" href="GSignondConfig.html#gsignond-config-set-integer" title="gsignond_config_set_integer ()">gsignond_config_set_integer</a> (<em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="GSignondConfig.html#gsignond-config-set-string" title="gsignond_config_set_string ()">gsignond_config_set_string</a> (<em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
-</pre>
+<div class="refsect1">
+<a name="GSignondConfig.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="returnvalue">GSignondConfig</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GSignondConfig.html#gsignond-config-new" title="gsignond_config_new ()">gsignond_config_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondConfig.html#gsignond-config-get-integer" title="gsignond_config_get_integer ()">gsignond_config_get_integer</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondConfig.html#gsignond-config-set-integer" title="gsignond_config_set_integer ()">gsignond_config_set_integer</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GSignondConfig.html#gsignond-config-get-string" title="gsignond_config_get_string ()">gsignond_config_get_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondConfig.html#gsignond-config-set-string" title="gsignond_config_set_string ()">gsignond_config_set_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<div class="refsect1">
<a name="GSignondConfig.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
- <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
- +----GSignondConfig
+<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ <span class="lineart">╰──</span> GSignondConfig
+</pre>
+</div>
+<div class="refsect1">
+<a name="GSignondConfig.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-config.h>
</pre>
</div>
<div class="refsect1">
<a name="GSignondConfig.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> holds configuration information as a set of keys and values
-(integer or strings). The key names are defined in
+<p><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> holds configuration information as a set of keys and values
+(integer or strings). The key names are defined in </p>
<a class="link" href="gsignond-General-configuration.html" title="General configuration">general config keys</a>,
-<a class="link" href="gsignond-Database-configuration.html" title="Database configuration">database config keys</a>, and
-<a class="link" href="gsignond-DBus-configuration.html" title="DBus configuration">DBus config keys</a>.
-</p>
-<p>
-The configuration is discovered from these sources, in decreasing order of
-priority:
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem"><p>environment variables, if gSSO has been compiled with --enable-debug switch.
-See the specific keys documentation for the variable names.</p></li>
-<li class="listitem"><p>gSSO configuration file. See below for where the file is searched for.</p></li>
-<li class="listitem"><p>default values. See the documentation for specific keys for those.</p></li>
-</ul></div>
-<p>
-</p>
-<p>
-</p>
+<p>and <a class="link" href="gsignond-DBus-configuration.html" title="DBus configuration">DBus config keys</a>.</p>
+<p>The configuration is retrieved from the gSSO configuration file. See below
+for where the file is searched for.</p>
<div class="refsect1">
-<a name="idp10159744"></a><h2>Where the configuration file is searched for</h2>
+<a name="id-1.3.2.6.6"></a><h2>Where the configuration file is searched for</h2>
</div>
-<p>
-</p>
-<p>
-If gSSO has been compiled with --enable-debug, then these locations are used,
-in decreasing order of priority:
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<p>If gSSO has been compiled with --enable-debug, then these locations are used,
+in decreasing order of priority:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>GSIGNOND_CONFIG environment variable</p></li>
-<li class="listitem"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#g-get-user-config-dir"><code class="function">g_get_user_config_dir()</code></a> + "gsignond/gsignond.conf"</p></li>
-<li class="listitem"><p>each of <a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#g-get-system-config-dirs"><code class="function">g_get_system_config_dirs()</code></a> + "gsignond/gsignond.conf"</p></li>
+<li class="listitem"><p>g_get_user_config_dir() + "gsignond.conf"</p></li>
+<li class="listitem"><p>path specified in --sysconfdir configure option ($(sysconfdir))</p></li>
+<li class="listitem"><p>each of <a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#g-get-system-config-dirs"><code class="function">g_get_system_config_dirs()</code></a> + "gsignond.conf"</p></li>
</ul></div>
-<p>
-</p>
-<p>
-Otherwise, the config file location is determined at compilation time as
-$(sysconfdir) + "gsignond/gsignond.conf"
-</p>
-<p>
-</p>
+<p>Otherwise, the config file location is determined at compilation time as
+$(sysconfdir) + "gsignond.conf"</p>
<div class="refsect1">
-<a name="idp13808"></a><h2>Example configuration file</h2>
+<a name="id-1.3.2.6.10"></a><h2>Example configuration file</h2>
</div>
-<p>
-</p>
-<p>
-See example configuration file here:
-<a class="ulink" href="http://code.google.com/p/accounts-sso/source/browse/gsignond.conf?repo=gsignond" target="_top">
-http://code.google.com/p/accounts-sso/source/browse/gsignond.conf?repo=gsignond</a>
-</p>
+<p>See example configuration file here:</p>
+<a class="ulink" href="http://code.google.com/p/accounts-sso/source/browse/gsignond.conf.in?repo=gsignond" target="_top">
+http://code.google.com/p/accounts-sso/source/browse/gsignond.conf.in?repo=gsignond</a>
</div>
<div class="refsect1">
-<a name="GSignondConfig.details"></a><h2>Details</h2>
+<a name="GSignondConfig.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
-<a name="GSignondConfig-struct"></a><h3>struct GSignondConfig</h3>
-<pre class="programlisting">struct GSignondConfig;</pre>
-<p>
-Opaque structure for the object.
-</p>
+<a name="gsignond-config-new"></a><h3>gsignond_config_new ()</h3>
+<pre class="programlisting"><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="returnvalue">GSignondConfig</span></a> *
+gsignond_config_new ();</pre>
+<p>Create a <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> object.</p>
+<div class="refsect3">
+<a name="id-1.3.2.7.2.5"></a><h4>Returns</h4>
+<p> an instance of <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>. gSSO extensions should not use this
+as they're already provided with a config object when they're created.</p>
+<p></p>
</div>
-<hr>
-<div class="refsect2">
-<a name="GSignondConfigClass"></a><h3>struct GSignondConfigClass</h3>
-<pre class="programlisting">struct GSignondConfigClass {
-};
-</pre>
-<p>
-Opaque structure for the class.
-</p>
</div>
<hr>
<div class="refsect2">
-<a name="gsignond-config-get-integer"></a><h3>gsignond_config_get_integer ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gsignond_config_get_integer (<em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
-<p>
-Get an integer configuration value.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-config-get-integer"></a><h3>gsignond_config_get_integer ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+gsignond_config_get_integer (<em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
+<p>Get an integer configuration value.</p>
+<div class="refsect3">
+<a name="id-1.3.2.7.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>an instance of <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>an instance of <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>the key name</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the value corresponding to the key as an integer. If the key does not
-exist or cannot be converted to the integer, 0 is returned.</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the key name</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.3.2.7.3.6"></a><h4>Returns</h4>
+<p> the value corresponding to the key as an integer. If the key does not
+exist or cannot be converted to the integer, 0 is returned.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-config-get-string"></a><h3>gsignond_config_get_string ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_config_get_string (<em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
-<p>
-Get a string configuration value.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-config-set-integer"></a><h3>gsignond_config_set_integer ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_config_set_integer (<em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);</pre>
+<p>Sets the configuration value to the provided integer.</p>
+<div class="refsect3">
+<a name="id-1.3.2.7.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>an instance of <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>an instance of <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>the key name</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the key name</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the value corresponding to the key as string. If the key does not
-exist, NULL is returned. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>the value</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-config-new"></a><h3>gsignond_config_new ()</h3>
-<pre class="programlisting"><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="returnvalue">GSignondConfig</span></a> * gsignond_config_new ();</pre>
-<p>
-Create a <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> object.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>an instance of <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>. gSSO extensions should not use this
-as they're already provided with a config object when they're created.</td>
-</tr></tbody>
-</table></div>
</div>
<hr>
<div class="refsect2">
-<a name="gsignond-config-set-integer"></a><h3>gsignond_config_set_integer ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_config_set_integer (<em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);</pre>
-<p>
-Sets the configuration value to the provided integer.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-config-get-string"></a><h3>gsignond_config_get_string ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_config_get_string (<em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
+<p>Get a string configuration value.</p>
+<div class="refsect3">
+<a name="id-1.3.2.7.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>an instance of <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>an instance of <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>the key name</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the key name</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.3.2.7.5.6"></a><h4>Returns</h4>
+<p> the value corresponding to the key as string. If the key does not
+exist, NULL is returned. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-config-set-string"></a><h3>gsignond_config_set_string ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_config_set_string (<em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>
-Sets the configuration value to the provided string.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-config-set-string"></a><h3>gsignond_config_set_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_config_set_string (<em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
+<p>Sets the configuration value to the provided string.</p>
+<div class="refsect3">
+<a name="id-1.3.2.7.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>an instance of <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>an instance of <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>the key name</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the key name</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p> the value. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
+<div class="refsect1">
+<a name="GSignondConfig.other_details"></a><h2>Types and Values</h2>
+</div>
+</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignondCredentials</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignondCredentials</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch05.html" title="GSignond API for writing platform adaptation extensions">
+<link rel="up" href="ch06.html" title="GSignond API for writing platform adaptation extensions">
<link rel="prev" href="GSignondSecretStorage.html" title="GSignondSecretStorage">
-<link rel="next" href="ch06.html" title="Miscellaneous">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<link rel="next" href="ch07.html" title="Miscellaneous">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#GSignondCredentials.description" class="shortcut">Description</a>
- |
- <a href="#GSignondCredentials.object-hierarchy" class="shortcut">Object Hierarchy</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#GSignondCredentials.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#GSignondCredentials.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch05.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch06.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GSignondSecretStorage.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="ch06.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="ch07.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GSignondCredentials"></a><div class="titlepage"></div>
<h2><span class="refentrytitle"><a name="GSignondCredentials.top_of_page"></a>GSignondCredentials</span></h2>
<p>GSignondCredentials — credentials (username, password) associated with an identity</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GSignondCredentials.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-credentials.h>
-
- <a class="link" href="GSignondCredentials.html#GSignondCredentials-struct" title="GSignondCredentials">GSignondCredentials</a>;
- <a class="link" href="GSignondCredentials.html#GSignondCredentialsClass" title="GSignondCredentialsClass">GSignondCredentialsClass</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondCredentials.html#gsignond-credentials-equal" title="gsignond_credentials_equal ()">gsignond_credentials_equal</a> (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *one</code></em>,
- <em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *two</code></em>);
-<span class="returnvalue">guint32</span> <a class="link" href="GSignondCredentials.html#gsignond-credentials-get-id" title="gsignond_credentials_get_id ()">gsignond_credentials_get_id</a> (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="GSignondCredentials.html#gsignond-credentials-get-password" title="gsignond_credentials_get_password ()">gsignond_credentials_get_password</a> (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="GSignondCredentials.html#gsignond-credentials-get-username" title="gsignond_credentials_get_username ()">gsignond_credentials_get_username</a> (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>);
-<a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="returnvalue">GSignondCredentials</span></a> * <a class="link" href="GSignondCredentials.html#gsignond-credentials-new" title="gsignond_credentials_new ()">gsignond_credentials_new</a> ();
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondCredentials.html#gsignond-credentials-set-data" title="gsignond_credentials_set_data ()">gsignond_credentials_set_data</a> (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *password</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondCredentials.html#gsignond-credentials-set-id" title="gsignond_credentials_set_id ()">gsignond_credentials_set_id</a> (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondCredentials.html#gsignond-credentials-set-password" title="gsignond_credentials_set_password ()">gsignond_credentials_set_password</a> (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *password</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondCredentials.html#gsignond-credentials-set-username" title="gsignond_credentials_set_username ()">gsignond_credentials_set_username</a> (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</code></em>);
-</pre>
+<div class="refsect1">
+<a name="GSignondCredentials.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="returnvalue">GSignondCredentials</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-new" title="gsignond_credentials_new ()">gsignond_credentials_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-set-data" title="gsignond_credentials_set_data ()">gsignond_credentials_set_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-set-id" title="gsignond_credentials_set_id ()">gsignond_credentials_set_id</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">guint32</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-get-id" title="gsignond_credentials_get_id ()">gsignond_credentials_get_id</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-set-username" title="gsignond_credentials_set_username ()">gsignond_credentials_set_username</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-get-username" title="gsignond_credentials_get_username ()">gsignond_credentials_get_username</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-set-password" title="gsignond_credentials_set_password ()">gsignond_credentials_set_password</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-get-password" title="gsignond_credentials_get_password ()">gsignond_credentials_get_password</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-equal" title="gsignond_credentials_equal ()">gsignond_credentials_equal</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<div class="refsect1">
<a name="GSignondCredentials.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
- <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
- +----GSignondCredentials
+<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ <span class="lineart">╰──</span> GSignondCredentials
+</pre>
+</div>
+<div class="refsect1">
+<a name="GSignondCredentials.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-credentials.h>
</pre>
</div>
<div class="refsect1">
<a name="GSignondCredentials.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> hold a username, password, and identity id, associated
+<p><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> hold a username, password, and identity id, associated
with an identity. This information in stored in secret storage using
-<a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>.
-</p>
+<a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>.</p>
</div>
<div class="refsect1">
-<a name="GSignondCredentials.details"></a><h2>Details</h2>
+<a name="GSignondCredentials.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
-<a name="GSignondCredentials-struct"></a><h3>GSignondCredentials</h3>
-<pre class="programlisting">typedef struct _GSignondCredentials GSignondCredentials;</pre>
-<p>
-Opaque <a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> data structure.
-</p>
+<a name="gsignond-credentials-new"></a><h3>gsignond_credentials_new ()</h3>
+<pre class="programlisting"><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="returnvalue">GSignondCredentials</span></a> *
+gsignond_credentials_new ();</pre>
+<p>Creates a new empty <a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> object</p>
+<div class="refsect3">
+<a name="id-1.7.7.7.2.5"></a><h4>Returns</h4>
+<p> the <a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> object. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
-<hr>
-<div class="refsect2">
-<a name="GSignondCredentialsClass"></a><h3>GSignondCredentialsClass</h3>
-<pre class="programlisting">typedef struct {
-} GSignondCredentialsClass;
-</pre>
-<p>
-Opaque <a class="link" href="GSignondCredentials.html#GSignondCredentialsClass" title="GSignondCredentialsClass"><span class="type">GSignondCredentialsClass</span></a> data structure.
-</p>
</div>
<hr>
<div class="refsect2">
-<a name="gsignond-credentials-equal"></a><h3>gsignond_credentials_equal ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_credentials_equal (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *one</code></em>,
- <em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *two</code></em>);</pre>
-<p>
-Compares elements of two GSignondCredentials object for equality.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-credentials-set-data"></a><h3>gsignond_credentials_set_data ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_credentials_set_data (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>,
+ <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *password</code></em>);</pre>
+<p>Sets the data of the <a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.7.7.7.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>one</code></em> :</span></p></td>
-<td>the first credential to be compared.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the object whose data is to be set.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>the identity id associated with the credentials.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>two</code></em> :</span></p></td>
-<td>the second credential to be compared.</td>
+<td class="parameter_name"><p>username</p></td>
+<td class="parameter_description"><p> the username. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if id, username and password are same for both credential
-objects, FALSE otherwise.</td>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p>the password. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.7.7.3.6"></a><h4>Returns</h4>
+<p> TRUE if successful, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-credentials-get-id"></a><h3>gsignond_credentials_get_id ()</h3>
-<pre class="programlisting"><span class="returnvalue">guint32</span> gsignond_credentials_get_id (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>);</pre>
-<p>
-Gets the identity id
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-credentials-set-id"></a><h3>gsignond_credentials_set_id ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_credentials_set_id (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>,
+ <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>);</pre>
+<p>Sets the identity id of the <a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> object</p>
+<div class="refsect3">
+<a name="id-1.7.7.7.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the object whose id is to be set.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the object whose id is to be set.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the id</td>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>the id.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.7.7.4.6"></a><h4>Returns</h4>
+<p> TRUE if successful, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-credentials-get-password"></a><h3>gsignond_credentials_get_password ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_credentials_get_password (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>);</pre>
-<p>
-Gets the password from the <a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> object
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the object whose password is to be set.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the password if the object is valid, NULL otherwise. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<a name="gsignond-credentials-get-id"></a><h3>gsignond_credentials_get_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint32</span>
+gsignond_credentials_get_id (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>);</pre>
+<p>Gets the identity id</p>
+<div class="refsect3">
+<a name="id-1.7.7.7.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the object whose id is to be set.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.7.7.5.6"></a><h4>Returns</h4>
+<p> the id</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-credentials-get-username"></a><h3>gsignond_credentials_get_username ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_credentials_get_username (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>);</pre>
-<p>
-Gets the username of the <a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> object
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-credentials-set-username"></a><h3>gsignond_credentials_set_username ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_credentials_set_username (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</code></em>);</pre>
+<p>Sets the username of the GSignondCredentials object</p>
+<div class="refsect3">
+<a name="id-1.7.7.7.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the object whose username is to be set.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the object whose username is to be set.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the username if the object is valid, NULL otherwise. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>username</p></td>
+<td class="parameter_description"><p> the username. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.7.7.6.6"></a><h4>Returns</h4>
+<p> TRUE if successful, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-credentials-new"></a><h3>gsignond_credentials_new ()</h3>
-<pre class="programlisting"><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="returnvalue">GSignondCredentials</span></a> * gsignond_credentials_new ();</pre>
-<p>
-Creates a new empty <a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> object
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-credentials-get-username"></a><h3>gsignond_credentials_get_username ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_credentials_get_username (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>);</pre>
+<p>Gets the username of the <a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> object</p>
+<div class="refsect3">
+<a name="id-1.7.7.7.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the object whose username is to be set.</p></td>
+<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-credentials-set-data"></a><h3>gsignond_credentials_set_data ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_credentials_set_data (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *password</code></em>);</pre>
-<p>
-Sets the data of the <a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the object whose data is to be set.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>the identity id associated with the credentials.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>username</code></em> :</span></p></td>
-<td>the username. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>password</code></em> :</span></p></td>
-<td>the password. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if successful, FALSE otherwise.</td>
-</tr>
-</tbody>
-</table></div>
+<div class="refsect3">
+<a name="id-1.7.7.7.7.6"></a><h4>Returns</h4>
+<p> the username if the object is valid, NULL otherwise. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
</div>
<hr>
<div class="refsect2">
-<a name="gsignond-credentials-set-id"></a><h3>gsignond_credentials_set_id ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_credentials_set_id (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>);</pre>
-<p>
-Sets the identity id of the <a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> object
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-credentials-set-password"></a><h3>gsignond_credentials_set_password ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_credentials_set_password (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *password</code></em>);</pre>
+<p>Sets the password of the GSignondCredentials object</p>
+<div class="refsect3">
+<a name="id-1.7.7.7.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the object whose id is to be set.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the object whose password is to be set.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>the id.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if successful, FALSE otherwise.</td>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p> the password. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.7.7.8.6"></a><h4>Returns</h4>
+<p> TRUE if successful, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-credentials-set-password"></a><h3>gsignond_credentials_set_password ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_credentials_set_password (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *password</code></em>);</pre>
-<p>
-Sets the password of the GSignondCredentials object
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the object whose password is to be set.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>password</code></em> :</span></p></td>
-<td>the password. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if successful, FALSE otherwise.</td>
-</tr>
-</tbody>
+<a name="gsignond-credentials-get-password"></a><h3>gsignond_credentials_get_password ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_credentials_get_password (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>);</pre>
+<p>Gets the password from the <a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> object</p>
+<div class="refsect3">
+<a name="id-1.7.7.7.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the object whose password is to be set.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.7.7.9.6"></a><h4>Returns</h4>
+<p> the password if the object is valid, NULL otherwise. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-credentials-set-username"></a><h3>gsignond_credentials_set_username ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_credentials_set_username (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</code></em>);</pre>
-<p>
-Sets the username of the GSignondCredentials object
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-credentials-equal"></a><h3>gsignond_credentials_equal ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_credentials_equal (<em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *one</code></em>,
+ <em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *two</code></em>);</pre>
+<p>Compares elements of two GSignondCredentials object for equality.</p>
+<div class="refsect3">
+<a name="id-1.7.7.7.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the object whose username is to be set.</td>
+<td class="parameter_name"><p>one</p></td>
+<td class="parameter_description"><p>the first credential to be compared.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>username</code></em> :</span></p></td>
-<td>the username. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if successful, FALSE otherwise.</td>
+<td class="parameter_name"><p>two</p></td>
+<td class="parameter_description"><p>the second credential to be compared.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.7.7.10.6"></a><h4>Returns</h4>
+<p> TRUE if id, username and password are same for both credential
+objects, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="GSignondCredentials.other_details"></a><h2>Types and Values</h2>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignondDigestPlugin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignondDigestPlugin</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch04.html" title="Standard in-tree authentication plugins">
-<link rel="prev" href="ch04.html" title="Standard in-tree authentication plugins">
+<link rel="up" href="ch05.html" title="Standard in-tree authentication plugins">
+<link rel="prev" href="ch05.html" title="Standard in-tree authentication plugins">
<link rel="next" href="GSignondSsoTestPlugin.html" title="GSignondSsoTestPlugin">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#GSignondDigestPlugin.description" class="shortcut">Description</a>
- |
- <a href="#GSignondDigestPlugin.object-hierarchy" class="shortcut">Object Hierarchy</a>
- |
- <a href="#GSignondDigestPlugin.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#GSignondDigestPlugin.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#GSignondDigestPlugin.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch04.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="ch04.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch05.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch05.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GSignondSsoTestPlugin.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<h2><span class="refentrytitle"><a name="GSignondDigestPlugin.top_of_page"></a>GSignondDigestPlugin</span></h2>
<p>GSignondDigestPlugin — a plugin that performs HTTP Digest authentication</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GSignondDigestPlugin.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-digest-plugin.h>
-
-struct <a class="link" href="GSignondDigestPlugin.html#GSignondDigestPlugin-struct" title="struct GSignondDigestPlugin">GSignondDigestPlugin</a>;
-struct <a class="link" href="GSignondDigestPlugin.html#GSignondDigestPluginClass" title="struct GSignondDigestPluginClass">GSignondDigestPluginClass</a>;
-</pre>
-</div>
<div class="refsect1">
<a name="GSignondDigestPlugin.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
- <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
- +----GSignondDigestPlugin
+<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ <span class="lineart">╰──</span> GSignondDigestPlugin
</pre>
</div>
<div class="refsect1">
-<a name="GSignondDigestPlugin.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
-<p>
-GSignondDigestPlugin implements
- GSignondPlugin.</p>
+<a name="GSignondDigestPlugin.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-digest-plugin.h>
+</pre>
</div>
<div class="refsect1">
<a name="GSignondDigestPlugin.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GSignondDigestPlugin.html" title="GSignondDigestPlugin"><span class="type">GSignondDigestPlugin</span></a> performs HTTP Digest authentication without exposing
-the password to the application. Digest authentication is described in
+<p><a class="link" href="GSignondDigestPlugin.html" title="GSignondDigestPlugin"><span class="type">GSignondDigestPlugin</span></a> performs HTTP Digest authentication without exposing
+the password to the application. Digest authentication is described in </p>
<a class="ulink" href="http://tools.ietf.org/html/rfc2617" target="_top">RFC 2617</a>.
-</p>
-<p>
-<a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-request-initial" title="gsignond_plugin_request_initial ()"><code class="function">gsignond_plugin_request_initial()</code></a> <em class="parameter"><code>session_data</code></em> parameter should include
-the following string items, whose meaning is described in the RFC:
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<p>gsignond_plugin_request_initial() <em class="parameter"><code>session_data</code></em>
+ parameter should include
+the following string items, whose meaning is described in the RFC: </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>username and secret. If they are absent, they are requested from the user
via gSSO UI.</p></li>
-<li class="listitem"><p>realm, "Algo", "Nonce", "Method", "DigestUri" - mandatory items.</p></li>
-<li class="listitem"><p>"NonceCount", "Qop", "HEntity". "NonceCount" must be present if "Qop" is
+<li class="listitem"><p>realm, allowed realms, "Algo", "Nonce", "Method", "DigestUri" - mandatory items.</p></li>
+<li class="listitem"><p>"NonceCount", "Qop", "HEntity". "NonceCount" must be present if "Qop" is
present, "HEntity" must be present if "Qop" is present and set to "auth-int".</p></li>
</ul></div>
-<p>
-</p>
-<p>
-If the plugin has all the data to calculate the digest, it issues
-<span class="type">"response-final"</span> signal. <em class="parameter"><code>session_data</code></em> in that signal contains
-the username, "CNonce" item and the digest value under the "Response" key.
-</p>
-<p>
-If some of the data is incorrect or not available, <span class="type">"error"</span>
-signal is issued instead.
-</p>
-<p>
-<span class="type">"type"</span> property is set to "digest", and <span class="type">"mechanisms"</span>
-property contains a single entry "digest".
-</p>
+<p>If the plugin has all the data to calculate the digest, it issues
+<a class="link" href="GSignondPlugin.html#GSignondPlugin-response-final" title="The “response-final” signal"><span class="type">“response-final”</span></a> signal. <em class="parameter"><code>session_data</code></em>
+ in that signal contains
+the username, "CNonce" item and the digest value under the "Response" key.</p>
+<p>If some of the data is incorrect or not available, <a class="link" href="GSignondPlugin.html#GSignondPlugin-error" title="The “error” signal"><span class="type">“error”</span></a>
+signal is issued instead.</p>
+<p><a class="link" href="GSignondPlugin.html#GSignondPlugin--type" title="The “type” property"><span class="type">“type”</span></a> property is set to "digest", and <a class="link" href="GSignondPlugin.html#GSignondPlugin--mechanisms" title="The “mechanisms” property"><span class="type">“mechanisms”</span></a>
+property contains a single entry "digest".</p>
</div>
<div class="refsect1">
-<a name="GSignondDigestPlugin.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GSignondDigestPlugin-struct"></a><h3>struct GSignondDigestPlugin</h3>
-<pre class="programlisting">struct GSignondDigestPlugin;</pre>
-<p>
-Opaque <a class="link" href="GSignondDigestPlugin.html" title="GSignondDigestPlugin"><span class="type">GSignondDigestPlugin</span></a> data structure.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GSignondDigestPluginClass"></a><h3>struct GSignondDigestPluginClass</h3>
-<pre class="programlisting">struct GSignondDigestPluginClass {
- GObjectClass parent_class;
-};
-</pre>
-<p>
-Opaque <a class="link" href="GSignondDigestPlugin.html#GSignondDigestPluginClass" title="struct GSignondDigestPluginClass"><span class="type">GSignondDigestPluginClass</span></a> data structure.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GSignondDigestPluginClass.parent-class"></a>parent_class</code></em>;</span></p></td>
-<td>the parent class structure</td>
-</tr></tbody>
-</table></div>
+<a name="GSignondDigestPlugin.functions_details"></a><h2>Functions</h2>
</div>
+<div class="refsect1">
+<a name="GSignondDigestPlugin.other_details"></a><h2>Types and Values</h2>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignondExtension</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignondExtension</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch05.html" title="GSignond API for writing platform adaptation extensions">
-<link rel="prev" href="ch05.html" title="GSignond API for writing platform adaptation extensions">
+<link rel="up" href="ch06.html" title="GSignond API for writing platform adaptation extensions">
+<link rel="prev" href="ch06.html" title="GSignond API for writing platform adaptation extensions">
<link rel="next" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#GSignondExtension.description" class="shortcut">Description</a>
- |
- <a href="#GSignondExtension.object-hierarchy" class="shortcut">Object Hierarchy</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#GSignondExtension.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#GSignondExtension.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch05.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="ch05.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch06.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch06.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GSignondAccessControlManager.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<h2><span class="refentrytitle"><a name="GSignondExtension.top_of_page"></a>GSignondExtension</span></h2>
<p>GSignondExtension — provides platform adaptation functionality</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GSignondExtension.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-plugin-interface.h>
-
-struct <a class="link" href="GSignondExtension.html#GSignondExtension-struct" title="struct GSignondExtension">GSignondExtension</a>;
-struct <a class="link" href="GSignondExtension.html#GSignondExtensionClass" title="struct GSignondExtensionClass">GSignondExtensionClass</a>;
-<a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="returnvalue">GSignondAccessControlManager</span></a> * <a class="link" href="GSignondExtension.html#gsignond-extension-get-access-control-manager" title="gsignond_extension_get_access_control_manager ()">gsignond_extension_get_access_control_manager</a>
- (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *config</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="GSignondExtension.html#gsignond-extension-get-name" title="gsignond_extension_get_name ()">gsignond_extension_get_name</a> (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>);
-<a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="returnvalue">GSignondSecretStorage</span></a> * <a class="link" href="GSignondExtension.html#gsignond-extension-get-secret-storage" title="gsignond_extension_get_secret_storage ()">gsignond_extension_get_secret_storage</a>
- (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *config</code></em>);
-<a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="returnvalue">GSignondStorageManager</span></a> * <a class="link" href="GSignondExtension.html#gsignond-extension-get-storage-manager" title="gsignond_extension_get_storage_manager ()">gsignond_extension_get_storage_manager</a>
- (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *config</code></em>);
-<span class="returnvalue">guint32</span> <a class="link" href="GSignondExtension.html#gsignond-extension-get-version" title="gsignond_extension_get_version ()">gsignond_extension_get_version</a> (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="GSignondExtension.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
- <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
- +----GSignondExtension
-</pre>
-</div>
<div class="refsect1">
-<a name="GSignondExtension.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> provides access to platform adaptation functionality. It
-contains getter methods for default implementations of <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a>,
-<a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> and <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a>.
-</p>
-<p>
-gSSO can be adapted to a specific platform environment by implementing a
-custom extension module. The following steps need to be taken:
-</p>
-<p>
-a) subclass and re-implement some (or all) of the functionality of the above
-three classes.
-</p>
-<p>
-b) subclass <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> and provide implementations of its getter methods for those
-of the adaptation classes that have been changed.
-</p>
-<p>
-d) provide a function <code class="function">GSignondExtension * extensionname_extension_init(void)</code>
-that returns an instance of the <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> subclass.
-</p>
-<p>
-c) build and install these implementations as a gSSO extension module and
-configure gSSO to use it.
-</p>
-<p>
-Examples of custom extensions can be seen here:
-<a class="ulink" href="https://code.google.com/p/accounts-sso/source/browse/?repo=gsignond#git%2Fsrc%2Fextensions" target="_top">
-https://code.google.com/p/accounts-sso/source/browse/?repo=gsignond#git%2Fsrc%2Fextensions</a>
-and gSSO configuration is described in <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>.
-</p>
-</div>
-<div class="refsect1">
-<a name="GSignondExtension.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GSignondExtension-struct"></a><h3>struct GSignondExtension</h3>
-<pre class="programlisting">struct GSignondExtension;</pre>
-<p>
-Opaque <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> data structure.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GSignondExtensionClass"></a><h3>struct GSignondExtensionClass</h3>
-<pre class="programlisting">struct GSignondExtensionClass {
- GObjectClass parent_class;
-
- const gchar * (*get_extension_name) (GSignondExtension *self);
-
- guint32 (*get_extension_version) (GSignondExtension *self);
-
- GSignondStorageManager * (*get_storage_manager) (GSignondExtension *self,
- GSignondConfig *config);
-
- GSignondSecretStorage * (*get_secret_storage) (GSignondExtension *self,
- GSignondConfig *config);
-
- GSignondAccessControlManager * (*get_access_control_manager) (
- GSignondExtension *self,
- GSignondConfig *config);
-};
-</pre>
-<p>
-<a class="link" href="GSignondExtension.html#GSignondExtensionClass" title="struct GSignondExtensionClass"><span class="type">GSignondExtensionClass</span></a> class containing pointers to class methods.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GSignondExtension.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GSignondExtensionClass.parent-class"></a>parent_class</code></em>;</span></p></td>
-<td>the parent class</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondExtensionClass.get-extension-name"></a>get_extension_name</code></em> ()</span></p></td>
-<td>implementation of <a class="link" href="GSignondExtension.html#gsignond-extension-get-name" title="gsignond_extension_get_name ()"><code class="function">gsignond_extension_get_name()</code></a>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GSignondExtension.html#gsignond-extension-get-name" title="gsignond_extension_get_name ()">gsignond_extension_get_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondExtensionClass.get-extension-version"></a>get_extension_version</code></em> ()</span></p></td>
-<td>implementation of <a class="link" href="GSignondExtension.html#gsignond-extension-get-version" title="gsignond_extension_get_version ()"><code class="function">gsignond_extension_get_version()</code></a>
+<td class="function_type">
+<span class="returnvalue">guint32</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondExtension.html#gsignond-extension-get-version" title="gsignond_extension_get_version ()">gsignond_extension_get_version</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondExtensionClass.get-storage-manager"></a>get_storage_manager</code></em> ()</span></p></td>
-<td>implementation of <a class="link" href="GSignondExtension.html#gsignond-extension-get-storage-manager" title="gsignond_extension_get_storage_manager ()"><code class="function">gsignond_extension_get_storage_manager()</code></a>
+<td class="function_type">
+<a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="returnvalue">GSignondStorageManager</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GSignondExtension.html#gsignond-extension-get-storage-manager" title="gsignond_extension_get_storage_manager ()">gsignond_extension_get_storage_manager</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondExtensionClass.get-secret-storage"></a>get_secret_storage</code></em> ()</span></p></td>
-<td>implementation of <a class="link" href="GSignondExtension.html#gsignond-extension-get-secret-storage" title="gsignond_extension_get_secret_storage ()"><code class="function">gsignond_extension_get_secret_storage()</code></a>
+<td class="function_type">
+<a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="returnvalue">GSignondSecretStorage</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GSignondExtension.html#gsignond-extension-get-secret-storage" title="gsignond_extension_get_secret_storage ()">gsignond_extension_get_secret_storage</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondExtensionClass.get-access-control-manager"></a>get_access_control_manager</code></em> ()</span></p></td>
-<td>implementation of <a class="link" href="GSignondExtension.html#gsignond-extension-get-access-control-manager" title="gsignond_extension_get_access_control_manager ()"><code class="function">gsignond_extension_get_access_control_manager()</code></a>
+<td class="function_type">
+<a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="returnvalue">GSignondAccessControlManager</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GSignondExtension.html#gsignond-extension-get-access-control-manager" title="gsignond_extension_get_access_control_manager ()">gsignond_extension_get_access_control_manager</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect1">
+<a name="GSignondExtension.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ <span class="lineart">╰──</span> GSignondExtension
+</pre>
+</div>
+<div class="refsect1">
+<a name="GSignondExtension.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-plugin-interface.h>
+</pre>
+</div>
+<div class="refsect1">
+<a name="GSignondExtension.description"></a><h2>Description</h2>
+<p><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> provides access to platform adaptation functionality. It
+contains getter methods for default implementations of <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a>,
+<a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> and <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a>.</p>
+<p>gSSO can be adapted to a specific platform environment by implementing a
+custom extension module. The following steps need to be taken:</p>
+<p>a) subclass and re-implement some (or all) of the functionality of the above
+three classes.</p>
+<p>b) subclass <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> and provide implementations of its getter methods for those
+of the adaptation classes that have been changed.</p>
+<p>d) provide a function <code class="function">GSignondExtension * extensionname_extension_init(void)</code>
+that returns an instance of the <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> subclass.</p>
+<p>c) build and install these implementations as a gSSO extension module and
+configure gSSO to use it.</p>
+<p>Examples of custom extensions can be seen here:</p>
+<a class="ulink" href="https://code.google.com/p/accounts-sso/source/browse/?repo=gsignond#git%2Fsrc%2Fextensions" target="_top">
+https://code.google.com/p/accounts-sso/source/browse/?repo=gsignond#git%2Fsrc%2Fextensions</a><p>and gSSO configuration is described in <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>.</p>
+</div>
+<div class="refsect1">
+<a name="GSignondExtension.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gsignond-extension-get-name"></a><h3>gsignond_extension_get_name ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_extension_get_name (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>);</pre>
+<p>Get a human readable name of the extension. Default implementation
+returns "default".</p>
+<div class="refsect3">
+<a name="id-1.7.2.7.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.7.2.7.2.6"></a><h4>Returns</h4>
+<p> name of the extension. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-extension-get-access-control-manager"></a><h3>gsignond_extension_get_access_control_manager ()</h3>
-<pre class="programlisting"><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="returnvalue">GSignondAccessControlManager</span></a> * gsignond_extension_get_access_control_manager
- (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *config</code></em>);</pre>
-<p>
-Factory method to get a singleton access control manager object. See
-<a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> for the description of the default implementation.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
-<td>configuration object instance.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>access control manager object instance. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<a name="gsignond-extension-get-version"></a><h3>gsignond_extension_get_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint32</span>
+gsignond_extension_get_version (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>);</pre>
+<p>Get version of the extension, split into four bytes in order from MSB to LSB;
+major, minor, patchlevel, build. Default implementation returns 0.</p>
+<div class="refsect3">
+<a name="id-1.7.2.7.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-extension-get-name"></a><h3>gsignond_extension_get_name ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_extension_get_name (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>);</pre>
-<p>
-Get a human readable name of the extension. Default implementation
-returns "default".
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-extension-get-storage-manager"></a><h3>gsignond_extension_get_storage_manager ()</h3>
+<pre class="programlisting"><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="returnvalue">GSignondStorageManager</span></a> *
+gsignond_extension_get_storage_manager
+ (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *config</code></em>);</pre>
+<p>Factory method to get a singleton storage manager object. See
+<a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> for the description of the default implementation.</p>
+<div class="refsect3">
+<a name="id-1.7.2.7.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>name of the extension. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>config</p></td>
+<td class="parameter_description"><p>configuration object instance.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.2.7.4.6"></a><h4>Returns</h4>
+<p> storage manager object instance. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-extension-get-secret-storage"></a><h3>gsignond_extension_get_secret_storage ()</h3>
-<pre class="programlisting"><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="returnvalue">GSignondSecretStorage</span></a> * gsignond_extension_get_secret_storage
- (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *config</code></em>);</pre>
-<p>
-Factory method to get a singleton secret storage object. See
-<a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> for the description of the default implementation.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-extension-get-secret-storage"></a><h3>gsignond_extension_get_secret_storage ()</h3>
+<pre class="programlisting"><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="returnvalue">GSignondSecretStorage</span></a> *
+gsignond_extension_get_secret_storage (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *config</code></em>);</pre>
+<p>Factory method to get a singleton secret storage object. See
+<a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> for the description of the default implementation.</p>
+<div class="refsect3">
+<a name="id-1.7.2.7.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
-<td>configuration object instance.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>secret storage object instance. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>config</p></td>
+<td class="parameter_description"><p>configuration object instance.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.2.7.5.6"></a><h4>Returns</h4>
+<p> secret storage object instance. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-extension-get-storage-manager"></a><h3>gsignond_extension_get_storage_manager ()</h3>
-<pre class="programlisting"><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="returnvalue">GSignondStorageManager</span></a> * gsignond_extension_get_storage_manager
- (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *config</code></em>);</pre>
-<p>
-Factory method to get a singleton storage manager object. See
-<a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> for the description of the default implementation.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-extension-get-access-control-manager"></a><h3>gsignond_extension_get_access_control_manager ()</h3>
+<pre class="programlisting"><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="returnvalue">GSignondAccessControlManager</span></a> *
+gsignond_extension_get_access_control_manager
+ (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *config</code></em>);</pre>
+<p>Factory method to get a singleton access control manager object. See
+<a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> for the description of the default implementation.</p>
+<div class="refsect3">
+<a name="id-1.7.2.7.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
-<td>configuration object instance.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>storage manager object instance. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>config</p></td>
+<td class="parameter_description"><p>configuration object instance.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-extension-get-version"></a><h3>gsignond_extension_get_version ()</h3>
-<pre class="programlisting"><span class="returnvalue">guint32</span> gsignond_extension_get_version (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>);</pre>
-<p>
-Get version of the extension, split into four bytes in order from MSB to LSB;
-major, minor, patchlevel, build. Default implementation returns 0.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
-</tr></tbody>
-</table></div>
+<div class="refsect3">
+<a name="id-1.7.2.7.6.6"></a><h4>Returns</h4>
+<p> access control manager object instance. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
</div>
</div>
+<div class="refsect1">
+<a name="GSignondExtension.other_details"></a><h2>Types and Values</h2>
+</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignondPasswordPlugin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignondPasswordPlugin</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch04.html" title="Standard in-tree authentication plugins">
+<link rel="up" href="ch05.html" title="Standard in-tree authentication plugins">
<link rel="prev" href="GSignondSsoTestPlugin.html" title="GSignondSsoTestPlugin">
-<link rel="next" href="ch05.html" title="GSignond API for writing platform adaptation extensions">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<link rel="next" href="ch06.html" title="GSignond API for writing platform adaptation extensions">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#GSignondPasswordPlugin.description" class="shortcut">Description</a>
- |
- <a href="#GSignondPasswordPlugin.object-hierarchy" class="shortcut">Object Hierarchy</a>
- |
- <a href="#GSignondPasswordPlugin.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#GSignondPasswordPlugin.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#GSignondPasswordPlugin.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch04.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch05.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GSignondSsoTestPlugin.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="ch05.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="ch06.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GSignondPasswordPlugin"></a><div class="titlepage"></div>
<h2><span class="refentrytitle"><a name="GSignondPasswordPlugin.top_of_page"></a>GSignondPasswordPlugin</span></h2>
<p>GSignondPasswordPlugin — a plugin for retrieving the username/password</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GSignondPasswordPlugin.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-password-plugin.h>
-
-struct <a class="link" href="GSignondPasswordPlugin.html#GSignondPasswordPlugin-struct" title="struct GSignondPasswordPlugin">GSignondPasswordPlugin</a>;
-struct <a class="link" href="GSignondPasswordPlugin.html#GSignondPasswordPluginClass" title="struct GSignondPasswordPluginClass">GSignondPasswordPluginClass</a>;
-</pre>
-</div>
<div class="refsect1">
<a name="GSignondPasswordPlugin.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
- <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
- +----GSignondPasswordPlugin
+<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ <span class="lineart">╰──</span> GSignondPasswordPlugin
</pre>
</div>
<div class="refsect1">
-<a name="GSignondPasswordPlugin.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
-<p>
-GSignondPasswordPlugin implements
- GSignondPlugin.</p>
+<a name="GSignondPasswordPlugin.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-password-plugin.h>
+</pre>
</div>
<div class="refsect1">
<a name="GSignondPasswordPlugin.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GSignondPasswordPlugin.html" title="GSignondPasswordPlugin"><span class="type">GSignondPasswordPlugin</span></a> is used in login/password based authentication protocols.
+<p><a class="link" href="GSignondPasswordPlugin.html" title="GSignondPasswordPlugin"><span class="type">GSignondPasswordPlugin</span></a> is used in login/password based authentication protocols.
It returns to the applications the username and password associated with an
identity. The plugin first checks if the daemon has placed them in
-<a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-request-initial" title="gsignond_plugin_request_initial ()"><code class="function">gsignond_plugin_request_initial()</code></a> <em class="parameter"><code>session_data</code></em> parameter
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-request-initial" title="gsignond_plugin_request_initial ()"><code class="function">gsignond_plugin_request_initial()</code></a> <em class="parameter"><code>session_data</code></em>
+ parameter
(that means they're already stored in gSSO secure database), and if not,
-the user is asked for the username and password via gSSO UI.
-</p>
-<p>
-The plugin returns the username and password via <span class="type">"response-final"</span>
-if it was able to obtain them, and issues <span class="type">"error"</span> otherwise.
-</p>
-<p>
-<span class="type">"type"</span> property is set to "password", and <span class="type">"mechanisms"</span>
-property contains a single entry "password".
-</p>
+the user is asked for the username and password via gSSO UI.</p>
+<p>The plugin returns the username and password via <a class="link" href="GSignondPlugin.html#GSignondPlugin-response-final" title="The “response-final” signal"><span class="type">“response-final”</span></a>
+if it was able to obtain them, and issues <a class="link" href="GSignondPlugin.html#GSignondPlugin-error" title="The “error” signal"><span class="type">“error”</span></a> otherwise.</p>
+<p><a class="link" href="GSignondPlugin.html#GSignondPlugin--type" title="The “type” property"><span class="type">“type”</span></a> property is set to "password", and <a class="link" href="GSignondPlugin.html#GSignondPlugin--mechanisms" title="The “mechanisms” property"><span class="type">“mechanisms”</span></a>
+property contains a single entry "password".</p>
</div>
<div class="refsect1">
-<a name="GSignondPasswordPlugin.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GSignondPasswordPlugin-struct"></a><h3>struct GSignondPasswordPlugin</h3>
-<pre class="programlisting">struct GSignondPasswordPlugin;</pre>
-<p>
-Opaque <a class="link" href="GSignondPasswordPlugin.html" title="GSignondPasswordPlugin"><span class="type">GSignondPasswordPlugin</span></a> data structure.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GSignondPasswordPluginClass"></a><h3>struct GSignondPasswordPluginClass</h3>
-<pre class="programlisting">struct GSignondPasswordPluginClass {
- GObjectClass parent_class;
-};
-</pre>
-<p>
-Opaque <a class="link" href="GSignondPasswordPlugin.html#GSignondPasswordPluginClass" title="struct GSignondPasswordPluginClass"><span class="type">GSignondPasswordPluginClass</span></a> data structure.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GSignondPasswordPluginClass.parent-class"></a>parent_class</code></em>;</span></p></td>
-<td>the parent class structure</td>
-</tr></tbody>
-</table></div>
+<a name="GSignondPasswordPlugin.functions_details"></a><h2>Functions</h2>
</div>
+<div class="refsect1">
+<a name="GSignondPasswordPlugin.other_details"></a><h2>Types and Values</h2>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gsignond API Reference Manual: GSignondPlugin</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="gsignond API Reference Manual">
+<link rel="up" href="ch04.html" title="GSignond API for writing GLib-based authentication plugins">
+<link rel="prev" href="ch04.html" title="GSignond API for writing GLib-based authentication plugins">
+<link rel="next" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#GSignondPlugin.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#GSignondPlugin.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span>
+ <a href="#GSignondPlugin.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span>
+ <a href="#GSignondPlugin.signals" class="shortcut">Signals</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch04.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch04.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gsignond-GSignondDictionary.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="GSignondPlugin"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="GSignondPlugin.top_of_page"></a>GSignondPlugin</span></h2>
+<p>GSignondPlugin — an interface for implementing GLib-based authentication plugins</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="GSignondPlugin.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-cancel" title="gsignond_plugin_cancel ()">gsignond_plugin_cancel</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-request-initial" title="gsignond_plugin_request_initial ()">gsignond_plugin_request_initial</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-request" title="gsignond_plugin_request ()">gsignond_plugin_request</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-user-action-finished" title="gsignond_plugin_user_action_finished ()">gsignond_plugin_user_action_finished</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-refresh" title="gsignond_plugin_refresh ()">gsignond_plugin_refresh</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-response" title="gsignond_plugin_response ()">gsignond_plugin_response</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-response-final" title="gsignond_plugin_response_final ()">gsignond_plugin_response_final</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-store" title="gsignond_plugin_store ()">gsignond_plugin_store</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-error" title="gsignond_plugin_error ()">gsignond_plugin_error</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-user-action-required" title="gsignond_plugin_user_action_required ()">gsignond_plugin_user_action_required</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-refreshed" title="gsignond_plugin_refreshed ()">gsignond_plugin_refreshed</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-status-changed" title="gsignond_plugin_status_changed ()">gsignond_plugin_status_changed</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GSignondPlugin.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody>
+<tr>
+<td class="property_type"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a></td>
+<td class="property_name"><a class="link" href="GSignondPlugin.html#GSignondPlugin--mechanisms" title="The “mechanisms” property">mechanisms</a></td>
+<td class="property_flags">Read</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="GSignondPlugin.html#GSignondPlugin--type" title="The “type” property">type</a></td>
+<td class="property_flags">Read</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GSignondPlugin.signals"></a><h2>Signals</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="signals_return">
+<col width="300px" class="signals_name">
+<col width="200px" class="signals_flags">
+</colgroup>
+<tbody>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GSignondPlugin.html#GSignondPlugin-error" title="The “error” signal">error</a></td>
+<td class="signal_flags"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></td>
+</tr>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GSignondPlugin.html#GSignondPlugin-refreshed" title="The “refreshed” signal">refreshed</a></td>
+<td class="signal_flags"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></td>
+</tr>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GSignondPlugin.html#GSignondPlugin-response" title="The “response” signal">response</a></td>
+<td class="signal_flags"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></td>
+</tr>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GSignondPlugin.html#GSignondPlugin-response-final" title="The “response-final” signal">response-final</a></td>
+<td class="signal_flags"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></td>
+</tr>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GSignondPlugin.html#GSignondPlugin-status-changed" title="The “status-changed” signal">status-changed</a></td>
+<td class="signal_flags"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></td>
+</tr>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GSignondPlugin.html#GSignondPlugin-store" title="The “store” signal">store</a></td>
+<td class="signal_flags"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></td>
+</tr>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GSignondPlugin.html#GSignondPlugin-user-action-required" title="The “user-action-required” signal">user-action-required</a></td>
+<td class="signal_flags"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GSignondPlugin.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="GSignondPlugin.html#GSignondPluginState" title="enum GSignondPluginState">GSignondPluginState</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="GSignondPlugin.html#GSignondPluginInterface" title="struct GSignondPluginInterface">GSignondPluginInterface</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GSignondPlugin.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> GInterface
+ <span class="lineart">╰──</span> GSignondPlugin
+</pre>
+</div>
+<div class="refsect1">
+<a name="GSignondPlugin.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-plugin-interface.h>
+</pre>
+</div>
+<div class="refsect1">
+<a name="GSignondPlugin.description"></a><h2>Description</h2>
+<p><a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> is an interface for implementing GLib-based authentication plugins.</p>
+<p>When creating a plugin, write the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> boilerplate code as usual, but</p>
+<p>a) declare the type as follows:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3</pre></td>
+ <td class="listing_code"><pre class="programlisting">G_TYPE_OBJECT<span class="gtkdoc opt">,</span>
+<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>GSIGNOND_TYPE_PLUGIN<span class="gtkdoc opt">,</span>
+ gsignond_plugin_interface_init<span class="gtkdoc opt">));</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p></p>
+<p>b) implement <code class="function">gsignond_plugin_interface_init</code> as follows:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="function">gsignond_plugin_interface_init</span> <span class="gtkdoc opt">(</span>GSignondPluginInterface <span class="gtkdoc opt">*</span>iface<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+ iface<span class="gtkdoc opt">-></span>cancel <span class="gtkdoc opt">=</span> gsignond_password_plugin_cancel<span class="gtkdoc opt">;</span>
+ iface<span class="gtkdoc opt">-></span>request_initial <span class="gtkdoc opt">=</span> gsignond_password_plugin_request_initial<span class="gtkdoc opt">;</span>
+ iface<span class="gtkdoc opt">-></span>request <span class="gtkdoc opt">=</span> gsignond_password_plugin_request<span class="gtkdoc opt">;</span>
+ iface<span class="gtkdoc opt">-></span>user_action_finished <span class="gtkdoc opt">=</span> gsignond_password_plugin_user_action_finished<span class="gtkdoc opt">;</span>
+ iface<span class="gtkdoc opt">-></span>refresh <span class="gtkdoc opt">=</span> gsignond_password_plugin_refresh<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">}</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p></p>
+<p>where the <code class="function">gsignond_password_plugin_cancel</code> etc. are specific implementations of
+plugin interface methods that every plugin must provide (see below for when
+and how they're used by the daemon).</p>
+<p>c) override <a class="link" href="GSignondPlugin.html#GSignondPlugin--type" title="The “type” property"><span class="type">“type”</span></a> and <a class="link" href="GSignondPlugin.html#GSignondPlugin--mechanisms" title="The “mechanisms” property"><span class="type">“mechanisms”</span></a> property
+implementations in the plugin class constructor like this:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="function">gsignond_password_plugin_class_init</span> <span class="gtkdoc opt">(</span>GSignondPasswordPluginClass <span class="gtkdoc opt">*</span>klass<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+ GObjectClass <span class="gtkdoc opt">*</span>gobject_class <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT-CLASS:CAPS">G_OBJECT_CLASS</a></span> <span class="gtkdoc opt">(</span>klass<span class="gtkdoc opt">);</span>
+
+ gobject_class<span class="gtkdoc opt">-></span>set_property <span class="gtkdoc opt">=</span> gsignond_password_plugin_set_property<span class="gtkdoc opt">;</span>
+ gobject_class<span class="gtkdoc opt">-></span>get_property <span class="gtkdoc opt">=</span> gsignond_password_plugin_get_property<span class="gtkdoc opt">;</span>
+
+ <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-class-override-property">g_object_class_override_property</a></span> <span class="gtkdoc opt">(</span>gobject_class<span class="gtkdoc opt">,</span> PROP_TYPE<span class="gtkdoc opt">,</span> <span class="string">"type"</span><span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-class-override-property">g_object_class_override_property</a></span> <span class="gtkdoc opt">(</span>gobject_class<span class="gtkdoc opt">,</span> PROP_MECHANISMS<span class="gtkdoc opt">,</span>
+ <span class="string">"mechanisms"</span><span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p>
+(naturally, plugin's property setter should ignore attempts to set these properties,
+and plugin's property getter should provide their values when asked)</p>
+<div class="refsect1">
+<a name="id-1.5.2.9.14"></a><h2>The plugin API</h2>
+</div>
+<p>Plugins implement authentication sessions which are controlled through the
+plugin API. Authentication sessions follow one another so there is only one active
+session at a time.</p>
+<p>The plugin API is a set of methods and signals that should be used in a specific
+sequence:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>successful authentication session begins with <a class="link" href="GSignondPlugin.html#gsignond-plugin-request-initial" title="gsignond_plugin_request_initial ()"><code class="function">gsignond_plugin_request_initial()</code></a> and ends
+with the plugin issuing a <a class="link" href="GSignondPlugin.html#GSignondPlugin-response-final" title="The “response-final” signal"><span class="type">“response-final”</span></a> signal</p></li>
+<li class="listitem"><p>at any point the application can cancel an active session with
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-cancel" title="gsignond_plugin_cancel ()"><code class="function">gsignond_plugin_cancel()</code></a></p></li>
+<li class="listitem"><p>at any point the plugin can cancel an active session by issuing <a class="link" href="GSignondPlugin.html#GSignondPlugin-error" title="The “error” signal"><span class="type">“error”</span></a>
+signal, which also provides some details about the cancellation reason.</p></li>
+<li class="listitem"><p>if a session is active, and the plugin has an intermediate response or needs
+additional information, it issues <a class="link" href="GSignondPlugin.html#GSignondPlugin-response" title="The “response” signal"><span class="type">“response”</span></a> signal, which the
+application should respond to with <a class="link" href="GSignondPlugin.html#gsignond-plugin-request" title="gsignond_plugin_request ()"><code class="function">gsignond_plugin_request()</code></a> method. This can
+happen more than once.</p></li>
+<li class="listitem"><p>if the plugin needs to launch UI interaction with the user, it's issuing
+<a class="link" href="GSignondPlugin.html#GSignondPlugin-user-action-required" title="The “user-action-required” signal"><span class="type">“user-action-required”</span></a> signal, which the application should
+follow up with <a class="link" href="GSignondPlugin.html#gsignond-plugin-user-action-finished" title="gsignond_plugin_user_action_finished ()"><code class="function">gsignond_plugin_user_action_finished()</code></a> method. This can happen
+more than once as well.</p></li>
+<li class="listitem"><p>if, during an active UI session, the application needs a UI refresh
+(for example, to fetch a new captcha image), it's
+requested from the plugin with <a class="link" href="GSignondPlugin.html#gsignond-plugin-refresh" title="gsignond_plugin_refresh ()"><code class="function">gsignond_plugin_refresh()</code></a> method, followed
+by the plugin's response via <a class="link" href="GSignondPlugin.html#GSignondPlugin-refreshed" title="The “refreshed” signal"><span class="type">“refreshed”</span></a> signal. This can happen
+more than once.</p></li>
+<li class="listitem"><p>changes in plugin state are reported through <a class="link" href="GSignondPlugin.html#GSignondPlugin-status-changed" title="The “status-changed” signal"><span class="type">“status-changed”</span></a> signal.</p></li>
+<li class="listitem"><p>if the plugin needs to store information in persistent storage, it issues
+<a class="link" href="GSignondPlugin.html#GSignondPlugin-store" title="The “store” signal"><span class="type">“store”</span></a> signal. Later, that same information is provided as a
+parameter to <a class="link" href="GSignondPlugin.html#gsignond-plugin-request-initial" title="gsignond_plugin_request_initial ()"><code class="function">gsignond_plugin_request_initial()</code></a>.</p></li>
+</ul></div>
+<div class="refsect1">
+<a name="id-1.5.2.9.18"></a><h2>Example plugins</h2>
+</div>
+<p>See example plugin implementation here:</p>
+<a class="ulink" href="https://code.google.com/p/accounts-sso/source/browse/?repo=gsignond#git%2Fsrc%2Fplugins" target="_top">
+https://code.google.com/p/accounts-sso/source/browse/?repo=gsignond#git%2Fsrc%2Fplugins</a>.
+<p>For examples of out of tree plugins, you can have a look at SASL or OAuth plugin
+implementations:</p>
+<a class="ulink" href="http://code.google.com/p/accounts-sso/source/browse?repo=gsignond-plugin-sasl" target="_top">
+http://code.google.com/p/accounts-sso/source/browse?repo=gsignond-plugin-sasl</a>.
+<a class="ulink" href="http://code.google.com/p/accounts-sso/source/browse?repo=gsignond-plugin-oa" target="_top">
+http://code.google.com/p/accounts-sso/source/browse?repo=gsignond-plugin-oa</a>.
+
+</div>
+<div class="refsect1">
+<a name="GSignondPlugin.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gsignond-plugin-cancel"></a><h3>gsignond_plugin_cancel ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_plugin_cancel (<em class="parameter"><code><a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *self</code></em>);</pre>
+<p>This method cancels an ongoing authentication session. The plugin implementations
+should issue a <a class="link" href="GSignondPlugin.html#GSignondPlugin-error" title="The “error” signal"><span class="type">“error”</span></a> signal with <a class="link" href="gsignond-Errors.html#GSIGNOND-ERROR-SESSION-CANCELED:CAPS"><span class="type">GSIGNOND_ERROR_SESSION_CANCELED</span></a>
+error, and prepare for a new authentication session.</p>
+<div class="refsect3">
+<a name="id-1.5.2.10.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>plugin instance</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-plugin-request-initial"></a><h3>gsignond_plugin_request_initial ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_plugin_request_initial (<em class="parameter"><code><a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *session_data</code></em>,
+ <em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *identity_method_cache</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *mechanism</code></em>);</pre>
+<p>This method starts a new authentication session.</p>
+<div class="refsect3">
+<a name="id-1.5.2.10.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>plugin instance </p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>session_data</p></td>
+<td class="parameter_description"><p>parameters for the session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>identity_method_cache</p></td>
+<td class="parameter_description"><p>data from persistent storage, saved previously via
+<a class="link" href="GSignondPlugin.html#GSignondPlugin-store" title="The “store” signal"><span class="type">“store”</span></a> signal</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mechanism</p></td>
+<td class="parameter_description"><p>mechanism to use for the authentication</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-plugin-request"></a><h3>gsignond_plugin_request ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_plugin_request (<em class="parameter"><code><a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *session_data</code></em>);</pre>
+<p>This method provides the plugin with additional parameters for the session
+after the plugin has asked for it via <a class="link" href="GSignondPlugin.html#GSignondPlugin-response" title="The “response” signal"><span class="type">“response”</span></a> signal.</p>
+<div class="refsect3">
+<a name="id-1.5.2.10.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>plugin instance </p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>session_data</p></td>
+<td class="parameter_description"><p>additional parameters for the session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-plugin-user-action-finished"></a><h3>gsignond_plugin_user_action_finished ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_plugin_user_action_finished (<em class="parameter"><code><a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *ui_data</code></em>);</pre>
+<p>This method provides the plugin with the results of UI interaction
+after the plugin has asked for it via <a class="link" href="GSignondPlugin.html#GSignondPlugin-user-action-required" title="The “user-action-required” signal"><span class="type">“user-action-required”</span></a> signal.</p>
+<div class="refsect3">
+<a name="id-1.5.2.10.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>plugin instance </p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ui_data</p></td>
+<td class="parameter_description"><p>results of UI interaction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-plugin-refresh"></a><h3>gsignond_plugin_refresh ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_plugin_refresh (<em class="parameter"><code><a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *ui_data</code></em>);</pre>
+<p>This method asks the plugin to refresh the UI. The plugin responds with
+<a class="link" href="GSignondPlugin.html#GSignondPlugin-refreshed" title="The “refreshed” signal"><span class="type">“refreshed”</span></a> signal.</p>
+<div class="refsect3">
+<a name="id-1.5.2.10.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>plugin instance </p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ui_data</p></td>
+<td class="parameter_description"><p>UI refresh parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-plugin-response"></a><h3>gsignond_plugin_response ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_plugin_response (<em class="parameter"><code><a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *session_data</code></em>);</pre>
+<p>Plugin implementations should use this to issue <a class="link" href="GSignondPlugin.html#GSignondPlugin-response" title="The “response” signal"><span class="type">“response”</span></a>
+signal. This method should not be used otherwise.</p>
+<div class="refsect3">
+<a name="id-1.5.2.10.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>plugin instance</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>session_data</p></td>
+<td class="parameter_description"><p>session data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-plugin-response-final"></a><h3>gsignond_plugin_response_final ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_plugin_response_final (<em class="parameter"><code><a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *session_data</code></em>);</pre>
+<p>Plugin implementations should use this to issue <a class="link" href="GSignondPlugin.html#GSignondPlugin-response-final" title="The “response-final” signal"><span class="type">“response-final”</span></a>
+signal. This method should not be used otherwise.</p>
+<div class="refsect3">
+<a name="id-1.5.2.10.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>plugin instance</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>session_data</p></td>
+<td class="parameter_description"><p>session data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-plugin-store"></a><h3>gsignond_plugin_store ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_plugin_store (<em class="parameter"><code><a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *identity_method_cache</code></em>);</pre>
+<p>Plugin implementations should use this to issue <a class="link" href="GSignondPlugin.html#GSignondPlugin-store" title="The “store” signal"><span class="type">“store”</span></a>
+signal. This method should not be used otherwise.</p>
+<div class="refsect3">
+<a name="id-1.5.2.10.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>plugin instance</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>identity_method_cache</p></td>
+<td class="parameter_description"><p>data to store</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-plugin-error"></a><h3>gsignond_plugin_error ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_plugin_error (<em class="parameter"><code><a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>);</pre>
+<p>Plugin implementations should use this to issue <a class="link" href="GSignondPlugin.html#GSignondPlugin-error" title="The “error” signal"><span class="type">“error”</span></a>
+signal. This method should not be used otherwise.</p>
+<div class="refsect3">
+<a name="id-1.5.2.10.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>plugin instance</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>the error</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-plugin-user-action-required"></a><h3>gsignond_plugin_user_action_required ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_plugin_user_action_required (<em class="parameter"><code><a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *ui_data</code></em>);</pre>
+<p>Plugin implementations should use this to issue <a class="link" href="GSignondPlugin.html#GSignondPlugin-user-action-required" title="The “user-action-required” signal"><span class="type">“user-action-required”</span></a>
+signal. This method should not be used otherwise.</p>
+<div class="refsect3">
+<a name="id-1.5.2.10.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>plugin instance</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ui_data</p></td>
+<td class="parameter_description"><p>UI data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-plugin-refreshed"></a><h3>gsignond_plugin_refreshed ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_plugin_refreshed (<em class="parameter"><code><a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *self</code></em>,
+ <em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *ui_data</code></em>);</pre>
+<p>Plugin implementations should use this to issue <a class="link" href="GSignondPlugin.html#GSignondPlugin-refreshed" title="The “refreshed” signal"><span class="type">“refreshed”</span></a>
+signal. This method should not be used otherwise.</p>
+<div class="refsect3">
+<a name="id-1.5.2.10.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>plugin instance</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ui_data</p></td>
+<td class="parameter_description"><p>UI data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-plugin-status-changed"></a><h3>gsignond_plugin_status_changed ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_plugin_status_changed (<em class="parameter"><code><a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="GSignondPlugin.html#GSignondPluginState" title="enum GSignondPluginState"><span class="type">GSignondPluginState</span></a> state</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *message</code></em>);</pre>
+<p>Plugin implementations should use this to issue <a class="link" href="GSignondPlugin.html#GSignondPlugin-status-changed" title="The “status-changed” signal"><span class="type">“status-changed”</span></a>
+signal. This method should not be used otherwise.</p>
+<div class="refsect3">
+<a name="id-1.5.2.10.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>plugin instance</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>state</p></td>
+<td class="parameter_description"><p>the new state</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>message</p></td>
+<td class="parameter_description"><p>the message</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="GSignondPlugin.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GSignondPluginState"></a><h3>enum GSignondPluginState</h3>
+<p>The plugin provides state updates by emitting <a class="link" href="GSignondPlugin.html#GSignondPlugin-status-changed" title="The “status-changed” signal"><span class="type">“status-changed”</span></a>
+signal with this enum and a string describing what happened.</p>
+<div class="refsect3">
+<a name="id-1.5.2.11.2.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GSIGNOND-PLUGIN-STATE-NONE:CAPS"></a>GSIGNOND_PLUGIN_STATE_NONE</p></td>
+<td class="enum_member_description">
+<p>State unknown</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GSIGNOND-PLUGIN-STATE-RESOLVING:CAPS"></a>GSIGNOND_PLUGIN_STATE_RESOLVING</p></td>
+<td class="enum_member_description">
+<p>Resolving remote server host name</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GSIGNOND-PLUGIN-STATE-CONNECTING:CAPS"></a>GSIGNOND_PLUGIN_STATE_CONNECTING</p></td>
+<td class="enum_member_description">
+<p>Connecting to remote server</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GSIGNOND-PLUGIN-STATE-SENDING-DATA:CAPS"></a>GSIGNOND_PLUGIN_STATE_SENDING_DATA</p></td>
+<td class="enum_member_description">
+<p>Sending data to remote server</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GSIGNOND-PLUGIN-STATE-WAITING:CAPS"></a>GSIGNOND_PLUGIN_STATE_WAITING</p></td>
+<td class="enum_member_description">
+<p>Waiting for reply from remote server</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GSIGNOND-PLUGIN-STATE-USER-PENDING:CAPS"></a>GSIGNOND_PLUGIN_STATE_USER_PENDING</p></td>
+<td class="enum_member_description">
+<p>Waiting for response from user</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GSIGNOND-PLUGIN-STATE-REFRESHING:CAPS"></a>GSIGNOND_PLUGIN_STATE_REFRESHING</p></td>
+<td class="enum_member_description">
+<p>Refreshing ui request</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GSIGNOND-PLUGIN-STATE-PROCESS-PENDING:CAPS"></a>GSIGNOND_PLUGIN_STATE_PROCESS_PENDING</p></td>
+<td class="enum_member_description">
+<p>Request has been queued</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GSIGNOND-PLUGIN-STATE-STARTED:CAPS"></a>GSIGNOND_PLUGIN_STATE_STARTED</p></td>
+<td class="enum_member_description">
+<p>Request has been dequeued</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GSIGNOND-PLUGIN-STATE-CANCELING:CAPS"></a>GSIGNOND_PLUGIN_STATE_CANCELING</p></td>
+<td class="enum_member_description">
+<p>Canceling current process</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GSIGNOND-PLUGIN-STATE-DONE:CAPS"></a>GSIGNOND_PLUGIN_STATE_DONE</p></td>
+<td class="enum_member_description">
+<p>Process is finished</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GSIGNOND-PLUGIN-STATE-HOLDING:CAPS"></a>GSIGNOND_PLUGIN_STATE_HOLDING</p></td>
+<td class="enum_member_description">
+<p>Holding long non-expired token</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GSignondPluginInterface"></a><h3>struct GSignondPluginInterface</h3>
+<pre class="programlisting">struct GSignondPluginInterface {
+ GTypeInterface parent;
+
+ void (*cancel) (GSignondPlugin *self);
+ void (*request_initial) (GSignondPlugin *self,
+ GSignondSessionData *session_data,
+ GSignondDictionary *identity_method_cache,
+ const gchar *mechanism);
+ void (*request) (GSignondPlugin *self,
+ GSignondSessionData *session_data);
+ void (*user_action_finished) (GSignondPlugin *self,
+ GSignondSignonuiData *session_data);
+ void (*refresh) (GSignondPlugin *self,
+ GSignondSignonuiData *session_data);
+};
+</pre>
+<p><a class="link" href="GSignondPlugin.html#GSignondPluginInterface" title="struct GSignondPluginInterface"><span class="type">GSignondPluginInterface</span></a> interface containing pointers to methods that all
+plugin implementations should provide.</p>
+<div class="refsect3">
+<a name="id-1.5.2.11.3.5"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GSignondPluginInterface.parent"></a>parent</code></em>;</p></td>
+<td class="struct_member_description"><p>parent interface type.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GSignondPluginInterface.cancel"></a>cancel</code></em> ()</p></td>
+<td class="struct_member_description"><p>implementation of <a class="link" href="GSignondPlugin.html#gsignond-plugin-cancel" title="gsignond_plugin_cancel ()"><code class="function">gsignond_plugin_cancel()</code></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GSignondPluginInterface.request-initial"></a>request_initial</code></em> ()</p></td>
+<td class="struct_member_description"><p>implementation of <a class="link" href="GSignondPlugin.html#gsignond-plugin-request-initial" title="gsignond_plugin_request_initial ()"><code class="function">gsignond_plugin_request_initial()</code></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GSignondPluginInterface.request"></a>request</code></em> ()</p></td>
+<td class="struct_member_description"><p>implementation of <a class="link" href="GSignondPlugin.html#gsignond-plugin-request" title="gsignond_plugin_request ()"><code class="function">gsignond_plugin_request()</code></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GSignondPluginInterface.user-action-finished"></a>user_action_finished</code></em> ()</p></td>
+<td class="struct_member_description"><p>implementation of <a class="link" href="GSignondPlugin.html#gsignond-plugin-user-action-finished" title="gsignond_plugin_user_action_finished ()"><code class="function">gsignond_plugin_user_action_finished()</code></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GSignondPluginInterface.refresh"></a>refresh</code></em> ()</p></td>
+<td class="struct_member_description"><p>implementation of <a class="link" href="GSignondPlugin.html#gsignond-plugin-refresh" title="gsignond_plugin_refresh ()"><code class="function">gsignond_plugin_refresh()</code></a></p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="GSignondPlugin.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GSignondPlugin--mechanisms"></a><h3>The <code class="literal">“mechanisms”</code> property</h3>
+<pre class="programlisting"> “mechanisms” <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a></pre>
+<p>This property holds a list of authentication mechanisms that the plugin
+implements, all specified within the authentication method. For example,
+OAuth plugin could implement "oauth1" and "oauth2" mechanisms.</p>
+<p>Flags: Read</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GSignondPlugin--type"></a><h3>The <code class="literal">“type”</code> property</h3>
+<pre class="programlisting"> “type” <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>This property holds a plugin type, or authentication method it implements
+(for example "oauth" or "sasl").</p>
+<p>Flags: Read</p>
+<p>Default value: "none"</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="GSignondPlugin.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="GSignondPlugin-error"></a><h3>The <code class="literal">“error”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *plugin,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre>
+<p>This signal is issued by the plugin when an error has occured, or the
+plugin otherwise has a reason to cancel the authentication session. The
+<em class="parameter"><code>error</code></em>
+ should be specified according to </p>
+<a class="link" href="gsignond-Errors.html" title="Errors">GSignond errors.</a><div class="refsect3">
+<a name="id-1.5.2.13.2.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>plugin</p></td>
+<td class="parameter_description"><p>the plugin which emitted the signal</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>the details of the error</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p>Flags: <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GSignondPlugin-refreshed"></a><h3>The <code class="literal">“refreshed”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *plugin,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *ui_data,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre>
+<p>This signal is issued by the plugin when the UI interaction is ongoing
+and the UI needs to be refreshed. This can be used for example to update
+captcha image in the UI.</p>
+<div class="refsect3">
+<a name="id-1.5.2.13.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>plugin</p></td>
+<td class="parameter_description"><p>the plugin which emitted the signal</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ui_data</p></td>
+<td class="parameter_description"><p>parameters for UI refresh</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p>Flags: <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GSignondPlugin-response"></a><h3>The <code class="literal">“response”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *plugin,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *session_data,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre>
+<p>This signal is issued by the plugin when it wants to provide an intermediate
+response to the application or needs additional information from the application.</p>
+<p>After issuing this signal the plugin expects a <a class="link" href="GSignondPlugin.html#gsignond-plugin-response" title="gsignond_plugin_response ()"><code class="function">gsignond_plugin_response()</code></a> call.</p>
+<div class="refsect3">
+<a name="id-1.5.2.13.4.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>plugin</p></td>
+<td class="parameter_description"><p>the plugin which emitted the signal</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>session_data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> containing signal parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p>Flags: <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GSignondPlugin-response-final"></a><h3>The <code class="literal">“response-final”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *plugin,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *session_data,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre>
+<p>This signal is issued by the plugin when it has completed the authentication
+sequence and is used to provide the final response to the application.</p>
+<p>After issuing this signal the plugin is idle and is ready for a new
+authentication session.</p>
+<div class="refsect3">
+<a name="id-1.5.2.13.5.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>plugin</p></td>
+<td class="parameter_description"><p>the plugin which emitted the signal</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>session_data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> containing signal parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p>Flags: <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GSignondPlugin-status-changed"></a><h3>The <code class="literal">“status-changed”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *plugin,
+ <a class="link" href="GSignondPlugin.html#GSignondPluginState" title="enum GSignondPluginState"><span class="type">GSignondPluginState</span></a> state,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *message,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre>
+<p>This signal is issued by the plugin when plugin state has changed. This
+can be used by applications to report authentication progress.</p>
+<div class="refsect3">
+<a name="id-1.5.2.13.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>plugin</p></td>
+<td class="parameter_description"><p>the plugin which emitted the signal</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>state</p></td>
+<td class="parameter_description"><p>the plugin state</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>message</p></td>
+<td class="parameter_description"><p>the message that accompanies the state change</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p>Flags: <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GSignondPlugin-store"></a><h3>The <code class="literal">“store”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *plugin,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *data,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre>
+<p>This signal is issued by the plugin when it has data to store in persistant
+storage. The same data would later be provided to plugin via
+
+gsignond_plugin_request_initial <em class="parameter"><code>identity_method_cache</code></em>
+ parameter.</p>
+<div class="refsect3">
+<a name="id-1.5.2.13.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>plugin</p></td>
+<td class="parameter_description"><p>the plugin which emitted the signal</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> containing data to place in persistent storage</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p>Flags: <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GSignondPlugin-user-action-required"></a><h3>The <code class="literal">“user-action-required”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a> *plugin,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *ui_data,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre>
+<p>This signal is issued by the plugin when it needs a UI interaction with
+the user to happen. When the interaction is complete, <a class="link" href="GSignondPlugin.html#gsignond-plugin-user-action-finished" title="gsignond_plugin_user_action_finished ()"><code class="function">gsignond_plugin_user_action_finished()</code></a>
+should be issued.</p>
+<div class="refsect3">
+<a name="id-1.5.2.13.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>plugin</p></td>
+<td class="parameter_description"><p>the plugin which emitted the signal</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ui_data</p></td>
+<td class="parameter_description"><p>parameters for UI interaction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p>Flags: <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.20</div>
+</body>
+</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignondSecretStorage</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignondSecretStorage</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch05.html" title="GSignond API for writing platform adaptation extensions">
+<link rel="up" href="ch06.html" title="GSignond API for writing platform adaptation extensions">
<link rel="prev" href="GSignondStorageManager.html" title="GSignondStorageManager">
<link rel="next" href="GSignondCredentials.html" title="GSignondCredentials">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#GSignondSecretStorage.description" class="shortcut">Description</a>
- |
- <a href="#GSignondSecretStorage.object-hierarchy" class="shortcut">Object Hierarchy</a>
- |
- <a href="#GSignondSecretStorage.properties" class="shortcut">Properties</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#GSignondSecretStorage.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#GSignondSecretStorage.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span>
+ <a href="#GSignondSecretStorage.properties" class="shortcut">Properties</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch05.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch06.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GSignondStorageManager.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GSignondCredentials.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h2><span class="refentrytitle"><a name="GSignondSecretStorage.top_of_page"></a>GSignondSecretStorage</span></h2>
<p>GSignondSecretStorage — provides access to the database that stores user credentials and identity/method cache</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GSignondSecretStorage.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-secret-storage.h>
-
- <a class="link" href="GSignondSecretStorage.html#GSignondSecretStorage-struct" title="GSignondSecretStorage">GSignondSecretStorage</a>;
- <a class="link" href="GSignondSecretStorage.html#GSignondSecretStorageClass" title="GSignondSecretStorageClass">GSignondSecretStorageClass</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-check-credentials" title="gsignond_secret_storage_check_credentials ()">gsignond_secret_storage_check_credentials</a>
- (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *creds</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-clear-db" title="gsignond_secret_storage_clear_db ()">gsignond_secret_storage_clear_db</a> (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-close-db" title="gsignond_secret_storage_close_db ()">gsignond_secret_storage_close_db</a> (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> * <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-get-last-error" title="gsignond_secret_storage_get_last_error ()">gsignond_secret_storage_get_last_error</a>
- (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-is-open-db" title="gsignond_secret_storage_is_open_db ()">gsignond_secret_storage_is_open_db</a> (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>);
-<a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="returnvalue">GSignondCredentials</span></a> * <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-load-credentials" title="gsignond_secret_storage_load_credentials ()">gsignond_secret_storage_load_credentials</a>
- (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="returnvalue">GHashTable</span></a> * <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-load-data" title="gsignond_secret_storage_load_data ()">gsignond_secret_storage_load_data</a> (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> method</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-open-db" title="gsignond_secret_storage_open_db ()">gsignond_secret_storage_open_db</a> (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-remove-credentials" title="gsignond_secret_storage_remove_credentials ()">gsignond_secret_storage_remove_credentials</a>
- (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-remove-data" title="gsignond_secret_storage_remove_data ()">gsignond_secret_storage_remove_data</a> (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> method</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-update-credentials" title="gsignond_secret_storage_update_credentials ()">gsignond_secret_storage_update_credentials</a>
- (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *creds</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-update-data" title="gsignond_secret_storage_update_data ()">gsignond_secret_storage_update_data</a> (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> method</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *data</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="GSignondSecretStorage.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
- <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
- +----GSignondSecretStorage
-</pre>
-</div>
-<div class="refsect1">
-<a name="GSignondSecretStorage.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
- "<a class="link" href="GSignondSecretStorage.html#GSignondSecretStorage--config" title='The "config" property'>config</a>" <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>* : Read / Write / Construct Only
-</pre>
-</div>
<div class="refsect1">
-<a name="GSignondSecretStorage.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> provides access to the database where sensitive identity
-data (<a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a>) and identity/method cache are stored. It's preferred
-that this database is protected against access by processes other than gSSO.
-</p>
-<p>
-gSSO can be configured to use a custom extension
-that provides a subclassed implementation of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>
-(see <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a>), otherwise a default implementation is used.
-</p>
-</div>
-<div class="refsect1">
-<a name="GSignondSecretStorage.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GSignondSecretStorage-struct"></a><h3>GSignondSecretStorage</h3>
-<pre class="programlisting">typedef struct _GSignondSecretStorage GSignondSecretStorage;</pre>
-<p>
-Opaque <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> data structure.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GSignondSecretStorageClass"></a><h3>GSignondSecretStorageClass</h3>
-<pre class="programlisting">typedef struct {
- GObjectClass parent_class;
-
- gboolean
- (*open_db) (GSignondSecretStorage *self);
-
- gboolean
- (*close_db) (GSignondSecretStorage *self);
-
- gboolean
- (*clear_db) (GSignondSecretStorage *self);
-
- gboolean
- (*is_open_db) (GSignondSecretStorage *self);
-
- GSignondCredentials*
- (*load_credentials) (
- GSignondSecretStorage *self,
- const guint32 id);
-
- gboolean
- (*update_credentials) (
- GSignondSecretStorage *self,
- GSignondCredentials* creds);
-
- gboolean
- (*remove_credentials) (
- GSignondSecretStorage *self,
- const guint32 id);
-
- gboolean
- (*check_credentials) (
- GSignondSecretStorage *self,
- GSignondCredentials* creds);
-
- GSignondDictionary*
- (*load_data) (
- GSignondSecretStorage *self,
- const guint32 id,
- const guint32 method);
-
- gboolean
- (*update_data) (
- GSignondSecretStorage *self,
- const guint32 id,
- const guint32 method,
- GSignondDictionary *data);
-
- gboolean
- (*remove_data) (
- GSignondSecretStorage *self,
- const guint32 id,
- const guint32 method);
-
- const GError*
- (*get_last_error) (GSignondSecretStorage *self);
-} GSignondSecretStorageClass;
-</pre>
-<p>
-<a class="link" href="GSignondSecretStorage.html#GSignondSecretStorageClass" title="GSignondSecretStorageClass"><span class="type">GSignondSecretStorageClass</span></a> class containing pointers to class methods.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GSignondSecretStorage.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GSignondSecretStorageClass.parent-class"></a>parent_class</code></em>;</span></p></td>
-<td>parent class.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondSecretStorageClass.open-db"></a>open_db</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-open-db" title="gsignond_secret_storage_open_db ()"><code class="function">gsignond_secret_storage_open_db()</code></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-open-db" title="gsignond_secret_storage_open_db ()">gsignond_secret_storage_open_db</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondSecretStorageClass.close-db"></a>close_db</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-close-db" title="gsignond_secret_storage_close_db ()"><code class="function">gsignond_secret_storage_close_db()</code></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-close-db" title="gsignond_secret_storage_close_db ()">gsignond_secret_storage_close_db</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondSecretStorageClass.clear-db"></a>clear_db</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-clear-db" title="gsignond_secret_storage_clear_db ()"><code class="function">gsignond_secret_storage_clear_db()</code></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-clear-db" title="gsignond_secret_storage_clear_db ()">gsignond_secret_storage_clear_db</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondSecretStorageClass.is-open-db"></a>is_open_db</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-is-open-db" title="gsignond_secret_storage_is_open_db ()"><code class="function">gsignond_secret_storage_is_open_db()</code></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-is-open-db" title="gsignond_secret_storage_is_open_db ()">gsignond_secret_storage_is_open_db</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondSecretStorageClass.load-credentials"></a>load_credentials</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-load-credentials" title="gsignond_secret_storage_load_credentials ()"><code class="function">gsignond_secret_storage_load_credentials()</code></a>
+<td class="function_type">
+<a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="returnvalue">GSignondCredentials</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-load-credentials" title="gsignond_secret_storage_load_credentials ()">gsignond_secret_storage_load_credentials</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondSecretStorageClass.update-credentials"></a>update_credentials</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-update-credentials" title="gsignond_secret_storage_update_credentials ()"><code class="function">gsignond_secret_storage_update_credentials()</code></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-update-credentials" title="gsignond_secret_storage_update_credentials ()">gsignond_secret_storage_update_credentials</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondSecretStorageClass.remove-credentials"></a>remove_credentials</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-remove-credentials" title="gsignond_secret_storage_remove_credentials ()"><code class="function">gsignond_secret_storage_remove_credentials()</code></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-remove-credentials" title="gsignond_secret_storage_remove_credentials ()">gsignond_secret_storage_remove_credentials</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondSecretStorageClass.check-credentials"></a>check_credentials</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-check-credentials" title="gsignond_secret_storage_check_credentials ()"><code class="function">gsignond_secret_storage_check_credentials()</code></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-check-credentials" title="gsignond_secret_storage_check_credentials ()">gsignond_secret_storage_check_credentials</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondSecretStorageClass.load-data"></a>load_data</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-load-data" title="gsignond_secret_storage_load_data ()"><code class="function">gsignond_secret_storage_load_data()</code></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="returnvalue">GHashTable</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-load-data" title="gsignond_secret_storage_load_data ()">gsignond_secret_storage_load_data</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondSecretStorageClass.update-data"></a>update_data</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-update-data" title="gsignond_secret_storage_update_data ()"><code class="function">gsignond_secret_storage_update_data()</code></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-update-data" title="gsignond_secret_storage_update_data ()">gsignond_secret_storage_update_data</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondSecretStorageClass.remove-data"></a>remove_data</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-remove-data" title="gsignond_secret_storage_remove_data ()"><code class="function">gsignond_secret_storage_remove_data()</code></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-remove-data" title="gsignond_secret_storage_remove_data ()">gsignond_secret_storage_remove_data</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondSecretStorageClass.get-last-error"></a>get_last_error</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-get-last-error" title="gsignond_secret_storage_get_last_error ()"><code class="function">gsignond_secret_storage_get_last_error()</code></a>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-get-last-error" title="gsignond_secret_storage_get_last_error ()">gsignond_secret_storage_get_last_error</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
-<hr>
+<div class="refsect1">
+<a name="GSignondSecretStorage.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody><tr>
+<td class="property_type">
+<a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *</td>
+<td class="property_name"><a class="link" href="GSignondSecretStorage.html#GSignondSecretStorage--config" title="The “config” property">config</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GSignondSecretStorage.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ <span class="lineart">╰──</span> GSignondSecretStorage
+</pre>
+</div>
+<div class="refsect1">
+<a name="GSignondSecretStorage.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-secret-storage.h>
+</pre>
+</div>
+<div class="refsect1">
+<a name="GSignondSecretStorage.description"></a><h2>Description</h2>
+<p><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> provides access to the database where sensitive identity
+data (<a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a>) and identity/method cache are stored. It's preferred
+that this database is protected against access by processes other than gSSO.</p>
+<p>gSSO can be configured to use a custom extension
+that provides a subclassed implementation of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>
+(see <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a>), otherwise a default implementation is used.</p>
+</div>
+<div class="refsect1">
+<a name="GSignondSecretStorage.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
-<a name="gsignond-secret-storage-check-credentials"></a><h3>gsignond_secret_storage_check_credentials ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_secret_storage_check_credentials
- (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *creds</code></em>);</pre>
-<p>
-Checks whether the given credentials match what is stored in the database.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>creds</code></em> :</span></p></td>
-<td>the credentials that are being checked. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if successful, FALSE otherwise.</td>
-</tr>
-</tbody>
+<a name="gsignond-secret-storage-open-db"></a><h3>gsignond_secret_storage_open_db ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_secret_storage_open_db (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>);</pre>
+<p>Opens (and initializes) the database. The implementation should take
+care of creating the DB, if it doesn't exist, and it should use
+<a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-SECURE-DIR:CAPS" title="GSIGNOND_CONFIG_GENERAL_SECURE_DIR"><span class="type">GSIGNOND_CONFIG_GENERAL_SECURE_DIR</span></a>
+to determine database location in the filesystem.</p>
+<p>The default implementation is using SQLite for the storage.</p>
+<div class="refsect3">
+<a name="id-1.7.6.8.2.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.6.8.2.7"></a><h4>Returns</h4>
+<p> TRUE if successful, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-secret-storage-clear-db"></a><h3>gsignond_secret_storage_clear_db ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_secret_storage_clear_db (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>);</pre>
-<p>
-Removes all stored secrets from the database.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if successful, FALSE otherwise.</td>
-</tr>
-</tbody>
+<a name="gsignond-secret-storage-close-db"></a><h3>gsignond_secret_storage_close_db ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_secret_storage_close_db (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>);</pre>
+<p>Closes the database. To reopen it, call <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-open-db" title="gsignond_secret_storage_open_db ()"><code class="function">gsignond_secret_storage_open_db()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.7.6.8.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.6.8.3.6"></a><h4>Returns</h4>
+<p> TRUE if successful, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-secret-storage-close-db"></a><h3>gsignond_secret_storage_close_db ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_secret_storage_close_db (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>);</pre>
-<p>
-Closes the database. To reopen it, call <a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-open-db" title="gsignond_secret_storage_open_db ()"><code class="function">gsignond_secret_storage_open_db()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if successful, FALSE otherwise.</td>
-</tr>
-</tbody>
+<a name="gsignond-secret-storage-clear-db"></a><h3>gsignond_secret_storage_clear_db ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_secret_storage_clear_db (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>);</pre>
+<p>Removes all stored secrets from the database.</p>
+<div class="refsect3">
+<a name="id-1.7.6.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.6.8.4.6"></a><h4>Returns</h4>
+<p> TRUE if successful, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-secret-storage-get-last-error"></a><h3>gsignond_secret_storage_get_last_error ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> * gsignond_secret_storage_get_last_error
- (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>);</pre>
-<p>
-Retrieves the last occurred error that has occured
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>last occurred <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<a name="gsignond-secret-storage-is-open-db"></a><h3>gsignond_secret_storage_is_open_db ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_secret_storage_is_open_db (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>);</pre>
+<p>Checks if the database is open or not.</p>
+<div class="refsect3">
+<a name="id-1.7.6.8.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.6.8.5.6"></a><h4>Returns</h4>
+<p> TRUE if successful, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-secret-storage-is-open-db"></a><h3>gsignond_secret_storage_is_open_db ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_secret_storage_is_open_db (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>);</pre>
-<p>
-Checks if the database is open or not.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-secret-storage-load-credentials"></a><h3>gsignond_secret_storage_load_credentials ()</h3>
+<pre class="programlisting"><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="returnvalue">GSignondCredentials</span></a> *
+gsignond_secret_storage_load_credentials
+ (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
+ <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>);</pre>
+<p>Loads the credentials from the database.</p>
+<div class="refsect3">
+<a name="id-1.7.6.8.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if successful, FALSE otherwise.</td>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>the identity id whose credentials are being loaded.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.6.8.6.6"></a><h4>Returns</h4>
+<p> <a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> if successful,
+NULL otherwise. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-secret-storage-load-credentials"></a><h3>gsignond_secret_storage_load_credentials ()</h3>
-<pre class="programlisting"><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="returnvalue">GSignondCredentials</span></a> * gsignond_secret_storage_load_credentials
- (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>);</pre>
-<p>
-Loads the credentials from the database.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-secret-storage-update-credentials"></a><h3>gsignond_secret_storage_update_credentials ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_secret_storage_update_credentials
+ (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *creds</code></em>);</pre>
+<p>Stores/updates the credentials for the given identity.</p>
+<div class="refsect3">
+<a name="id-1.7.6.8.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>the identity id whose credentials are being loaded.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> if successful,
-NULL otherwise. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>creds</p></td>
+<td class="parameter_description"><p> the credentials that are being updated. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.6.8.7.6"></a><h4>Returns</h4>
+<p> TRUE if successful, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-secret-storage-load-data"></a><h3>gsignond_secret_storage_load_data ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="returnvalue">GHashTable</span></a> * gsignond_secret_storage_load_data (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> method</code></em>);</pre>
-<p>
-Loads the secret data associated with a given identity and method.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-secret-storage-remove-credentials"></a><h3>gsignond_secret_storage_remove_credentials ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_secret_storage_remove_credentials
+ (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
+ <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>);</pre>
+<p>Remove the credentials for the given identity.</p>
+<div class="refsect3">
+<a name="id-1.7.6.8.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>the identity id whose data are fetched</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>method</code></em> :</span></p></td>
-<td>the authentication method the data is used for.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the secret data. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>the identity whose credentials are being updated.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.6.8.8.6"></a><h4>Returns</h4>
+<p> TRUE if successful, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-secret-storage-open-db"></a><h3>gsignond_secret_storage_open_db ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_secret_storage_open_db (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>);</pre>
-<p>
-Opens (and initializes) the database. The implementation should take
-care of creating the DB, if it doesn't exist, and it should use
-<a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-SECURE-DIR:CAPS" title="GSIGNOND_CONFIG_GENERAL_SECURE_DIR"><span class="type">GSIGNOND_CONFIG_GENERAL_SECURE_DIR</span></a> and <a class="link" href="gsignond-Database-configuration.html#GSIGNOND-CONFIG-DB-SECRET-DB-FILENAME:CAPS" title="GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME"><span class="type">GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME</span></a>
-to determine database location in the filesystem.
-</p>
-<p>
-The default implementation is using SQLite for the storage.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-secret-storage-check-credentials"></a><h3>gsignond_secret_storage_check_credentials ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_secret_storage_check_credentials
+ (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *creds</code></em>);</pre>
+<p>Checks whether the given credentials match what is stored in the database.</p>
+<div class="refsect3">
+<a name="id-1.7.6.8.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if successful, FALSE otherwise.</td>
+<td class="parameter_name"><p>creds</p></td>
+<td class="parameter_description"><p> the credentials that are being checked. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.6.8.9.6"></a><h4>Returns</h4>
+<p> TRUE if successful, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-secret-storage-remove-credentials"></a><h3>gsignond_secret_storage_remove_credentials ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_secret_storage_remove_credentials
- (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>);</pre>
-<p>
-Remove the credentials for the given identity.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-secret-storage-load-data"></a><h3>gsignond_secret_storage_load_data ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="returnvalue">GHashTable</span></a> *
+gsignond_secret_storage_load_data (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
+ <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>,
+ <em class="parameter"><code>const <span class="type">guint32</span> method</code></em>);</pre>
+<p>Loads the secret data associated with a given identity and method.</p>
+<div class="refsect3">
+<a name="id-1.7.6.8.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>the identity whose credentials are being updated.</td>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>the identity id whose data are fetched</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if successful, FALSE otherwise.</td>
+<td class="parameter_name"><p>method</p></td>
+<td class="parameter_description"><p>the authentication method the data is used for.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.6.8.10.6"></a><h4>Returns</h4>
+<p> the secret data. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-secret-storage-remove-data"></a><h3>gsignond_secret_storage_remove_data ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_secret_storage_remove_data (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> method</code></em>);</pre>
-<p>
-Removes secret data associated with a given id/method.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-secret-storage-update-data"></a><h3>gsignond_secret_storage_update_data ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_secret_storage_update_data (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
+ <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>,
+ <em class="parameter"><code>const <span class="type">guint32</span> method</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *data</code></em>);</pre>
+<p>Calling this method updates the secret data
+associated with the given id/method.</p>
+<div class="refsect3">
+<a name="id-1.7.6.8.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>the identity whose data are fetched.</td>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>the identity whose data are fetched.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>method</code></em> :</span></p></td>
-<td>the authentication method the data is used for.</td>
+<td class="parameter_name"><p>method</p></td>
+<td class="parameter_description"><p>the authentication method the data is used for.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if successful, FALSE otherwise.</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p> the data to update. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.6.8.11.6"></a><h4>Returns</h4>
+<p> TRUE if successful, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-secret-storage-update-credentials"></a><h3>gsignond_secret_storage_update_credentials ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_secret_storage_update_credentials
- (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="GSignondCredentials.html" title="GSignondCredentials"><span class="type">GSignondCredentials</span></a> *creds</code></em>);</pre>
-<p>
-Stores/updates the credentials for the given identity.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-secret-storage-remove-data"></a><h3>gsignond_secret_storage_remove_data ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_secret_storage_remove_data (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
+ <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>,
+ <em class="parameter"><code>const <span class="type">guint32</span> method</code></em>);</pre>
+<p>Removes secret data associated with a given id/method.</p>
+<div class="refsect3">
+<a name="id-1.7.6.8.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>creds</code></em> :</span></p></td>
-<td>the credentials that are being updated. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>the identity whose data are fetched.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if successful, FALSE otherwise.</td>
+<td class="parameter_name"><p>method</p></td>
+<td class="parameter_description"><p>the authentication method the data is used for.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.6.8.12.6"></a><h4>Returns</h4>
+<p> TRUE if successful, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-secret-storage-update-data"></a><h3>gsignond_secret_storage_update_data ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_secret_storage_update_data (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> id</code></em>,
- <em class="parameter"><code>const <span class="type">guint32</span> method</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *data</code></em>);</pre>
-<p>
-Calling this method updates the secret data
-associated with the given id/method.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>the identity whose data are fetched.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>method</code></em> :</span></p></td>
-<td>the authentication method the data is used for.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>the data to update. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if successful, FALSE otherwise.</td>
-</tr>
-</tbody>
+<a name="gsignond-secret-storage-get-last-error"></a><h3>gsignond_secret_storage_get_last_error ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> *
+gsignond_secret_storage_get_last_error
+ (<em class="parameter"><code><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> *self</code></em>);</pre>
+<p>Retrieves the last occurred error that has occured</p>
+<div class="refsect3">
+<a name="id-1.7.6.8.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>instance of <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.6.8.13.6"></a><h4>Returns</h4>
+<p> last occurred <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="GSignondSecretStorage.other_details"></a><h2>Types and Values</h2>
</div>
<div class="refsect1">
<a name="GSignondSecretStorage.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
-<a name="GSignondSecretStorage--config"></a><h3>The <code class="literal">"config"</code> property</h3>
-<pre class="programlisting"> "config" <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>* : Read / Write / Construct Only</pre>
+<a name="GSignondSecretStorage--config"></a><h3>The <code class="literal">“config”</code> property</h3>
+<pre class="programlisting"> “config” <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *</pre>
<p>Configuration object.</p>
+<p>Flags: Read / Write / Construct Only</p>
</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignondSsoTestPlugin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignondSsoTestPlugin</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch04.html" title="Standard in-tree authentication plugins">
+<link rel="up" href="ch05.html" title="Standard in-tree authentication plugins">
<link rel="prev" href="GSignondDigestPlugin.html" title="GSignondDigestPlugin">
<link rel="next" href="GSignondPasswordPlugin.html" title="GSignondPasswordPlugin">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#GSignondSsoTestPlugin.description" class="shortcut">Description</a>
- |
- <a href="#GSignondSsoTestPlugin.object-hierarchy" class="shortcut">Object Hierarchy</a>
- |
- <a href="#GSignondSsoTestPlugin.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#GSignondSsoTestPlugin.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#GSignondSsoTestPlugin.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch04.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch05.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GSignondDigestPlugin.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GSignondPasswordPlugin.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h2><span class="refentrytitle"><a name="GSignondSsoTestPlugin.top_of_page"></a>GSignondSsoTestPlugin</span></h2>
<p>GSignondSsoTestPlugin — a plugin that is used internally in gsignond unit test</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GSignondSsoTestPlugin.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-ssotest-plugin.h>
-
-struct <a class="link" href="GSignondSsoTestPlugin.html#GSignondSsoTestPlugin-struct" title="struct GSignondSsoTestPlugin">GSignondSsoTestPlugin</a>;
-struct <a class="link" href="GSignondSsoTestPlugin.html#GSignondSsoTestPluginClass" title="struct GSignondSsoTestPluginClass">GSignondSsoTestPluginClass</a>;
-</pre>
-</div>
<div class="refsect1">
<a name="GSignondSsoTestPlugin.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
- <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
- +----GSignondSsoTestPlugin
+<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ <span class="lineart">╰──</span> GSignondSsoTestPlugin
</pre>
</div>
<div class="refsect1">
-<a name="GSignondSsoTestPlugin.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
-<p>
-GSignondSsoTestPlugin implements
- GSignondPlugin.</p>
+<a name="GSignondSsoTestPlugin.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-ssotest-plugin.h>
+</pre>
</div>
<div class="refsect1">
<a name="GSignondSsoTestPlugin.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GSignondSsoTestPlugin.html" title="GSignondSsoTestPlugin"><span class="type">GSignondSsoTestPlugin</span></a> is used by gsignond unit tests. It should not be used
-by applications.
-</p>
+<p><a class="link" href="GSignondSsoTestPlugin.html" title="GSignondSsoTestPlugin"><span class="type">GSignondSsoTestPlugin</span></a> is used by gsignond unit tests. It should not be used
+by applications.</p>
</div>
<div class="refsect1">
-<a name="GSignondSsoTestPlugin.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GSignondSsoTestPlugin-struct"></a><h3>struct GSignondSsoTestPlugin</h3>
-<pre class="programlisting">struct GSignondSsoTestPlugin;</pre>
-<p>
-Opaque <a class="link" href="GSignondSsoTestPlugin.html" title="GSignondSsoTestPlugin"><span class="type">GSignondSsoTestPlugin</span></a> data structure.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GSignondSsoTestPluginClass"></a><h3>struct GSignondSsoTestPluginClass</h3>
-<pre class="programlisting">struct GSignondSsoTestPluginClass {
- GObjectClass parent_class;
-};
-</pre>
-<p>
-Opaque <a class="link" href="GSignondSsoTestPlugin.html#GSignondSsoTestPluginClass" title="struct GSignondSsoTestPluginClass"><span class="type">GSignondSsoTestPluginClass</span></a> data structure.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GSignondSsoTestPluginClass.parent-class"></a>parent_class</code></em>;</span></p></td>
-<td>the parent class structure</td>
-</tr></tbody>
-</table></div>
+<a name="GSignondSsoTestPlugin.functions_details"></a><h2>Functions</h2>
</div>
+<div class="refsect1">
+<a name="GSignondSsoTestPlugin.other_details"></a><h2>Types and Values</h2>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignondStorageManager</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignondStorageManager</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch05.html" title="GSignond API for writing platform adaptation extensions">
+<link rel="up" href="ch06.html" title="GSignond API for writing platform adaptation extensions">
<link rel="prev" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">
<link rel="next" href="GSignondSecretStorage.html" title="GSignondSecretStorage">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#GSignondStorageManager.description" class="shortcut">Description</a>
- |
- <a href="#GSignondStorageManager.object-hierarchy" class="shortcut">Object Hierarchy</a>
- |
- <a href="#GSignondStorageManager.properties" class="shortcut">Properties</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#GSignondStorageManager.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#GSignondStorageManager.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span>
+ <a href="#GSignondStorageManager.properties" class="shortcut">Properties</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch05.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch06.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gsignond-GSignondSecurityContext.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GSignondSecretStorage.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h2><span class="refentrytitle"><a name="GSignondStorageManager.top_of_page"></a>GSignondStorageManager</span></h2>
<p>GSignondStorageManager — manages encrypted disk storage for storing the secret database</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GSignondStorageManager.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-plugin-interface.h>
-
-struct <a class="link" href="GSignondStorageManager.html#GSignondStorageManager-struct" title="struct GSignondStorageManager">GSignondStorageManager</a>;
-struct <a class="link" href="GSignondStorageManager.html#GSignondStorageManagerClass" title="struct GSignondStorageManagerClass">GSignondStorageManagerClass</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-delete-storage" title="gsignond_storage_manager_delete_storage ()">gsignond_storage_manager_delete_storage</a>
- (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-filesystem-is-mounted" title="gsignond_storage_manager_filesystem_is_mounted ()">gsignond_storage_manager_filesystem_is_mounted</a>
- (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-initialize-storage" title="gsignond_storage_manager_initialize_storage ()">gsignond_storage_manager_initialize_storage</a>
- (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-mount-filesystem" title="gsignond_storage_manager_mount_filesystem ()">gsignond_storage_manager_mount_filesystem</a>
- (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-storage-is-initialized" title="gsignond_storage_manager_storage_is_initialized ()">gsignond_storage_manager_storage_is_initialized</a>
- (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-unmount-filesystem" title="gsignond_storage_manager_unmount_filesystem ()">gsignond_storage_manager_unmount_filesystem</a>
- (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="GSignondStorageManager.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
- <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
- +----GSignondStorageManager
-</pre>
-</div>
-<div class="refsect1">
-<a name="GSignondStorageManager.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
- "<a class="link" href="GSignondStorageManager.html#GSignondStorageManager--config" title='The "config" property'>config</a>" <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>* : Read / Write / Construct Only
-</pre>
-</div>
-<div class="refsect1">
-<a name="GSignondStorageManager.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> manages encrypted disk storage for storing the
-databases. The default implementation maintains a simple per-user
-directory accessible only to root and gsignond group, but gSSO can be
-configured to use a custom extension that provides a subclassed
-implementation of <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a>
-(see <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> for instructions and pointers to examples).
-</p>
-</div>
<div class="refsect1">
-<a name="GSignondStorageManager.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GSignondStorageManager-struct"></a><h3>struct GSignondStorageManager</h3>
-<pre class="programlisting">struct GSignondStorageManager;</pre>
-<p>
-Opaque <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> data structure.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GSignondStorageManagerClass"></a><h3>struct GSignondStorageManagerClass</h3>
-<pre class="programlisting">struct GSignondStorageManagerClass {
- GObjectClass parent_class;
-
- gboolean (*initialize_storage) (GSignondStorageManager *self);
- gboolean (*delete_storage) (GSignondStorageManager *self);
- gboolean (*storage_is_initialized) (GSignondStorageManager *self);
- const gchar * (*mount_filesystem) (GSignondStorageManager *self);
- gboolean (*unmount_filesystem) (GSignondStorageManager *self);
- gboolean (*filesystem_is_mounted) (GSignondStorageManager *self);
-};
-</pre>
-<p>
-<a class="link" href="GSignondStorageManager.html#GSignondStorageManagerClass" title="struct GSignondStorageManagerClass"><span class="type">GSignondStorageManagerClass</span></a> class containing pointers to class methods.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GSignondStorageManager.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GSignondStorageManagerClass.parent-class"></a>parent_class</code></em>;</span></p></td>
-<td>parent class.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondStorageManagerClass.initialize-storage"></a>initialize_storage</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-initialize-storage" title="gsignond_storage_manager_initialize_storage ()"><code class="function">gsignond_storage_manager_initialize_storage()</code></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-initialize-storage" title="gsignond_storage_manager_initialize_storage ()">gsignond_storage_manager_initialize_storage</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondStorageManagerClass.delete-storage"></a>delete_storage</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-delete-storage" title="gsignond_storage_manager_delete_storage ()"><code class="function">gsignond_storage_manager_delete_storage()</code></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-delete-storage" title="gsignond_storage_manager_delete_storage ()">gsignond_storage_manager_delete_storage</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondStorageManagerClass.storage-is-initialized"></a>storage_is_initialized</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-storage-is-initialized" title="gsignond_storage_manager_storage_is_initialized ()"><code class="function">gsignond_storage_manager_storage_is_initialized()</code></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-storage-is-initialized" title="gsignond_storage_manager_storage_is_initialized ()">gsignond_storage_manager_storage_is_initialized</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondStorageManagerClass.mount-filesystem"></a>mount_filesystem</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-mount-filesystem" title="gsignond_storage_manager_mount_filesystem ()"><code class="function">gsignond_storage_manager_mount_filesystem()</code></a>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-mount-filesystem" title="gsignond_storage_manager_mount_filesystem ()">gsignond_storage_manager_mount_filesystem</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondStorageManagerClass.unmount-filesystem"></a>unmount_filesystem</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-unmount-filesystem" title="gsignond_storage_manager_unmount_filesystem ()"><code class="function">gsignond_storage_manager_unmount_filesystem()</code></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-unmount-filesystem" title="gsignond_storage_manager_unmount_filesystem ()">gsignond_storage_manager_unmount_filesystem</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondStorageManagerClass.filesystem-is-mounted"></a>filesystem_is_mounted</code></em> ()</span></p></td>
-<td>an implementation of <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-filesystem-is-mounted" title="gsignond_storage_manager_filesystem_is_mounted ()"><code class="function">gsignond_storage_manager_filesystem_is_mounted()</code></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-filesystem-is-mounted" title="gsignond_storage_manager_filesystem_is_mounted ()">gsignond_storage_manager_filesystem_is_mounted</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
-<hr>
+<div class="refsect1">
+<a name="GSignondStorageManager.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody><tr>
+<td class="property_type">
+<a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *</td>
+<td class="property_name"><a class="link" href="GSignondStorageManager.html#GSignondStorageManager--config" title="The “config” property">config</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GSignondStorageManager.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ <span class="lineart">╰──</span> GSignondStorageManager
+</pre>
+</div>
+<div class="refsect1">
+<a name="GSignondStorageManager.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-plugin-interface.h>
+</pre>
+</div>
+<div class="refsect1">
+<a name="GSignondStorageManager.description"></a><h2>Description</h2>
+<p><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> manages encrypted disk storage for storing the
+databases. The default implementation maintains a simple per-user
+directory accessible only to root and gsignond group, but gSSO can be
+configured to use a custom extension that provides a subclassed
+implementation of <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a>
+(see <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> for instructions and pointers to examples).</p>
+</div>
+<div class="refsect1">
+<a name="GSignondStorageManager.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
-<a name="gsignond-storage-manager-delete-storage"></a><h3>gsignond_storage_manager_delete_storage ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_storage_manager_delete_storage
- (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
-<p>
-Destroys all the encryption keys and wipes the storage. <a class="link" href="gsignond-Utility-functions.html#gsignond-wipe-directory" title="gsignond_wipe_directory ()"><code class="function">gsignond_wipe_directory()</code></a>
-is typically used for the latter.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>success?</td>
-</tr>
-</tbody>
+<a name="gsignond-storage-manager-initialize-storage"></a><h3>gsignond_storage_manager_initialize_storage ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_storage_manager_initialize_storage
+ (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
+<p>Initialize encryption storage. This means making sure that the
+necessary directories under <a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-STORAGE-PATH:CAPS" title="GSIGNOND_CONFIG_GENERAL_STORAGE_PATH"><span class="type">GSIGNOND_CONFIG_GENERAL_STORAGE_PATH</span></a> exist and are accessible.</p>
+<div class="refsect3">
+<a name="id-1.7.5.8.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.5.8.2.6"></a><h4>Returns</h4>
+<p> success?</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-storage-manager-filesystem-is-mounted"></a><h3>gsignond_storage_manager_filesystem_is_mounted ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_storage_manager_filesystem_is_mounted
- (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
-<p>
-Checks if the encrypted storage filesystem is currently mounted.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>filesystem is currently mounted?</td>
-</tr>
-</tbody>
+<a name="gsignond-storage-manager-delete-storage"></a><h3>gsignond_storage_manager_delete_storage ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_storage_manager_delete_storage
+ (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
+<p>Destroys all the encryption keys and wipes the storage. <a class="link" href="gsignond-Utility-functions.html#gsignond-wipe-directory" title="gsignond_wipe_directory ()"><code class="function">gsignond_wipe_directory()</code></a>
+is typically used for the latter.</p>
+<div class="refsect3">
+<a name="id-1.7.5.8.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.5.8.3.6"></a><h4>Returns</h4>
+<p> success?</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-storage-manager-initialize-storage"></a><h3>gsignond_storage_manager_initialize_storage ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_storage_manager_initialize_storage
- (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
-<p>
-Initialize encryption storage. This means making sure that the
-necessary directories exist and are accessible.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>success?</td>
-</tr>
-</tbody>
+<a name="gsignond-storage-manager-storage-is-initialized"></a><h3>gsignond_storage_manager_storage_is_initialized ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_storage_manager_storage_is_initialized
+ (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
+<p>Checks if the storage has been initialized.</p>
+<div class="refsect3">
+<a name="id-1.7.5.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.5.8.4.6"></a><h4>Returns</h4>
+<p> storage has been initialized?</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-storage-manager-mount-filesystem"></a><h3>gsignond_storage_manager_mount_filesystem ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_storage_manager_mount_filesystem
- (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
-<p>
-Mounts an encrypted storage and returns the filesystem path of the storage
-mount point. This path will be used to access the secret database via
-<a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>.
-</p>
-<p>
-The default implemenation does nothing, and immediately returns the path for the
-secret database.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>path of the storage mount point. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<a name="gsignond-storage-manager-mount-filesystem"></a><h3>gsignond_storage_manager_mount_filesystem ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_storage_manager_mount_filesystem
+ (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
+<p>Mounts an encrypted storage and returns the filesystem path of the storage
+mount point. This path will be set in <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> as
+<a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-SECURE-DIR:CAPS" title="GSIGNOND_CONFIG_GENERAL_SECURE_DIR"><span class="type">GSIGNOND_CONFIG_GENERAL_SECURE_DIR</span></a> and used to access the secret database via
+<a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>.</p>
+<p>The default implemenation does nothing, and immediately returns the path for the
+secret database.</p>
+<div class="refsect3">
+<a name="id-1.7.5.8.5.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.5.8.5.7"></a><h4>Returns</h4>
+<p> path of the storage mount point. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-storage-manager-storage-is-initialized"></a><h3>gsignond_storage_manager_storage_is_initialized ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_storage_manager_storage_is_initialized
- (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
-<p>
-Checks if the storage has been initialized.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>storage has been initialized?</td>
-</tr>
-</tbody>
+<a name="gsignond-storage-manager-unmount-filesystem"></a><h3>gsignond_storage_manager_unmount_filesystem ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_storage_manager_unmount_filesystem
+ (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
+<p>Unmounts a previously mounted encrypted storage filesystem.</p>
+<div class="refsect3">
+<a name="id-1.7.5.8.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.5.8.6.6"></a><h4>Returns</h4>
+<p> success?</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-storage-manager-unmount-filesystem"></a><h3>gsignond_storage_manager_unmount_filesystem ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_storage_manager_unmount_filesystem
- (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
-<p>
-Unmounts a previously mounted encrypted storage filesystem.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>object instance.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>success?</td>
-</tr>
-</tbody>
+<a name="gsignond-storage-manager-filesystem-is-mounted"></a><h3>gsignond_storage_manager_filesystem_is_mounted ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_storage_manager_filesystem_is_mounted
+ (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
+<p>Checks if the encrypted storage filesystem is currently mounted.</p>
+<div class="refsect3">
+<a name="id-1.7.5.8.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>object instance.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.5.8.7.6"></a><h4>Returns</h4>
+<p> filesystem is currently mounted?</p>
+<p></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="GSignondStorageManager.other_details"></a><h2>Types and Values</h2>
</div>
<div class="refsect1">
<a name="GSignondStorageManager.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
-<a name="GSignondStorageManager--config"></a><h3>The <code class="literal">"config"</code> property</h3>
-<pre class="programlisting"> "config" <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>* : Read / Write / Construct Only</pre>
+<a name="GSignondStorageManager--config"></a><h3>The <code class="literal">“config”</code> property</h3>
+<pre class="programlisting"> “config” <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *</pre>
<p>Configuration object.</p>
+<p>Flags: Read / Write / Construct Only</p>
</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Annotation Glossary</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: Annotation Glossary</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
<link rel="up" href="index.html" title="gsignond API Reference Manual">
<link rel="prev" href="deprecated-api-index.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left"><a class="shortcut" href="#glsT">T</a></td>
+<td width="100%" align="left" class="shortcuts"><span id="nav_glossary"><a class="shortcut" href="#glsT">T</a></span></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
<td><a accesskey="p" href="deprecated-api-index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><img src="right-insensitive.png" width="16" height="16" border="0"></td>
</tr></table>
<div class="glossary">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="annotation-glossary"></a>Annotation Glossary</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="annotation-glossary"></a>Annotation Glossary</h1></div></div></div>
<a name="glsT"></a><h3 class="title">T</h3>
-<dt>
-<a name="annotation-glossterm-transfer%20full"></a>transfer full</dt>
-<dd><p>Free data after the code is done.</p></dd>
-<dt>
-<a name="annotation-glossterm-transfer%20none"></a>transfer none</dt>
-<dd><p>Don't free data after the code is done.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20full"></a>transfer full</span></dt>
+<dd class="glossdef"><p>Free data after the code is done.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20none"></a>transfer none</span></dt>
+<dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>API Index</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: API Index</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
<link rel="up" href="index.html" title="gsignond API Reference Manual">
<link rel="prev" href="object-tree.html" title="Object Hierarchy">
<link rel="next" href="deprecated-api-index.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a class="shortcut" href="#idxA">A</a>
- |
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxA">A</a>
+ <span class="dim">|</span>
<a class="shortcut" href="#idxC">C</a>
- |
+ <span class="dim">|</span>
<a class="shortcut" href="#idxD">D</a>
- |
+ <span class="dim">|</span>
<a class="shortcut" href="#idxE">E</a>
- |
+ <span class="dim">|</span>
<a class="shortcut" href="#idxG">G</a>
- |
+ <span class="dim">|</span>
<a class="shortcut" href="#idxI">I</a>
- |
+ <span class="dim">|</span>
<a class="shortcut" href="#idxP">P</a>
- |
+ <span class="dim">|</span>
<a class="shortcut" href="#idxS">S</a>
- |
+ <span class="dim">|</span>
<a class="shortcut" href="#idxT">T</a>
- |
+ <span class="dim">|</span>
<a class="shortcut" href="#idxU">U</a>
- |
- <a class="shortcut" href="#idxW">W</a>
-</td>
+ <span class="dim">|</span>
+ <a class="shortcut" href="#idxV">V</a>
+ <span class="dim">|</span>
+ <a class="shortcut" href="#idxW">W</a></span></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
<td><a accesskey="p" href="object-tree.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="deprecated-api-index.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-full"></a>API Index</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-full"></a>API Index</h1></div></div></div>
<a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
<dt>
-<a class="link" href="GSignondAccessControlManager.html#GSignondAccessControlManager-struct" title="struct GSignondAccessControlManager">GSignondAccessControlManager</a>, struct in <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
+<a class="link" href="GSignondAccessControlManager.html#GSignondAccessControlManager--config" title="The “config” property">GSignondAccessControlManager:config</a>, object property in <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondAccessControlManager.html#GSignondAccessControlManager--config" title='The "config" property'>GSignondAccessControlManager:config</a>, object property in <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
+<a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-acl-is-valid" title="gsignond_access_control_manager_acl_is_valid ()">gsignond_access_control_manager_acl_is_valid</a>, function in <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondAccessControlManager.html#GSignondAccessControlManagerClass" title="struct GSignondAccessControlManagerClass">GSignondAccessControlManagerClass</a>, struct in <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
+<a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-allowed-to-use-identity" title="gsignond_access_control_manager_peer_is_allowed_to_use_identity ()">gsignond_access_control_manager_peer_is_allowed_to_use_identity</a>, function in <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-acl-is-valid" title="gsignond_access_control_manager_acl_is_valid ()">gsignond_access_control_manager_acl_is_valid</a>, function in <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
+<a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-owner-of-identity" title="gsignond_access_control_manager_peer_is_owner_of_identity ()">gsignond_access_control_manager_peer_is_owner_of_identity</a>, function in <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-allowed-to-use-identity" title="gsignond_access_control_manager_peer_is_allowed_to_use_identity ()">gsignond_access_control_manager_peer_is_allowed_to_use_identity</a>, function in <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
+<a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-keychain" title="gsignond_access_control_manager_security_context_of_keychain ()">gsignond_access_control_manager_security_context_of_keychain</a>, function in <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-owner-of-identity" title="gsignond_access_control_manager_peer_is_owner_of_identity ()">gsignond_access_control_manager_peer_is_owner_of_identity</a>, function in <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
+<a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-peer" title="gsignond_access_control_manager_security_context_of_peer ()">gsignond_access_control_manager_security_context_of_peer</a>, function in <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-keychain" title="gsignond_access_control_manager_security_context_of_keychain ()">gsignond_access_control_manager_security_context_of_keychain</a>, function in <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-peer" title="gsignond_access_control_manager_security_context_of_peer ()">gsignond_access_control_manager_security_context_of_peer</a>, function in <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
+<a class="link" href="gsignond-Utility-functions.html#gsignond-array-to-sequence" title="gsignond_array_to_sequence ()">gsignond_array_to_sequence</a>, function in <a class="link" href="gsignond-Utility-functions.html" title="Utility functions">Utility functions</a>
</dt>
<dd></dd>
<a name="idxC"></a><h3 class="title">C</h3>
<dt>
-<a class="link" href="GSignondConfig.html#GSignondConfig-struct" title="struct GSignondConfig">GSignondConfig</a>, struct in <a class="link" href="GSignondConfig.html" title="GSignondConfig">GSignondConfig</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GSignondConfig.html#GSignondConfigClass" title="struct GSignondConfigClass">GSignondConfigClass</a>, struct in <a class="link" href="GSignondConfig.html" title="GSignondConfig">GSignondConfig</a>
-</dt>
-<dd></dd>
-<dt>
<a class="link" href="gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-AUTH-SESSION-TIMEOUT:CAPS" title="GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT">GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT</a>, macro in <a class="link" href="gsignond-DBus-configuration.html" title="DBus configuration">DBus configuration</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-Database-configuration.html#GSIGNOND-CONFIG-DB-METADATA-DB-FILENAME:CAPS" title="GSIGNOND_CONFIG_DB_METADATA_DB_FILENAME">GSIGNOND_CONFIG_DB_METADATA_DB_FILENAME</a>, macro in <a class="link" href="gsignond-Database-configuration.html" title="Database configuration">Database configuration</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gsignond-Database-configuration.html#GSIGNOND-CONFIG-DB-SECRET-DB-FILENAME:CAPS" title="GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME">GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME</a>, macro in <a class="link" href="gsignond-Database-configuration.html" title="Database configuration">Database configuration</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gsignond-Database-configuration.html#GSIGNOND-CONFIG-DB-SSO:CAPS" title="GSIGNOND_CONFIG_DB_SSO">GSIGNOND_CONFIG_DB_SSO</a>, macro in <a class="link" href="gsignond-Database-configuration.html" title="Database configuration">Database configuration</a>
-</dt>
-<dd></dd>
-<dt>
<a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL:CAPS" title="GSIGNOND_CONFIG_GENERAL">GSIGNOND_CONFIG_GENERAL</a>, macro in <a class="link" href="gsignond-General-configuration.html" title="General configuration">General configuration</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-BIN-DIR:CAPS" title="GSIGNOND_CONFIG_GENERAL_BIN_DIR">GSIGNOND_CONFIG_GENERAL_BIN_DIR</a>, macro in <a class="link" href="gsignond-General-configuration.html" title="General configuration">General configuration</a>
-</dt>
-<dd></dd>
-<dt>
<a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-EXTENSION:CAPS" title="GSIGNOND_CONFIG_GENERAL_EXTENSION">GSIGNOND_CONFIG_GENERAL_EXTENSION</a>, macro in <a class="link" href="gsignond-General-configuration.html" title="General configuration">General configuration</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-EXTENSIONS-DIR:CAPS" title="GSIGNOND_CONFIG_GENERAL_EXTENSIONS_DIR">GSIGNOND_CONFIG_GENERAL_EXTENSIONS_DIR</a>, macro in <a class="link" href="gsignond-General-configuration.html" title="General configuration">General configuration</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-PLUGINS-DIR:CAPS" title="GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR">GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR</a>, macro in <a class="link" href="gsignond-General-configuration.html" title="General configuration">General configuration</a>
+<a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-KEYCHAIN-SYSCTX:CAPS" title="GSIGNOND_CONFIG_GENERAL_KEYCHAIN_SYSCTX">GSIGNOND_CONFIG_GENERAL_KEYCHAIN_SYSCTX</a>, macro in <a class="link" href="gsignond-General-configuration.html" title="General configuration">General configuration</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondConfig.html#gsignond-config-get-integer" title="gsignond_config_get_integer ()">gsignond_config_get_integer</a>, function in <a class="link" href="GSignondConfig.html" title="GSignondConfig">GSignondConfig</a>
+<a class="link" href="GSignondConfig.html#gsignond-config-get-integer" title="gsignond_config_get_integer ()">gsignond_config_get_integer</a>, function in <a class="link" href="GSignondConfig.html" title="GSignondConfig">GSignondConfig</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondConfig.html#gsignond-config-get-string" title="gsignond_config_get_string ()">gsignond_config_get_string</a>, function in <a class="link" href="GSignondConfig.html" title="GSignondConfig">GSignondConfig</a>
+<a class="link" href="GSignondConfig.html#gsignond-config-get-string" title="gsignond_config_get_string ()">gsignond_config_get_string</a>, function in <a class="link" href="GSignondConfig.html" title="GSignondConfig">GSignondConfig</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondConfig.html#gsignond-config-new" title="gsignond_config_new ()">gsignond_config_new</a>, function in <a class="link" href="GSignondConfig.html" title="GSignondConfig">GSignondConfig</a>
+<a class="link" href="GSignondConfig.html#gsignond-config-new" title="gsignond_config_new ()">gsignond_config_new</a>, function in <a class="link" href="GSignondConfig.html" title="GSignondConfig">GSignondConfig</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondConfig.html#gsignond-config-set-integer" title="gsignond_config_set_integer ()">gsignond_config_set_integer</a>, function in <a class="link" href="GSignondConfig.html" title="GSignondConfig">GSignondConfig</a>
+<a class="link" href="GSignondConfig.html#gsignond-config-set-integer" title="gsignond_config_set_integer ()">gsignond_config_set_integer</a>, function in <a class="link" href="GSignondConfig.html" title="GSignondConfig">GSignondConfig</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondConfig.html#gsignond-config-set-string" title="gsignond_config_set_string ()">gsignond_config_set_string</a>, function in <a class="link" href="GSignondConfig.html" title="GSignondConfig">GSignondConfig</a>
+<a class="link" href="GSignondConfig.html#gsignond-config-set-string" title="gsignond_config_set_string ()">gsignond_config_set_string</a>, function in <a class="link" href="GSignondConfig.html" title="GSignondConfig">GSignondConfig</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondCredentials.html#GSignondCredentials-struct" title="GSignondCredentials">GSignondCredentials</a>, struct in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
+<a class="link" href="gsignond-Utility-functions.html#gsignond-copy-array-to-sequence" title="gsignond_copy_array_to_sequence ()">gsignond_copy_array_to_sequence</a>, function in <a class="link" href="gsignond-Utility-functions.html" title="Utility functions">Utility functions</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondCredentials.html#GSignondCredentialsClass" title="GSignondCredentialsClass">GSignondCredentialsClass</a>, struct in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-equal" title="gsignond_credentials_equal ()">gsignond_credentials_equal</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondCredentials.html#gsignond-credentials-equal" title="gsignond_credentials_equal ()">gsignond_credentials_equal</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-get-id" title="gsignond_credentials_get_id ()">gsignond_credentials_get_id</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondCredentials.html#gsignond-credentials-get-id" title="gsignond_credentials_get_id ()">gsignond_credentials_get_id</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-get-password" title="gsignond_credentials_get_password ()">gsignond_credentials_get_password</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondCredentials.html#gsignond-credentials-get-password" title="gsignond_credentials_get_password ()">gsignond_credentials_get_password</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-get-username" title="gsignond_credentials_get_username ()">gsignond_credentials_get_username</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondCredentials.html#gsignond-credentials-get-username" title="gsignond_credentials_get_username ()">gsignond_credentials_get_username</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-new" title="gsignond_credentials_new ()">gsignond_credentials_new</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondCredentials.html#gsignond-credentials-new" title="gsignond_credentials_new ()">gsignond_credentials_new</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-set-data" title="gsignond_credentials_set_data ()">gsignond_credentials_set_data</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondCredentials.html#gsignond-credentials-set-data" title="gsignond_credentials_set_data ()">gsignond_credentials_set_data</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-set-id" title="gsignond_credentials_set_id ()">gsignond_credentials_set_id</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondCredentials.html#gsignond-credentials-set-id" title="gsignond_credentials_set_id ()">gsignond_credentials_set_id</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-set-password" title="gsignond_credentials_set_password ()">gsignond_credentials_set_password</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondCredentials.html#gsignond-credentials-set-password" title="gsignond_credentials_set_password ()">gsignond_credentials_set_password</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GSignondCredentials.html#gsignond-credentials-set-username" title="gsignond_credentials_set_username ()">gsignond_credentials_set_username</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
+<a class="link" href="GSignondCredentials.html#gsignond-credentials-set-username" title="gsignond_credentials_set_username ()">gsignond_credentials_set_username</a>, function in <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
</dt>
<dd></dd>
<a name="idxD"></a><h3 class="title">D</h3>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary">GSignondDictionary</a>, typedef in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-contains" title="gsignond_dictionary_contains ()">gsignond_dictionary_contains</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-copy" title="gsignond_dictionary_copy ()">gsignond_dictionary_copy</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-copy" title="gsignond_dictionary_copy ()">gsignond_dictionary_copy</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get" title="gsignond_dictionary_get ()">gsignond_dictionary_get</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get" title="gsignond_dictionary_get ()">gsignond_dictionary_get</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-boolean" title="gsignond_dictionary_get_boolean ()">gsignond_dictionary_get_boolean</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-boolean" title="gsignond_dictionary_get_boolean ()">gsignond_dictionary_get_boolean</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-int32" title="gsignond_dictionary_get_int32 ()">gsignond_dictionary_get_int32</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-int32" title="gsignond_dictionary_get_int32 ()">gsignond_dictionary_get_int32</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-int64" title="gsignond_dictionary_get_int64 ()">gsignond_dictionary_get_int64</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-int64" title="gsignond_dictionary_get_int64 ()">gsignond_dictionary_get_int64</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-string" title="gsignond_dictionary_get_string ()">gsignond_dictionary_get_string</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-string" title="gsignond_dictionary_get_string ()">gsignond_dictionary_get_string</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint32" title="gsignond_dictionary_get_uint32 ()">gsignond_dictionary_get_uint32</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint32" title="gsignond_dictionary_get_uint32 ()">gsignond_dictionary_get_uint32</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint64" title="gsignond_dictionary_get_uint64 ()">gsignond_dictionary_get_uint64</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint64" title="gsignond_dictionary_get_uint64 ()">gsignond_dictionary_get_uint64</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-new" title="gsignond_dictionary_new ()">gsignond_dictionary_new</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-new" title="gsignond_dictionary_new ()">gsignond_dictionary_new</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-new-from-variant" title="gsignond_dictionary_new_from_variant ()">gsignond_dictionary_new_from_variant</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-new-from-variant" title="gsignond_dictionary_new_from_variant ()">gsignond_dictionary_new_from_variant</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-ref" title="gsignond_dictionary_ref ()">gsignond_dictionary_ref</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-ref" title="gsignond_dictionary_ref ()">gsignond_dictionary_ref</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-remove" title="gsignond_dictionary_remove ()">gsignond_dictionary_remove</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-remove" title="gsignond_dictionary_remove ()">gsignond_dictionary_remove</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set" title="gsignond_dictionary_set ()">gsignond_dictionary_set</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set" title="gsignond_dictionary_set ()">gsignond_dictionary_set</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-boolean" title="gsignond_dictionary_set_boolean ()">gsignond_dictionary_set_boolean</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-boolean" title="gsignond_dictionary_set_boolean ()">gsignond_dictionary_set_boolean</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-int32" title="gsignond_dictionary_set_int32 ()">gsignond_dictionary_set_int32</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-int32" title="gsignond_dictionary_set_int32 ()">gsignond_dictionary_set_int32</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-int64" title="gsignond_dictionary_set_int64 ()">gsignond_dictionary_set_int64</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-int64" title="gsignond_dictionary_set_int64 ()">gsignond_dictionary_set_int64</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-string" title="gsignond_dictionary_set_string ()">gsignond_dictionary_set_string</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-string" title="gsignond_dictionary_set_string ()">gsignond_dictionary_set_string</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-uint32" title="gsignond_dictionary_set_uint32 ()">gsignond_dictionary_set_uint32</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-uint32" title="gsignond_dictionary_set_uint32 ()">gsignond_dictionary_set_uint32</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-uint64" title="gsignond_dictionary_set_uint64 ()">gsignond_dictionary_set_uint64</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-uint64" title="gsignond_dictionary_set_uint64 ()">gsignond_dictionary_set_uint64</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-to-variant" title="gsignond_dictionary_to_variant ()">gsignond_dictionary_to_variant</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-to-variant" title="gsignond_dictionary_to_variant ()">gsignond_dictionary_to_variant</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-unref" title="gsignond_dictionary_unref ()">gsignond_dictionary_unref</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-to-variant-builder" title="gsignond_dictionary_to_variant_builder ()">gsignond_dictionary_to_variant_builder</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondDigestPlugin.html#GSignondDigestPlugin-struct" title="struct GSignondDigestPlugin">GSignondDigestPlugin</a>, struct in <a class="link" href="GSignondDigestPlugin.html" title="GSignondDigestPlugin">GSignondDigestPlugin</a>
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-unref" title="gsignond_dictionary_unref ()">gsignond_dictionary_unref</a>, function in <a class="link" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">GSignondDictionary</a>
</dt>
<dd></dd>
+<a name="idxE"></a><h3 class="title">E</h3>
<dt>
-<a class="link" href="GSignondDigestPlugin.html#GSignondDigestPluginClass" title="struct GSignondDigestPluginClass">GSignondDigestPluginClass</a>, struct in <a class="link" href="GSignondDigestPlugin.html" title="GSignondDigestPlugin">GSignondDigestPlugin</a>
+<a class="link" href="gsignond-Logging.html#ERR:CAPS" title="ERR()">ERR</a>, macro in <a class="link" href="gsignond-Logging.html" title="Logging">Logging</a>
</dt>
<dd></dd>
-<a name="idxE"></a><h3 class="title">E</h3>
<dt>
-<a class="link" href="gsignond-Logging.html#ERR:CAPS" title="ERR()">ERR</a>, macro in <a class="link" href="gsignond-Logging.html" title="Logging">Logging</a>
+<a class="link" href="gsignond-Errors.html#GSIGNOND-ERROR:CAPS" title="GSIGNOND_ERROR">GSIGNOND_ERROR</a>, macro in <a class="link" href="gsignond-Errors.html" title="Errors">Errors</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-Errors.html#GSIGNOND-ERROR:CAPS" title="GSIGNOND_ERROR">GSIGNOND_ERROR</a>, macro in <a class="link" href="gsignond-Errors.html" title="Errors">Errors</a>
+<a class="link" href="gsignond-Errors.html#gsignond-error-new-from-variant" title="gsignond_error_new_from_variant ()">gsignond_error_new_from_variant</a>, function in <a class="link" href="gsignond-Errors.html" title="Errors">Errors</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-Errors.html#gsignond-error-new-from-variant" title="gsignond_error_new_from_variant ()">gsignond_error_new_from_variant</a>, function in <a class="link" href="gsignond-Errors.html" title="Errors">Errors</a>
+<a class="link" href="gsignond-Errors.html#gsignond-error-quark" title="gsignond_error_quark ()">gsignond_error_quark</a>, function in <a class="link" href="gsignond-Errors.html" title="Errors">Errors</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-Errors.html#gsignond-error-quark" title="gsignond_error_quark ()">gsignond_error_quark</a>, function in <a class="link" href="gsignond-Errors.html" title="Errors">Errors</a>
+<a class="link" href="gsignond-Errors.html#gsignond-error-to-variant" title="gsignond_error_to_variant ()">gsignond_error_to_variant</a>, function in <a class="link" href="gsignond-Errors.html" title="Errors">Errors</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-Errors.html#gsignond-error-to-variant" title="gsignond_error_to_variant ()">gsignond_error_to_variant</a>, function in <a class="link" href="gsignond-Errors.html" title="Errors">Errors</a>
+<a class="link" href="GSignondExtension.html#gsignond-extension-get-access-control-manager" title="gsignond_extension_get_access_control_manager ()">gsignond_extension_get_access_control_manager</a>, function in <a class="link" href="GSignondExtension.html" title="GSignondExtension">GSignondExtension</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondExtension.html#GSignondExtension-struct" title="struct GSignondExtension">GSignondExtension</a>, struct in <a class="link" href="GSignondExtension.html" title="GSignondExtension">GSignondExtension</a>
+<a class="link" href="GSignondExtension.html#gsignond-extension-get-name" title="gsignond_extension_get_name ()">gsignond_extension_get_name</a>, function in <a class="link" href="GSignondExtension.html" title="GSignondExtension">GSignondExtension</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondExtension.html#GSignondExtensionClass" title="struct GSignondExtensionClass">GSignondExtensionClass</a>, struct in <a class="link" href="GSignondExtension.html" title="GSignondExtension">GSignondExtension</a>
+<a class="link" href="GSignondExtension.html#gsignond-extension-get-secret-storage" title="gsignond_extension_get_secret_storage ()">gsignond_extension_get_secret_storage</a>, function in <a class="link" href="GSignondExtension.html" title="GSignondExtension">GSignondExtension</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondExtension.html#gsignond-extension-get-access-control-manager" title="gsignond_extension_get_access_control_manager ()">gsignond_extension_get_access_control_manager</a>, function in <a class="link" href="GSignondExtension.html" title="GSignondExtension">GSignondExtension</a>
+<a class="link" href="GSignondExtension.html#gsignond-extension-get-storage-manager" title="gsignond_extension_get_storage_manager ()">gsignond_extension_get_storage_manager</a>, function in <a class="link" href="GSignondExtension.html" title="GSignondExtension">GSignondExtension</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondExtension.html#gsignond-extension-get-name" title="gsignond_extension_get_name ()">gsignond_extension_get_name</a>, function in <a class="link" href="GSignondExtension.html" title="GSignondExtension">GSignondExtension</a>
+<a class="link" href="GSignondExtension.html#gsignond-extension-get-version" title="gsignond_extension_get_version ()">gsignond_extension_get_version</a>, function in <a class="link" href="GSignondExtension.html" title="GSignondExtension">GSignondExtension</a>
</dt>
<dd></dd>
+<a name="idxG"></a><h3 class="title">G</h3>
<dt>
-<a class="link" href="GSignondExtension.html#gsignond-extension-get-secret-storage" title="gsignond_extension_get_secret_storage ()">gsignond_extension_get_secret_storage</a>, function in <a class="link" href="GSignondExtension.html" title="GSignondExtension">GSignondExtension</a>
+<a class="link" href="gsignond-Utility-functions.html#gsignond-generate-nonce" title="gsignond_generate_nonce ()">gsignond_generate_nonce</a>, function in <a class="link" href="gsignond-Utility-functions.html" title="Utility functions">Utility functions</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondExtension.html#gsignond-extension-get-storage-manager" title="gsignond_extension_get_storage_manager ()">gsignond_extension_get_storage_manager</a>, function in <a class="link" href="GSignondExtension.html" title="GSignondExtension">GSignondExtension</a>
+<a class="link" href="gsignond-Errors.html#gsignond-get-gerror-for-id" title="gsignond_get_gerror_for_id()">gsignond_get_gerror_for_id</a>, macro in <a class="link" href="gsignond-Errors.html" title="Errors">Errors</a>
</dt>
<dd></dd>
+<a name="idxI"></a><h3 class="title">I</h3>
<dt>
-<a class="link" href="GSignondExtension.html#gsignond-extension-get-version" title="gsignond_extension_get_version ()">gsignond_extension_get_version</a>, function in <a class="link" href="GSignondExtension.html" title="GSignondExtension">GSignondExtension</a>
+<a class="link" href="gsignond-Logging.html#INFO:CAPS" title="INFO()">INFO</a>, macro in <a class="link" href="gsignond-Logging.html" title="Logging">Logging</a>
</dt>
<dd></dd>
-<a name="idxG"></a><h3 class="title">G</h3>
<dt>
-<a class="link" href="gsignond-Utility-functions.html#gsignond-generate-nonce" title="gsignond_generate_nonce ()">gsignond_generate_nonce</a>, function in <a class="link" href="gsignond-Utility-functions.html" title="Utility functions">Utility functions</a>
+<a class="link" href="gsignond-Utility-functions.html#gsignond-is-host-in-domain" title="gsignond_is_host_in_domain ()">gsignond_is_host_in_domain</a>, function in <a class="link" href="gsignond-Utility-functions.html" title="Utility functions">Utility functions</a>
</dt>
<dd></dd>
+<a name="idxP"></a><h3 class="title">P</h3>
<dt>
-<a class="link" href="gsignond-Errors.html#gsignond-get-gerror-for-id" title="gsignond_get_gerror_for_id()">gsignond_get_gerror_for_id</a>, macro in <a class="link" href="gsignond-Errors.html" title="Errors">Errors</a>
+<a class="link" href="GSignondPlugin.html#GSignondPlugin-error" title="The “error” signal">GSignondPlugin::error</a>, object signal in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
-<a name="idxI"></a><h3 class="title">I</h3>
<dt>
-<a class="link" href="gsignond-Logging.html#INFO:CAPS" title="INFO()">INFO</a>, macro in <a class="link" href="gsignond-Logging.html" title="Logging">Logging</a>
+<a class="link" href="GSignondPlugin.html#GSignondPlugin-refreshed" title="The “refreshed” signal">GSignondPlugin::refreshed</a>, object signal in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
-<a name="idxP"></a><h3 class="title">P</h3>
<dt>
-<a class="link" href="GSignondPasswordPlugin.html#GSignondPasswordPlugin-struct" title="struct GSignondPasswordPlugin">GSignondPasswordPlugin</a>, struct in <a class="link" href="GSignondPasswordPlugin.html" title="GSignondPasswordPlugin">GSignondPasswordPlugin</a>
+<a class="link" href="GSignondPlugin.html#GSignondPlugin-response" title="The “response” signal">GSignondPlugin::response</a>, object signal in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondPasswordPlugin.html#GSignondPasswordPluginClass" title="struct GSignondPasswordPluginClass">GSignondPasswordPluginClass</a>, struct in <a class="link" href="GSignondPasswordPlugin.html" title="GSignondPasswordPlugin">GSignondPasswordPlugin</a>
+<a class="link" href="GSignondPlugin.html#GSignondPlugin-response-final" title="The “response-final” signal">GSignondPlugin::response-final</a>, object signal in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondPlugin.html#GSignondPluginInterface" title="struct GSignondPluginInterface">GSignondPluginInterface</a>, struct in <a class="link" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
+<a class="link" href="GSignondPlugin.html#GSignondPlugin-status-changed" title="The “status-changed” signal">GSignondPlugin::status-changed</a>, object signal in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondPlugin.html#GSignondPluginState" title="enum GSignondPluginState">GSignondPluginState</a>, enum in <a class="link" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
+<a class="link" href="GSignondPlugin.html#GSignondPlugin-store" title="The “store” signal">GSignondPlugin::store</a>, object signal in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-cancel" title="gsignond_plugin_cancel ()">gsignond_plugin_cancel</a>, function in <a class="link" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
+<a class="link" href="GSignondPlugin.html#GSignondPlugin-user-action-required" title="The “user-action-required” signal">GSignondPlugin::user-action-required</a>, object signal in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-error" title="gsignond_plugin_error ()">gsignond_plugin_error</a>, function in <a class="link" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
+<a class="link" href="GSignondPlugin.html#GSignondPlugin--mechanisms" title="The “mechanisms” property">GSignondPlugin:mechanisms</a>, object property in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-refresh" title="gsignond_plugin_refresh ()">gsignond_plugin_refresh</a>, function in <a class="link" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
+<a class="link" href="GSignondPlugin.html#GSignondPlugin--type" title="The “type” property">GSignondPlugin:type</a>, object property in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-refreshed" title="gsignond_plugin_refreshed ()">gsignond_plugin_refreshed</a>, function in <a class="link" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
+<a class="link" href="GSignondPlugin.html#GSignondPluginInterface" title="struct GSignondPluginInterface">GSignondPluginInterface</a>, struct in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-request" title="gsignond_plugin_request ()">gsignond_plugin_request</a>, function in <a class="link" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
+<a class="link" href="GSignondPlugin.html#GSignondPluginState" title="enum GSignondPluginState">GSignondPluginState</a>, enum in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-request-initial" title="gsignond_plugin_request_initial ()">gsignond_plugin_request_initial</a>, function in <a class="link" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-cancel" title="gsignond_plugin_cancel ()">gsignond_plugin_cancel</a>, function in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-response" title="gsignond_plugin_response ()">gsignond_plugin_response</a>, function in <a class="link" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-error" title="gsignond_plugin_error ()">gsignond_plugin_error</a>, function in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-response-final" title="gsignond_plugin_response_final ()">gsignond_plugin_response_final</a>, function in <a class="link" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-refresh" title="gsignond_plugin_refresh ()">gsignond_plugin_refresh</a>, function in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-status-changed" title="gsignond_plugin_status_changed ()">gsignond_plugin_status_changed</a>, function in <a class="link" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-refreshed" title="gsignond_plugin_refreshed ()">gsignond_plugin_refreshed</a>, function in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-store" title="gsignond_plugin_store ()">gsignond_plugin_store</a>, function in <a class="link" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-request" title="gsignond_plugin_request ()">gsignond_plugin_request</a>, function in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-user-action-finished" title="gsignond_plugin_user_action_finished ()">gsignond_plugin_user_action_finished</a>, function in <a class="link" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-request-initial" title="gsignond_plugin_request_initial ()">gsignond_plugin_request_initial</a>, function in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-user-action-required" title="gsignond_plugin_user_action_required ()">gsignond_plugin_user_action_required</a>, function in <a class="link" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-response" title="gsignond_plugin_response ()">gsignond_plugin_response</a>, function in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
-<a name="idxS"></a><h3 class="title">S</h3>
<dt>
-<a class="link" href="GSignondSecretStorage.html#GSignondSecretStorage-struct" title="GSignondSecretStorage">GSignondSecretStorage</a>, struct in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-response-final" title="gsignond_plugin_response_final ()">gsignond_plugin_response_final</a>, function in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondSecretStorage.html#GSignondSecretStorage--config" title='The "config" property'>GSignondSecretStorage:config</a>, object property in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-status-changed" title="gsignond_plugin_status_changed ()">gsignond_plugin_status_changed</a>, function in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondSecretStorage.html#GSignondSecretStorageClass" title="GSignondSecretStorageClass">GSignondSecretStorageClass</a>, struct in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-store" title="gsignond_plugin_store ()">gsignond_plugin_store</a>, function in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-check-credentials" title="gsignond_secret_storage_check_credentials ()">gsignond_secret_storage_check_credentials</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-user-action-finished" title="gsignond_plugin_user_action_finished ()">gsignond_plugin_user_action_finished</a>, function in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-clear-db" title="gsignond_secret_storage_clear_db ()">gsignond_secret_storage_clear_db</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+<a class="link" href="GSignondPlugin.html#gsignond-plugin-user-action-required" title="gsignond_plugin_user_action_required ()">gsignond_plugin_user_action_required</a>, function in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</dt>
<dd></dd>
+<a name="idxS"></a><h3 class="title">S</h3>
<dt>
-<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-close-db" title="gsignond_secret_storage_close_db ()">gsignond_secret_storage_close_db</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+<a class="link" href="GSignondSecretStorage.html#GSignondSecretStorage--config" title="The “config” property">GSignondSecretStorage:config</a>, object property in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-get-last-error" title="gsignond_secret_storage_get_last_error ()">gsignond_secret_storage_get_last_error</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-check-credentials" title="gsignond_secret_storage_check_credentials ()">gsignond_secret_storage_check_credentials</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-is-open-db" title="gsignond_secret_storage_is_open_db ()">gsignond_secret_storage_is_open_db</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-clear-db" title="gsignond_secret_storage_clear_db ()">gsignond_secret_storage_clear_db</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-load-credentials" title="gsignond_secret_storage_load_credentials ()">gsignond_secret_storage_load_credentials</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-close-db" title="gsignond_secret_storage_close_db ()">gsignond_secret_storage_close_db</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-load-data" title="gsignond_secret_storage_load_data ()">gsignond_secret_storage_load_data</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-get-last-error" title="gsignond_secret_storage_get_last_error ()">gsignond_secret_storage_get_last_error</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-open-db" title="gsignond_secret_storage_open_db ()">gsignond_secret_storage_open_db</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-is-open-db" title="gsignond_secret_storage_is_open_db ()">gsignond_secret_storage_is_open_db</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-remove-credentials" title="gsignond_secret_storage_remove_credentials ()">gsignond_secret_storage_remove_credentials</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-load-credentials" title="gsignond_secret_storage_load_credentials ()">gsignond_secret_storage_load_credentials</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-remove-data" title="gsignond_secret_storage_remove_data ()">gsignond_secret_storage_remove_data</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-load-data" title="gsignond_secret_storage_load_data ()">gsignond_secret_storage_load_data</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-update-credentials" title="gsignond_secret_storage_update_credentials ()">gsignond_secret_storage_update_credentials</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-open-db" title="gsignond_secret_storage_open_db ()">gsignond_secret_storage_open_db</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-update-data" title="gsignond_secret_storage_update_data ()">gsignond_secret_storage_update_data</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-remove-credentials" title="gsignond_secret_storage_remove_credentials ()">gsignond_secret_storage_remove_credentials</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext">GSignondSecurityContext</a>, struct in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-remove-data" title="gsignond_secret_storage_remove_data ()">gsignond_secret_storage_remove_data</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList">GSignondSecurityContextList</a>, typedef in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-update-credentials" title="gsignond_secret_storage_update_credentials ()">gsignond_secret_storage_update_credentials</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-check" title="gsignond_security_context_check ()">gsignond_security_context_check</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="GSignondSecretStorage.html#gsignond-secret-storage-update-data" title="gsignond_secret_storage_update_data ()">gsignond_secret_storage_update_data</a>, function in <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-compare" title="gsignond_security_context_compare ()">gsignond_security_context_compare</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext">GSignondSecurityContext</a>, struct in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-copy" title="gsignond_security_context_copy ()">gsignond_security_context_copy</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList">GSignondSecurityContextList</a>, typedef in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-free" title="gsignond_security_context_free ()">gsignond_security_context_free</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-check" title="gsignond_security_context_check ()">gsignond_security_context_check</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-from-variant" title="gsignond_security_context_from_variant ()">gsignond_security_context_from_variant</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-compare" title="gsignond_security_context_compare ()">gsignond_security_context_compare</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-get-application-context" title="gsignond_security_context_get_application_context ()">gsignond_security_context_get_application_context</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-copy" title="gsignond_security_context_copy ()">gsignond_security_context_copy</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-get-system-context" title="gsignond_security_context_get_system_context ()">gsignond_security_context_get_system_context</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-free" title="gsignond_security_context_free ()">gsignond_security_context_free</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-copy" title="gsignond_security_context_list_copy ()">gsignond_security_context_list_copy</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-from-variant" title="gsignond_security_context_from_variant ()">gsignond_security_context_from_variant</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-free" title="gsignond_security_context_list_free ()">gsignond_security_context_list_free</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-get-application-context" title="gsignond_security_context_get_application_context ()">gsignond_security_context_get_application_context</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-from-variant" title="gsignond_security_context_list_from_variant ()">gsignond_security_context_list_from_variant</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-get-system-context" title="gsignond_security_context_get_system_context ()">gsignond_security_context_get_system_context</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-to-variant" title="gsignond_security_context_list_to_variant ()">gsignond_security_context_list_to_variant</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-copy" title="gsignond_security_context_list_copy ()">gsignond_security_context_list_copy</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-match" title="gsignond_security_context_match ()">gsignond_security_context_match</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-free" title="gsignond_security_context_list_free ()">gsignond_security_context_list_free</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-new" title="gsignond_security_context_new ()">gsignond_security_context_new</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-from-variant" title="gsignond_security_context_list_from_variant ()">gsignond_security_context_list_from_variant</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-new-from-values" title="gsignond_security_context_new_from_values ()">gsignond_security_context_new_from_values</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-to-variant" title="gsignond_security_context_list_to_variant ()">gsignond_security_context_list_to_variant</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-set-application-context" title="gsignond_security_context_set_application_context ()">gsignond_security_context_set_application_context</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-match" title="gsignond_security_context_match ()">gsignond_security_context_match</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-set-system-context" title="gsignond_security_context_set_system_context ()">gsignond_security_context_set_system_context</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-new" title="gsignond_security_context_new ()">gsignond_security_context_new</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-to-variant" title="gsignond_security_context_to_variant ()">gsignond_security_context_to_variant</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-new-from-values" title="gsignond_security_context_new_from_values ()">gsignond_security_context_new_from_values</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData">GSignondSessionData</a>, typedef in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-set-application-context" title="gsignond_security_context_set_application_context ()">gsignond_security_context_set_application_context</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-caption" title="gsignond_session_data_get_caption ()">gsignond_session_data_get_caption</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-set-system-context" title="gsignond_security_context_set_system_context ()">gsignond_security_context_set_system_context</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-network-proxy" title="gsignond_session_data_get_network_proxy ()">gsignond_session_data_get_network_proxy</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-to-variant" title="gsignond_security_context_to_variant ()">gsignond_security_context_to_variant</a>, function in <a class="link" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">GSignondSecurityContext</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-network-timeout" title="gsignond_session_data_get_network_timeout ()">gsignond_session_data_get_network_timeout</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-Utility-functions.html#gsignond-sequence-to-array" title="gsignond_sequence_to_array ()">gsignond_sequence_to_array</a>, function in <a class="link" href="gsignond-Utility-functions.html" title="Utility functions">Utility functions</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-realm" title="gsignond_session_data_get_realm ()">gsignond_session_data_get_realm</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-Utility-functions.html#gsignond-sequence-to-variant" title="gsignond_sequence_to_variant ()">gsignond_sequence_to_variant</a>, function in <a class="link" href="gsignond-Utility-functions.html" title="Utility functions">Utility functions</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-renew-token" title="gsignond_session_data_get_renew_token ()">gsignond_session_data_get_renew_token</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-allowed-realms" title="gsignond_session_data_get_allowed_realms ()">gsignond_session_data_get_allowed_realms</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-secret" title="gsignond_session_data_get_secret ()">gsignond_session_data_get_secret</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-caption" title="gsignond_session_data_get_caption ()">gsignond_session_data_get_caption</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-ui-policy" title="gsignond_session_data_get_ui_policy ()">gsignond_session_data_get_ui_policy</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-network-proxy" title="gsignond_session_data_get_network_proxy ()">gsignond_session_data_get_network_proxy</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-username" title="gsignond_session_data_get_username ()">gsignond_session_data_get_username</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-network-timeout" title="gsignond_session_data_get_network_timeout ()">gsignond_session_data_get_network_timeout</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-window-id" title="gsignond_session_data_get_window_id ()">gsignond_session_data_get_window_id</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-realm" title="gsignond_session_data_get_realm ()">gsignond_session_data_get_realm</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-caption" title="gsignond_session_data_set_caption ()">gsignond_session_data_set_caption</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-renew-token" title="gsignond_session_data_get_renew_token ()">gsignond_session_data_get_renew_token</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-network-proxy" title="gsignond_session_data_set_network_proxy ()">gsignond_session_data_set_network_proxy</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-secret" title="gsignond_session_data_get_secret ()">gsignond_session_data_get_secret</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-network-timeout" title="gsignond_session_data_set_network_timeout ()">gsignond_session_data_set_network_timeout</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-ui-policy" title="gsignond_session_data_get_ui_policy ()">gsignond_session_data_get_ui_policy</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-realm" title="gsignond_session_data_set_realm ()">gsignond_session_data_set_realm</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-username" title="gsignond_session_data_get_username ()">gsignond_session_data_get_username</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-renew-token" title="gsignond_session_data_set_renew_token ()">gsignond_session_data_set_renew_token</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-window-id" title="gsignond_session_data_get_window_id ()">gsignond_session_data_get_window_id</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-secret" title="gsignond_session_data_set_secret ()">gsignond_session_data_set_secret</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-allowed-realms" title="gsignond_session_data_set_allowed_realms ()">gsignond_session_data_set_allowed_realms</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-ui-policy" title="gsignond_session_data_set_ui_policy ()">gsignond_session_data_set_ui_policy</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-caption" title="gsignond_session_data_set_caption ()">gsignond_session_data_set_caption</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-username" title="gsignond_session_data_set_username ()">gsignond_session_data_set_username</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-network-proxy" title="gsignond_session_data_set_network_proxy ()">gsignond_session_data_set_network_proxy</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-window-id" title="gsignond_session_data_set_window_id ()">gsignond_session_data_set_window_id</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-network-timeout" title="gsignond_session_data_set_network_timeout ()">gsignond_session_data_set_network_timeout</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData">GSignondSignonuiData</a>, typedef in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-realm" title="gsignond_session_data_set_realm ()">gsignond_session_data_set_realm</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiError" title="enum GSignondSignonuiError">GSignondSignonuiError</a>, enum in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-renew-token" title="gsignond_session_data_set_renew_token ()">gsignond_session_data_set_renew_token</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-captcha-response" title="gsignond_signonui_data_get_captcha_response ()">gsignond_signonui_data_get_captcha_response</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-secret" title="gsignond_session_data_set_secret ()">gsignond_session_data_set_secret</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-captcha-url" title="gsignond_signonui_data_get_captcha_url ()">gsignond_signonui_data_get_captcha_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-ui-policy" title="gsignond_session_data_set_ui_policy ()">gsignond_session_data_set_ui_policy</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-caption" title="gsignond_signonui_data_get_caption ()">gsignond_signonui_data_get_caption</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-username" title="gsignond_session_data_set_username ()">gsignond_session_data_set_username</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-confirm" title="gsignond_signonui_data_get_confirm ()">gsignond_signonui_data_get_confirm</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-window-id" title="gsignond_session_data_set_window_id ()">gsignond_session_data_set_window_id</a>, function in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-final-url" title="gsignond_signonui_data_get_final_url ()">gsignond_signonui_data_get_final_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiError" title="enum GSignondSignonuiError">GSignondSignonuiError</a>, enum in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-captcha-response" title="gsignond_signonui_data_get_captcha_response ()">gsignond_signonui_data_get_captcha_response</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password" title="gsignond_signonui_data_get_forgot_password ()">gsignond_signonui_data_get_forgot_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-captcha-url" title="gsignond_signonui_data_get_captcha_url ()">gsignond_signonui_data_get_captcha_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password-url" title="gsignond_signonui_data_get_forgot_password_url ()">gsignond_signonui_data_get_forgot_password_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-caption" title="gsignond_signonui_data_get_caption ()">gsignond_signonui_data_get_caption</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-message" title="gsignond_signonui_data_get_message ()">gsignond_signonui_data_get_message</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-confirm" title="gsignond_signonui_data_get_confirm ()">gsignond_signonui_data_get_confirm</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-open-url" title="gsignond_signonui_data_get_open_url ()">gsignond_signonui_data_get_open_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-final-url" title="gsignond_signonui_data_get_final_url ()">gsignond_signonui_data_get_final_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-password" title="gsignond_signonui_data_get_password ()">gsignond_signonui_data_get_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password" title="gsignond_signonui_data_get_forgot_password ()">gsignond_signonui_data_get_forgot_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-error" title="gsignond_signonui_data_get_query_error ()">gsignond_signonui_data_get_query_error</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password-url" title="gsignond_signonui_data_get_forgot_password_url ()">gsignond_signonui_data_get_forgot_password_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-password" title="gsignond_signonui_data_get_query_password ()">gsignond_signonui_data_get_query_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-message" title="gsignond_signonui_data_get_message ()">gsignond_signonui_data_get_message</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-username" title="gsignond_signonui_data_get_query_username ()">gsignond_signonui_data_get_query_username</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-open-url" title="gsignond_signonui_data_get_open_url ()">gsignond_signonui_data_get_open_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-remember-password" title="gsignond_signonui_data_get_remember_password ()">gsignond_signonui_data_get_remember_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-password" title="gsignond_signonui_data_get_password ()">gsignond_signonui_data_get_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-request-id" title="gsignond_signonui_data_get_request_id ()">gsignond_signonui_data_get_request_id</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-error" title="gsignond_signonui_data_get_query_error ()">gsignond_signonui_data_get_query_error</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-test-reply" title="gsignond_signonui_data_get_test_reply ()">gsignond_signonui_data_get_test_reply</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-password" title="gsignond_signonui_data_get_query_password ()">gsignond_signonui_data_get_query_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-title" title="gsignond_signonui_data_get_title ()">gsignond_signonui_data_get_title</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-username" title="gsignond_signonui_data_get_query_username ()">gsignond_signonui_data_get_query_username</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-url-response" title="gsignond_signonui_data_get_url_response ()">gsignond_signonui_data_get_url_response</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-remember-password" title="gsignond_signonui_data_get_remember_password ()">gsignond_signonui_data_get_remember_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-username" title="gsignond_signonui_data_get_username ()">gsignond_signonui_data_get_username</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-request-id" title="gsignond_signonui_data_get_request_id ()">gsignond_signonui_data_get_request_id</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-captcha-response" title="gsignond_signonui_data_set_captcha_response ()">gsignond_signonui_data_set_captcha_response</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-test-reply" title="gsignond_signonui_data_get_test_reply ()">gsignond_signonui_data_get_test_reply</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-captcha-url" title="gsignond_signonui_data_set_captcha_url ()">gsignond_signonui_data_set_captcha_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-title" title="gsignond_signonui_data_get_title ()">gsignond_signonui_data_get_title</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-caption" title="gsignond_signonui_data_set_caption ()">gsignond_signonui_data_set_caption</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-url-response" title="gsignond_signonui_data_get_url_response ()">gsignond_signonui_data_get_url_response</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-confirm" title="gsignond_signonui_data_set_confirm ()">gsignond_signonui_data_set_confirm</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-username" title="gsignond_signonui_data_get_username ()">gsignond_signonui_data_get_username</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-final-url" title="gsignond_signonui_data_set_final_url ()">gsignond_signonui_data_set_final_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-captcha-response" title="gsignond_signonui_data_set_captcha_response ()">gsignond_signonui_data_set_captcha_response</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-forgot-password" title="gsignond_signonui_data_set_forgot_password ()">gsignond_signonui_data_set_forgot_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-captcha-url" title="gsignond_signonui_data_set_captcha_url ()">gsignond_signonui_data_set_captcha_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-forgot-password-url" title="gsignond_signonui_data_set_forgot_password_url ()">gsignond_signonui_data_set_forgot_password_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-caption" title="gsignond_signonui_data_set_caption ()">gsignond_signonui_data_set_caption</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-message" title="gsignond_signonui_data_set_message ()">gsignond_signonui_data_set_message</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-confirm" title="gsignond_signonui_data_set_confirm ()">gsignond_signonui_data_set_confirm</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-open-url" title="gsignond_signonui_data_set_open_url ()">gsignond_signonui_data_set_open_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-final-url" title="gsignond_signonui_data_set_final_url ()">gsignond_signonui_data_set_final_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-password" title="gsignond_signonui_data_set_password ()">gsignond_signonui_data_set_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-forgot-password" title="gsignond_signonui_data_set_forgot_password ()">gsignond_signonui_data_set_forgot_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-error" title="gsignond_signonui_data_set_query_error ()">gsignond_signonui_data_set_query_error</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-forgot-password-url" title="gsignond_signonui_data_set_forgot_password_url ()">gsignond_signonui_data_set_forgot_password_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-password" title="gsignond_signonui_data_set_query_password ()">gsignond_signonui_data_set_query_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-message" title="gsignond_signonui_data_set_message ()">gsignond_signonui_data_set_message</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-username" title="gsignond_signonui_data_set_query_username ()">gsignond_signonui_data_set_query_username</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-open-url" title="gsignond_signonui_data_set_open_url ()">gsignond_signonui_data_set_open_url</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-remember-password" title="gsignond_signonui_data_set_remember_password ()">gsignond_signonui_data_set_remember_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-password" title="gsignond_signonui_data_set_password ()">gsignond_signonui_data_set_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-request-id" title="gsignond_signonui_data_set_request_id ()">gsignond_signonui_data_set_request_id</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-error" title="gsignond_signonui_data_set_query_error ()">gsignond_signonui_data_set_query_error</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-test-reply" title="gsignond_signonui_data_set_test_reply ()">gsignond_signonui_data_set_test_reply</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-password" title="gsignond_signonui_data_set_query_password ()">gsignond_signonui_data_set_query_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-title" title="gsignond_signonui_data_set_title ()">gsignond_signonui_data_set_title</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-username" title="gsignond_signonui_data_set_query_username ()">gsignond_signonui_data_set_query_username</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-url-response" title="gsignond_signonui_data_set_url_response ()">gsignond_signonui_data_set_url_response</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-remember-password" title="gsignond_signonui_data_set_remember_password ()">gsignond_signonui_data_set_remember_password</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-username" title="gsignond_signonui_data_set_username ()">gsignond_signonui_data_set_username</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-request-id" title="gsignond_signonui_data_set_request_id ()">gsignond_signonui_data_set_request_id</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondSsoTestPlugin.html#GSignondSsoTestPlugin-struct" title="struct GSignondSsoTestPlugin">GSignondSsoTestPlugin</a>, struct in <a class="link" href="GSignondSsoTestPlugin.html" title="GSignondSsoTestPlugin">GSignondSsoTestPlugin</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-test-reply" title="gsignond_signonui_data_set_test_reply ()">gsignond_signonui_data_set_test_reply</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondSsoTestPlugin.html#GSignondSsoTestPluginClass" title="struct GSignondSsoTestPluginClass">GSignondSsoTestPluginClass</a>, struct in <a class="link" href="GSignondSsoTestPlugin.html" title="GSignondSsoTestPlugin">GSignondSsoTestPlugin</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-title" title="gsignond_signonui_data_set_title ()">gsignond_signonui_data_set_title</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondStorageManager.html#GSignondStorageManager-struct" title="struct GSignondStorageManager">GSignondStorageManager</a>, struct in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-url-response" title="gsignond_signonui_data_set_url_response ()">gsignond_signonui_data_set_url_response</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondStorageManager.html#GSignondStorageManager--config" title='The "config" property'>GSignondStorageManager:config</a>, object property in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-username" title="gsignond_signonui_data_set_username ()">gsignond_signonui_data_set_username</a>, function in <a class="link" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">GSignondSignonuiData</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondStorageManager.html#GSignondStorageManagerClass" title="struct GSignondStorageManagerClass">GSignondStorageManagerClass</a>, struct in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
+<a class="link" href="GSignondStorageManager.html#GSignondStorageManager--config" title="The “config” property">GSignondStorageManager:config</a>, object property in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-delete-storage" title="gsignond_storage_manager_delete_storage ()">gsignond_storage_manager_delete_storage</a>, function in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
+<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-delete-storage" title="gsignond_storage_manager_delete_storage ()">gsignond_storage_manager_delete_storage</a>, function in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-filesystem-is-mounted" title="gsignond_storage_manager_filesystem_is_mounted ()">gsignond_storage_manager_filesystem_is_mounted</a>, function in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
+<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-filesystem-is-mounted" title="gsignond_storage_manager_filesystem_is_mounted ()">gsignond_storage_manager_filesystem_is_mounted</a>, function in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-initialize-storage" title="gsignond_storage_manager_initialize_storage ()">gsignond_storage_manager_initialize_storage</a>, function in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
+<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-initialize-storage" title="gsignond_storage_manager_initialize_storage ()">gsignond_storage_manager_initialize_storage</a>, function in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-mount-filesystem" title="gsignond_storage_manager_mount_filesystem ()">gsignond_storage_manager_mount_filesystem</a>, function in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
+<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-mount-filesystem" title="gsignond_storage_manager_mount_filesystem ()">gsignond_storage_manager_mount_filesystem</a>, function in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-storage-is-initialized" title="gsignond_storage_manager_storage_is_initialized ()">gsignond_storage_manager_storage_is_initialized</a>, function in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
+<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-storage-is-initialized" title="gsignond_storage_manager_storage_is_initialized ()">gsignond_storage_manager_storage_is_initialized</a>, function in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-unmount-filesystem" title="gsignond_storage_manager_unmount_filesystem ()">gsignond_storage_manager_unmount_filesystem</a>, function in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
+<a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-unmount-filesystem" title="gsignond_storage_manager_unmount_filesystem ()">gsignond_storage_manager_unmount_filesystem</a>, function in <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
</dt>
<dd></dd>
<a name="idxT"></a><h3 class="title">T</h3>
<a class="link" href="gsignond-GSignondSessionData.html#GSignondUiPolicy" title="enum GSignondUiPolicy">GSignondUiPolicy</a>, enum in <a class="link" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">GSignondSessionData</a>
</dt>
<dd></dd>
+<a name="idxV"></a><h3 class="title">V</h3>
+<dt>
+<a class="link" href="gsignond-Utility-functions.html#gsignond-variant-to-sequence" title="gsignond_variant_to_sequence ()">gsignond_variant_to_sequence</a>, function in <a class="link" href="gsignond-Utility-functions.html" title="Utility functions">Utility functions</a>
+</dt>
+<dd></dd>
<a name="idxW"></a><h3 class="title">W</h3>
<dt>
<a class="link" href="gsignond-Logging.html#WARN:CAPS" title="WARN()">WARN</a>, macro in <a class="link" href="gsignond-Logging.html" title="Logging">Logging</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-Utility-functions.html#gsignond-wipe-directory" title="gsignond_wipe_directory ()">gsignond_wipe_directory</a>, function in <a class="link" href="gsignond-Utility-functions.html" title="Utility functions">Utility functions</a>
+<a class="link" href="gsignond-Utility-functions.html#gsignond-wipe-directory" title="gsignond_wipe_directory ()">gsignond_wipe_directory</a>, function in <a class="link" href="gsignond-Utility-functions.html" title="Utility functions">Utility functions</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gsignond-Utility-functions.html#gsignond-wipe-file" title="gsignond_wipe_file ()">gsignond_wipe_file</a>, function in <a class="link" href="gsignond-Utility-functions.html" title="Utility functions">Utility functions</a>
+<a class="link" href="gsignond-Utility-functions.html#gsignond-wipe-file" title="gsignond_wipe_file ()">gsignond_wipe_file</a>, function in <a class="link" href="gsignond-Utility-functions.html" title="Utility functions">Utility functions</a>
</dt>
<dd></dd>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignond building and installation</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignond building and installation</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
<link rel="up" href="index.html" title="gsignond API Reference Manual">
<link rel="prev" href="index.html" title="gsignond API Reference Manual">
<link rel="next" href="gsignond-building.html" title="Building and installing the gsignond daemon">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left"></td>
+<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
<td><a accesskey="p" href="index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gsignond-building.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="idp3362528"></a>GSignond building and installation</h2></div></div></div>
-<div class="toc"><dl><dt>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.2"></a>GSignond building and installation</h1></div></div></div>
+<div class="toc"><dl class="toc"><dt>
<span class="refentrytitle"><a href="gsignond-building.html">Building and installing the gsignond daemon</a></span><span class="refpurpose"></span>
</dt></dl></div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignond configuration</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignond configuration</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
<link rel="up" href="index.html" title="gsignond API Reference Manual">
<link rel="prev" href="gsignond-building.html" title="Building and installing the gsignond daemon">
<link rel="next" href="GSignondConfig.html" title="GSignondConfig">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left"></td>
+<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
<td><a accesskey="p" href="gsignond-building.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GSignondConfig.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="idp3688944"></a>GSignond configuration</h2></div></div></div>
-<div class="toc"><dl>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.3"></a>GSignond configuration</h1></div></div></div>
+<div class="toc"><dl class="toc">
<dt>
<span class="refentrytitle"><a href="GSignondConfig.html">GSignondConfig</a></span><span class="refpurpose"> — gSSO configuration information</span>
</dt>
<span class="refentrytitle"><a href="gsignond-General-configuration.html">General configuration</a></span><span class="refpurpose"> — gSSO general configuration keys</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="gsignond-Database-configuration.html">Database configuration</a></span><span class="refpurpose"> — gSSO database configuration keys</span>
-</dt>
-<dt>
<span class="refentrytitle"><a href="gsignond-DBus-configuration.html">DBus configuration</a></span><span class="refpurpose"> — gSSO dbus configuration keys</span>
</dt>
</dl></div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignond API for writing authentication plugins</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: Authentication plugins, plugin loaders and D-Bus IPC</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
<link rel="up" href="index.html" title="gsignond API Reference Manual">
<link rel="prev" href="gsignond-DBus-configuration.html" title="DBus configuration">
-<link rel="next" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<link rel="next" href="gsignond-plugin-loaders-overview.html" title="Overview of GSignond's authentication plugin subsystem">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left"></td>
+<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
<td><a accesskey="p" href="gsignond-DBus-configuration.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gsignond-GSignondPlugin.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gsignond-plugin-loaders-overview.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="idp4976032"></a>GSignond API for writing authentication plugins</h2></div></div></div>
-<div class="toc"><dl>
-<dt>
-<span class="refentrytitle"><a href="gsignond-GSignondPlugin.html">GSignondPlugin</a></span><span class="refpurpose"> — an interface for implementing authentication plugins</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gsignond-GSignondDictionary.html">GSignondDictionary</a></span><span class="refpurpose"> — a dictionary container holding string keys and variant values</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gsignond-GSignondSessionData.html">GSignondSessionData</a></span><span class="refpurpose"> — definitions for authentication session parameters</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gsignond-GSignondSignonuiData.html">GSignondSignonuiData</a></span><span class="refpurpose"> — definitions for user interaction parameters</span>
-</dt>
-</dl></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.4"></a>Authentication plugins, plugin loaders and D-Bus IPC</h1></div></div></div>
+<div class="toc"><dl class="toc"><dt>
+<span class="refentrytitle"><a href="gsignond-plugin-loaders-overview.html">Overview of GSignond's authentication plugin subsystem</a></span><span class="refpurpose"></span>
+</dt></dl></div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Standard in-tree authentication plugins</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignond API for writing GLib-based authentication plugins</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
<link rel="up" href="index.html" title="gsignond API Reference Manual">
-<link rel="prev" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">
-<link rel="next" href="GSignondDigestPlugin.html" title="GSignondDigestPlugin">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<link rel="prev" href="gsignond-plugin-loaders-overview.html" title="Overview of GSignond's authentication plugin subsystem">
+<link rel="next" href="GSignondPlugin.html" title="GSignondPlugin">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left"></td>
+<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
-<td><a accesskey="p" href="gsignond-GSignondSignonuiData.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="GSignondDigestPlugin.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gsignond-plugin-loaders-overview.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GSignondPlugin.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="idp1837744"></a>Standard in-tree authentication plugins</h2></div></div></div>
-<div class="toc"><dl>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.5"></a>GSignond API for writing GLib-based authentication plugins</h1></div></div></div>
+<div class="toc"><dl class="toc">
<dt>
-<span class="refentrytitle"><a href="GSignondDigestPlugin.html">GSignondDigestPlugin</a></span><span class="refpurpose"> — a plugin that performs HTTP Digest authentication</span>
+<span class="refentrytitle"><a href="GSignondPlugin.html">GSignondPlugin</a></span><span class="refpurpose"> — an interface for implementing GLib-based authentication plugins</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="GSignondSsoTestPlugin.html">GSignondSsoTestPlugin</a></span><span class="refpurpose"> — a plugin that is used internally in gsignond unit test</span>
+<span class="refentrytitle"><a href="gsignond-GSignondDictionary.html">GSignondDictionary</a></span><span class="refpurpose"> — a dictionary container holding string keys and variant values</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="GSignondPasswordPlugin.html">GSignondPasswordPlugin</a></span><span class="refpurpose"> — a plugin for retrieving the username/password</span>
+<span class="refentrytitle"><a href="gsignond-GSignondSessionData.html">GSignondSessionData</a></span><span class="refpurpose"> — definitions for authentication session parameters</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gsignond-GSignondSignonuiData.html">GSignondSignonuiData</a></span><span class="refpurpose"> — definitions for user interaction parameters</span>
</dt>
</dl></div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignond API for writing platform adaptation extensions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: Standard in-tree authentication plugins</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
<link rel="up" href="index.html" title="gsignond API Reference Manual">
-<link rel="prev" href="GSignondPasswordPlugin.html" title="GSignondPasswordPlugin">
-<link rel="next" href="GSignondExtension.html" title="GSignondExtension">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<link rel="prev" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">
+<link rel="next" href="GSignondDigestPlugin.html" title="GSignondDigestPlugin">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left"></td>
+<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
-<td><a accesskey="p" href="GSignondPasswordPlugin.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="GSignondExtension.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gsignond-GSignondSignonuiData.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GSignondDigestPlugin.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="idp4701856"></a>GSignond API for writing platform adaptation extensions</h2></div></div></div>
-<div class="toc"><dl>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.6"></a>Standard in-tree authentication plugins</h1></div></div></div>
+<div class="toc"><dl class="toc">
<dt>
-<span class="refentrytitle"><a href="GSignondExtension.html">GSignondExtension</a></span><span class="refpurpose"> — provides platform adaptation functionality</span>
+<span class="refentrytitle"><a href="GSignondDigestPlugin.html">GSignondDigestPlugin</a></span><span class="refpurpose"> — a plugin that performs HTTP Digest authentication</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="GSignondAccessControlManager.html">GSignondAccessControlManager</a></span><span class="refpurpose"> — an object that performs access control checks</span>
+<span class="refentrytitle"><a href="GSignondSsoTestPlugin.html">GSignondSsoTestPlugin</a></span><span class="refpurpose"> — a plugin that is used internally in gsignond unit test</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="gsignond-GSignondSecurityContext.html">GSignondSecurityContext</a></span><span class="refpurpose"> — security context descriptor used in access control checks</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="GSignondStorageManager.html">GSignondStorageManager</a></span><span class="refpurpose"> — manages encrypted disk storage for storing the secret database</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="GSignondSecretStorage.html">GSignondSecretStorage</a></span><span class="refpurpose"> — provides access to the database that stores user credentials and identity/method cache</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="GSignondCredentials.html">GSignondCredentials</a></span><span class="refpurpose"> — credentials (username, password) associated with an identity</span>
+<span class="refentrytitle"><a href="GSignondPasswordPlugin.html">GSignondPasswordPlugin</a></span><span class="refpurpose"> — a plugin for retrieving the username/password</span>
</dt>
</dl></div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Miscellaneous</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignond API for writing platform adaptation extensions</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
<link rel="up" href="index.html" title="gsignond API Reference Manual">
-<link rel="prev" href="GSignondCredentials.html" title="GSignondCredentials">
-<link rel="next" href="gsignond-Errors.html" title="Errors">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<link rel="prev" href="GSignondPasswordPlugin.html" title="GSignondPasswordPlugin">
+<link rel="next" href="GSignondExtension.html" title="GSignondExtension">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left"></td>
+<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
-<td><a accesskey="p" href="GSignondCredentials.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gsignond-Errors.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="GSignondPasswordPlugin.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GSignondExtension.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="idp2634192"></a>Miscellaneous</h2></div></div></div>
-<div class="toc"><dl>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.7"></a>GSignond API for writing platform adaptation extensions</h1></div></div></div>
+<div class="toc"><dl class="toc">
<dt>
-<span class="refentrytitle"><a href="gsignond-Errors.html">Errors</a></span><span class="refpurpose"> — error definitions and utilities</span>
+<span class="refentrytitle"><a href="GSignondExtension.html">GSignondExtension</a></span><span class="refpurpose"> — provides platform adaptation functionality</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="gsignond-Logging.html">Logging</a></span><span class="refpurpose"> — logging facilities</span>
+<span class="refentrytitle"><a href="GSignondAccessControlManager.html">GSignondAccessControlManager</a></span><span class="refpurpose"> — an object that performs access control checks</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="gsignond-Utility-functions.html">Utility functions</a></span><span class="refpurpose"> — miscellaneous utility functions</span>
+<span class="refentrytitle"><a href="gsignond-GSignondSecurityContext.html">GSignondSecurityContext</a></span><span class="refpurpose"> — security context descriptor used in access control checks</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="GSignondStorageManager.html">GSignondStorageManager</a></span><span class="refpurpose"> — manages encrypted disk storage for storing the secret database</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="GSignondSecretStorage.html">GSignondSecretStorage</a></span><span class="refpurpose"> — provides access to the database that stores user credentials and identity/method cache</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="GSignondCredentials.html">GSignondCredentials</a></span><span class="refpurpose"> — credentials (username, password) associated with an identity</span>
</dt>
</dl></div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gsignond API Reference Manual: Miscellaneous</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="gsignond API Reference Manual">
+<link rel="up" href="index.html" title="gsignond API Reference Manual">
+<link rel="prev" href="GSignondCredentials.html" title="GSignondCredentials">
+<link rel="next" href="gsignond-Errors.html" title="Errors">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="GSignondCredentials.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gsignond-Errors.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.8"></a>Miscellaneous</h1></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="gsignond-Errors.html">Errors</a></span><span class="refpurpose"> — error definitions and utilities</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gsignond-Logging.html">Logging</a></span><span class="refpurpose"> — logging facilities</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gsignond-Utility-functions.html">Utility functions</a></span><span class="refpurpose"> — miscellaneous utility functions</span>
+</dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.20</div>
+</body>
+</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of deprecated API</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: Index of deprecated API</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
<link rel="up" href="index.html" title="gsignond API Reference Manual">
<link rel="prev" href="api-index-full.html" title="API Index">
<link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left"></td>
+<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
<td><a accesskey="p" href="api-index-full.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="deprecated-api-index"></a>Index of deprecated API</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="deprecated-api-index"></a>Index of deprecated API</h1></div></div></div>
<a name="idx"></a>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>DBus configuration</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: DBus configuration</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
<link rel="up" href="ch02.html" title="GSignond configuration">
-<link rel="prev" href="gsignond-Database-configuration.html" title="Database configuration">
-<link rel="next" href="ch03.html" title="GSignond API for writing authentication plugins">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<link rel="prev" href="gsignond-General-configuration.html" title="General configuration">
+<link rel="next" href="ch03.html" title="Authentication plugins, plugin loaders and D-Bus IPC">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#gsignond-DBus-configuration.description" class="shortcut">Description</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#gsignond-DBus-configuration.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#gsignond-DBus-configuration.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gsignond-Database-configuration.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gsignond-General-configuration.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="ch03.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<h2><span class="refentrytitle"><a name="gsignond-DBus-configuration.top_of_page"></a>DBus configuration</span></h2>
<p>DBus configuration — gSSO dbus configuration keys</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gsignond-DBus-configuration.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-config.h>
-
-#define <a class="link" href="gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-AUTH-SESSION-TIMEOUT:CAPS" title="GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT">GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT</a>
-#define <a class="link" href="gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-DAEMON-TIMEOUT:CAPS" title="GSIGNOND_CONFIG_DBUS_DAEMON_TIMEOUT">GSIGNOND_CONFIG_DBUS_DAEMON_TIMEOUT</a>
-#define <a class="link" href="gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-IDENTITY-TIMEOUT:CAPS" title="GSIGNOND_CONFIG_DBUS_IDENTITY_TIMEOUT">GSIGNOND_CONFIG_DBUS_IDENTITY_TIMEOUT</a>
-#define <a class="link" href="gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-TIMEOUTS:CAPS" title="GSIGNOND_CONFIG_DBUS_TIMEOUTS">GSIGNOND_CONFIG_DBUS_TIMEOUTS</a>
+<div class="refsect1">
+<a name="gsignond-DBus-configuration.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-TIMEOUTS:CAPS" title="GSIGNOND_CONFIG_DBUS_TIMEOUTS">GSIGNOND_CONFIG_DBUS_TIMEOUTS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-DAEMON-TIMEOUT:CAPS" title="GSIGNOND_CONFIG_DBUS_DAEMON_TIMEOUT">GSIGNOND_CONFIG_DBUS_DAEMON_TIMEOUT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-IDENTITY-TIMEOUT:CAPS" title="GSIGNOND_CONFIG_DBUS_IDENTITY_TIMEOUT">GSIGNOND_CONFIG_DBUS_IDENTITY_TIMEOUT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-AUTH-SESSION-TIMEOUT:CAPS" title="GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT">GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gsignond-DBus-configuration.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
+<a name="gsignond-DBus-configuration.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-config.h>
</pre>
</div>
<div class="refsect1">
<a name="gsignond-DBus-configuration.description"></a><h2>Description</h2>
-<p>
-DBus configuration keys are defined below. See <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> for how to use them.
-</p>
+<p>DBus configuration keys are defined below. See <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> for how to use them.</p>
+</div>
+<div class="refsect1">
+<a name="gsignond-DBus-configuration.functions_details"></a><h2>Functions</h2>
</div>
<div class="refsect1">
-<a name="gsignond-DBus-configuration.details"></a><h2>Details</h2>
+<a name="gsignond-DBus-configuration.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
-<a name="GSIGNOND-CONFIG-DBUS-AUTH-SESSION-TIMEOUT:CAPS"></a><h3>GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT</h3>
-<pre class="programlisting">#define GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT</pre>
-<p>
-A timeout in seconds, after which inactive authentication session dbus objects will be removed.
-If not set, the dbus objects will persist.
-</p>
-<p>
-Can be overriden in debug
-builds by setting SSO_AUTH_SESSION_TIMEOUT environment variable.
-</p>
+<a name="GSIGNOND-CONFIG-DBUS-TIMEOUTS:CAPS"></a><h3>GSIGNOND_CONFIG_DBUS_TIMEOUTS</h3>
+<pre class="programlisting">#define GSIGNOND_CONFIG_DBUS_TIMEOUTS "ObjectTimeouts"
+</pre>
+<p>A prefix for dbus timeout keys. Should be used only when defining new keys.</p>
</div>
<hr>
<div class="refsect2">
<a name="GSIGNOND-CONFIG-DBUS-DAEMON-TIMEOUT:CAPS"></a><h3>GSIGNOND_CONFIG_DBUS_DAEMON_TIMEOUT</h3>
<pre class="programlisting">#define GSIGNOND_CONFIG_DBUS_DAEMON_TIMEOUT</pre>
-<p>
-A timeout in seconds, after which the gSSO daemon will exit. If not set,
-the daemon will not exit. Has no effect if P2P DBus is in use.
-</p>
-<p>
-Can be overriden in debug
-builds by setting SSO_DAEMON_TIMEOUT environment variable.
-</p>
+<p>A timeout in seconds, after which the gSSO daemon will exit. If not set,
+the daemon will not exit. Has no effect if P2P DBus is in use.</p>
+<p>Can be overriden in debug
+builds by setting SSO_DAEMON_TIMEOUT environment variable.</p>
</div>
<hr>
<div class="refsect2">
<a name="GSIGNOND-CONFIG-DBUS-IDENTITY-TIMEOUT:CAPS"></a><h3>GSIGNOND_CONFIG_DBUS_IDENTITY_TIMEOUT</h3>
<pre class="programlisting">#define GSIGNOND_CONFIG_DBUS_IDENTITY_TIMEOUT</pre>
-<p>
-A timeout in seconds, after which inactive identity dbus objects will be removed.
-If not set, the dbus objects will persist.
-</p>
-<p>
-Can be overriden in debug
-builds by setting SSO_IDENTITY_TIMEOUT environment variable.
-</p>
+<p>A timeout in seconds, after which inactive identity dbus objects will be removed.
+If not set, the dbus objects will persist.</p>
+<p>Can be overriden in debug
+builds by setting SSO_IDENTITY_TIMEOUT environment variable.</p>
</div>
<hr>
<div class="refsect2">
-<a name="GSIGNOND-CONFIG-DBUS-TIMEOUTS:CAPS"></a><h3>GSIGNOND_CONFIG_DBUS_TIMEOUTS</h3>
-<pre class="programlisting">#define GSIGNOND_CONFIG_DBUS_TIMEOUTS "ObjectTimeouts"
-</pre>
-<p>
-A prefix for dbus timeout keys. Should be used only when defining new keys.
-</p>
+<a name="GSIGNOND-CONFIG-DBUS-AUTH-SESSION-TIMEOUT:CAPS"></a><h3>GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT</h3>
+<pre class="programlisting">#define GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT</pre>
+<p>A timeout in seconds, after which inactive authentication session dbus objects will be removed.
+If not set, the dbus objects will persist.</p>
+<p>Can be overriden in debug
+builds by setting SSO_AUTH_SESSION_TIMEOUT environment variable.</p>
</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Database configuration</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
-<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch02.html" title="GSignond configuration">
-<link rel="prev" href="gsignond-General-configuration.html" title="General configuration">
-<link rel="next" href="gsignond-DBus-configuration.html" title="DBus configuration">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#gsignond-Database-configuration.description" class="shortcut">Description</a>
-</td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gsignond-General-configuration.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gsignond-DBus-configuration.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="refentry">
-<a name="gsignond-Database-configuration"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gsignond-Database-configuration.top_of_page"></a>Database configuration</span></h2>
-<p>Database configuration — gSSO database configuration keys</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gsignond-Database-configuration.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-config.h>
-
-#define <a class="link" href="gsignond-Database-configuration.html#GSIGNOND-CONFIG-DB-METADATA-DB-FILENAME:CAPS" title="GSIGNOND_CONFIG_DB_METADATA_DB_FILENAME">GSIGNOND_CONFIG_DB_METADATA_DB_FILENAME</a>
-#define <a class="link" href="gsignond-Database-configuration.html#GSIGNOND-CONFIG-DB-SECRET-DB-FILENAME:CAPS" title="GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME">GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME</a>
-#define <a class="link" href="gsignond-Database-configuration.html#GSIGNOND-CONFIG-DB-SSO:CAPS" title="GSIGNOND_CONFIG_DB_SSO">GSIGNOND_CONFIG_DB_SSO</a>
-</pre>
-</div>
-<div class="refsect1">
-<a name="gsignond-Database-configuration.description"></a><h2>Description</h2>
-<p>
-Database configuration keys are defined below. See <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> for how to use them.
-</p>
-</div>
-<div class="refsect1">
-<a name="gsignond-Database-configuration.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GSIGNOND-CONFIG-DB-METADATA-DB-FILENAME:CAPS"></a><h3>GSIGNOND_CONFIG_DB_METADATA_DB_FILENAME</h3>
-<pre class="programlisting">#define GSIGNOND_CONFIG_DB_METADATA_DB_FILENAME</pre>
-<p>
-The filename of the metadata database.
-</p>
-<p>
-Default value: "metadata.db".
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GSIGNOND-CONFIG-DB-SECRET-DB-FILENAME:CAPS"></a><h3>GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME</h3>
-<pre class="programlisting">#define GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME</pre>
-<p>
-The filename of the credentials database.
-</p>
-<p>
-Default value: "secret.db".
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GSIGNOND-CONFIG-DB-SSO:CAPS"></a><h3>GSIGNOND_CONFIG_DB_SSO</h3>
-<pre class="programlisting">#define GSIGNOND_CONFIG_DB_SSO "Storage"
-</pre>
-<p>
-A prefix for database keys. Should be used only when defining new keys.
-</p>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.19.1</div>
-</body>
-</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Errors</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: Errors</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch06.html" title="Miscellaneous">
-<link rel="prev" href="ch06.html" title="Miscellaneous">
+<link rel="up" href="ch07.html" title="Miscellaneous">
+<link rel="prev" href="ch07.html" title="Miscellaneous">
<link rel="next" href="gsignond-Logging.html" title="Logging">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#gsignond-Errors.description" class="shortcut">Description</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#gsignond-Errors.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#gsignond-Errors.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch06.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="ch06.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch07.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gsignond-Logging.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<h2><span class="refentrytitle"><a name="gsignond-Errors.top_of_page"></a>Errors</span></h2>
<p>Errors — error definitions and utilities</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gsignond-Errors.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-error.h>
-
-#define <a class="link" href="gsignond-Errors.html#GSIGNOND-ERROR:CAPS" title="GSIGNOND_ERROR">GSIGNOND_ERROR</a>
-enum <a class="link" href="gsignond-Errors.html#GSignondError" title="enum GSignondError">GSignondError</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> * <a class="link" href="gsignond-Errors.html#gsignond-error-new-from-variant" title="gsignond_error_new_from_variant ()">gsignond_error_new_from_variant</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *var</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="gsignond-Errors.html#gsignond-error-quark" title="gsignond_error_quark ()">gsignond_error_quark</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="gsignond-Errors.html#gsignond-error-to-variant" title="gsignond_error_to_variant ()">gsignond_error_to_variant</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>);
-#define <a class="link" href="gsignond-Errors.html#gsignond-get-gerror-for-id" title="gsignond_get_gerror_for_id()">gsignond_get_gerror_for_id</a> (err,
- message,
- ...)
+<div class="refsect1">
+<a name="gsignond-Errors.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gsignond-Errors.html#GSIGNOND-ERROR:CAPS" title="GSIGNOND_ERROR">GSIGNOND_ERROR</a></td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-Errors.html#gsignond-error-quark" title="gsignond_error_quark ()">gsignond_error_quark</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-Errors.html#gsignond-error-new-from-variant" title="gsignond_error_new_from_variant ()">gsignond_error_new_from_variant</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-Errors.html#gsignond-error-to-variant" title="gsignond_error_to_variant ()">gsignond_error_to_variant</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gsignond-Errors.html#gsignond-get-gerror-for-id" title="gsignond_get_gerror_for_id()">gsignond_get_gerror_for_id</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gsignond-Errors.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gsignond-Errors.html#GSignondError" title="enum GSignondError">GSignondError</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gsignond-Errors.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
+<a name="gsignond-Errors.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-error.h>
</pre>
</div>
<div class="refsect1">
<a name="gsignond-Errors.description"></a><h2>Description</h2>
-<p>
-This file provides GSignond error definitions and utilities.
+<p>This file provides GSignond error definitions and utilities.
When creating an error, use <a class="link" href="gsignond-Errors.html#GSIGNOND-ERROR:CAPS" title="GSIGNOND_ERROR"><span class="type">GSIGNOND_ERROR</span></a> for the error domain and errors
-from <a class="link" href="gsignond-Errors.html#GSignondError" title="enum GSignondError"><span class="type">GSignondError</span></a> for the error code.
-</p>
-<p>
-</p>
+from <a class="link" href="gsignond-Errors.html#GSignondError" title="enum GSignondError"><span class="type">GSignondError</span></a> for the error code.</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
- <td class="listing_lines" align="right"><pre>1
-2</pre></td>
- <td class="listing_code"><pre class="programlisting">GError* err = g_error_new(GSIGNOND_ERROR, GSIGNOND_ERROR_MISSING_DATA,
- <span class="number">"Not enough data"</span>);</pre></td>
+ <td class="listing_lines" align="right"><pre>1</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="string">"Not enough data"</span><span class="gtkdoc opt">);</span></pre></td>
</tr>
</tbody>
</table>
</div>
-<p>
-</p>
+<p></p>
</div>
<div class="refsect1">
-<a name="gsignond-Errors.details"></a><h2>Details</h2>
+<a name="gsignond-Errors.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="GSIGNOND-ERROR:CAPS"></a><h3>GSIGNOND_ERROR</h3>
<pre class="programlisting">#define GSIGNOND_ERROR (gsignond_error_quark())
</pre>
-<p>
-This macro should be used when creating a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> in GSignond plugins and extensions.
-(for example with <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#g-error-new"><code class="function">g_error_new()</code></a> )
-</p>
+<p>This macro should be used when creating a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> in GSignond plugins and extensions.
+(for example with <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#g-error-new"><code class="function">g_error_new()</code></a> )</p>
</div>
<hr>
<div class="refsect2">
-<a name="GSignondError"></a><h3>enum GSignondError</h3>
-<pre class="programlisting">typedef enum {
- GSIGNOND_ERROR_NONE,
-
- GSIGNOND_ERROR_UNKNOWN = 1,
- GSIGNOND_ERROR_INTERNAL_SERVER = 2,
- GSIGNOND_ERROR_INTERNAL_COMMUNICATION = 3,
- GSIGNOND_ERROR_PERMISSION_DENIED = 4,
- GSIGNOND_ERROR_ENCRYPTION_FAILURE,
-
- GSIGNOND_ERROR_AUTH_SERVICE_ERR = 100, /* Placeholder to rearrange enumeration - AuthService specific */
- GSIGNOND_ERROR_METHOD_NOT_KNOWN,
- GSIGNOND_ERROR_SERVICE_NOT_AVAILABLE,
- GSIGNOND_ERROR_INVALID_QUERY,
-
- GSIGNOND_ERROR_IDENTITY_ERR = 200, /* Placeholder to rearrange enumeration - Identity specific */
- GSIGNOND_ERROR_METHOD_NOT_AVAILABLE,
- GSIGNOND_ERROR_IDENTITY_NOT_FOUND,
- GSIGNOND_ERROR_STORE_FAILED,
- GSIGNOND_ERROR_REMOVE_FAILED,
- GSIGNOND_ERROR_SIGN_OUT_FAILED,
- GSIGNOND_ERROR_IDENTITY_OPERATION_CANCELED,
- GSIGNOND_ERROR_CREDENTIALS_NOT_AVAILABLE,
- GSIGNOND_ERROR_REFERENCE_NOT_FOUND,
-
- GSIGNOND_ERROR_AUTH_SESSION_ERR = 300, /* Placeholder to rearrange enumeration - AuthSession/PluginInterface specific */
- GSIGNOND_ERROR_MECHANISM_NOT_AVAILABLE,
- GSIGNOND_ERROR_MISSING_DATA,
- GSIGNOND_ERROR_INVALID_CREDENTIALS,
- GSIGNOND_ERROR_NOT_AUTHORIZED,
- GSIGNOND_ERROR_WRONG_STATE,
- GSIGNOND_ERROR_OPERATION_NOT_SUPPORTED,
- GSIGNOND_ERROR_NO_CONNECTION,
- GSIGNOND_ERROR_NETWORK,
- GSIGNOND_ERROR_SSL,
- GSIGNOND_ERROR_RUNTIME,
- GSIGNOND_ERROR_SESSION_CANCELED,
- GSIGNOND_ERROR_TIMED_OUT,
- GSIGNOND_ERROR_USER_INTERACTION,
- GSIGNOND_ERROR_OPERATION_FAILED,
- GSIGNOND_ERROR_ENCRYPTION_FAILED,
- GSIGNOND_ERROR_TOS_NOT_ACCEPTED,
- GSIGNOND_ERROR_FORGOT_PASSWORD,
- GSIGNOND_ERROR_METHOD_OR_MECHANISM_NOT_ALLOWED,
- GSIGNOND_ERROR_INCORRECT_DATE,
-
- GSIGNOND_ERROR_USER_ERR = 400
-} GSignondError;
-</pre>
-<p>
-This enum provides a list of errors that plugins and extensions can use.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-error-quark"></a><h3>gsignond_error_quark ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>
+gsignond_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Creates and returns a domain for GSignond errors.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-error-new-from-variant"></a><h3>gsignond_error_new_from_variant ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> *
+gsignond_error_new_from_variant (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *var</code></em>);</pre>
+<p>Converts the GVariant to GError.</p>
+<div class="refsect3">
+<a name="id-1.8.2.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>var</p></td>
+<td class="parameter_description"><p>instance of <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.8.2.8.4.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> object if successful, NULL otherwise. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-error-to-variant"></a><h3>gsignond_error_to_variant ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
+gsignond_error_to_variant (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>);</pre>
+<p>Converts the GError to GVariant.</p>
+<div class="refsect3">
+<a name="id-1.8.2.8.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>instance of <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.8.2.8.5.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> object if successful, NULL otherwise. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-get-gerror-for-id"></a><h3>gsignond_get_gerror_for_id()</h3>
+<pre class="programlisting">#define gsignond_get_gerror_for_id(err, message, args...)</pre>
+<p>A helper macro that creates a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> with the proper gsignond domain</p>
+<div class="refsect3">
+<a name="id-1.8.2.8.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><a name="GSIGNOND-ERROR-NONE:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_NONE</code></span></p></td>
-<td>No error
-</td>
-</tr>
-<tr>
-<td><p><a name="GSIGNOND-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_UNKNOWN</code></span></p></td>
-<td>Catch-all for errors not distinguished by another code.
-</td>
+<td class="parameter_name"><p>err</p></td>
+<td class="parameter_description"><p>A <a class="link" href="gsignond-Errors.html#GSignondError" title="enum GSignondError"><span class="type">GSignondError</span></a> specifying the error</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-INTERNAL-SERVER:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_INTERNAL_SERVER</code></span></p></td>
-<td>Signon Daemon internal error.
-</td>
+<td class="parameter_name"><p>message</p></td>
+<td class="parameter_description"><p>Format string for the error message</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-INTERNAL-COMMUNICATION:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_INTERNAL_COMMUNICATION</code></span></p></td>
-<td>Communication with Signon Daemon error.
-</td>
+<td class="parameter_name"><p>...</p></td>
+<td class="parameter_description"><p>parameters for the error string</p></td>
+<td class="parameter_annotations"> </td>
</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gsignond-Errors.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GSignondError"></a><h3>enum GSignondError</h3>
+<p>This enum provides a list of errors that plugins and extensions can use.</p>
+<div class="refsect3">
+<a name="id-1.8.2.9.2.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
<tr>
-<td><p><a name="GSIGNOND-ERROR-PERMISSION-DENIED:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_PERMISSION_DENIED</code></span></p></td>
-<td>The operation cannot be performed due to insufficient client permissions.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-NONE:CAPS"></a>GSIGNOND_ERROR_NONE</p></td>
+<td class="enum_member_description">
+<p>No error</p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-ENCRYPTION-FAILURE:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_ENCRYPTION_FAILURE</code></span></p></td>
-<td>Failure during data encryption/decryption.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-UNKNOWN:CAPS"></a>GSIGNOND_ERROR_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Catch-all for errors not distinguished by another code.</p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-AUTH-SERVICE-ERR:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_AUTH_SERVICE_ERR</code></span></p></td>
-<td>Placeholder to rearrange enumeration - AuthService specific
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-INTERNAL-SERVER:CAPS"></a>GSIGNOND_ERROR_INTERNAL_SERVER</p></td>
+<td class="enum_member_description">
+<p>Signon Daemon internal error. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-METHOD-NOT-KNOWN:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_METHOD_NOT_KNOWN</code></span></p></td>
-<td>The method with this name is not found.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-INTERNAL-COMMUNICATION:CAPS"></a>GSIGNOND_ERROR_INTERNAL_COMMUNICATION</p></td>
+<td class="enum_member_description">
+<p>Communication with Signon Daemon error. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-SERVICE-NOT-AVAILABLE:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_SERVICE_NOT_AVAILABLE</code></span></p></td>
-<td>The service is temporarily unavailable.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-PERMISSION-DENIED:CAPS"></a>GSIGNOND_ERROR_PERMISSION_DENIED</p></td>
+<td class="enum_member_description">
+<p>The operation cannot be performed due to insufficient client permissions. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-INVALID-QUERY:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_INVALID_QUERY</code></span></p></td>
-<td>Parameters for the query are invalid.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-ENCRYPTION-FAILURE:CAPS"></a>GSIGNOND_ERROR_ENCRYPTION_FAILURE</p></td>
+<td class="enum_member_description">
+<p>Failure during data encryption/decryption. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-IDENTITY-ERR:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_IDENTITY_ERR</code></span></p></td>
-<td>Placeholder to rearrange enumeration - Identity specific
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-AUTH-SERVICE-ERR:CAPS"></a>GSIGNOND_ERROR_AUTH_SERVICE_ERR</p></td>
+<td class="enum_member_description">
+<p>Placeholder to rearrange enumeration - AuthService specific </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-METHOD-NOT-AVAILABLE:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_METHOD_NOT_AVAILABLE</code></span></p></td>
-<td>The requested method is not available.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-METHOD-NOT-KNOWN:CAPS"></a>GSIGNOND_ERROR_METHOD_NOT_KNOWN</p></td>
+<td class="enum_member_description">
+<p>The method with this name is not found.</p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-IDENTITY-NOT-FOUND:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_IDENTITY_NOT_FOUND</code></span></p></td>
-<td>The identity matching this Identity object was not found on the service.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-SERVICE-NOT-AVAILABLE:CAPS"></a>GSIGNOND_ERROR_SERVICE_NOT_AVAILABLE</p></td>
+<td class="enum_member_description">
+<p>The service is temporarily unavailable. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-STORE-FAILED:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_STORE_FAILED</code></span></p></td>
-<td>Storing credentials failed.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-INVALID-QUERY:CAPS"></a>GSIGNOND_ERROR_INVALID_QUERY</p></td>
+<td class="enum_member_description">
+<p>Parameters for the query are invalid. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-REMOVE-FAILED:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_REMOVE_FAILED</code></span></p></td>
-<td>Removing credentials failed.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-IDENTITY-ERR:CAPS"></a>GSIGNOND_ERROR_IDENTITY_ERR</p></td>
+<td class="enum_member_description">
+<p>Placeholder to rearrange enumeration - Identity specific </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-SIGN-OUT-FAILED:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_SIGN_OUT_FAILED</code></span></p></td>
-<td>SignOut failed.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-METHOD-NOT-AVAILABLE:CAPS"></a>GSIGNOND_ERROR_METHOD_NOT_AVAILABLE</p></td>
+<td class="enum_member_description">
+<p>The requested method is not available. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-IDENTITY-OPERATION-CANCELED:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_IDENTITY_OPERATION_CANCELED</code></span></p></td>
-<td>Identity operation was canceled by user.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-IDENTITY-NOT-FOUND:CAPS"></a>GSIGNOND_ERROR_IDENTITY_NOT_FOUND</p></td>
+<td class="enum_member_description">
+<p>The identity matching this Identity object was not found on the service. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-CREDENTIALS-NOT-AVAILABLE:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_CREDENTIALS_NOT_AVAILABLE</code></span></p></td>
-<td>Query failed.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-STORE-FAILED:CAPS"></a>GSIGNOND_ERROR_STORE_FAILED</p></td>
+<td class="enum_member_description">
+<p>Storing credentials failed. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-REFERENCE-NOT-FOUND:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_REFERENCE_NOT_FOUND</code></span></p></td>
-<td>Trying to remove nonexistent reference.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-REMOVE-FAILED:CAPS"></a>GSIGNOND_ERROR_REMOVE_FAILED</p></td>
+<td class="enum_member_description">
+<p>Removing credentials failed. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-AUTH-SESSION-ERR:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_AUTH_SESSION_ERR</code></span></p></td>
-<td>Placeholder to rearrange enumeration - AuthSession/PluginInterface specific
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-SIGN-OUT-FAILED:CAPS"></a>GSIGNOND_ERROR_SIGN_OUT_FAILED</p></td>
+<td class="enum_member_description">
+<p>SignOut failed. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-MECHANISM-NOT-AVAILABLE:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_MECHANISM_NOT_AVAILABLE</code></span></p></td>
-<td>The requested mechanism is not available.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-IDENTITY-OPERATION-CANCELED:CAPS"></a>GSIGNOND_ERROR_IDENTITY_OPERATION_CANCELED</p></td>
+<td class="enum_member_description">
+<p>Identity operation was canceled by user. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-MISSING-DATA:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_MISSING_DATA</code></span></p></td>
-<td>The SessionData object does not contain necessary information.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-CREDENTIALS-NOT-AVAILABLE:CAPS"></a>GSIGNOND_ERROR_CREDENTIALS_NOT_AVAILABLE</p></td>
+<td class="enum_member_description">
+<p>Query failed. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-INVALID-CREDENTIALS:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_INVALID_CREDENTIALS</code></span></p></td>
-<td>The supplied credentials are invalid for the mechanism implementation.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-REFERENCE-NOT-FOUND:CAPS"></a>GSIGNOND_ERROR_REFERENCE_NOT_FOUND</p></td>
+<td class="enum_member_description">
+<p>Trying to remove nonexistent reference. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-NOT-AUTHORIZED:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_NOT_AUTHORIZED</code></span></p></td>
-<td>Authorization failed.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-AUTH-SESSION-ERR:CAPS"></a>GSIGNOND_ERROR_AUTH_SESSION_ERR</p></td>
+<td class="enum_member_description">
+<p>Placeholder to rearrange enumeration - AuthSession/PluginInterface specific </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-WRONG-STATE:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_WRONG_STATE</code></span></p></td>
-<td>An operation method has been called in a wrong state.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-MECHANISM-NOT-AVAILABLE:CAPS"></a>GSIGNOND_ERROR_MECHANISM_NOT_AVAILABLE</p></td>
+<td class="enum_member_description">
+<p>The requested mechanism is not available. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-OPERATION-NOT-SUPPORTED:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_OPERATION_NOT_SUPPORTED</code></span></p></td>
-<td>The operation is not supported by the mechanism implementation.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-MISSING-DATA:CAPS"></a>GSIGNOND_ERROR_MISSING_DATA</p></td>
+<td class="enum_member_description">
+<p>The SessionData object does not contain necessary information. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-NO-CONNECTION:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_NO_CONNECTION</code></span></p></td>
-<td>No Network connetion.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-INVALID-CREDENTIALS:CAPS"></a>GSIGNOND_ERROR_INVALID_CREDENTIALS</p></td>
+<td class="enum_member_description">
+<p>The supplied credentials are invalid for the mechanism implementation. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-NETWORK:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_NETWORK</code></span></p></td>
-<td>Network connetion failed.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-NOT-AUTHORIZED:CAPS"></a>GSIGNOND_ERROR_NOT_AUTHORIZED</p></td>
+<td class="enum_member_description">
+<p>Authorization failed. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-SSL:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_SSL</code></span></p></td>
-<td>Ssl connection failed.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-WRONG-STATE:CAPS"></a>GSIGNOND_ERROR_WRONG_STATE</p></td>
+<td class="enum_member_description">
+<p>An operation method has been called in a wrong state. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-RUNTIME:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_RUNTIME</code></span></p></td>
-<td>Casting SessionData into subclass failed
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-OPERATION-NOT-SUPPORTED:CAPS"></a>GSIGNOND_ERROR_OPERATION_NOT_SUPPORTED</p></td>
+<td class="enum_member_description">
+<p>The operation is not supported by the mechanism implementation. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-SESSION-CANCELED:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_SESSION_CANCELED</code></span></p></td>
-<td>Challenge was cancelled.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-NO-CONNECTION:CAPS"></a>GSIGNOND_ERROR_NO_CONNECTION</p></td>
+<td class="enum_member_description">
+<p>No Network connetion. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-TIMED-OUT:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_TIMED_OUT</code></span></p></td>
-<td>Challenge was timed out.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-NETWORK:CAPS"></a>GSIGNOND_ERROR_NETWORK</p></td>
+<td class="enum_member_description">
+<p>Network connetion failed. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-USER-INTERACTION:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_USER_INTERACTION</code></span></p></td>
-<td>User interaction dialog failed
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-SSL:CAPS"></a>GSIGNOND_ERROR_SSL</p></td>
+<td class="enum_member_description">
+<p>Ssl connection failed. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-OPERATION-FAILED:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_OPERATION_FAILED</code></span></p></td>
-<td>Temporary failure in authentication.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-RUNTIME:CAPS"></a>GSIGNOND_ERROR_RUNTIME</p></td>
+<td class="enum_member_description">
+<p>Casting SessionData into subclass failed </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-ENCRYPTION-FAILED:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_ENCRYPTION_FAILED</code></span></p></td>
-<td>Failure during data encryption/decryption.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-SESSION-CANCELED:CAPS"></a>GSIGNOND_ERROR_SESSION_CANCELED</p></td>
+<td class="enum_member_description">
+<p>Challenge was cancelled. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-TOS-NOT-ACCEPTED:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_TOS_NOT_ACCEPTED</code></span></p></td>
-<td>User declined Terms of Service.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-TIMED-OUT:CAPS"></a>GSIGNOND_ERROR_TIMED_OUT</p></td>
+<td class="enum_member_description">
+<p>Challenge was timed out. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-FORGOT-PASSWORD:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_FORGOT_PASSWORD</code></span></p></td>
-<td>User requested reset password sequence.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-USER-INTERACTION:CAPS"></a>GSIGNOND_ERROR_USER_INTERACTION</p></td>
+<td class="enum_member_description">
+<p>User interaction dialog failed </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-METHOD-OR-MECHANISM-NOT-ALLOWED:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_METHOD_OR_MECHANISM_NOT_ALLOWED</code></span></p></td>
-<td>Method or mechanism not allowed for this identity.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-OPERATION-FAILED:CAPS"></a>GSIGNOND_ERROR_OPERATION_FAILED</p></td>
+<td class="enum_member_description">
+<p>Temporary failure in authentication. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-INCORRECT-DATE:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_INCORRECT_DATE</code></span></p></td>
-<td>Date time incorrect on device.
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-ENCRYPTION-FAILED:CAPS"></a>GSIGNOND_ERROR_ENCRYPTION_FAILED</p></td>
+<td class="enum_member_description">
+<p>Failure during data encryption/decryption. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-ERROR-USER-ERR:CAPS"></a><span class="term"><code class="literal">GSIGNOND_ERROR_USER_ERR</code></span></p></td>
-<td>Placeholder to rearrange enumeration - User space specific
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-TOS-NOT-ACCEPTED:CAPS"></a>GSIGNOND_ERROR_TOS_NOT_ACCEPTED</p></td>
+<td class="enum_member_description">
+<p>User declined Terms of Service. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-error-new-from-variant"></a><h3>gsignond_error_new_from_variant ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="returnvalue">GError</span></a> * gsignond_error_new_from_variant (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *var</code></em>);</pre>
-<p>
-Converts the GVariant to GError.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>var</code></em> :</span></p></td>
-<td>instance of <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-FORGOT-PASSWORD:CAPS"></a>GSIGNOND_ERROR_FORGOT_PASSWORD</p></td>
+<td class="enum_member_description">
+<p>User requested reset password sequence. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> object if successful, NULL otherwise. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-METHOD-OR-MECHANISM-NOT-ALLOWED:CAPS"></a>GSIGNOND_ERROR_METHOD_OR_MECHANISM_NOT_ALLOWED</p></td>
+<td class="enum_member_description">
+<p>Method or mechanism not allowed for this identity. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-error-quark"></a><h3>gsignond_error_quark ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> gsignond_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Creates and returns a domain for GSignond errors.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-error-to-variant"></a><h3>gsignond_error_to_variant ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * gsignond_error_to_variant (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>);</pre>
-<p>
-Converts the GError to GVariant.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>instance of <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-INCORRECT-DATE:CAPS"></a>GSIGNOND_ERROR_INCORRECT_DATE</p></td>
+<td class="enum_member_description">
+<p>Date time incorrect on device. </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> object if successful, NULL otherwise. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td class="enum_member_name"><p><a name="GSIGNOND-ERROR-USER-ERR:CAPS"></a>GSIGNOND_ERROR_USER_ERR</p></td>
+<td class="enum_member_description">
+<p>Placeholder to rearrange enumeration - User space specific </p>
</td>
+<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-get-gerror-for-id"></a><h3>gsignond_get_gerror_for_id()</h3>
-<pre class="programlisting">#define gsignond_get_gerror_for_id(err, message, args...)</pre>
-<p>
-A helper macro that creates a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> with the proper gsignond domain
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>err</code></em> :</span></p></td>
-<td>A <a class="link" href="gsignond-Errors.html#GSignondError" title="enum GSignondError"><span class="type">GSignondError</span></a> specifying the error</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
-<td>Format string for the error message</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>parameters for the error string</td>
-</tr>
-</tbody>
-</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignondDictionary</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignondDictionary</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch03.html" title="GSignond API for writing authentication plugins">
-<link rel="prev" href="gsignond-GSignondPlugin.html" title="GSignondPlugin">
+<link rel="up" href="ch04.html" title="GSignond API for writing GLib-based authentication plugins">
+<link rel="prev" href="GSignondPlugin.html" title="GSignondPlugin">
<link rel="next" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#gsignond-GSignondDictionary.description" class="shortcut">Description</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#gsignond-GSignondDictionary.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#gsignond-GSignondDictionary.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gsignond-GSignondPlugin.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch04.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GSignondPlugin.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gsignond-GSignondSessionData.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<h2><span class="refentrytitle"><a name="gsignond-GSignondDictionary.top_of_page"></a>GSignondDictionary</span></h2>
<p>GSignondDictionary — a dictionary container holding string keys and variant values</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gsignond-GSignondDictionary.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-dictionary.h>
-
-typedef <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary">GSignondDictionary</a>;
-<a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> * <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-copy" title="gsignond_dictionary_copy ()">gsignond_dictionary_copy</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *other</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get" title="gsignond_dictionary_get ()">gsignond_dictionary_get</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-boolean" title="gsignond_dictionary_get_boolean ()">gsignond_dictionary_get_boolean</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-int32" title="gsignond_dictionary_get_int32 ()">gsignond_dictionary_get_int32</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-int64" title="gsignond_dictionary_get_int64 ()">gsignond_dictionary_get_int64</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><span class="type">gint64</span> *value</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-string" title="gsignond_dictionary_get_string ()">gsignond_dictionary_get_string</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint32" title="gsignond_dictionary_get_uint32 ()">gsignond_dictionary_get_uint32</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint64" title="gsignond_dictionary_get_uint64 ()">gsignond_dictionary_get_uint64</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><span class="type">guint64</span> *value</code></em>);
-<a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> * <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-new" title="gsignond_dictionary_new ()">gsignond_dictionary_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> * <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-new-from-variant" title="gsignond_dictionary_new_from_variant ()">gsignond_dictionary_new_from_variant</a>
- (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *variant</code></em>);
-<a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> * <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-ref" title="gsignond_dictionary_ref ()">gsignond_dictionary_ref</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-remove" title="gsignond_dictionary_remove ()">gsignond_dictionary_remove</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set" title="gsignond_dictionary_set ()">gsignond_dictionary_set</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-boolean" title="gsignond_dictionary_set_boolean ()">gsignond_dictionary_set_boolean</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-int32" title="gsignond_dictionary_set_int32 ()">gsignond_dictionary_set_int32</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-int64" title="gsignond_dictionary_set_int64 ()">gsignond_dictionary_set_int64</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><span class="type">gint64</span> value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-string" title="gsignond_dictionary_set_string ()">gsignond_dictionary_set_string</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-uint32" title="gsignond_dictionary_set_uint32 ()">gsignond_dictionary_set_uint32</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><span class="type">guint32</span> value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-uint64" title="gsignond_dictionary_set_uint64 ()">gsignond_dictionary_set_uint64</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><span class="type">guint64</span> value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-to-variant" title="gsignond_dictionary_to_variant ()">gsignond_dictionary_to_variant</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-unref" title="gsignond_dictionary_unref ()">gsignond_dictionary_unref</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>);
+<div class="refsect1">
+<a name="gsignond-GSignondDictionary.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-new" title="gsignond_dictionary_new ()">gsignond_dictionary_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-ref" title="gsignond_dictionary_ref ()">gsignond_dictionary_ref</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-unref" title="gsignond_dictionary_unref ()">gsignond_dictionary_unref</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-copy" title="gsignond_dictionary_copy ()">gsignond_dictionary_copy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-new-from-variant" title="gsignond_dictionary_new_from_variant ()">gsignond_dictionary_new_from_variant</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-to-variant" title="gsignond_dictionary_to_variant ()">gsignond_dictionary_to_variant</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariantBuilder"><span class="returnvalue">GVariantBuilder</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-to-variant-builder" title="gsignond_dictionary_to_variant_builder ()">gsignond_dictionary_to_variant_builder</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get" title="gsignond_dictionary_get ()">gsignond_dictionary_get</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set" title="gsignond_dictionary_set ()">gsignond_dictionary_set</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-boolean" title="gsignond_dictionary_get_boolean ()">gsignond_dictionary_get_boolean</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-boolean" title="gsignond_dictionary_set_boolean ()">gsignond_dictionary_set_boolean</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-int32" title="gsignond_dictionary_get_int32 ()">gsignond_dictionary_get_int32</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-int32" title="gsignond_dictionary_set_int32 ()">gsignond_dictionary_set_int32</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint32" title="gsignond_dictionary_get_uint32 ()">gsignond_dictionary_get_uint32</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-uint32" title="gsignond_dictionary_set_uint32 ()">gsignond_dictionary_set_uint32</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-int64" title="gsignond_dictionary_get_int64 ()">gsignond_dictionary_get_int64</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-int64" title="gsignond_dictionary_set_int64 ()">gsignond_dictionary_set_int64</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint64" title="gsignond_dictionary_get_uint64 ()">gsignond_dictionary_get_uint64</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-uint64" title="gsignond_dictionary_set_uint64 ()">gsignond_dictionary_set_uint64</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-string" title="gsignond_dictionary_get_string ()">gsignond_dictionary_get_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-string" title="gsignond_dictionary_set_string ()">gsignond_dictionary_set_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-remove" title="gsignond_dictionary_remove ()">gsignond_dictionary_remove</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-contains" title="gsignond_dictionary_contains ()">gsignond_dictionary_contains</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondDictionary.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondDictionary.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-dictionary.h>
</pre>
</div>
<div class="refsect1">
<a name="gsignond-GSignondDictionary.description"></a><h2>Description</h2>
-<p>
-A <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> is a dictionary data structure that maps string keys to <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> values.
+<p>A <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> is a dictionary data structure that maps string keys to <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> values.
It's used in multiple places in gsignond and its public API to pass key-value
-data sets.
-</p>
-<p>
-</p>
+data sets.</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
4
5
6
-7
-8</pre></td>
- <td class="listing_code"><pre class="programlisting">GSignondDictionary* dict = gsignond_dictionary_new();
- gsignond_dictionary_set_string(dict, <span class="number">"name"</span>, <span class="number">"John Smith"</span>);
- gsignond_dictionary_set_uint32(dict, <span class="number">"age"</span>, <span class="number">32</span>);
+7</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="function"><a href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-string">gsignond_dictionary_set_string</a></span><span class="gtkdoc opt">(</span>dict<span class="gtkdoc opt">,</span> <span class="string">"name"</span><span class="gtkdoc opt">,</span> <span class="string">"John Smith"</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="gsignond-GSignondDictionary.html#gsignond-dictionary-set-uint32">gsignond_dictionary_set_uint32</a></span><span class="gtkdoc opt">(</span>dict<span class="gtkdoc opt">,</span> <span class="string">"age"</span><span class="gtkdoc opt">,</span> <span class="number">32</span><span class="gtkdoc opt">);</span>
- guint32 age;
- gboolean success = gsignond_dictionary_get_uint32(dict, <span class="number">"age"</span>, &age);
- <span class="type">const</span> gchar* name = gsignond_dictionary_get_string(dict, <span class="number">"name"</span>);
- gsignond_dictionary_unref(dict);</pre></td>
+guint32 age<span class="gtkdoc opt">;</span>
+gboolean success <span class="gtkdoc opt">=</span> <span class="function"><a href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint32">gsignond_dictionary_get_uint32</a></span><span class="gtkdoc opt">(</span>dict<span class="gtkdoc opt">,</span> <span class="string">"age"</span><span class="gtkdoc opt">, &</span>age<span class="gtkdoc opt">);</span>
+<span class="gtkdoc kwb">const</span> gchar<span class="gtkdoc opt">*</span> name <span class="gtkdoc opt">=</span> <span class="function"><a href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-string">gsignond_dictionary_get_string</a></span><span class="gtkdoc opt">(</span>dict<span class="gtkdoc opt">,</span> <span class="string">"name"</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="gsignond-GSignondDictionary.html#gsignond-dictionary-unref">gsignond_dictionary_unref</a></span><span class="gtkdoc opt">(</span>dict<span class="gtkdoc opt">);</span></pre></td>
</tr>
</tbody>
</table>
</div>
-<p>
-</p>
+<p></p>
</div>
<div class="refsect1">
-<a name="gsignond-GSignondDictionary.details"></a><h2>Details</h2>
+<a name="gsignond-GSignondDictionary.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
-<a name="GSignondDictionary"></a><h3>GSignondDictionary</h3>
-<pre class="programlisting">typedef GHashTable GSignondDictionary;
-</pre>
-<p>
-<a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> is a typedef for <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a>, which
-means the developers may also use methods associated with that structure.
-</p>
+<a name="gsignond-dictionary-new"></a><h3>gsignond_dictionary_new ()</h3>
+<pre class="programlisting"><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> *
+gsignond_dictionary_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Creates a new instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.2.5"></a><h4>Returns</h4>
+<p> <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> object if successful,
+NULL otherwise. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-copy"></a><h3>gsignond_dictionary_copy ()</h3>
-<pre class="programlisting"><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> * gsignond_dictionary_copy (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *other</code></em>);</pre>
-<p>
-Creates a copy of the dictionary.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>other</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> object if the copy was successful,
-NULL otherwise. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<a name="gsignond-dictionary-ref"></a><h3>gsignond_dictionary_ref ()</h3>
+<pre class="programlisting"><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> *
+gsignond_dictionary_ref (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>);</pre>
+<p>Increments the reference count of the dictionary structure.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.3.6"></a><h4>Returns</h4>
+<p> the pointer to the passed in <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-get"></a><h3>gsignond_dictionary_get ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * gsignond_dictionary_get (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
-<p>
-Retrieves a <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> value from the dictionary. This can be used to retrieve
-a value of an arbitrary type, and then convert it manually to a specific type
-using <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> methods. For most commonly used types, also getters that
-return the specific type directly are provided (<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-string" title="gsignond_dictionary_get_string ()"><code class="function">gsignond_dictionary_get_string()</code></a>
-and similar).
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>the key to look up in the dictionary</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the value; NULL is returned in case of failure (for
-example if the entry corresponding to the supplied key doesn't exist). <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<a name="gsignond-dictionary-unref"></a><h3>gsignond_dictionary_unref ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_dictionary_unref (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>);</pre>
+<p>Decrements the reference count of the dictionary structure. If the reference
+count reaches zero, the structure is deallocated and shouldn't be used.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-get-boolean"></a><h3>gsignond_dictionary_get_boolean ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_dictionary_get_boolean (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *value</code></em>);</pre>
-<p>
-Retrieves a gboolean value.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>key to look up. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>points to the location where the value should be set</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the value was retrieved successfully, FALSE otherwise.</td>
-</tr>
-</tbody>
+<a name="gsignond-dictionary-copy"></a><h3>gsignond_dictionary_copy ()</h3>
+<pre class="programlisting"><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> *
+gsignond_dictionary_copy (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *other</code></em>);</pre>
+<p>Creates a copy of the dictionary.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>other</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.5.6"></a><h4>Returns</h4>
+<p> <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> object if the copy was successful,
+NULL otherwise. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-dictionary-new-from-variant"></a><h3>gsignond_dictionary_new_from_variant ()</h3>
+<pre class="programlisting"><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> *
+gsignond_dictionary_new_from_variant (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *variant</code></em>);</pre>
+<p>Converts the <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> to <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a>. This is useful for example if
+the dictionary needs to be deserialized, or if it's contained in another
+<a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> and has been retrieved using <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get" title="gsignond_dictionary_get ()"><code class="function">gsignond_dictionary_get()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>variant</p></td>
+<td class="parameter_description"><p>instance of <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.6.6"></a><h4>Returns</h4>
+<p> <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> if successful, NULL otherwise. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-dictionary-to-variant"></a><h3>gsignond_dictionary_to_variant ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
+gsignond_dictionary_to_variant (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>);</pre>
+<p>Converts the <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> to a <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>. The result can be serialized
+or put into another <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> using <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set" title="gsignond_dictionary_set ()"><code class="function">gsignond_dictionary_set()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.7.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> object if successful, NULL otherwise. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-dictionary-to-variant-builder"></a><h3>gsignond_dictionary_to_variant_builder ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariantBuilder"><span class="returnvalue">GVariantBuilder</span></a> *
+gsignond_dictionary_to_variant_builder
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>);</pre>
+<p>Converts the <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> to a <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariantBuilder"><span class="type">GVariantBuilder</span></a> of type
+G_VARIANT_TYPE_VARDICT.</p>
+<p>Caller should use <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#g-variant-builder-unref"><code class="function">g_variant_builder_unref()</code></a> on the return value when it is
+no longer needed.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.8.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.8.7"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariantBuilder"><span class="type">GVariantBuilder</span></a> if successful, NULL otherwise. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-get-int32"></a><h3>gsignond_dictionary_get_int32 ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_dictionary_get_int32 (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *value</code></em>);</pre>
-<p>
-Retrieves a int32 value.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-get"></a><h3>gsignond_dictionary_get ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
+gsignond_dictionary_get (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
+<p>Retrieves a <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> value from the dictionary. This can be used to retrieve
+a value of an arbitrary type, and then convert it manually to a specific type
+using <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> methods. For most commonly used types, also getters that
+return the specific type directly are provided (<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get-string" title="gsignond_dictionary_get_string ()"><code class="function">gsignond_dictionary_get_string()</code></a>
+and similar).</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>key to look up. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>points to the location where the value should be set</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the value was retrieved successfully, FALSE otherwise.</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the key to look up in the dictionary</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.9.6"></a><h4>Returns</h4>
+<p> the value; NULL is returned in case of failure (for
+example if the entry corresponding to the supplied key doesn't exist). </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-get-int64"></a><h3>gsignond_dictionary_get_int64 ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_dictionary_get_int64 (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><span class="type">gint64</span> *value</code></em>);</pre>
-<p>
-Retrieves a int64 value.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-set"></a><h3>gsignond_dictionary_set ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_dictionary_set (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *value</code></em>);</pre>
+<p>Adds or replaces key-value pair in the dictionary. This allows to set a value
+of an arbitrary type: it first needs to be converted to a <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>. For most
+commonly used types also type-specific setters are provided.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>key to look up. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> key to be set. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>points to the location where the value should be set</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the value was retrieved successfully, FALSE otherwise.</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p> value to be set. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.10.6"></a><h4>Returns</h4>
+<p> TRUE if successful, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-get-string"></a><h3>gsignond_dictionary_get_string ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_dictionary_get_string (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
-<p>
-Retrieves a string value.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-get-boolean"></a><h3>gsignond_dictionary_get_boolean ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_dictionary_get_boolean (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *value</code></em>);</pre>
+<p>Retrieves a gboolean value.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>key to look up. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> key to look up. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the value if it was retrieved successfully, NULL otherwise. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>points to the location where the value should be set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.11.6"></a><h4>Returns</h4>
+<p> TRUE if the value was retrieved successfully, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-get-uint32"></a><h3>gsignond_dictionary_get_uint32 ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_dictionary_get_uint32 (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *value</code></em>);</pre>
-<p>
-Retrieves a uint32 value.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-set-boolean"></a><h3>gsignond_dictionary_set_boolean ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_dictionary_set_boolean (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> value</code></em>);</pre>
+<p>Sets or replaces a gboolean value in the dictionary.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>key to look up. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>points to the location where the value should be set</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> key to set. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the value was retrieved successfully, FALSE otherwise.</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>value to set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.12.6"></a><h4>Returns</h4>
+<p> TRUE if the value was set or replaced successfully, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-get-uint64"></a><h3>gsignond_dictionary_get_uint64 ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_dictionary_get_uint64 (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><span class="type">guint64</span> *value</code></em>);</pre>
-<p>
-Retrieves a uint64 value.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-get-int32"></a><h3>gsignond_dictionary_get_int32 ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_dictionary_get_int32 (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *value</code></em>);</pre>
+<p>Retrieves a int32 value.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>key to look up. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> key to look up. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>points to the location where the value should be set</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the value was retrieved successfully, FALSE otherwise.</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>points to the location where the value should be set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-dictionary-new"></a><h3>gsignond_dictionary_new ()</h3>
-<pre class="programlisting"><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> * gsignond_dictionary_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Creates a new instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> object if successful,
-NULL otherwise. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr></tbody>
-</table></div>
+<div class="refsect3">
+<a name="id-1.5.3.7.13.6"></a><h4>Returns</h4>
+<p> TRUE if the value was retrieved successfully, FALSE otherwise.</p>
+<p></p>
+</div>
</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-new-from-variant"></a><h3>gsignond_dictionary_new_from_variant ()</h3>
-<pre class="programlisting"><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> * gsignond_dictionary_new_from_variant
- (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *variant</code></em>);</pre>
-<p>
-Converts the <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> to <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>. This is useful for example if
-the dictionary needs to be deserialized, or if it's contained in another
-<a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> and has been retrieved using <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-get" title="gsignond_dictionary_get ()"><code class="function">gsignond_dictionary_get()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-set-int32"></a><h3>gsignond_dictionary_set_int32 ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_dictionary_set_int32 (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);</pre>
+<p>Sets or replaces a int32 value in the dictionary.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>variant</code></em> :</span></p></td>
-<td>instance of <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>
-</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> if successful, NULL otherwise. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> key to set. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>value to set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.14.6"></a><h4>Returns</h4>
+<p> TRUE if the value was set or replaced successfully, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-ref"></a><h3>gsignond_dictionary_ref ()</h3>
-<pre class="programlisting"><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="returnvalue">GSignondDictionary</span></a> * gsignond_dictionary_ref (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>);</pre>
-<p>
-Increments the reference count of the dictionary structure.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-get-uint32"></a><h3>gsignond_dictionary_get_uint32 ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_dictionary_get_uint32 (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *value</code></em>);</pre>
+<p>Retrieves a uint32 value.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the pointer to the passed in <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> key to look up. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>points to the location where the value should be set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.15.6"></a><h4>Returns</h4>
+<p> TRUE if the value was retrieved successfully, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-remove"></a><h3>gsignond_dictionary_remove ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_dictionary_remove (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
-<p>
-Removes key-value pair in the dictionary as per key.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-set-uint32"></a><h3>gsignond_dictionary_set_uint32 ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_dictionary_set_uint32 (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> value</code></em>);</pre>
+<p>Sets or replaces a uint32 value in the dictionary.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>key which needs to be removed from the dictionary. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> key to set. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if successful, FALSE otherwise.</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>value to set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.16.6"></a><h4>Returns</h4>
+<p> TRUE if the value was set or replaced successfully, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-set"></a><h3>gsignond_dictionary_set ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_dictionary_set (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *value</code></em>);</pre>
-<p>
-Adds or replaces key-value pair in the dictionary. This allows to set a value
-of an arbitrary type: it first needs to be converted to a <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>. For most
-commonly used types also type-specific setters are provided.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-get-int64"></a><h3>gsignond_dictionary_get_int64 ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_dictionary_get_int64 (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> *value</code></em>);</pre>
+<p>Retrieves a int64 value.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>key to be set. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>value to be set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> key to look up. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if successful, FALSE otherwise.</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>points to the location where the value should be set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.17.6"></a><h4>Returns</h4>
+<p> TRUE if the value was retrieved successfully, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-set-boolean"></a><h3>gsignond_dictionary_set_boolean ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_dictionary_set_boolean (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> value</code></em>);</pre>
-<p>
-Sets or replaces a gboolean value in the dictionary.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-set-int64"></a><h3>gsignond_dictionary_set_int64 ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_dictionary_set_int64 (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> value</code></em>);</pre>
+<p>Sets or replaces a int64 value in the dictionary.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>key to set. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> key to set. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>value to set</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the value was set or replaced successfully, FALSE otherwise.</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>value to set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.18.6"></a><h4>Returns</h4>
+<p> TRUE if the value was set or replaced successfully, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-set-int32"></a><h3>gsignond_dictionary_set_int32 ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_dictionary_set_int32 (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);</pre>
-<p>
-Sets or replaces a int32 value in the dictionary.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-get-uint64"></a><h3>gsignond_dictionary_get_uint64 ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_dictionary_get_uint64 (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> *value</code></em>);</pre>
+<p>Retrieves a uint64 value.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.19.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>key to set. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>value to set</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> key to look up. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the value was set or replaced successfully, FALSE otherwise.</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>points to the location where the value should be set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.19.6"></a><h4>Returns</h4>
+<p> TRUE if the value was retrieved successfully, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-set-int64"></a><h3>gsignond_dictionary_set_int64 ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_dictionary_set_int64 (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><span class="type">gint64</span> value</code></em>);</pre>
-<p>
-Sets or replaces a int64 value in the dictionary.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-set-uint64"></a><h3>gsignond_dictionary_set_uint64 ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_dictionary_set_uint64 (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> value</code></em>);</pre>
+<p>Sets or replaces a uint64 value in the dictionary.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.20.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>key to set. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>value to set</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> key to set. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the value was set or replaced successfully, FALSE otherwise.</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>value to set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.20.6"></a><h4>Returns</h4>
+<p> TRUE if the value was set or replaced successfully, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-set-string"></a><h3>gsignond_dictionary_set_string ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_dictionary_set_string (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>
-Sets or replaces a string value in the dictionary.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-get-string"></a><h3>gsignond_dictionary_get_string ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_dictionary_get_string (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
+<p>Retrieves a string value.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.21.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>key to set. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>value to set. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the value was set or replaced successfully, FALSE otherwise.</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> key to look up. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.21.6"></a><h4>Returns</h4>
+<p> the value if it was retrieved successfully, NULL otherwise. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-set-uint32"></a><h3>gsignond_dictionary_set_uint32 ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_dictionary_set_uint32 (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><span class="type">guint32</span> value</code></em>);</pre>
-<p>
-Sets or replaces a uint32 value in the dictionary.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-set-string"></a><h3>gsignond_dictionary_set_string ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_dictionary_set_string (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
+<p>Sets or replaces a string value in the dictionary.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.22.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>key to set. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> key to set. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>value to set</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the value was set or replaced successfully, FALSE otherwise.</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p> value to set. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.22.6"></a><h4>Returns</h4>
+<p> TRUE if the value was set or replaced successfully, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-set-uint64"></a><h3>gsignond_dictionary_set_uint64 ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_dictionary_set_uint64 (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
- <em class="parameter"><code><span class="type">guint64</span> value</code></em>);</pre>
-<p>
-Sets or replaces a uint64 value in the dictionary.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-remove"></a><h3>gsignond_dictionary_remove ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_dictionary_remove (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
+<p>Removes key-value pair in the dictionary as per key.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.23.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>key to set. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>value to set</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the value was set or replaced successfully, FALSE otherwise.</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> key which needs to be removed from the dictionary. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.3.7.23.6"></a><h4>Returns</h4>
+<p> TRUE if successful, FALSE otherwise.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-dictionary-to-variant"></a><h3>gsignond_dictionary_to_variant ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * gsignond_dictionary_to_variant (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>);</pre>
-<p>
-Converts the <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> to a <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>. The result can be serialized
-or put into another <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> using <a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-set" title="gsignond_dictionary_set ()"><code class="function">gsignond_dictionary_set()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-dictionary-contains"></a><h3>gsignond_dictionary_contains ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_dictionary_contains (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
+<p>Checks if the <em class="parameter"><code>dict</code></em>
+ contains <em class="parameter"><code>key</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.5.3.7.24.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
+<td class="parameter_name"><p>dict</p></td>
+<td class="parameter_description"><p>instance of <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a></p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> object if successful, NULL otherwise. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p> key to check. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-dictionary-unref"></a><h3>gsignond_dictionary_unref ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_dictionary_unref (<em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *dict</code></em>);</pre>
-<p>
-Decrements the reference count of the dictionary structure. If the reference
-count reaches zero, the structure is deallocated and shouldn't be used.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>dict</code></em> :</span></p></td>
-<td>instance of <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-</td>
-</tr></tbody>
-</table></div>
+<div class="refsect3">
+<a name="id-1.5.3.7.24.6"></a><h4>Returns</h4>
+<p> TRUE if found, FALSE otherwise.</p>
+<p></p>
+</div>
</div>
</div>
+<div class="refsect1">
+<a name="gsignond-GSignondDictionary.other_details"></a><h2>Types and Values</h2>
+</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignondPlugin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
-<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch03.html" title="GSignond API for writing authentication plugins">
-<link rel="prev" href="ch03.html" title="GSignond API for writing authentication plugins">
-<link rel="next" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#gsignond-GSignondPlugin.description" class="shortcut">Description</a>
-</td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="ch03.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gsignond-GSignondDictionary.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="refentry">
-<a name="gsignond-GSignondPlugin"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gsignond-GSignondPlugin.top_of_page"></a>GSignondPlugin</span></h2>
-<p>GSignondPlugin — an interface for implementing authentication plugins</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gsignond-GSignondPlugin.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-plugin-interface.h>
-
-struct <a class="link" href="gsignond-GSignondPlugin.html#GSignondPluginInterface" title="struct GSignondPluginInterface">GSignondPluginInterface</a>;
-enum <a class="link" href="gsignond-GSignondPlugin.html#GSignondPluginState" title="enum GSignondPluginState">GSignondPluginState</a>;
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-cancel" title="gsignond_plugin_cancel ()">gsignond_plugin_cancel</a> (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-error" title="gsignond_plugin_error ()">gsignond_plugin_error</a> (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-refresh" title="gsignond_plugin_refresh ()">gsignond_plugin_refresh</a> (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *ui_data</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-refreshed" title="gsignond_plugin_refreshed ()">gsignond_plugin_refreshed</a> (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *ui_data</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-request" title="gsignond_plugin_request ()">gsignond_plugin_request</a> (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *session_data</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-request-initial" title="gsignond_plugin_request_initial ()">gsignond_plugin_request_initial</a> (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *session_data</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *identity_method_cache</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *mechanism</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-response" title="gsignond_plugin_response ()">gsignond_plugin_response</a> (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *session_data</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-response-final" title="gsignond_plugin_response_final ()">gsignond_plugin_response_final</a> (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *session_data</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-status-changed" title="gsignond_plugin_status_changed ()">gsignond_plugin_status_changed</a> (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondPlugin.html#GSignondPluginState" title="enum GSignondPluginState"><span class="type">GSignondPluginState</span></a> state</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *message</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-store" title="gsignond_plugin_store ()">gsignond_plugin_store</a> (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *identity_method_cache</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-user-action-finished" title="gsignond_plugin_user_action_finished ()">gsignond_plugin_user_action_finished</a>
- (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *ui_data</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-user-action-required" title="gsignond_plugin_user_action_required ()">gsignond_plugin_user_action_required</a>
- (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *ui_data</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="gsignond-GSignondPlugin.description"></a><h2>Description</h2>
-<p>
-<span class="type">GSignondPlugin</span> is an interface for implementing authentication plugins.
-</p>
-<p>
-When creating a plugin, write the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> boilerplate code as usual, but
-</p>
-<p>
-a) declare the type as follows:
-</p>
-<p>
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2
-3
-4</pre></td>
- <td class="listing_code"><pre class="programlisting">G_DEFINE_TYPE_WITH_CODE (GSignondPasswordPlugin, gsignond_password_plugin,
- G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (GSIGNOND_TYPE_PLUGIN,
- gsignond_plugin_interface_init));</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-</p>
-<p>
-b) implement <code class="function">gsignond_plugin_interface_init</code> as follows:
-</p>
-<p>
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6
-7
-8
-9</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="type">static</span> <span class="type">void</span>
-gsignond_plugin_interface_init (GSignondPluginInterface *iface)
-{
- iface->cancel = gsignond_password_plugin_cancel;
- iface->request_initial = gsignond_password_plugin_request_initial;
- iface->request = gsignond_password_plugin_request;
- iface->user_action_finished = gsignond_password_plugin_user_action_finished;
- iface->refresh = gsignond_password_plugin_refresh;
-}</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-</p>
-<p>
-where the <code class="function">gsignond_password_plugin_cancel</code> etc. are specific implementations of
-plugin interface methods that every plugin must provide (see below for when
-and how they're used by the daemon).
-</p>
-<p>
-c) override <span class="type">"type"</span> and <span class="type">"mechanisms"</span> property
-implementations in the plugin class constructor like this:
-</p>
-<p>
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="type">static</span> <span class="type">void</span>
-gsignond_password_plugin_class_init (GSignondPasswordPluginClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->set_property = gsignond_password_plugin_set_property;
- gobject_class->get_property = gsignond_password_plugin_get_property;
-
- g_object_class_override_property (gobject_class, PROP_TYPE, <span class="number">"type"</span>);
- g_object_class_override_property (gobject_class, PROP_MECHANISMS,
- <span class="number">"mechanisms"</span>);
-}</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-(naturally, plugin's property setter should ignore attempts to set these properties,
-and plugin's property getter should provide their values when asked)
-</p>
-<p>
-</p>
-<div class="refsect1">
-<a name="idp7924464"></a><h2>The plugin API</h2>
-</div>
-<p>
-</p>
-<p>
-Plugins implement authentication sessions which are controlled through the
-plugin API. Authentication sessions follow one another so there is only one active
-session at a time.
-</p>
-<p>
-The plugin API is a set of methods and signals that should be used in a specific
-sequence:
-</p>
-<p>
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem"><p>successful authentication session begins with <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-request-initial" title="gsignond_plugin_request_initial ()"><code class="function">gsignond_plugin_request_initial()</code></a> and ends
-with the plugin issuing a <span class="type">"response-final"</span> signal</p></li>
-<li class="listitem"><p>at any point the application can cancel an active session with
-<a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-cancel" title="gsignond_plugin_cancel ()"><code class="function">gsignond_plugin_cancel()</code></a></p></li>
-<li class="listitem"><p>at any point the plugin can cancel an active session by issuing <span class="type">"error"</span>
-signal, which also provides some details about the cancellation reason.</p></li>
-<li class="listitem"><p>if a session is active, and the plugin has an intermediate response or needs
-additional information, it issues <span class="type">"response"</span> signal, which the
-application should respond to with <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-request" title="gsignond_plugin_request ()"><code class="function">gsignond_plugin_request()</code></a> method. This can
-happen more than once.</p></li>
-<li class="listitem"><p>if the plugin needs to launch UI interaction with the user, it's issuing
-<span class="type">"user-action-required"</span> signal, which the application should
-follow up with <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-user-action-finished" title="gsignond_plugin_user_action_finished ()"><code class="function">gsignond_plugin_user_action_finished()</code></a> method. This can happen
-more than once as well.</p></li>
-<li class="listitem"><p>if, during an active UI session, the application needs a UI refresh
-(for example, to fetch a new captcha image), it's
-requested from the plugin with <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-refresh" title="gsignond_plugin_refresh ()"><code class="function">gsignond_plugin_refresh()</code></a> method, followed
-by the plugin's response via <span class="type">"refreshed"</span> signal. This can happen
-more than once.</p></li>
-<li class="listitem"><p>changes in plugin state are reported through <span class="type">"status-changed"</span> signal.</p></li>
-<li class="listitem"><p>if the plugin needs to store information in persistent storage, it issues
-<span class="type">"store"</span> signal. Later, that same information is provided as a
-parameter to <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-request-initial" title="gsignond_plugin_request_initial ()"><code class="function">gsignond_plugin_request_initial()</code></a>.</p></li>
-</ul></div>
-<p>
-</p>
-<p>
-</p>
-<div class="refsect1">
-<a name="idp12313904"></a><h2>Example plugins</h2>
-</div>
-<p>
-</p>
-<p>
-See example plugin implementation here:
-<a class="ulink" href="https://code.google.com/p/accounts-sso/source/browse/?repo=gsignond#git%2Fsrc%2Fplugins" target="_top">
-https://code.google.com/p/accounts-sso/source/browse/?repo=gsignond#git%2Fsrc%2Fplugins</a>.
-</p>
-<p>
-For examples of out of tree plugins, you can have a look at SASL or OAuth plugin
-implementations:
-<a class="ulink" href="http://code.google.com/p/accounts-sso/source/browse?repo=gsignond-plugin-sasl" target="_top">
-http://code.google.com/p/accounts-sso/source/browse?repo=gsignond-plugin-sasl</a>.
-</p>
-<p>
-<a class="ulink" href="http://code.google.com/p/accounts-sso/source/browse?repo=gsignond-plugin-oa" target="_top">
-http://code.google.com/p/accounts-sso/source/browse?repo=gsignond-plugin-oa</a>.
-</p>
-</div>
-<div class="refsect1">
-<a name="gsignond-GSignondPlugin.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GSignondPluginInterface"></a><h3>struct GSignondPluginInterface</h3>
-<pre class="programlisting">struct GSignondPluginInterface {
- GTypeInterface parent;
-
- void (*cancel) (GSignondPlugin *self);
- void (*request_initial) (GSignondPlugin *self,
- GSignondSessionData *session_data,
- GSignondDictionary *identity_method_cache,
- const gchar *mechanism);
- void (*request) (GSignondPlugin *self,
- GSignondSessionData *session_data);
- void (*user_action_finished) (GSignondPlugin *self,
- GSignondSignonuiData *session_data);
- void (*refresh) (GSignondPlugin *self,
- GSignondSignonuiData *session_data);
-};
-</pre>
-<p>
-<a class="link" href="gsignond-GSignondPlugin.html#GSignondPluginInterface" title="struct GSignondPluginInterface"><span class="type">GSignondPluginInterface</span></a> interface containing pointers to methods that all
-plugin implementations should provide.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GSignondPluginInterface.parent"></a>parent</code></em>;</span></p></td>
-<td>parent interface type.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondPluginInterface.cancel"></a>cancel</code></em> ()</span></p></td>
-<td>implementation of <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-cancel" title="gsignond_plugin_cancel ()"><code class="function">gsignond_plugin_cancel()</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondPluginInterface.request-initial"></a>request_initial</code></em> ()</span></p></td>
-<td>implementation of <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-request-initial" title="gsignond_plugin_request_initial ()"><code class="function">gsignond_plugin_request_initial()</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondPluginInterface.request"></a>request</code></em> ()</span></p></td>
-<td>implementation of <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-request" title="gsignond_plugin_request ()"><code class="function">gsignond_plugin_request()</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondPluginInterface.user-action-finished"></a>user_action_finished</code></em> ()</span></p></td>
-<td>implementation of <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-user-action-finished" title="gsignond_plugin_user_action_finished ()"><code class="function">gsignond_plugin_user_action_finished()</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GSignondPluginInterface.refresh"></a>refresh</code></em> ()</span></p></td>
-<td>implementation of <a class="link" href="gsignond-GSignondPlugin.html#gsignond-plugin-refresh" title="gsignond_plugin_refresh ()"><code class="function">gsignond_plugin_refresh()</code></a>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GSignondPluginState"></a><h3>enum GSignondPluginState</h3>
-<pre class="programlisting">typedef enum {
- GSIGNOND_PLUGIN_STATE_NONE = 0,
- GSIGNOND_PLUGIN_STATE_RESOLVING,
- GSIGNOND_PLUGIN_STATE_CONNECTING,
- GSIGNOND_PLUGIN_STATE_SENDING_DATA,
- GSIGNOND_PLUGIN_STATE_WAITING,
- GSIGNOND_PLUGIN_STATE_USER_PENDING,
- GSIGNOND_PLUGIN_STATE_REFRESHING,
- GSIGNOND_PLUGIN_STATE_PROCESS_PENDING,
- GSIGNOND_PLUGIN_STATE_STARTED,
- GSIGNOND_PLUGIN_STATE_CANCELING,
- GSIGNOND_PLUGIN_STATE_DONE,
- GSIGNOND_PLUGIN_STATE_HOLDING,
-} GSignondPluginState;
-</pre>
-<p>
-The plugin provides state updates by emitting <span class="type">"status-changed"</span>
-signal with this enum and a string describing what happened.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GSIGNOND-PLUGIN-STATE-NONE:CAPS"></a><span class="term"><code class="literal">GSIGNOND_PLUGIN_STATE_NONE</code></span></p></td>
-<td>State unknown
-</td>
-</tr>
-<tr>
-<td><p><a name="GSIGNOND-PLUGIN-STATE-RESOLVING:CAPS"></a><span class="term"><code class="literal">GSIGNOND_PLUGIN_STATE_RESOLVING</code></span></p></td>
-<td>Resolving remote server host name
-</td>
-</tr>
-<tr>
-<td><p><a name="GSIGNOND-PLUGIN-STATE-CONNECTING:CAPS"></a><span class="term"><code class="literal">GSIGNOND_PLUGIN_STATE_CONNECTING</code></span></p></td>
-<td>Connecting to remote server
-</td>
-</tr>
-<tr>
-<td><p><a name="GSIGNOND-PLUGIN-STATE-SENDING-DATA:CAPS"></a><span class="term"><code class="literal">GSIGNOND_PLUGIN_STATE_SENDING_DATA</code></span></p></td>
-<td>Sending data to remote server
-</td>
-</tr>
-<tr>
-<td><p><a name="GSIGNOND-PLUGIN-STATE-WAITING:CAPS"></a><span class="term"><code class="literal">GSIGNOND_PLUGIN_STATE_WAITING</code></span></p></td>
-<td>Waiting for reply from remote server
-</td>
-</tr>
-<tr>
-<td><p><a name="GSIGNOND-PLUGIN-STATE-USER-PENDING:CAPS"></a><span class="term"><code class="literal">GSIGNOND_PLUGIN_STATE_USER_PENDING</code></span></p></td>
-<td>Waiting for response from user
-</td>
-</tr>
-<tr>
-<td><p><a name="GSIGNOND-PLUGIN-STATE-REFRESHING:CAPS"></a><span class="term"><code class="literal">GSIGNOND_PLUGIN_STATE_REFRESHING</code></span></p></td>
-<td>Refreshing ui request
-</td>
-</tr>
-<tr>
-<td><p><a name="GSIGNOND-PLUGIN-STATE-PROCESS-PENDING:CAPS"></a><span class="term"><code class="literal">GSIGNOND_PLUGIN_STATE_PROCESS_PENDING</code></span></p></td>
-<td>Request has been queued
-</td>
-</tr>
-<tr>
-<td><p><a name="GSIGNOND-PLUGIN-STATE-STARTED:CAPS"></a><span class="term"><code class="literal">GSIGNOND_PLUGIN_STATE_STARTED</code></span></p></td>
-<td>Request has been dequeued
-</td>
-</tr>
-<tr>
-<td><p><a name="GSIGNOND-PLUGIN-STATE-CANCELING:CAPS"></a><span class="term"><code class="literal">GSIGNOND_PLUGIN_STATE_CANCELING</code></span></p></td>
-<td>Canceling current process
-</td>
-</tr>
-<tr>
-<td><p><a name="GSIGNOND-PLUGIN-STATE-DONE:CAPS"></a><span class="term"><code class="literal">GSIGNOND_PLUGIN_STATE_DONE</code></span></p></td>
-<td>Process is finished
-</td>
-</tr>
-<tr>
-<td><p><a name="GSIGNOND-PLUGIN-STATE-HOLDING:CAPS"></a><span class="term"><code class="literal">GSIGNOND_PLUGIN_STATE_HOLDING</code></span></p></td>
-<td>Holding long non-expired token
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-plugin-cancel"></a><h3>gsignond_plugin_cancel ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_plugin_cancel (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>);</pre>
-<p>
-This method cancels an ongoing authentication session. The plugin implementations
-should issue a <span class="type">"error"</span> signal with <a class="link" href="gsignond-Errors.html#GSIGNOND-ERROR-SESSION-CANCELED:CAPS"><span class="type">GSIGNOND_ERROR_SESSION_CANCELED</span></a>
-error, and prepare for a new authentication session.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>plugin instance</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-plugin-error"></a><h3>gsignond_plugin_error ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_plugin_error (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>);</pre>
-<p>
-Plugin implementations should use this to issue <span class="type">"error"</span>
-signal. This method should not be used otherwise.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>plugin instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>the error</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-plugin-refresh"></a><h3>gsignond_plugin_refresh ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_plugin_refresh (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *ui_data</code></em>);</pre>
-<p>
-This method asks the plugin to refresh the UI. The plugin responds with
-<span class="type">"refreshed"</span> signal.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>plugin instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>ui_data</code></em> :</span></p></td>
-<td>UI refresh parameters</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-plugin-refreshed"></a><h3>gsignond_plugin_refreshed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_plugin_refreshed (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *ui_data</code></em>);</pre>
-<p>
-Plugin implementations should use this to issue <span class="type">"refreshed"</span>
-signal. This method should not be used otherwise.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>plugin instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>ui_data</code></em> :</span></p></td>
-<td>UI data</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-plugin-request"></a><h3>gsignond_plugin_request ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_plugin_request (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *session_data</code></em>);</pre>
-<p>
-This method provides the plugin with additional parameters for the session
-after the plugin has asked for it via <span class="type">"response"</span> signal.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>plugin instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>session_data</code></em> :</span></p></td>
-<td>additional parameters for the session</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-plugin-request-initial"></a><h3>gsignond_plugin_request_initial ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_plugin_request_initial (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *session_data</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *identity_method_cache</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *mechanism</code></em>);</pre>
-<p>
-This method starts a new authentication session.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>plugin instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>session_data</code></em> :</span></p></td>
-<td>parameters for the session</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>identity_method_cache</code></em> :</span></p></td>
-<td>data from persistent storage, saved previously via
-<span class="type">"store"</span> signal</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mechanism</code></em> :</span></p></td>
-<td>mechanism to use for the authentication</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-plugin-response"></a><h3>gsignond_plugin_response ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_plugin_response (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *session_data</code></em>);</pre>
-<p>
-Plugin implementations should use this to issue <span class="type">"response"</span>
-signal. This method should not be used otherwise.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>plugin instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>session_data</code></em> :</span></p></td>
-<td>session data</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-plugin-response-final"></a><h3>gsignond_plugin_response_final ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_plugin_response_final (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *session_data</code></em>);</pre>
-<p>
-Plugin implementations should use this to issue <span class="type">"response-final"</span>
-signal. This method should not be used otherwise.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>plugin instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>session_data</code></em> :</span></p></td>
-<td>session data</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-plugin-status-changed"></a><h3>gsignond_plugin_status_changed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_plugin_status_changed (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondPlugin.html#GSignondPluginState" title="enum GSignondPluginState"><span class="type">GSignondPluginState</span></a> state</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *message</code></em>);</pre>
-<p>
-Plugin implementations should use this to issue <span class="type">"status-changed"</span>
-signal. This method should not be used otherwise.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>plugin instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
-<td>the new state</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
-<td>the message</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-plugin-store"></a><h3>gsignond_plugin_store ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_plugin_store (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> *identity_method_cache</code></em>);</pre>
-<p>
-Plugin implementations should use this to issue <span class="type">"store"</span>
-signal. This method should not be used otherwise.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>plugin instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>identity_method_cache</code></em> :</span></p></td>
-<td>data to store</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-plugin-user-action-finished"></a><h3>gsignond_plugin_user_action_finished ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_plugin_user_action_finished
- (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *ui_data</code></em>);</pre>
-<p>
-This method provides the plugin with the results of UI interaction
-after the plugin has asked for it via <span class="type">"user-action-required"</span> signal.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>plugin instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>ui_data</code></em> :</span></p></td>
-<td>results of UI interaction</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-plugin-user-action-required"></a><h3>gsignond_plugin_user_action_required ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_plugin_user_action_required
- (<em class="parameter"><code><span class="type">GSignondPlugin</span> *self</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *ui_data</code></em>);</pre>
-<p>
-Plugin implementations should use this to issue <span class="type">"user-action-required"</span>
-signal. This method should not be used otherwise.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>plugin instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>ui_data</code></em> :</span></p></td>
-<td>UI data</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.19.1</div>
-</body>
-</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignondSecurityContext</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignondSecurityContext</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch05.html" title="GSignond API for writing platform adaptation extensions">
+<link rel="up" href="ch06.html" title="GSignond API for writing platform adaptation extensions">
<link rel="prev" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">
<link rel="next" href="GSignondStorageManager.html" title="GSignondStorageManager">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#gsignond-GSignondSecurityContext.description" class="shortcut">Description</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#gsignond-GSignondSecurityContext.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#gsignond-GSignondSecurityContext.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch05.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch06.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GSignondAccessControlManager.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GSignondStorageManager.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h2><span class="refentrytitle"><a name="gsignond-GSignondSecurityContext.top_of_page"></a>GSignondSecurityContext</span></h2>
<p>GSignondSecurityContext — security context descriptor used in access control checks</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gsignond-GSignondSecurityContext.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-security-context.h>
-
- <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext">GSignondSecurityContext</a>;
-typedef <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList">GSignondSecurityContextList</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-check" title="gsignond_security_context_check ()">gsignond_security_context_check</a> (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *reference</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *test</code></em>);
-<span class="returnvalue">int</span> <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-compare" title="gsignond_security_context_compare ()">gsignond_security_context_compare</a> (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx1</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx2</code></em>);
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> * <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-copy" title="gsignond_security_context_copy ()">gsignond_security_context_copy</a>
- (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *src_ctx</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-free" title="gsignond_security_context_free ()">gsignond_security_context_free</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>);
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> * <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-from-variant" title="gsignond_security_context_from_variant ()">gsignond_security_context_from_variant</a>
- (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *variant</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-get-application-context" title="gsignond_security_context_get_application_context ()">gsignond_security_context_get_application_context</a>
- (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-get-system-context" title="gsignond_security_context_get_system_context ()">gsignond_security_context_get_system_context</a>
- (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>);
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="returnvalue">GSignondSecurityContextList</span></a> * <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-copy" title="gsignond_security_context_list_copy ()">gsignond_security_context_list_copy</a>
- (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> *src_list</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-free" title="gsignond_security_context_list_free ()">gsignond_security_context_list_free</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> *seclist</code></em>);
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="returnvalue">GSignondSecurityContextList</span></a> * <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-from-variant" title="gsignond_security_context_list_from_variant ()">gsignond_security_context_list_from_variant</a>
- (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *variant</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-to-variant" title="gsignond_security_context_list_to_variant ()">gsignond_security_context_list_to_variant</a>
- (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> *list</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-match" title="gsignond_security_context_match ()">gsignond_security_context_match</a> (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx1</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx2</code></em>);
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> * <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-new" title="gsignond_security_context_new ()">gsignond_security_context_new</a> ();
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> * <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-new-from-values" title="gsignond_security_context_new_from_values ()">gsignond_security_context_new_from_values</a>
- (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *system_context</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *application_context</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-set-application-context" title="gsignond_security_context_set_application_context ()">gsignond_security_context_set_application_context</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *application_context</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-set-system-context" title="gsignond_security_context_set_system_context ()">gsignond_security_context_set_system_context</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *system_context</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-to-variant" title="gsignond_security_context_to_variant ()">gsignond_security_context_to_variant</a>
- (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>);
-</pre>
-</div>
<div class="refsect1">
-<a name="gsignond-GSignondSecurityContext.description"></a><h2>Description</h2>
-<p>
-Security context is a string tuple of system context and application context.
-</p>
-<p>
-System context can be a binary path, SMACK-label, or MSSF token.
-</p>
-<p>
-Application context identifies a script or a webpage within an application,
-and it's used for providing access control to runtime environments (when making an access
-control decision requires not only a binary identifier, but also information
-about what the binary is doing).
-</p>
-<p>
-When an application is trying to access the gSSO service, the system context
-is determined by a specific <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> instance using
-system services of a specific platform. Application context is set by the
-application itself. Then both contexts are used by <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a>
-to perform an access control check.
-</p>
-</div>
-<div class="refsect1">
-<a name="gsignond-GSignondSecurityContext.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GSignondSecurityContext"></a><h3>GSignondSecurityContext</h3>
-<pre class="programlisting">typedef struct {
- gchar *sys_ctx;
- gchar *app_ctx;
-} GSignondSecurityContext;
-</pre>
-<p>
-Security context descriptor used for access control checks. System context
-and application context can contain a wildcard match "*" which has special
-meaning in <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-match" title="gsignond_security_context_match ()"><code class="function">gsignond_security_context_match()</code></a> and
-<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-check" title="gsignond_security_context_check ()"><code class="function">gsignond_security_context_check()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-GSignondSecurityContext.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GSignondSecurityContext.sys-ctx"></a>sys_ctx</code></em>;</span></p></td>
-<td>system context</td>
+<td class="function_type">
+<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-new" title="gsignond_security_context_new ()">gsignond_security_context_new</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GSignondSecurityContext.app-ctx"></a>app_ctx</code></em>;</span></p></td>
-<td>application context</td>
+<td class="function_type">
+<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-new-from-values" title="gsignond_security_context_new_from_values ()">gsignond_security_context_new_from_values</a> <span class="c_punctuation">()</span>
+</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GSignondSecurityContextList"></a><h3>GSignondSecurityContextList</h3>
-<pre class="programlisting">typedef GList GSignondSecurityContextList;
-</pre>
-<p>
-GList of <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> items.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-security-context-check"></a><h3>gsignond_security_context_check ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_security_context_check (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *reference</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *test</code></em>);</pre>
-<p>
-Check if <em class="parameter"><code>test</code></em> is covered by <em class="parameter"><code>reference</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>reference</code></em> :</span></p></td>
-<td>reference security context item to check against.</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-free" title="gsignond_security_context_free ()">gsignond_security_context_free</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>test</code></em> :</span></p></td>
-<td>security context item to be checked.</td>
+<td class="function_type">
+<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-copy" title="gsignond_security_context_copy ()">gsignond_security_context_copy</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if contexts are equal or the <em class="parameter"><code>reference</code></em> has a wildcard
-system context, or if system contexts are equal and <em class="parameter"><code>reference</code></em> has a wildcard
-application context, otherwise FALSE. If either or both contexts are NULL,
-FALSE is returned.</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-set-system-context" title="gsignond_security_context_set_system_context ()">gsignond_security_context_set_system_context</a> <span class="c_punctuation">()</span>
+</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-security-context-compare"></a><h3>gsignond_security_context_compare ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span> gsignond_security_context_compare (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx1</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx2</code></em>);</pre>
-<p>
-Compare two <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> items in a similar way to <code class="function">strcmp()</code>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>ctx1</code></em> :</span></p></td>
-<td>first item to compare.</td>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-get-system-context" title="gsignond_security_context_get_system_context ()">gsignond_security_context_get_system_context</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>ctx2</code></em> :</span></p></td>
-<td>second item to compare.</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-set-application-context" title="gsignond_security_context_set_application_context ()">gsignond_security_context_set_application_context</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>negative if ctx1 < ctx2, 0 if ctx1 == ctx2 and positive if ctx1 > ctx2.</td>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-get-application-context" title="gsignond_security_context_get_application_context ()">gsignond_security_context_get_application_context</a> <span class="c_punctuation">()</span>
+</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-security-context-copy"></a><h3>gsignond_security_context_copy ()</h3>
-<pre class="programlisting"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> * gsignond_security_context_copy
- (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *src_ctx</code></em>);</pre>
-<p>
-Copies a security context item.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>src_ctx</code></em> :</span></p></td>
-<td>source security context to copy.</td>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-to-variant" title="gsignond_security_context_to_variant ()">gsignond_security_context_to_variant</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a copy of the <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td class="function_type">
+<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-from-variant" title="gsignond_security_context_from_variant ()">gsignond_security_context_from_variant</a> <span class="c_punctuation">()</span>
</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-security-context-free"></a><h3>gsignond_security_context_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_security_context_free (<em class="parameter"><code><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>);</pre>
-<p>
-Frees a security context item.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>ctx</code></em> :</span></p></td>
-<td>
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> to be freed.</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-security-context-from-variant"></a><h3>gsignond_security_context_from_variant ()</h3>
-<pre class="programlisting"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> * gsignond_security_context_from_variant
- (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *variant</code></em>);</pre>
-<p>
-Builds a <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item from a GVariant of type "(ss)".
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>variant</code></em> :</span></p></td>
-<td>GVariant item with a <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> construct.</td>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-compare" title="gsignond_security_context_compare ()">gsignond_security_context_compare</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-match" title="gsignond_security_context_match ()">gsignond_security_context_match</a> <span class="c_punctuation">()</span>
</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-security-context-get-application-context"></a><h3>gsignond_security_context_get_application_context ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_security_context_get_application_context
- (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>);</pre>
-<p>
-Get the application context part of
-the <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>ctx</code></em> :</span></p></td>
-<td>
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item.</td>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-check" title="gsignond_security_context_check ()">gsignond_security_context_check</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>application context. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-to-variant" title="gsignond_security_context_list_to_variant ()">gsignond_security_context_list_to_variant</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="returnvalue">GSignondSecurityContextList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-from-variant" title="gsignond_security_context_list_from_variant ()">gsignond_security_context_list_from_variant</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="returnvalue">GSignondSecurityContextList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-copy" title="gsignond_security_context_list_copy ()">gsignond_security_context_list_copy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-free" title="gsignond_security_context_list_free ()">gsignond_security_context_list_free</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-security-context-get-system-context"></a><h3>gsignond_security_context_get_system_context ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_security_context_get_system_context
- (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>);</pre>
-<p>
-Get the system context partof the
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<div class="refsect1">
+<a name="gsignond-GSignondSecurityContext.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>ctx</code></em> :</span></p></td>
-<td>
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item.</td>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext">GSignondSecurityContext</a></td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>system context. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList">GSignondSecurityContextList</a></td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSecurityContext.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSecurityContext.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-security-context.h>
+</pre>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSecurityContext.description"></a><h2>Description</h2>
+<p>Security context is a string tuple of system context and application context.</p>
+<p>System context can be a binary path, SMACK-label, or MSSF token.</p>
+<p>Application context identifies a script or a webpage within an application,
+and it's used for providing access control to runtime environments (when making an access
+control decision requires not only a binary identifier, but also information
+about what the binary is doing).</p>
+<p>When an application is trying to access the gSSO service, the system context
+is determined by a specific <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> instance using
+system services of a specific platform. Application context is set by the
+application itself. Then both contexts are used by <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a>
+to perform an access control check.</p>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSecurityContext.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gsignond-security-context-new"></a><h3>gsignond_security_context_new ()</h3>
+<pre class="programlisting"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> *
+gsignond_security_context_new ();</pre>
+<p>Allocates a new security context item. System and app context are empty strings.</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.2.5"></a><h4>Returns</h4>
+<p> allocated <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-security-context-list-copy"></a><h3>gsignond_security_context_list_copy ()</h3>
-<pre class="programlisting"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="returnvalue">GSignondSecurityContextList</span></a> * gsignond_security_context_list_copy
- (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> *src_list</code></em>);</pre>
-<p>
-Copies a GList of <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> items.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-security-context-new-from-values"></a><h3>gsignond_security_context_new_from_values ()</h3>
+<pre class="programlisting"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> *
+gsignond_security_context_new_from_values
+ (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *system_context</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *application_context</code></em>);</pre>
+<p>Allocates and initializes a new security context item.</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>src_list</code></em> :</span></p></td>
-<td>source <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a>.</td>
+<td class="parameter_name"><p>system_context</p></td>
+<td class="parameter_description"><p>system security context</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> item. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>application_context</p></td>
+<td class="parameter_description"><p>application security context</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.4.8.3.6"></a><h4>Returns</h4>
+<p> allocated <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-security-context-list-free"></a><h3>gsignond_security_context_list_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_security_context_list_free (<em class="parameter"><code><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> *seclist</code></em>);</pre>
-<p>
-Frees all items and the GList of <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-security-context-free"></a><h3>gsignond_security_context_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_security_context_free (<em class="parameter"><code><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>);</pre>
+<p>Frees a security context item.</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>seclist</code></em> :</span></p></td>
-<td>
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> item. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>ctx</p></td>
+<td class="parameter_description"><p><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> to be freed.</p></td>
+<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-security-context-list-from-variant"></a><h3>gsignond_security_context_list_from_variant ()</h3>
-<pre class="programlisting"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="returnvalue">GSignondSecurityContextList</span></a> * gsignond_security_context_list_from_variant
- (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *variant</code></em>);</pre>
-<p>
-Builds a GList of <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> items from a GVariant of type
-"a(ss)".
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>variant</code></em> :</span></p></td>
-<td>GVariant item with a list of security context tuples.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> item. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<a name="gsignond-security-context-copy"></a><h3>gsignond_security_context_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> *
+gsignond_security_context_copy (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *src_ctx</code></em>);</pre>
+<p>Copies a security context item.</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>src_ctx</p></td>
+<td class="parameter_description"><p>source security context to copy.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.4.8.5.6"></a><h4>Returns</h4>
+<p> a copy of the <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-security-context-list-to-variant"></a><h3>gsignond_security_context_list_to_variant ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * gsignond_security_context_list_to_variant
- (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> *list</code></em>);</pre>
-<p>
-Builds a GVariant of type "a(ss)" from a GList of <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>
-items.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-security-context-set-system-context"></a><h3>gsignond_security_context_set_system_context ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_security_context_set_system_context
+ (<em class="parameter"><code><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *system_context</code></em>);</pre>
+<p>Sets the system context part of the
+<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> item.</td>
+<td class="parameter_name"><p>ctx</p></td>
+<td class="parameter_description"><p><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>GVariant construct of a <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>system_context</p></td>
+<td class="parameter_description"><p>system security context.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-security-context-match"></a><h3>gsignond_security_context_match ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_security_context_match (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx1</code></em>,
- <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx2</code></em>);</pre>
-<p>
-Compare two <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> items match.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-security-context-get-system-context"></a><h3>gsignond_security_context_get_system_context ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_security_context_get_system_context
+ (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>);</pre>
+<p>Get the system context partof the
+<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>ctx</p></td>
+<td class="parameter_description"><p><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.7.4.8.7.6"></a><h4>Returns</h4>
+<p> system context. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-security-context-set-application-context"></a><h3>gsignond_security_context_set_application_context ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_security_context_set_application_context
+ (<em class="parameter"><code><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *application_context</code></em>);</pre>
+<p>Sets the application context part of
+the <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>ctx1</code></em> :</span></p></td>
-<td>first item to compare.</td>
+<td class="parameter_name"><p>ctx</p></td>
+<td class="parameter_description"><p><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>ctx2</code></em> :</span></p></td>
-<td>second item to compare.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if contexts are equal or if either side has a wildcard match for
-system context, or if system contexts are equal and either side has a wildcard
-match for the app context,
-otherwise FALSE. Two NULL contexts match.</td>
+<td class="parameter_name"><p>application_context</p></td>
+<td class="parameter_description"><p>application security context.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-security-context-new"></a><h3>gsignond_security_context_new ()</h3>
-<pre class="programlisting"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> * gsignond_security_context_new ();</pre>
-<p>
-Allocates a new security context item. System and app context are empty strings.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-security-context-get-application-context"></a><h3>gsignond_security_context_get_application_context ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_security_context_get_application_context
+ (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>);</pre>
+<p>Get the application context part of
+the <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>allocated <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>ctx</p></td>
+<td class="parameter_description"><p><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.7.4.8.9.6"></a><h4>Returns</h4>
+<p> application context. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-security-context-to-variant"></a><h3>gsignond_security_context_to_variant ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
+gsignond_security_context_to_variant (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>);</pre>
+<p>Build a GVariant of type "(ss)" from a <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item.</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>ctx</p></td>
+<td class="parameter_description"><p><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.7.4.8.10.6"></a><h4>Returns</h4>
+<p> GVariant construct of a <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-security-context-from-variant"></a><h3>gsignond_security_context_from_variant ()</h3>
+<pre class="programlisting"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> *
+gsignond_security_context_from_variant
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *variant</code></em>);</pre>
+<p>Builds a <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item from a GVariant of type "(ss)".</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>variant</p></td>
+<td class="parameter_description"><p>GVariant item with a <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> construct.</p></td>
+<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.4.8.11.6"></a><h4>Returns</h4>
+<p> <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-security-context-new-from-values"></a><h3>gsignond_security_context_new_from_values ()</h3>
-<pre class="programlisting"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="returnvalue">GSignondSecurityContext</span></a> * gsignond_security_context_new_from_values
- (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *system_context</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *application_context</code></em>);</pre>
-<p>
-Allocates and initializes a new security context item.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-security-context-compare"></a><h3>gsignond_security_context_compare ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gsignond_security_context_compare (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx2</code></em>);</pre>
+<p>Compare two <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> items in a similar way to <code class="function">strcmp()</code>.</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>system_context</code></em> :</span></p></td>
-<td>system security context</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>application_context</code></em> :</span></p></td>
-<td>application security context</td>
+<td class="parameter_name"><p>ctx1</p></td>
+<td class="parameter_description"><p>first item to compare.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>allocated <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>ctx2</p></td>
+<td class="parameter_description"><p>second item to compare.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.4.8.12.6"></a><h4>Returns</h4>
+<p> negative if ctx1 < ctx2, 0 if ctx1 == ctx2 and positive if ctx1 > ctx2.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-security-context-set-application-context"></a><h3>gsignond_security_context_set_application_context ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_security_context_set_application_context
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *application_context</code></em>);</pre>
-<p>
-Sets the application context part of
-the <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-security-context-match"></a><h3>gsignond_security_context_match ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_security_context_match (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx2</code></em>);</pre>
+<p>Compare two <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> items match.</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>ctx</code></em> :</span></p></td>
-<td>
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item.</td>
+<td class="parameter_name"><p>ctx1</p></td>
+<td class="parameter_description"><p>first item to compare.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>application_context</code></em> :</span></p></td>
-<td>application security context.</td>
+<td class="parameter_name"><p>ctx2</p></td>
+<td class="parameter_description"><p>second item to compare.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.4.8.13.6"></a><h4>Returns</h4>
+<p> TRUE if contexts are equal or if either side has a wildcard match for
+system context, or if system contexts are equal and either side has a wildcard
+match for the app context,
+otherwise FALSE. Two NULL contexts match.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-security-context-set-system-context"></a><h3>gsignond_security_context_set_system_context ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_security_context_set_system_context
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *system_context</code></em>);</pre>
-<p>
-Sets the system context part of the
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-security-context-check"></a><h3>gsignond_security_context_check ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_security_context_check (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *reference</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *test</code></em>);</pre>
+<p>Check if <em class="parameter"><code>test</code></em>
+ is covered by <em class="parameter"><code>reference</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>ctx</code></em> :</span></p></td>
-<td>
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item.</td>
+<td class="parameter_name"><p>reference</p></td>
+<td class="parameter_description"><p>reference security context item to check against.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>system_context</code></em> :</span></p></td>
-<td>system security context.</td>
+<td class="parameter_name"><p>test</p></td>
+<td class="parameter_description"><p>security context item to be checked.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.7.4.8.14.6"></a><h4>Returns</h4>
+<p> TRUE if contexts are equal or the <em class="parameter"><code>reference</code></em>
+has a wildcard
+system context, or if system contexts are equal and <em class="parameter"><code>reference</code></em>
+has a wildcard
+application context, otherwise FALSE. If either or both contexts are NULL,
+FALSE is returned.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-security-context-to-variant"></a><h3>gsignond_security_context_to_variant ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> * gsignond_security_context_to_variant
- (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> *ctx</code></em>);</pre>
-<p>
-Build a GVariant of type "(ss)" from a <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-security-context-list-to-variant"></a><h3>gsignond_security_context_list_to_variant ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
+gsignond_security_context_list_to_variant
+ (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> *list</code></em>);</pre>
+<p>Builds a GVariant of type "a(ss)" from a GList of <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>
+items.</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>list</p></td>
+<td class="parameter_description"><p><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> item.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.7.4.8.15.6"></a><h4>Returns</h4>
+<p> GVariant construct of a <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-security-context-list-from-variant"></a><h3>gsignond_security_context_list_from_variant ()</h3>
+<pre class="programlisting"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="returnvalue">GSignondSecurityContextList</span></a> *
+gsignond_security_context_list_from_variant
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *variant</code></em>);</pre>
+<p>Builds a GList of <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> items from a GVariant of type
+"a(ss)".</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>variant</p></td>
+<td class="parameter_description"><p>GVariant item with a list of security context tuples.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.7.4.8.16.6"></a><h4>Returns</h4>
+<p> <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> item. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-security-context-list-copy"></a><h3>gsignond_security_context_list_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="returnvalue">GSignondSecurityContextList</span></a> *
+gsignond_security_context_list_copy (<em class="parameter"><code>const <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> *src_list</code></em>);</pre>
+<p>Copies a GList of <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> items.</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>src_list</p></td>
+<td class="parameter_description"><p>source <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.7.4.8.17.6"></a><h4>Returns</h4>
+<p> <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> item. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-security-context-list-free"></a><h3>gsignond_security_context_list_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_security_context_list_free (<em class="parameter"><code><a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> *seclist</code></em>);</pre>
+<p>Frees all items and the GList of <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.7.4.8.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>seclist</p></td>
+<td class="parameter_description"><p> <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList" title="GSignondSecurityContextList"><span class="type">GSignondSecurityContextList</span></a> item. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSecurityContext.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GSignondSecurityContext"></a><h3>GSignondSecurityContext</h3>
+<pre class="programlisting">typedef struct {
+ gchar *sys_ctx;
+ gchar *app_ctx;
+} GSignondSecurityContext;
+</pre>
+<p>Security context descriptor used for access control checks. System context
+and application context can contain a wildcard match "*" which has special
+meaning in <a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-match" title="gsignond_security_context_match ()"><code class="function">gsignond_security_context_match()</code></a> and
+<a class="link" href="gsignond-GSignondSecurityContext.html#gsignond-security-context-check" title="gsignond_security_context_check ()"><code class="function">gsignond_security_context_check()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.7.4.9.2.5"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>ctx</code></em> :</span></p></td>
-<td>
-<a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> item.</td>
+<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GSignondSecurityContext.sys-ctx"></a>sys_ctx</code></em>;</p></td>
+<td class="struct_member_description"><p>system context</p></td>
+<td class="struct_member_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>GVariant construct of a <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GSignondSecurityContext.app-ctx"></a>app_ctx</code></em>;</p></td>
+<td class="struct_member_description"><p>application context</p></td>
+<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
+<hr>
+<div class="refsect2">
+<a name="GSignondSecurityContextList"></a><h3>GSignondSecurityContextList</h3>
+<pre class="programlisting">typedef GList GSignondSecurityContextList;
+</pre>
+<p>GList of <a class="link" href="gsignond-GSignondSecurityContext.html#GSignondSecurityContext" title="GSignondSecurityContext"><span class="type">GSignondSecurityContext</span></a> items.</p>
+</div>
+</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignondSessionData</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignondSessionData</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch03.html" title="GSignond API for writing authentication plugins">
+<link rel="up" href="ch04.html" title="GSignond API for writing GLib-based authentication plugins">
<link rel="prev" href="gsignond-GSignondDictionary.html" title="GSignondDictionary">
<link rel="next" href="gsignond-GSignondSignonuiData.html" title="GSignondSignonuiData">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#gsignond-GSignondSessionData.description" class="shortcut">Description</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#gsignond-GSignondSessionData.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#gsignond-GSignondSessionData.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch04.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gsignond-GSignondDictionary.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gsignond-GSignondSignonuiData.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h2><span class="refentrytitle"><a name="gsignond-GSignondSessionData.top_of_page"></a>GSignondSessionData</span></h2>
<p>GSignondSessionData — definitions for authentication session parameters</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gsignond-GSignondSessionData.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-session-data.h>
-
-typedef <a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData">GSignondSessionData</a>;
-enum <a class="link" href="gsignond-GSignondSessionData.html#GSignondUiPolicy" title="enum GSignondUiPolicy">GSignondUiPolicy</a>;
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-caption" title="gsignond_session_data_get_caption ()">gsignond_session_data_get_caption</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-network-proxy" title="gsignond_session_data_get_network_proxy ()">gsignond_session_data_get_network_proxy</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-network-timeout" title="gsignond_session_data_get_network_timeout ()">gsignond_session_data_get_network_timeout</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><span class="type">guint32</span> *network_timeout</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-realm" title="gsignond_session_data_get_realm ()">gsignond_session_data_get_realm</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-renew-token" title="gsignond_session_data_get_renew_token ()">gsignond_session_data_get_renew_token</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *renew_token</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-secret" title="gsignond_session_data_get_secret ()">gsignond_session_data_get_secret</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-ui-policy" title="gsignond_session_data_get_ui_policy ()">gsignond_session_data_get_ui_policy</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondUiPolicy" title="enum GSignondUiPolicy"><span class="type">GSignondUiPolicy</span></a> *ui_policy</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-username" title="gsignond_session_data_get_username ()">gsignond_session_data_get_username</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-window-id" title="gsignond_session_data_get_window_id ()">gsignond_session_data_get_window_id</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><span class="type">guint32</span> *window_id</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-caption" title="gsignond_session_data_set_caption ()">gsignond_session_data_set_caption</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *caption</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-network-proxy" title="gsignond_session_data_set_network_proxy ()">gsignond_session_data_set_network_proxy</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *network_proxy</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-network-timeout" title="gsignond_session_data_set_network_timeout ()">gsignond_session_data_set_network_timeout</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><span class="type">guint32</span> network_timeout</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-realm" title="gsignond_session_data_set_realm ()">gsignond_session_data_set_realm</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *realm</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-renew-token" title="gsignond_session_data_set_renew_token ()">gsignond_session_data_set_renew_token</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> renew_token</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-secret" title="gsignond_session_data_set_secret ()">gsignond_session_data_set_secret</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *secret</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-ui-policy" title="gsignond_session_data_set_ui_policy ()">gsignond_session_data_set_ui_policy</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondUiPolicy" title="enum GSignondUiPolicy"><span class="type">GSignondUiPolicy</span></a> ui_policy</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-username" title="gsignond_session_data_set_username ()">gsignond_session_data_set_username</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-window-id" title="gsignond_session_data_set_window_id ()">gsignond_session_data_set_window_id</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><span class="type">guint32</span> window_id</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="gsignond-GSignondSessionData.description"></a><h2>Description</h2>
-<p>
-This file provides commonly used parameters for authentication sessions.
-For each of those a getter and setter is defined, on <a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a>
-container. The plugins may not use all of these parameters, and they commonly
-require additional, custom parameters which are set using <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>
-setters with explicit key string.
-</p>
-</div>
<div class="refsect1">
-<a name="gsignond-GSignondSessionData.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GSignondSessionData"></a><h3>GSignondSessionData</h3>
-<pre class="programlisting">typedef GSignondDictionary GSignondSessionData;
-</pre>
-<p>
-<a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> is simply a typedef for <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>, which
-means the developers may also freely use methods associated with that structure,
-in particular for creating a <a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> object with
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-new" title="gsignond_dictionary_new ()"><code class="function">gsignond_dictionary_new()</code></a>.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GSignondUiPolicy"></a><h3>enum GSignondUiPolicy</h3>
-<pre class="programlisting">typedef enum {
- GSIGNOND_UI_POLICY_DEFAULT = 0,
- GSIGNOND_UI_POLICY_REQUEST_PASSWORD,
- GSIGNOND_UI_POLICY_NO_USER_INTERACTION,
- GSIGNOND_UI_POLICY_VALIDATION
-} GSignondUiPolicy;
-</pre>
-<p>
-Policy setting to define how plugins should handle interaction with the user.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-GSignondSessionData.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
<tbody>
<tr>
-<td><p><a name="GSIGNOND-UI-POLICY-DEFAULT:CAPS"></a><span class="term"><code class="literal">GSIGNOND_UI_POLICY_DEFAULT</code></span></p></td>
-<td>use a default user interaction scenario
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-username" title="gsignond_session_data_get_username ()">gsignond_session_data_get_username</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-UI-POLICY-REQUEST-PASSWORD:CAPS"></a><span class="term"><code class="literal">GSIGNOND_UI_POLICY_REQUEST_PASSWORD</code></span></p></td>
-<td>force an authorization request from the user;
-any cached access tokens should be discarded by the plugin.
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-username" title="gsignond_session_data_set_username ()">gsignond_session_data_set_username</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-UI-POLICY-NO-USER-INTERACTION:CAPS"></a><span class="term"><code class="literal">GSIGNOND_UI_POLICY_NO_USER_INTERACTION</code></span></p></td>
-<td>force no interaction with the user
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-secret" title="gsignond_session_data_get_secret ()">gsignond_session_data_get_secret</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><a name="GSIGNOND-UI-POLICY-VALIDATION:CAPS"></a><span class="term"><code class="literal">GSIGNOND_UI_POLICY_VALIDATION</code></span></p></td>
-<td>interaction with the user is only allowed
-for validation captchas and similar security measures
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-secret" title="gsignond_session_data_set_secret ()">gsignond_session_data_set_secret</a> <span class="c_punctuation">()</span>
</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-session-data-get-caption"></a><h3>gsignond_session_data_get_caption ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_session_data_get_caption (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);</pre>
-<p>
-A getter for a caption associated with the authentication session.
-Caption tells the user which application/credentials/provider is requestion
-authentication.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-realm" title="gsignond_session_data_get_realm ()">gsignond_session_data_get_realm</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-realm" title="gsignond_session_data_set_realm ()">gsignond_session_data_set_realm</a> <span class="c_punctuation">()</span>
+</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-session-data-get-network-proxy"></a><h3>gsignond_session_data_get_network_proxy ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_session_data_get_network_proxy
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);</pre>
-<p>
-A getter for a network proxy setting associated with the authentication session.
-If this property is not set, the default system proxy settings should be used.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="returnvalue">GSequence</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-allowed-realms" title="gsignond_session_data_get_allowed_realms ()">gsignond_session_data_get_allowed_realms</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-allowed-realms" title="gsignond_session_data_set_allowed_realms ()">gsignond_session_data_set_allowed_realms</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-caption" title="gsignond_session_data_get_caption ()">gsignond_session_data_get_caption</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-caption" title="gsignond_session_data_set_caption ()">gsignond_session_data_set_caption</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-renew-token" title="gsignond_session_data_get_renew_token ()">gsignond_session_data_get_renew_token</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-renew-token" title="gsignond_session_data_set_renew_token ()">gsignond_session_data_set_renew_token</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-ui-policy" title="gsignond_session_data_get_ui_policy ()">gsignond_session_data_get_ui_policy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-ui-policy" title="gsignond_session_data_set_ui_policy ()">gsignond_session_data_set_ui_policy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-network-proxy" title="gsignond_session_data_get_network_proxy ()">gsignond_session_data_get_network_proxy</a> <span class="c_punctuation">()</span>
+</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-session-data-get-network-timeout"></a><h3>gsignond_session_data_get_network_timeout ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_session_data_get_network_timeout
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><span class="type">guint32</span> *network_timeout</code></em>);</pre>
-<p>
-A getter for a network timeout setting associated with the authentication session.
-This can be used to change the default timeout in case of unresponsive servers.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-network-proxy" title="gsignond_session_data_set_network_proxy ()">gsignond_session_data_set_network_proxy</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>network_timeout</code></em> :</span></p></td>
-<td>the value for the parameter is written here</td>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-network-timeout" title="gsignond_session_data_get_network_timeout ()">gsignond_session_data_get_network_timeout</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>whether the key-value pair exists in the <em class="parameter"><code>data</code></em> dictionary or not.</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-network-timeout" title="gsignond_session_data_set_network_timeout ()">gsignond_session_data_set_network_timeout</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-get-window-id" title="gsignond_session_data_get_window_id ()">gsignond_session_data_get_window_id</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSessionData.html#gsignond-session-data-set-window-id" title="gsignond_session_data_set_window_id ()">gsignond_session_data_set_window_id</a> <span class="c_punctuation">()</span>
+</td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSessionData.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gsignond-GSignondSessionData.html#GSignondUiPolicy" title="enum GSignondUiPolicy">GSignondUiPolicy</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSessionData.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSessionData.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-session-data.h>
+</pre>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSessionData.description"></a><h2>Description</h2>
+<p>This file provides commonly used parameters for authentication sessions.
+For each of those a getter and setter is defined, on <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a>
+container. The plugins may not use all of these parameters, and they commonly
+require additional, custom parameters which are set using <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a>
+setters with explicit key string.</p>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSessionData.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gsignond-session-data-get-username"></a><h3>gsignond_session_data_get_username ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_session_data_get_username (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);</pre>
+<p>A getter for a username associated with the authentication session.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.4.8.2.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-session-data-get-realm"></a><h3>gsignond_session_data_get_realm ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_session_data_get_realm (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);</pre>
-<p>
-A getter for a realm associated with the authentication session.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-session-data-set-username"></a><h3>gsignond_session_data_set_username ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_session_data_set_username (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</code></em>);</pre>
+<p>A setter for a username associated with the authentication session.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="parameter_name"><p>username</p></td>
+<td class="parameter_description"><p>username to set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-session-data-get-renew-token"></a><h3>gsignond_session_data_get_renew_token ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_session_data_get_renew_token
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *renew_token</code></em>);</pre>
-<p>
-A getter for a renew token property associated with the authentication session.
-This property tells the plugin to discard any cached tokens and start
-the authentication process anew.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-session-data-get-secret"></a><h3>gsignond_session_data_get_secret ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_session_data_get_secret (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);</pre>
+<p>A getter for a secret (e.g. a password) associated with the authentication session.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.4.8.4.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-session-data-set-secret"></a><h3>gsignond_session_data_set_secret ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_session_data_set_secret (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *secret</code></em>);</pre>
+<p>A setter for a secret (e.g. a password) associated with the authentication session.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>renew_token</code></em> :</span></p></td>
-<td>the value for the parameter is written here</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>whether the key-value pair exists in the <em class="parameter"><code>data</code></em> dictionary or not.</td>
+<td class="parameter_name"><p>secret</p></td>
+<td class="parameter_description"><p>a secret to set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-session-data-get-realm"></a><h3>gsignond_session_data_get_realm ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_session_data_get_realm (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);</pre>
+<p>A getter for a realm associated with the authentication session.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.4.8.6.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-session-data-get-secret"></a><h3>gsignond_session_data_get_secret ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_session_data_get_secret (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);</pre>
-<p>
-A getter for a secret (e.g. a password) associated with the authentication session.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-session-data-set-realm"></a><h3>gsignond_session_data_set_realm ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_session_data_set_realm (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *realm</code></em>);</pre>
+<p>A setter for a realm associated with the authentication session.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="parameter_name"><p>realm</p></td>
+<td class="parameter_description"><p>a realm to set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-session-data-get-ui-policy"></a><h3>gsignond_session_data_get_ui_policy ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_session_data_get_ui_policy (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondUiPolicy" title="enum GSignondUiPolicy"><span class="type">GSignondUiPolicy</span></a> *ui_policy</code></em>);</pre>
-<p>
-A getter for UI policy setting associated with the authentication session.
-The UI policy indicates how the authentication plugin should interact with the user.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-session-data-get-allowed-realms"></a><h3>gsignond_session_data_get_allowed_realms ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="returnvalue">GSequence</span></a> *
+gsignond_session_data_get_allowed_realms
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);</pre>
+<p>A getter for a list of realms allowed for the identity use.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.4.8.8.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="type">GSequence</span></a> of allowed realms. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-session-data-set-allowed-realms"></a><h3>gsignond_session_data_set_allowed_realms ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_session_data_set_allowed_realms
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="type">GSequence</span></a> *realms</code></em>);</pre>
+<p>A setter for a list of realms allowed for the identity use.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>ui_policy</code></em> :</span></p></td>
-<td>the value for the parameter is written here</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>whether the key-value pair exists in the <em class="parameter"><code>data</code></em> dictionary or not.</td>
+<td class="parameter_name"><p>realms</p></td>
+<td class="parameter_description"><p>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="type">GSequence</span></a> if allowed realms</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-session-data-get-username"></a><h3>gsignond_session_data_get_username ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_session_data_get_username (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);</pre>
-<p>
-A getter for a username associated with the authentication session.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-session-data-get-caption"></a><h3>gsignond_session_data_get_caption ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_session_data_get_caption (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);</pre>
+<p>A getter for a caption associated with the authentication session.
+Caption tells the user which application/credentials/provider is requestion
+authentication.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.4.8.10.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-session-data-set-caption"></a><h3>gsignond_session_data_set_caption ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_session_data_set_caption (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *caption</code></em>);</pre>
+<p>A setter for a caption associated with the authentication session.
+Caption tells the user which application/credentials/provider is requestion
+authentication.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="parameter_name"><p>caption</p></td>
+<td class="parameter_description"><p>a caption to set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-session-data-get-window-id"></a><h3>gsignond_session_data_get_window_id ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_session_data_get_window_id (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><span class="type">guint32</span> *window_id</code></em>);</pre>
-<p>
-A getter for a window id setting associated with the authentication session.
-This can be used to embed the user interaction window produced by the authentication
-session into an application window.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-session-data-get-renew-token"></a><h3>gsignond_session_data_get_renew_token ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_session_data_get_renew_token (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *renew_token</code></em>);</pre>
+<p>A getter for a renew token property associated with the authentication session.
+This property tells the plugin to discard any cached tokens and start
+the authentication process anew.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>window_id</code></em> :</span></p></td>
-<td>the value for the parameter is written here</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>whether the key-value pair exists in the <em class="parameter"><code>data</code></em> dictionary or not.</td>
+<td class="parameter_name"><p>renew_token</p></td>
+<td class="parameter_description"><p>the value for the parameter is written here</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.4.8.12.6"></a><h4>Returns</h4>
+<p> whether the key-value pair exists in the <em class="parameter"><code>data</code></em>
+dictionary or not.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-session-data-set-caption"></a><h3>gsignond_session_data_set_caption ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_session_data_set_caption (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *caption</code></em>);</pre>
-<p>
-A setter for a caption associated with the authentication session.
-Caption tells the user which application/credentials/provider is requestion
-authentication.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-session-data-set-renew-token"></a><h3>gsignond_session_data_set_renew_token ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_session_data_set_renew_token (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> renew_token</code></em>);</pre>
+<p>A setter for a renew token property associated with the authentication session.
+This property tells the plugin to discard any cached tokens and start
+the authentication process anew.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>caption</code></em> :</span></p></td>
-<td>a caption to set</td>
+<td class="parameter_name"><p>renew_token</p></td>
+<td class="parameter_description"><p>whether to renew the token set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-session-data-set-network-proxy"></a><h3>gsignond_session_data_set_network_proxy ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_session_data_set_network_proxy
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *network_proxy</code></em>);</pre>
-<p>
-A setter for a network proxy setting associated with the authentication session.
-If this property is not set, the default system proxy settings should be used.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-session-data-get-ui-policy"></a><h3>gsignond_session_data_get_ui_policy ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_session_data_get_ui_policy (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
+ <em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondUiPolicy" title="enum GSignondUiPolicy"><span class="type">GSignondUiPolicy</span></a> *ui_policy</code></em>);</pre>
+<p>A getter for UI policy setting associated with the authentication session.
+The UI policy indicates how the authentication plugin should interact with the user.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>network_proxy</code></em> :</span></p></td>
-<td>network proxy to use</td>
+<td class="parameter_name"><p>ui_policy</p></td>
+<td class="parameter_description"><p>the value for the parameter is written here</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.4.8.14.6"></a><h4>Returns</h4>
+<p> whether the key-value pair exists in the <em class="parameter"><code>data</code></em>
+dictionary or not.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-session-data-set-network-timeout"></a><h3>gsignond_session_data_set_network_timeout ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_session_data_set_network_timeout
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><span class="type">guint32</span> network_timeout</code></em>);</pre>
-<p>
-A setter for a network timeout setting associated with the authentication session.
-This can be used to change the default timeout in case of unresponsive servers.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-session-data-set-ui-policy"></a><h3>gsignond_session_data_set_ui_policy ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_session_data_set_ui_policy (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
+ <em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondUiPolicy" title="enum GSignondUiPolicy"><span class="type">GSignondUiPolicy</span></a> ui_policy</code></em>);</pre>
+<p>A getter for UI policy setting associated with the authentication session.
+The UI policy indicates how the authentication plugin should interact with the user.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>network_timeout</code></em> :</span></p></td>
-<td>network timeout to use</td>
+<td class="parameter_name"><p>ui_policy</p></td>
+<td class="parameter_description"><p>ui policy to set</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-session-data-set-realm"></a><h3>gsignond_session_data_set_realm ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_session_data_set_realm (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *realm</code></em>);</pre>
-<p>
-A setter for a realm associated with the authentication session.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-session-data-get-network-proxy"></a><h3>gsignond_session_data_get_network_proxy ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_session_data_get_network_proxy
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>);</pre>
+<p>A getter for a network proxy setting associated with the authentication session.
+If this property is not set, the default system proxy settings should be used.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.4.8.16.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-session-data-set-network-proxy"></a><h3>gsignond_session_data_set_network_proxy ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_session_data_set_network_proxy
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *network_proxy</code></em>);</pre>
+<p>A setter for a network proxy setting associated with the authentication session.
+If this property is not set, the default system proxy settings should be used.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>realm</code></em> :</span></p></td>
-<td>a realm to set</td>
+<td class="parameter_name"><p>network_proxy</p></td>
+<td class="parameter_description"><p>network proxy to use</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-session-data-set-renew-token"></a><h3>gsignond_session_data_set_renew_token ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_session_data_set_renew_token
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> renew_token</code></em>);</pre>
-<p>
-A setter for a renew token property associated with the authentication session.
-This property tells the plugin to discard any cached tokens and start
-the authentication process anew.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-session-data-get-network-timeout"></a><h3>gsignond_session_data_get_network_timeout ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_session_data_get_network_timeout
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *network_timeout</code></em>);</pre>
+<p>A getter for a network timeout setting associated with the authentication session.
+This can be used to change the default timeout in case of unresponsive servers.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>renew_token</code></em> :</span></p></td>
-<td>whether to renew the token set</td>
+<td class="parameter_name"><p>network_timeout</p></td>
+<td class="parameter_description"><p>the value for the parameter is written here</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.4.8.18.6"></a><h4>Returns</h4>
+<p> whether the key-value pair exists in the <em class="parameter"><code>data</code></em>
+dictionary or not.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-session-data-set-secret"></a><h3>gsignond_session_data_set_secret ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_session_data_set_secret (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *secret</code></em>);</pre>
-<p>
-A setter for a secret (e.g. a password) associated with the authentication session.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-session-data-set-network-timeout"></a><h3>gsignond_session_data_set_network_timeout ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_session_data_set_network_timeout
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> network_timeout</code></em>);</pre>
+<p>A setter for a network timeout setting associated with the authentication session.
+This can be used to change the default timeout in case of unresponsive servers.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.19.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>secret</code></em> :</span></p></td>
-<td>a secret to set</td>
+<td class="parameter_name"><p>network_timeout</p></td>
+<td class="parameter_description"><p>network timeout to use</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-session-data-set-ui-policy"></a><h3>gsignond_session_data_set_ui_policy ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_session_data_set_ui_policy (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondUiPolicy" title="enum GSignondUiPolicy"><span class="type">GSignondUiPolicy</span></a> ui_policy</code></em>);</pre>
-<p>
-A getter for UI policy setting associated with the authentication session.
-The UI policy indicates how the authentication plugin should interact with the user.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-session-data-get-window-id"></a><h3>gsignond_session_data_get_window_id ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_session_data_get_window_id (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *window_id</code></em>);</pre>
+<p>A getter for a window id setting associated with the authentication session.
+This can be used to embed the user interaction window produced by the authentication
+session into an application window.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.20.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>ui_policy</code></em> :</span></p></td>
-<td>ui policy to set</td>
+<td class="parameter_name"><p>window_id</p></td>
+<td class="parameter_description"><p>the value for the parameter is written here</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.4.8.20.6"></a><h4>Returns</h4>
+<p> whether the key-value pair exists in the <em class="parameter"><code>data</code></em>
+dictionary or not.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-session-data-set-username"></a><h3>gsignond_session_data_set_username ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_session_data_set_username (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</code></em>);</pre>
-<p>
-A setter for a username associated with the authentication session.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-session-data-set-window-id"></a><h3>gsignond_session_data_set_window_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_session_data_set_window_id (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> window_id</code></em>);</pre>
+<p>A setter for a window id setting associated with the authentication session.
+This can be used to embed the user interaction window produced by the authentication
+session into an application window.</p>
+<div class="refsect3">
+<a name="id-1.5.4.8.21.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>username</code></em> :</span></p></td>
-<td>username to set</td>
+<td class="parameter_name"><p>window_id</p></td>
+<td class="parameter_description"><p>window id to use</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
-<hr>
+</div>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSessionData.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
-<a name="gsignond-session-data-set-window-id"></a><h3>gsignond_session_data_set_window_id ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_session_data_set_window_id (<em class="parameter"><code><a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a> *data</code></em>,
- <em class="parameter"><code><span class="type">guint32</span> window_id</code></em>);</pre>
-<p>
-A setter for a window id setting associated with the authentication session.
-This can be used to embed the user interaction window produced by the authentication
-session into an application window.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GSignondUiPolicy"></a><h3>enum GSignondUiPolicy</h3>
+<p>Policy setting to define how plugins should handle interaction with the user.</p>
+<div class="refsect3">
+<a name="id-1.5.4.9.2.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="enum_member_name"><p><a name="GSIGNOND-UI-POLICY-DEFAULT:CAPS"></a>GSIGNOND_UI_POLICY_DEFAULT</p></td>
+<td class="enum_member_description">
+<p>use a default user interaction scenario</p>
+</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>window_id</code></em> :</span></p></td>
-<td>window id to use</td>
+<td class="enum_member_name"><p><a name="GSIGNOND-UI-POLICY-REQUEST-PASSWORD:CAPS"></a>GSIGNOND_UI_POLICY_REQUEST_PASSWORD</p></td>
+<td class="enum_member_description">
+<p>force an authorization request from the user;
+any cached access tokens should be discarded by the plugin.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GSIGNOND-UI-POLICY-NO-USER-INTERACTION:CAPS"></a>GSIGNOND_UI_POLICY_NO_USER_INTERACTION</p></td>
+<td class="enum_member_description">
+<p>force no interaction with the user</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GSIGNOND-UI-POLICY-VALIDATION:CAPS"></a>GSIGNOND_UI_POLICY_VALIDATION</p></td>
+<td class="enum_member_description">
+<p>interaction with the user is only allowed
+for validation captchas and similar security measures</p>
+</td>
+<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
+</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GSignondSignonuiData</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: GSignondSignonuiData</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch03.html" title="GSignond API for writing authentication plugins">
+<link rel="up" href="ch04.html" title="GSignond API for writing GLib-based authentication plugins">
<link rel="prev" href="gsignond-GSignondSessionData.html" title="GSignondSessionData">
-<link rel="next" href="ch04.html" title="Standard in-tree authentication plugins">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<link rel="next" href="ch05.html" title="Standard in-tree authentication plugins">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#gsignond-GSignondSignonuiData.description" class="shortcut">Description</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#gsignond-GSignondSignonuiData.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#gsignond-GSignondSignonuiData.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch04.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gsignond-GSignondSessionData.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="ch04.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="ch05.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gsignond-GSignondSignonuiData"></a><div class="titlepage"></div>
<h2><span class="refentrytitle"><a name="gsignond-GSignondSignonuiData.top_of_page"></a>GSignondSignonuiData</span></h2>
<p>GSignondSignonuiData — definitions for user interaction parameters</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gsignond-GSignondSignonuiData.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-signonui-data.h>
-
-typedef <a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData">GSignondSignonuiData</a>;
-enum <a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiError" title="enum GSignondSignonuiError">GSignondSignonuiError</a>;
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-captcha-response" title="gsignond_signonui_data_get_captcha_response ()">gsignond_signonui_data_get_captcha_response</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-captcha-url" title="gsignond_signonui_data_get_captcha_url ()">gsignond_signonui_data_get_captcha_url</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-caption" title="gsignond_signonui_data_get_caption ()">gsignond_signonui_data_get_caption</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-confirm" title="gsignond_signonui_data_get_confirm ()">gsignond_signonui_data_get_confirm</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *confirm</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-final-url" title="gsignond_signonui_data_get_final_url ()">gsignond_signonui_data_get_final_url</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password" title="gsignond_signonui_data_get_forgot_password ()">gsignond_signonui_data_get_forgot_password</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password-url" title="gsignond_signonui_data_get_forgot_password_url ()">gsignond_signonui_data_get_forgot_password_url</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-message" title="gsignond_signonui_data_get_message ()">gsignond_signonui_data_get_message</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-open-url" title="gsignond_signonui_data_get_open_url ()">gsignond_signonui_data_get_open_url</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-password" title="gsignond_signonui_data_get_password ()">gsignond_signonui_data_get_password</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-error" title="gsignond_signonui_data_get_query_error ()">gsignond_signonui_data_get_query_error</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiError" title="enum GSignondSignonuiError"><span class="type">GSignondSignonuiError</span></a> *error</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-password" title="gsignond_signonui_data_get_query_password ()">gsignond_signonui_data_get_query_password</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *query_password</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-username" title="gsignond_signonui_data_get_query_username ()">gsignond_signonui_data_get_query_username</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *query_username</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-remember-password" title="gsignond_signonui_data_get_remember_password ()">gsignond_signonui_data_get_remember_password</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *remember_password</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-request-id" title="gsignond_signonui_data_get_request_id ()">gsignond_signonui_data_get_request_id</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-test-reply" title="gsignond_signonui_data_get_test_reply ()">gsignond_signonui_data_get_test_reply</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-title" title="gsignond_signonui_data_get_title ()">gsignond_signonui_data_get_title</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-url-response" title="gsignond_signonui_data_get_url_response ()">gsignond_signonui_data_get_url_response</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-username" title="gsignond_signonui_data_get_username ()">gsignond_signonui_data_get_username</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-captcha-response" title="gsignond_signonui_data_set_captcha_response ()">gsignond_signonui_data_set_captcha_response</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *response</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-captcha-url" title="gsignond_signonui_data_set_captcha_url ()">gsignond_signonui_data_set_captcha_url</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *url</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-caption" title="gsignond_signonui_data_set_caption ()">gsignond_signonui_data_set_caption</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *caption</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-confirm" title="gsignond_signonui_data_set_confirm ()">gsignond_signonui_data_set_confirm</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> confirm</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-final-url" title="gsignond_signonui_data_set_final_url ()">gsignond_signonui_data_set_final_url</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *url</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-forgot-password" title="gsignond_signonui_data_set_forgot_password ()">gsignond_signonui_data_set_forgot_password</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *forgot</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-forgot-password-url" title="gsignond_signonui_data_set_forgot_password_url ()">gsignond_signonui_data_set_forgot_password_url</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *url</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-message" title="gsignond_signonui_data_set_message ()">gsignond_signonui_data_set_message</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *message</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-open-url" title="gsignond_signonui_data_set_open_url ()">gsignond_signonui_data_set_open_url</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *url</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-password" title="gsignond_signonui_data_set_password ()">gsignond_signonui_data_set_password</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *password</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-error" title="gsignond_signonui_data_set_query_error ()">gsignond_signonui_data_set_query_error</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiError" title="enum GSignondSignonuiError"><span class="type">GSignondSignonuiError</span></a> error</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-password" title="gsignond_signonui_data_set_query_password ()">gsignond_signonui_data_set_query_password</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> query</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-username" title="gsignond_signonui_data_set_query_username ()">gsignond_signonui_data_set_query_username</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> query</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-remember-password" title="gsignond_signonui_data_set_remember_password ()">gsignond_signonui_data_set_remember_password</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> remember</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-request-id" title="gsignond_signonui_data_set_request_id ()">gsignond_signonui_data_set_request_id</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-test-reply" title="gsignond_signonui_data_set_test_reply ()">gsignond_signonui_data_set_test_reply</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *reply</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-title" title="gsignond_signonui_data_set_title ()">gsignond_signonui_data_set_title</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *title</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-url-response" title="gsignond_signonui_data_set_url_response ()">gsignond_signonui_data_set_url_response</a>
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *response</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-username" title="gsignond_signonui_data_set_username ()">gsignond_signonui_data_set_username</a> (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</code></em>);
-</pre>
-</div>
<div class="refsect1">
-<a name="gsignond-GSignondSignonuiData.description"></a><h2>Description</h2>
-<p>
-This file provides commonly used parameters for user interaction during
-authentication sessions.
-For each of those a getter and setter is defined, on <a class="link" href="gsignond-GSignondSessionData.html#GSignondSessionData" title="GSignondSessionData"><span class="type">GSignondSessionData</span></a>
-container.
-</p>
-<p>
-This container is used in two directions: by plugins to specify the parameters
-for user interaction that is then performed by SignonUI component, and by SignonUI
-to return the results of that interaction to the plugins. See <span class="type">GSignondPlugin</span>
-for the user interaction API from the plugins' perspective.
-</p>
-<p>
-The parameters that are set by the plugin and read by signon UI are captcha url,
-caption, confirm, final url, forgot password, forgot password url, message,
-open url, password, query password, query username, remember
-password, request id, test reply values, title, username.
-</p>
-<p>
-The parameters that are returned by signon UI to the plugin are captcha response,
-password, query error code, remember password, url response.
-</p>
-</div>
-<div class="refsect1">
-<a name="gsignond-GSignondSignonuiData.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GSignondSignonuiData"></a><h3>GSignondSignonuiData</h3>
-<pre class="programlisting">typedef GSignondDictionary GSignondSignonuiData;
-</pre>
-<p>
-<a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> is simply a typedef for <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a>, which
-means the developers may also freely use methods associated with that structure,
-in particular for creating a <a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> object with
-<a class="link" href="gsignond-GSignondDictionary.html#gsignond-dictionary-new" title="gsignond_dictionary_new ()"><code class="function">gsignond_dictionary_new()</code></a>.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GSignondSignonuiError"></a><h3>enum GSignondSignonuiError</h3>
-<pre class="programlisting">typedef enum {
- SIGNONUI_ERROR_NONE = 0,
- SIGNONUI_ERROR_GENERAL,
- SIGNONUI_ERROR_NO_SIGNONUI,
- SIGNONUI_ERROR_BAD_PARAMETERS,
- SIGNONUI_ERROR_CANCELED,
- SIGNONUI_ERROR_NOT_AVAILABLE,
- SIGNONUI_ERROR_BAD_URL,
- SIGNONUI_ERROR_BAD_CAPTCHA,
- SIGNONUI_ERROR_BAD_CAPTCHA_URL,
- SIGNONUI_ERROR_REFRESH_FAILED,
- SIGNONUI_ERROR_FORBIDDEN,
- SIGNONUI_ERROR_FORGOT_PASSWORD
-} GSignondSignonuiError;
-</pre>
-<p>
-This enum defines errors that may happen during user interaction.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-GSignondSignonuiData.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
<tbody>
<tr>
-<td><p><a name="SIGNONUI-ERROR-NONE:CAPS"></a><span class="term"><code class="literal">SIGNONUI_ERROR_NONE</code></span></p></td>
-<td>No errors
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
-</tr>
-<tr>
-<td><p><a name="SIGNONUI-ERROR-GENERAL:CAPS"></a><span class="term"><code class="literal">SIGNONUI_ERROR_GENERAL</code></span></p></td>
-<td>Generic error during interaction
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-captcha-response" title="gsignond_signonui_data_get_captcha_response ()">gsignond_signonui_data_get_captcha_response</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><a name="SIGNONUI-ERROR-NO-SIGNONUI:CAPS"></a><span class="term"><code class="literal">SIGNONUI_ERROR_NO_SIGNONUI</code></span></p></td>
-<td>Cannot send request to signon-ui
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-captcha-response" title="gsignond_signonui_data_set_captcha_response ()">gsignond_signonui_data_set_captcha_response</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><a name="SIGNONUI-ERROR-BAD-PARAMETERS:CAPS"></a><span class="term"><code class="literal">SIGNONUI_ERROR_BAD_PARAMETERS</code></span></p></td>
-<td>Signon-Ui cannot create dialog based on the given UiSessionData
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-captcha-url" title="gsignond_signonui_data_get_captcha_url ()">gsignond_signonui_data_get_captcha_url</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><a name="SIGNONUI-ERROR-CANCELED:CAPS"></a><span class="term"><code class="literal">SIGNONUI_ERROR_CANCELED</code></span></p></td>
-<td>User canceled action. Plugin should not retry automatically after this
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-captcha-url" title="gsignond_signonui_data_set_captcha_url ()">gsignond_signonui_data_set_captcha_url</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><a name="SIGNONUI-ERROR-NOT-AVAILABLE:CAPS"></a><span class="term"><code class="literal">SIGNONUI_ERROR_NOT_AVAILABLE</code></span></p></td>
-<td>Requested ui is not available. For example browser cannot be started
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-caption" title="gsignond_signonui_data_get_caption ()">gsignond_signonui_data_get_caption</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><a name="SIGNONUI-ERROR-BAD-URL:CAPS"></a><span class="term"><code class="literal">SIGNONUI_ERROR_BAD_URL</code></span></p></td>
-<td>Given url was not valid
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-caption" title="gsignond_signonui_data_set_caption ()">gsignond_signonui_data_set_caption</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><a name="SIGNONUI-ERROR-BAD-CAPTCHA:CAPS"></a><span class="term"><code class="literal">SIGNONUI_ERROR_BAD_CAPTCHA</code></span></p></td>
-<td>Given captcha image was not valid
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-confirm" title="gsignond_signonui_data_get_confirm ()">gsignond_signonui_data_get_confirm</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><a name="SIGNONUI-ERROR-BAD-CAPTCHA-URL:CAPS"></a><span class="term"><code class="literal">SIGNONUI_ERROR_BAD_CAPTCHA_URL</code></span></p></td>
-<td>Given url for capctha loading was not valid
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-confirm" title="gsignond_signonui_data_set_confirm ()">gsignond_signonui_data_set_confirm</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><a name="SIGNONUI-ERROR-REFRESH-FAILED:CAPS"></a><span class="term"><code class="literal">SIGNONUI_ERROR_REFRESH_FAILED</code></span></p></td>
-<td>Refresh failed
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-final-url" title="gsignond_signonui_data_get_final_url ()">gsignond_signonui_data_get_final_url</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><a name="SIGNONUI-ERROR-FORBIDDEN:CAPS"></a><span class="term"><code class="literal">SIGNONUI_ERROR_FORBIDDEN</code></span></p></td>
-<td>Showing ui forbidden by ui policy
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-final-url" title="gsignond_signonui_data_set_final_url ()">gsignond_signonui_data_set_final_url</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
-<td><p><a name="SIGNONUI-ERROR-FORGOT-PASSWORD:CAPS"></a><span class="term"><code class="literal">SIGNONUI_ERROR_FORGOT_PASSWORD</code></span></p></td>
-<td>User pressed forgot password
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password" title="gsignond_signonui_data_get_forgot_password ()">gsignond_signonui_data_get_forgot_password</a> <span class="c_punctuation">()</span>
</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-signonui-data-get-captcha-response"></a><h3>gsignond_signonui_data_get_captcha_response ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_signonui_data_get_captcha_response
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
-<p>
-A getter for the user's response to a captcha query.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-forgot-password" title="gsignond_signonui_data_set_forgot_password ()">gsignond_signonui_data_set_forgot_password</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the string entered by the user in response to a captcha query. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password-url" title="gsignond_signonui_data_get_forgot_password_url ()">gsignond_signonui_data_get_forgot_password_url</a> <span class="c_punctuation">()</span>
</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-signonui-data-get-captcha-url"></a><h3>gsignond_signonui_data_get_captcha_url ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_signonui_data_get_captcha_url
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
-<p>
-A getter for the captcha URL.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-forgot-password-url" title="gsignond_signonui_data_set_forgot_password_url ()">gsignond_signonui_data_set_forgot_password_url</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the URL to the captcha image to be verified by user. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-message" title="gsignond_signonui_data_get_message ()">gsignond_signonui_data_get_message</a> <span class="c_punctuation">()</span>
</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-signonui-data-get-caption"></a><h3>gsignond_signonui_data_get_caption ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_signonui_data_get_caption (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
-<p>
-A getter for the caption string. Caption tells the user which
-application/credentials/provider is requestion authentication.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-message" title="gsignond_signonui_data_set_message ()">gsignond_signonui_data_set_message</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-open-url" title="gsignond_signonui_data_get_open_url ()">gsignond_signonui_data_get_open_url</a> <span class="c_punctuation">()</span>
+</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-signonui-data-get-confirm"></a><h3>gsignond_signonui_data_get_confirm ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_signonui_data_get_confirm (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *confirm</code></em>);</pre>
-<p>
-A getter for the confirm mode. In confirm mode the user is asked to enter
-an old password (which is compared to the supplied password), and a new password twice
-(which is returned).
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-open-url" title="gsignond_signonui_data_set_open_url ()">gsignond_signonui_data_set_open_url</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>confirm</code></em> :</span></p></td>
-<td>the value for the property is written here</td>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-password" title="gsignond_signonui_data_get_password ()">gsignond_signonui_data_get_password</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>whether this property exists in the <em class="parameter"><code>data</code></em> dictionary or not.</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-password" title="gsignond_signonui_data_set_password ()">gsignond_signonui_data_set_password</a> <span class="c_punctuation">()</span>
+</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-signonui-data-get-final-url"></a><h3>gsignond_signonui_data_get_final_url ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_signonui_data_get_final_url
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
-<p>
-A getter for the final URL. When the signon UI detects that the user is at
-the final URL (possibly with additional query or fragment parameters), it
-will close the window and return the full URL via url response property.
-This is used by redirection-based authentication, such as OAuth.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-error" title="gsignond_signonui_data_get_query_error ()">gsignond_signonui_data_get_query_error</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-error" title="gsignond_signonui_data_set_query_error ()">gsignond_signonui_data_set_query_error</a> <span class="c_punctuation">()</span>
+</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-signonui-data-get-forgot-password"></a><h3>gsignond_signonui_data_get_forgot_password ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_signonui_data_get_forgot_password
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
-<p>
-A getter for the forgot password string which is shown to the user as a link to
-reset the password or remind him of the password.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-password" title="gsignond_signonui_data_get_query_password ()">gsignond_signonui_data_get_query_password</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-password" title="gsignond_signonui_data_set_query_password ()">gsignond_signonui_data_set_query_password</a> <span class="c_punctuation">()</span>
+</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-signonui-data-get-forgot-password-url"></a><h3>gsignond_signonui_data_get_forgot_password_url ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_signonui_data_get_forgot_password_url
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
-<p>
-A getter for the forgot password URL, where the user can reset or request a
-reminder of the password.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-username" title="gsignond_signonui_data_get_query_username ()">gsignond_signonui_data_get_query_username</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-username" title="gsignond_signonui_data_set_query_username ()">gsignond_signonui_data_set_query_username</a> <span class="c_punctuation">()</span>
+</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-signonui-data-get-message"></a><h3>gsignond_signonui_data_get_message ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_signonui_data_get_message (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
-<p>
-A getter for the message which is show to the user in the signon UI dialog.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-remember-password" title="gsignond_signonui_data_get_remember_password ()">gsignond_signonui_data_get_remember_password</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-remember-password" title="gsignond_signonui_data_set_remember_password ()">gsignond_signonui_data_set_remember_password</a> <span class="c_punctuation">()</span>
+</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-signonui-data-get-open-url"></a><h3>gsignond_signonui_data_get_open_url ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_signonui_data_get_open_url (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
-<p>
-A getter for the URL that should be opened by signon UI.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-request-id" title="gsignond_signonui_data_get_request_id ()">gsignond_signonui_data_get_request_id</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-request-id" title="gsignond_signonui_data_set_request_id ()">gsignond_signonui_data_set_request_id</a> <span class="c_punctuation">()</span>
+</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-signonui-data-get-password"></a><h3>gsignond_signonui_data_get_password ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_signonui_data_get_password (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
-<p>
-A getter for the password string.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-test-reply" title="gsignond_signonui_data_get_test_reply ()">gsignond_signonui_data_get_test_reply</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-test-reply" title="gsignond_signonui_data_set_test_reply ()">gsignond_signonui_data_set_test_reply</a> <span class="c_punctuation">()</span>
+</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-signonui-data-get-query-error"></a><h3>gsignond_signonui_data_get_query_error ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_signonui_data_get_query_error
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiError" title="enum GSignondSignonuiError"><span class="type">GSignondSignonuiError</span></a> *error</code></em>);</pre>
-<p>
-A getter for the UI interaction error. Signon UI sets this to <em class="parameter"><code>SIGNONUI_ERROR_NONE</code></em> if
-there were no errors.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-title" title="gsignond_signonui_data_get_title ()">gsignond_signonui_data_get_title</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>the error is written here</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-title" title="gsignond_signonui_data_set_title ()">gsignond_signonui_data_set_title</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>whether this property exists in the <em class="parameter"><code>data</code></em> dictionary or not.</td>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-url-response" title="gsignond_signonui_data_get_url_response ()">gsignond_signonui_data_get_url_response</a> <span class="c_punctuation">()</span>
+</td>
</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gsignond-signonui-data-get-query-password"></a><h3>gsignond_signonui_data_get_query_password ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_signonui_data_get_query_password
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *query_password</code></em>);</pre>
-<p>
-A getter for the query password property. It indicates whether the signon UI
-should ask the user for a password (and return it in the password property).
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-url-response" title="gsignond_signonui_data_set_url_response ()">gsignond_signonui_data_set_url_response</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>query_password</code></em> :</span></p></td>
-<td>the property is written here</td>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-username" title="gsignond_signonui_data_get_username ()">gsignond_signonui_data_get_username</a> <span class="c_punctuation">()</span>
+</td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>whether this property exists in the <em class="parameter"><code>data</code></em> dictionary or not.</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-username" title="gsignond_signonui_data_set_username ()">gsignond_signonui_data_set_username</a> <span class="c_punctuation">()</span>
+</td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSignonuiData.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiError" title="enum GSignondSignonuiError">GSignondSignonuiError</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSignonuiData.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSignonuiData.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-signonui-data.h>
+</pre>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSignonuiData.description"></a><h2>Description</h2>
+<p>This file provides commonly used parameters for user interaction during
+authentication sessions.
+For each of those a getter and setter is defined, on <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSessionData.html#GSignondSessionData"><span class="type">GSignondSessionData</span></a>
+container. </p>
+<p>This container is used in two directions: by plugins to specify the parameters
+for user interaction that is then performed by SignonUI component, and by SignonUI
+to return the results of that interaction to the plugins. See <a class="link" href="GSignondPlugin.html" title="GSignondPlugin"><span class="type">GSignondPlugin</span></a>
+for the user interaction API from the plugins' perspective.</p>
+<p>The parameters that are set by the plugin and read by signon UI are captcha url,
+caption, confirm, final url, forgot password, forgot password url, message,
+open url, password, query password, query username, remember
+password, request id, test reply values, title, username.</p>
+<p>The parameters that are returned by signon UI to the plugin are captcha response,
+password, query error code, remember password, url response.</p>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSignonuiData.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gsignond-signonui-data-get-captcha-response"></a><h3>gsignond_signonui_data_get_captcha_response ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_signonui_data_get_captcha_response
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
+<p>A getter for the user's response to a captcha query.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.2.6"></a><h4>Returns</h4>
+<p> the string entered by the user in response to a captcha query. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-get-query-username"></a><h3>gsignond_signonui_data_get_query_username ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_signonui_data_get_query_username
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *query_username</code></em>);</pre>
-<p>
-A getter for the query username property. It indicates whether the signon UI
-should ask the user for a username (and return it in the username property).
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-set-captcha-response"></a><h3>gsignond_signonui_data_set_captcha_response ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_captcha_response
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *response</code></em>);</pre>
+<p>A setter for the user's response to a captcha query.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>query_username</code></em> :</span></p></td>
-<td>the property is written here</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>whether this property exists in the <em class="parameter"><code>data</code></em> dictionary or not.</td>
+<td class="parameter_name"><p>response</p></td>
+<td class="parameter_description"><p>the string entered by the user in response to a captcha query.</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-get-remember-password"></a><h3>gsignond_signonui_data_get_remember_password ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_signonui_data_get_remember_password
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *remember_password</code></em>);</pre>
-<p>
-A getter for whether the password should be remembered.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>remember_password</code></em> :</span></p></td>
-<td>the property is written here</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>whether this property exists in the <em class="parameter"><code>data</code></em> dictionary or not.</td>
-</tr>
-</tbody>
+<a name="gsignond-signonui-data-get-captcha-url"></a><h3>gsignond_signonui_data_get_captcha_url ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_signonui_data_get_captcha_url
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
+<p>A getter for the captcha URL.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.4.6"></a><h4>Returns</h4>
+<p> the URL to the captcha image to be verified by user. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-get-request-id"></a><h3>gsignond_signonui_data_get_request_id ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_signonui_data_get_request_id
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
-<p>
-A getter for the dialog request id. The id identifies the dialog so that it
-can be refreshed or updated.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-set-captcha-url"></a><h3>gsignond_signonui_data_set_captcha_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_captcha_url
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *url</code></em>);</pre>
+<p>A setter for the captcha URL.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>the URL to the captcha image to be verified by user</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-get-test-reply"></a><h3>gsignond_signonui_data_get_test_reply ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_signonui_data_get_test_reply
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
-<p>
-A getter for the test reply values. It's used only by the signon ui
-implementations to test themselves.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-get-caption"></a><h3>gsignond_signonui_data_get_caption ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_signonui_data_get_caption (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
+<p>A getter for the caption string. Caption tells the user which
+application/credentials/provider is requestion authentication.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.6.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-signonui-data-set-caption"></a><h3>gsignond_signonui_data_set_caption ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_caption (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *caption</code></em>);</pre>
+<p>A setter for the caption string. Caption tells the user which
+application/credentials/provider is requestion authentication.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="parameter_name"><p>caption</p></td>
+<td class="parameter_description"><p>the caption string</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-get-title"></a><h3>gsignond_signonui_data_get_title ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_signonui_data_get_title (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
-<p>
-A getter for the UI dialog title.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-get-confirm"></a><h3>gsignond_signonui_data_get_confirm ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_signonui_data_get_confirm (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *confirm</code></em>);</pre>
+<p>A getter for the confirm mode. In confirm mode the user is asked to enter
+an old password (which is compared to the supplied password), and a new password twice
+(which is returned).</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="parameter_name"><p>confirm</p></td>
+<td class="parameter_description"><p>the value for the property is written here</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.8.6"></a><h4>Returns</h4>
+<p> whether this property exists in the <em class="parameter"><code>data</code></em>
+dictionary or not.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-get-url-response"></a><h3>gsignond_signonui_data_get_url_response ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_signonui_data_get_url_response
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
-<p>
-A getter for the response URL. If the final URL was set in the request to the signon UI, and the signon UI
-detects that it has been reached, then the full final URL is returned using
-this property. This is used by redirection-based authentication such as OAauth.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-set-confirm"></a><h3>gsignond_signonui_data_set_confirm ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_confirm (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> confirm</code></em>);</pre>
+<p>A setter for the confirm mode. In confirm mode the user is asked to enter
+an old password (which is compared to the supplied password), and a new password twice
+(which is returned).</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="parameter_name"><p>confirm</p></td>
+<td class="parameter_description"><p>the value for the property</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-get-username"></a><h3>gsignond_signonui_data_get_username ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_signonui_data_get_username (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
-<p>
-A getter for the username string.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-get-final-url"></a><h3>gsignond_signonui_data_get_final_url ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_signonui_data_get_final_url (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
+<p>A getter for the final URL. When the signon UI detects that the user is at
+the final URL (possibly with additional query or fragment parameters), it
+will close the window and return the full URL via url response property.
+This is used by redirection-based authentication, such as OAuth.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.10.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-signonui-data-set-final-url"></a><h3>gsignond_signonui_data_set_final_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_final_url (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *url</code></em>);</pre>
+<p>A setter for the final URL. When the signon UI detects that the user is at
+the final URL (possibly with additional query or fragment parameters), it
+will close the window and return the full URL via url response property.
+This is used by redirection-based authentication, such as OAuth.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none)</td>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>the final url</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-signonui-data-get-forgot-password"></a><h3>gsignond_signonui_data_get_forgot_password ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_signonui_data_get_forgot_password
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
+<p>A getter for the forgot password string which is shown to the user as a link to
+reset the password or remind him of the password.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.12.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-captcha-response"></a><h3>gsignond_signonui_data_set_captcha_response ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_captcha_response
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *response</code></em>);</pre>
-<p>
-A setter for the user's response to a captcha query.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-set-forgot-password"></a><h3>gsignond_signonui_data_set_forgot_password ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_forgot_password
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *forgot</code></em>);</pre>
+<p>A setter for the forgot password string, which is shown to the user as a link to
+reset the password or remind him of the password.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>response</code></em> :</span></p></td>
-<td>the string entered by the user in response to a captcha query.</td>
+<td class="parameter_name"><p>forgot</p></td>
+<td class="parameter_description"><p>the forgot password string</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.13.6"></a><h4>Returns</h4>
+<p>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-signonui-data-get-forgot-password-url"></a><h3>gsignond_signonui_data_get_forgot_password_url ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_signonui_data_get_forgot_password_url
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
+<p>A getter for the forgot password URL, where the user can reset or request a
+reminder of the password.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.14.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-captcha-url"></a><h3>gsignond_signonui_data_set_captcha_url ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_captcha_url
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *url</code></em>);</pre>
-<p>
-A setter for the captcha URL.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-set-forgot-password-url"></a><h3>gsignond_signonui_data_set_forgot_password_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_forgot_password_url
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *url</code></em>);</pre>
+<p>A setter for the forgot password URL, where the user can reset or request a
+reminder of the password.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
-<td>the URL to the captcha image to be verified by user</td>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>the forgot password URL</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.15.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-caption"></a><h3>gsignond_signonui_data_set_caption ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_caption (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *caption</code></em>);</pre>
-<p>
-A setter for the caption string. Caption tells the user which
-application/credentials/provider is requestion authentication.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-get-message"></a><h3>gsignond_signonui_data_get_message ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_signonui_data_get_message (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
+<p>A getter for the message which is show to the user in the signon UI dialog.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.16.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-signonui-data-set-message"></a><h3>gsignond_signonui_data_set_message ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_message (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *message</code></em>);</pre>
+<p>A setter for the message which is show to the user in the signon UI dialog.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>caption</code></em> :</span></p></td>
-<td>the caption string</td>
+<td class="parameter_name"><p>message</p></td>
+<td class="parameter_description"><p>the message</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-confirm"></a><h3>gsignond_signonui_data_set_confirm ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_confirm (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> confirm</code></em>);</pre>
-<p>
-A setter for the confirm mode. In confirm mode the user is asked to enter
-an old password (which is compared to the supplied password), and a new password twice
-(which is returned).
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-get-open-url"></a><h3>gsignond_signonui_data_get_open_url ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_signonui_data_get_open_url (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
+<p>A getter for the URL that should be opened by signon UI.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.18.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-signonui-data-set-open-url"></a><h3>gsignond_signonui_data_set_open_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_open_url (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *url</code></em>);</pre>
+<p>A setter for the URL that should be opened by signon UI.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.19.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>confirm</code></em> :</span></p></td>
-<td>the value for the property</td>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>the url to open</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-final-url"></a><h3>gsignond_signonui_data_set_final_url ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_final_url
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *url</code></em>);</pre>
-<p>
-A setter for the final URL. When the signon UI detects that the user is at
-the final URL (possibly with additional query or fragment parameters), it
-will close the window and return the full URL via url response property.
-This is used by redirection-based authentication, such as OAuth.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-get-password"></a><h3>gsignond_signonui_data_get_password ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_signonui_data_get_password (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
+<p>A getter for the password string.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.20.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.20.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-signonui-data-set-password"></a><h3>gsignond_signonui_data_set_password ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_password (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *password</code></em>);</pre>
+<p>A setter for the password string.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.21.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
-<td>the final url</td>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p>the password string</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-forgot-password"></a><h3>gsignond_signonui_data_set_forgot_password ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_forgot_password
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *forgot</code></em>);</pre>
-<p>
-A setter for the forgot password string, which is shown to the user as a link to
-reset the password or remind him of the password.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-get-query-error"></a><h3>gsignond_signonui_data_get_query_error ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_signonui_data_get_query_error
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiError" title="enum GSignondSignonuiError"><span class="type">GSignondSignonuiError</span></a> *error</code></em>);</pre>
+<p>A getter for the UI interaction error. Signon UI sets this to <em class="parameter"><code>SIGNONUI_ERROR_NONE</code></em>
+ if
+there were no errors.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.22.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>forgot</code></em> :</span></p></td>
-<td>the forgot password string</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>the error is written here</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.22.6"></a><h4>Returns</h4>
+<p> whether this property exists in the <em class="parameter"><code>data</code></em>
+dictionary or not.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-forgot-password-url"></a><h3>gsignond_signonui_data_set_forgot_password_url ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_forgot_password_url
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *url</code></em>);</pre>
-<p>
-A setter for the forgot password URL, where the user can reset or request a
-reminder of the password.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-set-query-error"></a><h3>gsignond_signonui_data_set_query_error ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_query_error
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiError" title="enum GSignondSignonuiError"><span class="type">GSignondSignonuiError</span></a> error</code></em>);</pre>
+<p>A setter for the UI interaction error. Signon UI sets this to <em class="parameter"><code>SIGNONUI_ERROR_NONE</code></em>
+ if
+there were no errors.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.23.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
-<td>the forgot password URL</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>the error</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-message"></a><h3>gsignond_signonui_data_set_message ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_message (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *message</code></em>);</pre>
-<p>
-A setter for the message which is show to the user in the signon UI dialog.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-get-query-password"></a><h3>gsignond_signonui_data_get_query_password ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_signonui_data_get_query_password
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *query_password</code></em>);</pre>
+<p>A getter for the query password property. It indicates whether the signon UI
+should ask the user for a password (and return it in the password property).</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.24.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
-<td>the message</td>
+<td class="parameter_name"><p>query_password</p></td>
+<td class="parameter_description"><p>the property is written here</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.24.6"></a><h4>Returns</h4>
+<p> whether this property exists in the <em class="parameter"><code>data</code></em>
+dictionary or not.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-open-url"></a><h3>gsignond_signonui_data_set_open_url ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_open_url (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *url</code></em>);</pre>
-<p>
-A setter for the URL that should be opened by signon UI.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-set-query-password"></a><h3>gsignond_signonui_data_set_query_password ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_query_password
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> query</code></em>);</pre>
+<p>A setter for the query password property. It indicates whether the signon UI
+should ask the user for a password (and return it in the password property).</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.25.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
-<td>the url to open</td>
+<td class="parameter_name"><p>query</p></td>
+<td class="parameter_description"><p>the property value</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-password"></a><h3>gsignond_signonui_data_set_password ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_password (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *password</code></em>);</pre>
-<p>
-A setter for the password string.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-get-query-username"></a><h3>gsignond_signonui_data_get_query_username ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_signonui_data_get_query_username
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *query_username</code></em>);</pre>
+<p>A getter for the query username property. It indicates whether the signon UI
+should ask the user for a username (and return it in the username property).</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.26.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>password</code></em> :</span></p></td>
-<td>the password string</td>
+<td class="parameter_name"><p>query_username</p></td>
+<td class="parameter_description"><p>the property is written here</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.26.6"></a><h4>Returns</h4>
+<p> whether this property exists in the <em class="parameter"><code>data</code></em>
+dictionary or not.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-query-error"></a><h3>gsignond_signonui_data_set_query_error ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_query_error
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiError" title="enum GSignondSignonuiError"><span class="type">GSignondSignonuiError</span></a> error</code></em>);</pre>
-<p>
-A setter for the UI interaction error. Signon UI sets this to <em class="parameter"><code>SIGNONUI_ERROR_NONE</code></em> if
-there were no errors.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-set-query-username"></a><h3>gsignond_signonui_data_set_query_username ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_query_username
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> query</code></em>);</pre>
+<p>A setter for the query username property. It indicates whether the signon UI
+should ask the user for a username (and return it in the username property).</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.27.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>the error</td>
+<td class="parameter_name"><p>query</p></td>
+<td class="parameter_description"><p>the property value</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-query-password"></a><h3>gsignond_signonui_data_set_query_password ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_query_password
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> query</code></em>);</pre>
-<p>
-A setter for the query password property. It indicates whether the signon UI
-should ask the user for a password (and return it in the password property).
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-get-remember-password"></a><h3>gsignond_signonui_data_get_remember_password ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_signonui_data_get_remember_password
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *remember_password</code></em>);</pre>
+<p>A getter for whether the password should be remembered.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.28.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>the property value</td>
+<td class="parameter_name"><p>remember_password</p></td>
+<td class="parameter_description"><p>the property is written here</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.28.6"></a><h4>Returns</h4>
+<p> whether this property exists in the <em class="parameter"><code>data</code></em>
+dictionary or not.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-query-username"></a><h3>gsignond_signonui_data_set_query_username ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_query_username
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> query</code></em>);</pre>
-<p>
-A setter for the query username property. It indicates whether the signon UI
-should ask the user for a username (and return it in the username property).
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-set-remember-password"></a><h3>gsignond_signonui_data_set_remember_password ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_remember_password
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> remember</code></em>);</pre>
+<p>A setter for whether the password should be remembered.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.29.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>the property value</td>
+<td class="parameter_name"><p>remember</p></td>
+<td class="parameter_description"><p>the property value</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-signonui-data-get-request-id"></a><h3>gsignond_signonui_data_get_request_id ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_signonui_data_get_request_id (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
+<p>A getter for the dialog request id. The id identifies the dialog so that it
+can be refreshed or updated.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.30.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.30.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-remember-password"></a><h3>gsignond_signonui_data_set_remember_password ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_remember_password
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> remember</code></em>);</pre>
-<p>
-A setter for whether the password should be remembered.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-set-request-id"></a><h3>gsignond_signonui_data_set_request_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_request_id (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);</pre>
+<p>A setter for the dialog request id. The id identifies the dialog so that it
+can be refreshed or updated.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.31.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>remember</code></em> :</span></p></td>
-<td>the property value</td>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>request id</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-request-id"></a><h3>gsignond_signonui_data_set_request_id ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_request_id
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id</code></em>);</pre>
-<p>
-A setter for the dialog request id. The id identifies the dialog so that it
-can be refreshed or updated.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-get-test-reply"></a><h3>gsignond_signonui_data_get_test_reply ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_signonui_data_get_test_reply (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
+<p>A getter for the test reply values. It's used only by the signon ui
+implementations to test themselves.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.32.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.32.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-signonui-data-set-test-reply"></a><h3>gsignond_signonui_data_set_test_reply ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_test_reply (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *reply</code></em>);</pre>
+<p>A setter for the test reply values. It's used only by the signon ui
+implementations to test themselves.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.33.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>request id</td>
+<td class="parameter_name"><p>reply</p></td>
+<td class="parameter_description"><p>test reply values</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-test-reply"></a><h3>gsignond_signonui_data_set_test_reply ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_test_reply
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *reply</code></em>);</pre>
-<p>
-A setter for the test reply values. It's used only by the signon ui
-implementations to test themselves.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-get-title"></a><h3>gsignond_signonui_data_get_title ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_signonui_data_get_title (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
+<p>A getter for the UI dialog title.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.34.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.34.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-signonui-data-set-title"></a><h3>gsignond_signonui_data_set_title ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_title (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *title</code></em>);</pre>
+<p>A setter for the UI dialog title.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.35.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>reply</code></em> :</span></p></td>
-<td>test reply values</td>
+<td class="parameter_name"><p>title</p></td>
+<td class="parameter_description"><p>the title</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-title"></a><h3>gsignond_signonui_data_set_title ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_title (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *title</code></em>);</pre>
-<p>
-A setter for the UI dialog title.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-get-url-response"></a><h3>gsignond_signonui_data_get_url_response ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_signonui_data_get_url_response
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
+<p>A getter for the response URL. If the final URL was set in the request to the signon UI, and the signon UI
+detects that it has been reached, then the full final URL is returned using
+this property. This is used by redirection-based authentication such as OAauth.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.36.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.36.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-signonui-data-set-url-response"></a><h3>gsignond_signonui_data_set_url_response ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_url_response
+ (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *response</code></em>);</pre>
+<p>A getter for the response URL. If the final URL was set in the request to the
+signon UI, and the signon UI
+detects that it has been reached, then the full final URL is returned using
+this property. This is used by redirection-based authentication such as OAauth.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.37.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>title</code></em> :</span></p></td>
-<td>the title</td>
+<td class="parameter_name"><p>response</p></td>
+<td class="parameter_description"><p>the response URL</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.37.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-url-response"></a><h3>gsignond_signonui_data_set_url_response ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_url_response
- (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *response</code></em>);</pre>
-<p>
-A getter for the response URL. If the final URL was set in the request to the
-signon UI, and the signon UI
-detects that it has been reached, then the full final URL is returned using
-this property. This is used by redirection-based authentication such as OAauth.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-signonui-data-get-username"></a><h3>gsignond_signonui_data_get_username ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_signonui_data_get_username (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>);</pre>
+<p>A getter for the username string.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.38.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.5.5.8.38.6"></a><h4>Returns</h4>
+<p> (transfer none)</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-signonui-data-set-username"></a><h3>gsignond_signonui_data_set_username ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gsignond_signonui_data_set_username (<em class="parameter"><code><a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</code></em>);</pre>
+<p>A setter for the username string.</p>
+<div class="refsect3">
+<a name="id-1.5.5.8.39.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a <a href="http://gsignon-docs.accounts-sso.googlecode.com/git/gsignond/gsignond-GSignondDictionary.html#GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>response</code></em> :</span></p></td>
-<td>the response URL</td>
+<td class="parameter_name"><p>username</p></td>
+<td class="parameter_description"><p>the username string</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
-<hr>
+</div>
+</div>
+<div class="refsect1">
+<a name="gsignond-GSignondSignonuiData.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
-<a name="gsignond-signonui-data-set-username"></a><h3>gsignond_signonui_data_set_username ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gsignond_signonui_data_set_username (<em class="parameter"><code><a class="link" href="gsignond-GSignondSignonuiData.html#GSignondSignonuiData" title="GSignondSignonuiData"><span class="type">GSignondSignonuiData</span></a> *data</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</code></em>);</pre>
-<p>
-A setter for the username string.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GSignondSignonuiError"></a><h3>enum GSignondSignonuiError</h3>
+<p>This enum defines errors that may happen during user interaction.</p>
+<div class="refsect3">
+<a name="id-1.5.5.9.2.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="gsignond-GSignondDictionary.html#GSignondDictionary" title="GSignondDictionary"><span class="type">GSignondDictionary</span></a> structure</td>
+<td class="enum_member_name"><p><a name="SIGNONUI-ERROR-NONE:CAPS"></a>SIGNONUI_ERROR_NONE</p></td>
+<td class="enum_member_description">
+<p>No errors</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="SIGNONUI-ERROR-GENERAL:CAPS"></a>SIGNONUI_ERROR_GENERAL</p></td>
+<td class="enum_member_description">
+<p>Generic error during interaction</p>
+</td>
+<td class="enum_member_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>username</code></em> :</span></p></td>
-<td>the username string</td>
+<td class="enum_member_name"><p><a name="SIGNONUI-ERROR-NO-SIGNONUI:CAPS"></a>SIGNONUI_ERROR_NO_SIGNONUI</p></td>
+<td class="enum_member_description">
+<p>Cannot send request to signon-ui</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="SIGNONUI-ERROR-BAD-PARAMETERS:CAPS"></a>SIGNONUI_ERROR_BAD_PARAMETERS</p></td>
+<td class="enum_member_description">
+<p>Signon-Ui cannot create dialog based on the given UiSessionData</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="SIGNONUI-ERROR-CANCELED:CAPS"></a>SIGNONUI_ERROR_CANCELED</p></td>
+<td class="enum_member_description">
+<p>User canceled action. Plugin should not retry automatically after this</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="SIGNONUI-ERROR-NOT-AVAILABLE:CAPS"></a>SIGNONUI_ERROR_NOT_AVAILABLE</p></td>
+<td class="enum_member_description">
+<p>Requested ui is not available. For example browser cannot be started</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="SIGNONUI-ERROR-BAD-URL:CAPS"></a>SIGNONUI_ERROR_BAD_URL</p></td>
+<td class="enum_member_description">
+<p>Given url was not valid</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="SIGNONUI-ERROR-BAD-CAPTCHA:CAPS"></a>SIGNONUI_ERROR_BAD_CAPTCHA</p></td>
+<td class="enum_member_description">
+<p>Given captcha image was not valid</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="SIGNONUI-ERROR-BAD-CAPTCHA-URL:CAPS"></a>SIGNONUI_ERROR_BAD_CAPTCHA_URL</p></td>
+<td class="enum_member_description">
+<p>Given url for capctha loading was not valid</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="SIGNONUI-ERROR-REFRESH-FAILED:CAPS"></a>SIGNONUI_ERROR_REFRESH_FAILED</p></td>
+<td class="enum_member_description">
+<p>Refresh failed</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="SIGNONUI-ERROR-FORBIDDEN:CAPS"></a>SIGNONUI_ERROR_FORBIDDEN</p></td>
+<td class="enum_member_description">
+<p>Showing ui forbidden by ui policy</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="SIGNONUI-ERROR-FORGOT-PASSWORD:CAPS"></a>SIGNONUI_ERROR_FORGOT_PASSWORD</p></td>
+<td class="enum_member_description">
+<p>User pressed forgot password</p>
+</td>
+<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
+</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>General configuration</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: General configuration</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
<link rel="up" href="ch02.html" title="GSignond configuration">
<link rel="prev" href="GSignondConfig.html" title="GSignondConfig">
-<link rel="next" href="gsignond-Database-configuration.html" title="Database configuration">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<link rel="next" href="gsignond-DBus-configuration.html" title="DBus configuration">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#gsignond-General-configuration.description" class="shortcut">Description</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#gsignond-General-configuration.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#gsignond-General-configuration.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GSignondConfig.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gsignond-Database-configuration.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gsignond-DBus-configuration.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gsignond-General-configuration"></a><div class="titlepage"></div>
<h2><span class="refentrytitle"><a name="gsignond-General-configuration.top_of_page"></a>General configuration</span></h2>
<p>General configuration — gSSO general configuration keys</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gsignond-General-configuration.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-config.h>
-
-#define <a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL:CAPS" title="GSIGNOND_CONFIG_GENERAL">GSIGNOND_CONFIG_GENERAL</a>
-#define <a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-BIN-DIR:CAPS" title="GSIGNOND_CONFIG_GENERAL_BIN_DIR">GSIGNOND_CONFIG_GENERAL_BIN_DIR</a>
-#define <a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-EXTENSION:CAPS" title="GSIGNOND_CONFIG_GENERAL_EXTENSION">GSIGNOND_CONFIG_GENERAL_EXTENSION</a>
-#define <a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-EXTENSIONS-DIR:CAPS" title="GSIGNOND_CONFIG_GENERAL_EXTENSIONS_DIR">GSIGNOND_CONFIG_GENERAL_EXTENSIONS_DIR</a>
-#define <a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-PLUGINS-DIR:CAPS" title="GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR">GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR</a>
-#define <a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-SECURE-DIR:CAPS" title="GSIGNOND_CONFIG_GENERAL_SECURE_DIR">GSIGNOND_CONFIG_GENERAL_SECURE_DIR</a>
-#define <a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-STORAGE-PATH:CAPS" title="GSIGNOND_CONFIG_GENERAL_STORAGE_PATH">GSIGNOND_CONFIG_GENERAL_STORAGE_PATH</a>
-#define <a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-PLUGIN-TIMEOUT:CAPS" title="GSIGNOND_CONFIG_PLUGIN_TIMEOUT">GSIGNOND_CONFIG_PLUGIN_TIMEOUT</a>
+<div class="refsect1">
+<a name="gsignond-General-configuration.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL:CAPS" title="GSIGNOND_CONFIG_GENERAL">GSIGNOND_CONFIG_GENERAL</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-STORAGE-PATH:CAPS" title="GSIGNOND_CONFIG_GENERAL_STORAGE_PATH">GSIGNOND_CONFIG_GENERAL_STORAGE_PATH</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-EXTENSION:CAPS" title="GSIGNOND_CONFIG_GENERAL_EXTENSION">GSIGNOND_CONFIG_GENERAL_EXTENSION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-SECURE-DIR:CAPS" title="GSIGNOND_CONFIG_GENERAL_SECURE_DIR">GSIGNOND_CONFIG_GENERAL_SECURE_DIR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-PLUGIN-TIMEOUT:CAPS" title="GSIGNOND_CONFIG_PLUGIN_TIMEOUT">GSIGNOND_CONFIG_PLUGIN_TIMEOUT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-KEYCHAIN-SYSCTX:CAPS" title="GSIGNOND_CONFIG_GENERAL_KEYCHAIN_SYSCTX">GSIGNOND_CONFIG_GENERAL_KEYCHAIN_SYSCTX</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gsignond-General-configuration.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
+<a name="gsignond-General-configuration.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-config.h>
</pre>
</div>
<div class="refsect1">
<a name="gsignond-General-configuration.description"></a><h2>Description</h2>
-<p>
-General configuration keys are defined below. See <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> for how to use them.
-</p>
+<p>General configuration keys are defined below. See <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> for how to use them.</p>
</div>
<div class="refsect1">
-<a name="gsignond-General-configuration.details"></a><h2>Details</h2>
+<a name="gsignond-General-configuration.functions_details"></a><h2>Functions</h2>
+</div>
+<div class="refsect1">
+<a name="gsignond-General-configuration.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GSIGNOND-CONFIG-GENERAL:CAPS"></a><h3>GSIGNOND_CONFIG_GENERAL</h3>
<pre class="programlisting">#define GSIGNOND_CONFIG_GENERAL "General"
</pre>
-<p>
-A prefix for general keys. Should be used only when defining new keys.
-</p>
+<p>A prefix for general keys. Should be used only when defining new keys.</p>
</div>
<hr>
<div class="refsect2">
-<a name="GSIGNOND-CONFIG-GENERAL-BIN-DIR:CAPS"></a><h3>GSIGNOND_CONFIG_GENERAL_BIN_DIR</h3>
-<pre class="programlisting">#define GSIGNOND_CONFIG_GENERAL_BIN_DIR</pre>
-<p>
-The path where gSSO is looking for the gsignond-plugind binary when it needs
-to start a plugin process. Can be used for finding other supplementary binaries in
-the future.
-</p>
-<p>
-Default value: $(bindir), can be overriden in debug
-builds by setting SSO_BIN_DIR environment variable.
-</p>
+<a name="GSIGNOND-CONFIG-GENERAL-STORAGE-PATH:CAPS"></a><h3>GSIGNOND_CONFIG_GENERAL_STORAGE_PATH</h3>
+<pre class="programlisting">#define GSIGNOND_CONFIG_GENERAL_STORAGE_PATH</pre>
+<p>Base path for <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> to operate in.</p>
+<p>Default value: "/var/db", can be overriden in debug
+builds by setting SSO_STORAGE_PATH environment variable.</p>
</div>
<hr>
<div class="refsect2">
<a name="GSIGNOND-CONFIG-GENERAL-EXTENSION:CAPS"></a><h3>GSIGNOND_CONFIG_GENERAL_EXTENSION</h3>
<pre class="programlisting">#define GSIGNOND_CONFIG_GENERAL_EXTENSION</pre>
-<p>
-The name of the gSSO extension to use. If not specified, the default
-implementation is used (see <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a>).
-</p>
-<p>
-Can be overriden in debug
-builds by setting SSO_EXTENSION environment variable.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GSIGNOND-CONFIG-GENERAL-EXTENSIONS-DIR:CAPS"></a><h3>GSIGNOND_CONFIG_GENERAL_EXTENSIONS_DIR</h3>
-<pre class="programlisting">#define GSIGNOND_CONFIG_GENERAL_EXTENSIONS_DIR</pre>
-<p>
-The path where gSSO is looking for available extension modules.
-</p>
-<p>
-Default value: $(pkglibdir)/extensions, can be overriden in debug
-builds by setting SSO_EXTENSIONS_DIR environment variable.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GSIGNOND-CONFIG-GENERAL-PLUGINS-DIR:CAPS"></a><h3>GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR</h3>
-<pre class="programlisting">#define GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR</pre>
-<p>
-The path where gSSO is looking for available plugins.
-</p>
-<p>
-Default value: $(pkglibdir)/plugins, can be overriden in debug
-builds by setting SSO_PLUGINS_DIR environment variable.
-</p>
+<p>The name of the gSSO extension to use. If not specified, the default
+implementation is used (see <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a>).</p>
+<p>Can be overriden in debug
+builds by setting SSO_EXTENSION environment variable.</p>
</div>
<hr>
<div class="refsect2">
<a name="GSIGNOND-CONFIG-GENERAL-SECURE-DIR:CAPS"></a><h3>GSIGNOND_CONFIG_GENERAL_SECURE_DIR</h3>
<pre class="programlisting">#define GSIGNOND_CONFIG_GENERAL_SECURE_DIR</pre>
-<p>
-Path provided by <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> for storing user-specific
-information, including secret and metadata databases.
-</p>
-<p>
-Value provided by the default implementation:
-<a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-STORAGE-PATH:CAPS" title="GSIGNOND_CONFIG_GENERAL_STORAGE_PATH"><span class="type">GSIGNOND_CONFIG_GENERAL_STORAGE_PATH</span></a> + "/gsignond." + <a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#g-get-user-name"><code class="function">g_get_user_name()</code></a>.
-</p>
+<p>Path provided by <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> for storing user-specific
+information, including secret and metadata databases.</p>
+<p>This is a run-time value and any value read from configuration file
+is overwritten.</p>
+<p>Value provided by the default implementation:
+<a class="link" href="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-STORAGE-PATH:CAPS" title="GSIGNOND_CONFIG_GENERAL_STORAGE_PATH"><span class="type">GSIGNOND_CONFIG_GENERAL_STORAGE_PATH</span></a> + "/gsignond." + <a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#g-get-user-name"><code class="function">g_get_user_name()</code></a>.</p>
</div>
<hr>
<div class="refsect2">
-<a name="GSIGNOND-CONFIG-GENERAL-STORAGE-PATH:CAPS"></a><h3>GSIGNOND_CONFIG_GENERAL_STORAGE_PATH</h3>
-<pre class="programlisting">#define GSIGNOND_CONFIG_GENERAL_STORAGE_PATH</pre>
-<p>
-Base path for <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> to operate in.
-</p>
-<p>
-Default value: "/var/db", can be overriden in debug
-builds by setting SSO_STORAGE_PATH environment variable.
-</p>
+<a name="GSIGNOND-CONFIG-PLUGIN-TIMEOUT:CAPS"></a><h3>GSIGNOND_CONFIG_PLUGIN_TIMEOUT</h3>
+<pre class="programlisting">#define GSIGNOND_CONFIG_PLUGIN_TIMEOUT</pre>
+<p>A timeout in seconds, after which inactive plugin objects and processes are removed.
+If not set, the plugin objects will persist for possible reuse.</p>
+<p>Can be overriden in debug
+builds by setting SSO_PLUGIN_TIMEOUT environment variable.</p>
</div>
<hr>
<div class="refsect2">
-<a name="GSIGNOND-CONFIG-PLUGIN-TIMEOUT:CAPS"></a><h3>GSIGNOND_CONFIG_PLUGIN_TIMEOUT</h3>
-<pre class="programlisting">#define GSIGNOND_CONFIG_PLUGIN_TIMEOUT</pre>
-<p>
-A timeout in seconds, after which inactive plugin objects and processes are removed.
-If not set, the plugin objects will persist for possible reuse.
-</p>
-<p>
-Can be overriden in debug
-builds by setting SSO_PLUGIN_TIMEOUT environment variable.
-</p>
+<a name="GSIGNOND-CONFIG-GENERAL-KEYCHAIN-SYSCTX:CAPS"></a><h3>GSIGNOND_CONFIG_GENERAL_KEYCHAIN_SYSCTX</h3>
+<pre class="programlisting">#define GSIGNOND_CONFIG_GENERAL_KEYCHAIN_SYSCTX</pre>
+<p>System security context of the keychain UI process
+(see <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a>).</p>
+<p>Default value can be defined through configure --enable-keychain flag (see</p>
+<a class="link" href="gsignond-building.html" title="Building and installing the gsignond daemon">Building gsignond</a>).
</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Logging</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: Logging</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch06.html" title="Miscellaneous">
+<link rel="up" href="ch07.html" title="Miscellaneous">
<link rel="prev" href="gsignond-Errors.html" title="Errors">
<link rel="next" href="gsignond-Utility-functions.html" title="Utility functions">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#gsignond-Logging.description" class="shortcut">Description</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#gsignond-Logging.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#gsignond-Logging.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch06.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gsignond-Errors.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gsignond-Utility-functions.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h2><span class="refentrytitle"><a name="gsignond-Logging.top_of_page"></a>Logging</span></h2>
<p>Logging — logging facilities</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gsignond-Logging.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-log.h>
-
-#define <a class="link" href="gsignond-Logging.html#DBG:CAPS" title="DBG()">DBG</a> (frmt,
- ...)
-#define <a class="link" href="gsignond-Logging.html#ERR:CAPS" title="ERR()">ERR</a> (frmt,
- ...)
-#define <a class="link" href="gsignond-Logging.html#INFO:CAPS" title="INFO()">INFO</a> (frmt,
- ...)
-#define <a class="link" href="gsignond-Logging.html#TRACEBACK:CAPS" title="TRACEBACK">TRACEBACK</a>
-#define <a class="link" href="gsignond-Logging.html#WARN:CAPS" title="WARN()">WARN</a> (frmt,
- ...)
+<div class="refsect1">
+<a name="gsignond-Logging.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gsignond-Logging.html#TRACEBACK:CAPS" title="TRACEBACK">TRACEBACK</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gsignond-Logging.html#INFO:CAPS" title="INFO()">INFO</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gsignond-Logging.html#ERR:CAPS" title="ERR()">ERR</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gsignond-Logging.html#WARN:CAPS" title="WARN()">WARN</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gsignond-Logging.html#DBG:CAPS" title="DBG()">DBG</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gsignond-Logging.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
+<a name="gsignond-Logging.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-log.h>
</pre>
</div>
<div class="refsect1">
<a name="gsignond-Logging.description"></a><h2>Description</h2>
-<p>
-<code class="filename">gsignond/gsignond-log.h</code> file contains logging macros
-that plugins and extensions should use for debugging and tracing.
-</p>
-<p>
-For example:
-</p>
+<p><code class="filename">gsignond/gsignond-log.h</code> file contains logging macros
+that plugins and extensions should use for debugging and tracing.</p>
+<p>For example:</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">INFO(<span class="number">"Plugin </span><span class="symbol">%s</span><span class="number"> initialized"</span>, plugin_mechanism);</pre></td>
+ <td class="listing_code"><pre class="programlisting"></pre></td>
</tr>
</tbody>
</table>
</div>
-<p>
-</p>
</div>
<div class="refsect1">
-<a name="gsignond-Logging.details"></a><h2>Details</h2>
+<a name="gsignond-Logging.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
-<a name="DBG:CAPS"></a><h3>DBG()</h3>
-<pre class="programlisting">#define DBG(frmt, args...)</pre>
-<p>
-Use this macro to log debug messages. GSignond will take care of
-correctly saving them.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="TRACEBACK:CAPS"></a><h3>TRACEBACK</h3>
+<pre class="programlisting">#define TRACEBACK()</pre>
+<p>This macro prints the current function call stack to stderr.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="INFO:CAPS"></a><h3>INFO()</h3>
+<pre class="programlisting">#define INFO(frmt, args...)</pre>
+<p>Use this macro to log informational messages. GSignond will take care of
+correctly saving them.</p>
+<div class="refsect3">
+<a name="id-1.8.3.7.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>frmt</code></em> :</span></p></td>
-<td>format string for the message</td>
+<td class="parameter_name"><p>frmt</p></td>
+<td class="parameter_description"><p>format string for the message</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>arguments for the format string</td>
+<td class="parameter_name"><p>...</p></td>
+<td class="parameter_description"><p>arguments for the format string</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
<a name="ERR:CAPS"></a><h3>ERR()</h3>
<pre class="programlisting">#define ERR(frmt, args...)</pre>
-<p>
-Use this macro to log error messages. GSignond will take care of
-correctly saving them.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<p>Use this macro to log error messages. GSignond will take care of
+correctly saving them.</p>
+<div class="refsect3">
+<a name="id-1.8.3.7.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>frmt</code></em> :</span></p></td>
-<td>format string for the message</td>
+<td class="parameter_name"><p>frmt</p></td>
+<td class="parameter_description"><p>format string for the message</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>arguments for the format string</td>
+<td class="parameter_name"><p>...</p></td>
+<td class="parameter_description"><p>arguments for the format string</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+</div>
<hr>
<div class="refsect2">
-<a name="INFO:CAPS"></a><h3>INFO()</h3>
-<pre class="programlisting">#define INFO(frmt, args...)</pre>
-<p>
-Use this macro to log informational messages. GSignond will take care of
-correctly saving them.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="WARN:CAPS"></a><h3>WARN()</h3>
+<pre class="programlisting">#define WARN(frmt, args...)</pre>
+<p>Use this macro to log warning messages. GSignond will take care of
+correctly saving them.</p>
+<div class="refsect3">
+<a name="id-1.8.3.7.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>frmt</code></em> :</span></p></td>
-<td>format string for the message</td>
+<td class="parameter_name"><p>frmt</p></td>
+<td class="parameter_description"><p>format string for the message</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>arguments for the format string</td>
+<td class="parameter_name"><p>...</p></td>
+<td class="parameter_description"><p>arguments for the format string</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
-<hr>
-<div class="refsect2">
-<a name="TRACEBACK:CAPS"></a><h3>TRACEBACK</h3>
-<pre class="programlisting">#define TRACEBACK()</pre>
-<p>
-This macro prints the current function call stack to stderr.
-</p>
</div>
<hr>
<div class="refsect2">
-<a name="WARN:CAPS"></a><h3>WARN()</h3>
-<pre class="programlisting">#define WARN(frmt, args...)</pre>
-<p>
-Use this macro to log warning messages. GSignond will take care of
-correctly saving them.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="DBG:CAPS"></a><h3>DBG()</h3>
+<pre class="programlisting">#define DBG(frmt, args...)</pre>
+<p>Use this macro to log debug messages. GSignond will take care of
+correctly saving them.</p>
+<div class="refsect3">
+<a name="id-1.8.3.7.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>frmt</code></em> :</span></p></td>
-<td>format string for the message</td>
+<td class="parameter_name"><p>frmt</p></td>
+<td class="parameter_description"><p>format string for the message</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>arguments for the format string</td>
+<td class="parameter_name"><p>...</p></td>
+<td class="parameter_description"><p>arguments for the format string</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
+<div class="refsect1">
+<a name="gsignond-Logging.other_details"></a><h2>Types and Values</h2>
+</div>
+</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Utility functions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: Utility functions</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
-<link rel="up" href="ch06.html" title="Miscellaneous">
+<link rel="up" href="ch07.html" title="Miscellaneous">
<link rel="prev" href="gsignond-Logging.html" title="Logging">
<link rel="next" href="object-tree.html" title="Object Hierarchy">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left">
-<a href="#" class="shortcut">Top</a>
- |
- <a href="#gsignond-Utility-functions.description" class="shortcut">Description</a>
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
+ <a href="#gsignond-Utility-functions.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span>
+ <a href="#gsignond-Utility-functions.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch06.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gsignond-Logging.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="object-tree.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h2><span class="refentrytitle"><a name="gsignond-Utility-functions.top_of_page"></a>Utility functions</span></h2>
<p>Utility functions — miscellaneous utility functions</p>
</td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gsignond-Utility-functions.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include <gsignond/gsignond-utils.h>
-
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gsignond-Utility-functions.html#gsignond-generate-nonce" title="gsignond_generate_nonce ()">gsignond_generate_nonce</a> ();
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-Utility-functions.html#gsignond-wipe-directory" title="gsignond_wipe_directory ()">gsignond_wipe_directory</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dirname</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gsignond-Utility-functions.html#gsignond-wipe-file" title="gsignond_wipe_file ()">gsignond_wipe_file</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *filename</code></em>);
+<div class="refsect1">
+<a name="gsignond-Utility-functions.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-Utility-functions.html#gsignond-wipe-file" title="gsignond_wipe_file ()">gsignond_wipe_file</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-Utility-functions.html#gsignond-wipe-directory" title="gsignond_wipe_directory ()">gsignond_wipe_directory</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-Utility-functions.html#gsignond-generate-nonce" title="gsignond_generate_nonce ()">gsignond_generate_nonce</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-Utility-functions.html#gsignond-sequence-to-variant" title="gsignond_sequence_to_variant ()">gsignond_sequence_to_variant</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="returnvalue">GSequence</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-Utility-functions.html#gsignond-variant-to-sequence" title="gsignond_variant_to_sequence ()">gsignond_variant_to_sequence</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-Utility-functions.html#gsignond-sequence-to-array" title="gsignond_sequence_to_array ()">gsignond_sequence_to_array</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="returnvalue">GSequence</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-Utility-functions.html#gsignond-array-to-sequence" title="gsignond_array_to_sequence ()">gsignond_array_to_sequence</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="returnvalue">GSequence</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-Utility-functions.html#gsignond-copy-array-to-sequence" title="gsignond_copy_array_to_sequence ()">gsignond_copy_array_to_sequence</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gsignond-Utility-functions.html#gsignond-is-host-in-domain" title="gsignond_is_host_in_domain ()">gsignond_is_host_in_domain</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gsignond-Utility-functions.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
+<a name="gsignond-Utility-functions.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include <gsignond/gsignond-utils.h>
</pre>
</div>
<div class="refsect1">
<a name="gsignond-Utility-functions.description"></a><h2>Description</h2>
-<p>
-Miscellaneous utility functions are described below.
-</p>
+<p>Miscellaneous utility functions are described below.</p>
</div>
<div class="refsect1">
-<a name="gsignond-Utility-functions.details"></a><h2>Details</h2>
+<a name="gsignond-Utility-functions.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
-<a name="gsignond-generate-nonce"></a><h3>gsignond_generate_nonce ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_generate_nonce ();</pre>
-<p>
-This function generates a random secure nonce using SHA1 HMAC.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-wipe-file"></a><h3>gsignond_wipe_file ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_wipe_file (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *filename</code></em>);</pre>
+<p>This function securely wipes the contents of the file, by overwriting it with
+0's, then 1's, then random data. The file is then removed.</p>
+<div class="refsect3">
+<a name="id-1.8.4.7.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the nonce in lowercase hexadecimal format, 40 bytes long. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>filename</p></td>
+<td class="parameter_description"><p>filename to wipe</p></td>
+<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.8.4.7.2.6"></a><h4>Returns</h4>
+<p> TRUE if wiping and removal was successful.</p>
+<p></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-wipe-directory"></a><h3>gsignond_wipe_directory ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_wipe_directory (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dirname</code></em>);</pre>
-<p>
-This function securely wipes the contents of the directory by calling
-<a class="link" href="gsignond-Utility-functions.html#gsignond-wipe-file" title="gsignond_wipe_file ()"><code class="function">gsignond_wipe_file()</code></a> on each file. It also removes links and empty directories but
-does not recursively wipe them.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>dirname</code></em> :</span></p></td>
-<td>directory to wipe</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if wiping and removal was successful.</td>
-</tr>
-</tbody>
+<a name="gsignond-wipe-directory"></a><h3>gsignond_wipe_directory ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_wipe_directory (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dirname</code></em>);</pre>
+<p>This function securely wipes the contents of the directory by calling
+<a class="link" href="gsignond-Utility-functions.html#gsignond-wipe-file" title="gsignond_wipe_file ()"><code class="function">gsignond_wipe_file()</code></a> on each file. It also removes links and empty directories but
+does not recursively wipe them.</p>
+<div class="refsect3">
+<a name="id-1.8.4.7.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>dirname</p></td>
+<td class="parameter_description"><p>directory to wipe</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.8.4.7.3.6"></a><h4>Returns</h4>
+<p> TRUE if wiping and removal was successful.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-generate-nonce"></a><h3>gsignond_generate_nonce ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gsignond_generate_nonce ();</pre>
+<p>This function generates a random secure nonce using SHA1 HMAC.</p>
+<div class="refsect3">
+<a name="id-1.8.4.7.4.5"></a><h4>Returns</h4>
+<p> the nonce in lowercase hexadecimal format, 40 bytes long. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
<hr>
<div class="refsect2">
-<a name="gsignond-wipe-file"></a><h3>gsignond_wipe_file ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gsignond_wipe_file (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *filename</code></em>);</pre>
-<p>
-This function securely wipes the contents of the file, by overwriting it with
-0's, then 1's, then random data. The file is then removed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gsignond-sequence-to-variant"></a><h3>gsignond_sequence_to_variant ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
+gsignond_sequence_to_variant (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="type">GSequence</span></a> *seq</code></em>);</pre>
+<p>Convert a string sequence to a variant.</p>
+<div class="refsect3">
+<a name="id-1.8.4.7.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>Sequence of strings to convert</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.8.4.7.5.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> of type "as". </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-variant-to-sequence"></a><h3>gsignond_variant_to_sequence ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="returnvalue">GSequence</span></a> *
+gsignond_variant_to_sequence (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *var</code></em>);</pre>
+<p>Convert variant containing string array to sequence.</p>
+<div class="refsect3">
+<a name="id-1.8.4.7.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>var</p></td>
+<td class="parameter_description"><p>Variant of "as" to convert</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.8.4.7.6.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="type">GSequence</span></a> of strings. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-sequence-to-array"></a><h3>gsignond_sequence_to_array ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
+gsignond_sequence_to_array (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="type">GSequence</span></a> *seq</code></em>);</pre>
+<p>Convert sequence of strings to null-terminated string array.</p>
+<div class="refsect3">
+<a name="id-1.8.4.7.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>Sequence of strings to convert</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.8.4.7.7.6"></a><h4>Returns</h4>
+<p> Null-terminated array of strings. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-array-to-sequence"></a><h3>gsignond_array_to_sequence ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="returnvalue">GSequence</span></a> *
+gsignond_array_to_sequence (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **items</code></em>);</pre>
+<p>Convert null-terminated array of strings to a sequence.</p>
+<div class="refsect3">
+<a name="id-1.8.4.7.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>items</p></td>
+<td class="parameter_description"><p> Null-terminated array of strings to convert. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.8.4.7.8.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="type">GSequence</span></a> of strings. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-copy-array-to-sequence"></a><h3>gsignond_copy_array_to_sequence ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="returnvalue">GSequence</span></a> *
+gsignond_copy_array_to_sequence (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **items</code></em>);</pre>
+<p>Copy null-terminated array of strings to a sequence.</p>
+<div class="refsect3">
+<a name="id-1.8.4.7.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>items</p></td>
+<td class="parameter_description"><p>Null-terminated array of strings to copy</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.8.4.7.9.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequence"><span class="type">GSequence</span></a> of strings. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-is-host-in-domain"></a><h3>gsignond_is_host_in_domain ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gsignond_is_host_in_domain (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *domain</code></em>);</pre>
+<p>Checks if <em class="parameter"><code>host</code></em>
+ belongs to <em class="parameter"><code>domain</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.8.4.7.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>filename</code></em> :</span></p></td>
-<td>filename to wipe</td>
+<td class="parameter_name"><p>domain</p></td>
+<td class="parameter_description"><p>a domain name</p></td>
+<td class="parameter_annotations"> </td>
</tr>
<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if wiping and removal was successful.</td>
+<td class="parameter_name"><p>host</p></td>
+<td class="parameter_description"><p>a host name</p></td>
+<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
+<div class="refsect3">
+<a name="id-1.8.4.7.10.6"></a><h4>Returns</h4>
+<p> the result</p>
+<p></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gsignond-Utility-functions.other_details"></a><h2>Types and Values</h2>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Building and installing the gsignond daemon</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: Building and installing the gsignond daemon</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
<link rel="up" href="ch01.html" title="GSignond building and installation">
<link rel="prev" href="ch01.html" title="GSignond building and installation">
<link rel="next" href="ch02.html" title="GSignond configuration">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left"></td>
+<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ch01.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
are <span class="command"><strong>pkg-config</strong></span> and
<a class="ulink" href="http://www.gnu.org/software/make" target="_top">GNU make</a>.
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
<a class="ulink" href="http://www.freedesktop.org/software/pkgconfig/" target="_top">pkg-config</a>
is a tool for tracking the compilation flags needed for
libraries that are used by the GSignond. (For each
<p>
GSignond depends on a number of other libraries.
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>
The <a class="ulink" href="https://developer.gnome.org/glib/" target="_top">GLib
library</a> is the development framework that GSignond is built on.
Sets the way in which GSignond is using DBus to communicate with
the client library. <code class="systemitem">dbus-type</code> can be one of
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>
<code class="systemitem">'p2p'</code> which is the default and recommended
value. GSignond will use direct connection over a UNIX domain socket
</ul></div>
<p>
</p>
+<p><b><code class="systemitem">--enable-keychain=sysctx</code>. </b>
+ Sets the system security context of keychain UI process as returned by
+ the default <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">
+ GSignondAccessControlManager</a>. This value becomes written to the
+ gsignond.conf in addition to being encoded as default value
+ through config.h.
+ </p>
+<p><b><code class="systemitem">--enable-storagedir=path</code>. </b>
+ Sets the base path for user specific storage directories where
+ database files will be located as utilised by
+ <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">
+ GSignondStorageManager</a>.
+ Default location is <code class="filename">/var/db</code>
+ </p>
</div>
<div class="refsect1">
<a name="building-packages"></a><h2>Building distribution packages</h2>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gsignond API Reference Manual: Overview of GSignond's authentication plugin subsystem</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="gsignond API Reference Manual">
+<link rel="up" href="ch03.html" title="Authentication plugins, plugin loaders and D-Bus IPC">
+<link rel="prev" href="ch03.html" title="Authentication plugins, plugin loaders and D-Bus IPC">
+<link rel="next" href="ch04.html" title="GSignond API for writing GLib-based authentication plugins">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch03.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ch04.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gsignond-plugin-loaders-overview"></a><div class="titlepage"></div>
+<div class="refsect1">
+<a name="intro"></a><h2>Introduction</h2>
+<p>
+ For security and flexibility reasons, authentication sessions in GSSO are performed
+ by authentication plugins that run in separate processes and communicate with
+ the GSSO daemon using D-Bus IPC. This page describes that IPC, and the
+ options that plugin writers have for implementing additional plugins.
+ </p>
+</div>
+<div class="refsect1">
+<a name="id-1.4.2.3"></a><h2>GLib plugins</h2>
+<p>
+ The standard, most simple way to write plugins is by using GLib to
+ implement <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a> interface,
+ package the code as a shared library, and install the library into
+ gsso's standard location for GLib plugins. This approach is described
+ in detail in <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin chapter</a>.
+ </p>
+</div>
+<div class="refsect1">
+<a name="id-1.4.2.4"></a><h2>Plugin loaders</h2>
+<p>
+ If using GLib to implement authentication plugins is undesirable or
+ impossible, you can provide a binary that implements a GSSO plugin
+ loader, which should be installed in
+ <span class="command"><strong>pkg-config gsignond --variable=pluginloadersdir</strong></span>.
+ </p>
+<p>
+ The GLib plugin loader that manages GLib-based plugins is a reference
+ implementation for such a loader. It is possible to fork and tweak its
+ code (as long as the IPC protocol, described below, is preserved),
+ or it's also possible to write such a loader from scratch. The source
+ code for the GLib plugin loader can be found
+ <a class="ulink" href="https://code.google.com/p/accounts-sso/source/browse/?repo=gsignond#git%2Fsrc%2Fgplugind" target="_top">
+ here</a>.
+ </p>
+</div>
+<div class="refsect1">
+<a name="id-1.4.2.5"></a><h2>Plugin loaders' command line options</h2>
+<p>
+ The plugin loader binary should implement the following command line options:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+<code class="systemitem">--list-plugins</code> command line option
+ must be supported. The plugin loader binary should then list
+ available plugin names, one name per line, for example:
+ <div class="literallayout"><p><br>
+ <strong class="userinput"><code>> gsignond-plugind --list-plugins</code></strong><br>
+ password<br>
+ ssotest<br>
+ digest<br>
+ </p></div>
+ NOTE: it is recommended that plugin names are either hardcoded
+ in the plugin loader, or determined from plugin filenames in
+ the filesystem. It's less secure to determine the names by
+ loading the plugins' code and calling into each plugin.
+ </li>
+<li class="listitem">
+<code class="systemitem">--load-plugin=name</code> command line option
+ must also be supported. The plugin loader binary should then
+ load and prepare the plugin with the corresponding name (or
+ simply prepare the plugin that is provided within the plugin
+ loader itself), and export a d-bus object on standard input and
+ output streams that gsso daemon will communicate with. The next
+ session describes this in more detail.
+ </li>
+</ul></div>
+<p>
+ </p>
+</div>
+<div class="refsect1">
+<a name="id-1.4.2.6"></a><h2>Plugin loaders' D-Bus IPC</h2>
+<p>
+ When run with a <code class="systemitem">--load-plugin</code> command line
+ option, the plugin loader process is expected to export a D-Bus object
+ on path "/" that implements
+ <a class="ulink" href="https://code.google.com/p/accounts-sso/source/browse/src/daemon/dbus/interfaces/com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.xml?repo=gsignond" target="_top">
+ this interface</a>.
+ </p>
+<p>
+ The interface declarations map directly to the plugin API. See
+ <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a> interface for
+ the meaning of various methods, signals and properties.
+ </p>
+<p>
+ The object is exported on a connection that is formed from standard
+ input and standard output streams. This is the most secure way
+ to communicate with the gsso daemon, because these streams are visible
+ only to the two ends of the connection - the plugin loader process
+ and the parent process (the gsso daemon).
+ </p>
+<p>
+ NOTE: at the moment input and output should happen on two separate
+ streams, the standard input and the standard output respectively.
+ In the future, gsso will set both streams to the same
+ bidirectional channel, for compatibility with
+ <a class="ulink" href="http://dbus.freedesktop.org/doc/dbus-specification.html#transports-exec" target="_top">
+ D-Bus' unixexec transport</a>.
+ </p>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.20</div>
+</body>
+</html>
\ No newline at end of file
<sub name="GSignond configuration" link="ch02.html">
<sub name="GSignondConfig" link="GSignondConfig.html"/>
<sub name="General configuration" link="gsignond-General-configuration.html"/>
- <sub name="Database configuration" link="gsignond-Database-configuration.html"/>
<sub name="DBus configuration" link="gsignond-DBus-configuration.html"/>
</sub>
- <sub name="GSignond API for writing authentication plugins" link="ch03.html">
- <sub name="GSignondPlugin" link="gsignond-GSignondPlugin.html"/>
+ <sub name="Authentication plugins, plugin loaders and D-Bus IPC" link="ch03.html">
+ <sub name="Overview of GSignond's authentication plugin subsystem" link="gsignond-plugin-loaders-overview.html"/>
+ </sub>
+ <sub name="GSignond API for writing GLib-based authentication plugins" link="ch04.html">
+ <sub name="GSignondPlugin" link="GSignondPlugin.html"/>
<sub name="GSignondDictionary" link="gsignond-GSignondDictionary.html"/>
<sub name="GSignondSessionData" link="gsignond-GSignondSessionData.html"/>
<sub name="GSignondSignonuiData" link="gsignond-GSignondSignonuiData.html"/>
</sub>
- <sub name="Standard in-tree authentication plugins" link="ch04.html">
+ <sub name="Standard in-tree authentication plugins" link="ch05.html">
<sub name="GSignondDigestPlugin" link="GSignondDigestPlugin.html"/>
<sub name="GSignondSsoTestPlugin" link="GSignondSsoTestPlugin.html"/>
<sub name="GSignondPasswordPlugin" link="GSignondPasswordPlugin.html"/>
</sub>
- <sub name="GSignond API for writing platform adaptation extensions" link="ch05.html">
+ <sub name="GSignond API for writing platform adaptation extensions" link="ch06.html">
<sub name="GSignondExtension" link="GSignondExtension.html"/>
<sub name="GSignondAccessControlManager" link="GSignondAccessControlManager.html"/>
<sub name="GSignondSecurityContext" link="gsignond-GSignondSecurityContext.html"/>
<sub name="GSignondSecretStorage" link="GSignondSecretStorage.html"/>
<sub name="GSignondCredentials" link="GSignondCredentials.html"/>
</sub>
- <sub name="Miscellaneous" link="ch06.html">
+ <sub name="Miscellaneous" link="ch07.html">
<sub name="Errors" link="gsignond-Errors.html"/>
<sub name="Logging" link="gsignond-Logging.html"/>
<sub name="Utility functions" link="gsignond-Utility-functions.html"/>
<sub name="Annotation Glossary" link="annotation-glossary.html"/>
</chapters>
<functions>
- <keyword type="struct" name="struct GSignondConfig" link="GSignondConfig.html#GSignondConfig-struct"/>
- <keyword type="struct" name="struct GSignondConfigClass" link="GSignondConfig.html#GSignondConfigClass"/>
- <keyword type="function" name="gsignond_config_get_integer ()" link="GSignondConfig.html#gsignond-config-get-integer"/>
- <keyword type="function" name="gsignond_config_get_string ()" link="GSignondConfig.html#gsignond-config-get-string"/>
- <keyword type="function" name="gsignond_config_new ()" link="GSignondConfig.html#gsignond-config-new"/>
- <keyword type="function" name="gsignond_config_set_integer ()" link="GSignondConfig.html#gsignond-config-set-integer"/>
- <keyword type="function" name="gsignond_config_set_string ()" link="GSignondConfig.html#gsignond-config-set-string"/>
+ <keyword type="function" name="gsignond_config_new ()" link="GSignondConfig.html#gsignond-config-new"/>
+ <keyword type="function" name="gsignond_config_get_integer ()" link="GSignondConfig.html#gsignond-config-get-integer"/>
+ <keyword type="function" name="gsignond_config_set_integer ()" link="GSignondConfig.html#gsignond-config-set-integer"/>
+ <keyword type="function" name="gsignond_config_get_string ()" link="GSignondConfig.html#gsignond-config-get-string"/>
+ <keyword type="function" name="gsignond_config_set_string ()" link="GSignondConfig.html#gsignond-config-set-string"/>
<keyword type="macro" name="GSIGNOND_CONFIG_GENERAL" link="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL:CAPS"/>
- <keyword type="macro" name="GSIGNOND_CONFIG_GENERAL_BIN_DIR" link="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-BIN-DIR:CAPS"/>
+ <keyword type="macro" name="GSIGNOND_CONFIG_GENERAL_STORAGE_PATH" link="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-STORAGE-PATH:CAPS"/>
<keyword type="macro" name="GSIGNOND_CONFIG_GENERAL_EXTENSION" link="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-EXTENSION:CAPS"/>
- <keyword type="macro" name="GSIGNOND_CONFIG_GENERAL_EXTENSIONS_DIR" link="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-EXTENSIONS-DIR:CAPS"/>
- <keyword type="macro" name="GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR" link="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-PLUGINS-DIR:CAPS"/>
<keyword type="macro" name="GSIGNOND_CONFIG_GENERAL_SECURE_DIR" link="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-SECURE-DIR:CAPS"/>
- <keyword type="macro" name="GSIGNOND_CONFIG_GENERAL_STORAGE_PATH" link="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-STORAGE-PATH:CAPS"/>
<keyword type="macro" name="GSIGNOND_CONFIG_PLUGIN_TIMEOUT" link="gsignond-General-configuration.html#GSIGNOND-CONFIG-PLUGIN-TIMEOUT:CAPS"/>
- <keyword type="macro" name="GSIGNOND_CONFIG_DB_METADATA_DB_FILENAME" link="gsignond-Database-configuration.html#GSIGNOND-CONFIG-DB-METADATA-DB-FILENAME:CAPS"/>
- <keyword type="macro" name="GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME" link="gsignond-Database-configuration.html#GSIGNOND-CONFIG-DB-SECRET-DB-FILENAME:CAPS"/>
- <keyword type="macro" name="GSIGNOND_CONFIG_DB_SSO" link="gsignond-Database-configuration.html#GSIGNOND-CONFIG-DB-SSO:CAPS"/>
- <keyword type="macro" name="GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT" link="gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-AUTH-SESSION-TIMEOUT:CAPS"/>
+ <keyword type="macro" name="GSIGNOND_CONFIG_GENERAL_KEYCHAIN_SYSCTX" link="gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-KEYCHAIN-SYSCTX:CAPS"/>
+ <keyword type="macro" name="GSIGNOND_CONFIG_DBUS_TIMEOUTS" link="gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-TIMEOUTS:CAPS"/>
<keyword type="macro" name="GSIGNOND_CONFIG_DBUS_DAEMON_TIMEOUT" link="gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-DAEMON-TIMEOUT:CAPS"/>
<keyword type="macro" name="GSIGNOND_CONFIG_DBUS_IDENTITY_TIMEOUT" link="gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-IDENTITY-TIMEOUT:CAPS"/>
- <keyword type="macro" name="GSIGNOND_CONFIG_DBUS_TIMEOUTS" link="gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-TIMEOUTS:CAPS"/>
- <keyword type="struct" name="struct GSignondPluginInterface" link="gsignond-GSignondPlugin.html#GSignondPluginInterface"/>
- <keyword type="enum" name="enum GSignondPluginState" link="gsignond-GSignondPlugin.html#GSignondPluginState"/>
- <keyword type="function" name="gsignond_plugin_cancel ()" link="gsignond-GSignondPlugin.html#gsignond-plugin-cancel"/>
- <keyword type="function" name="gsignond_plugin_error ()" link="gsignond-GSignondPlugin.html#gsignond-plugin-error"/>
- <keyword type="function" name="gsignond_plugin_refresh ()" link="gsignond-GSignondPlugin.html#gsignond-plugin-refresh"/>
- <keyword type="function" name="gsignond_plugin_refreshed ()" link="gsignond-GSignondPlugin.html#gsignond-plugin-refreshed"/>
- <keyword type="function" name="gsignond_plugin_request ()" link="gsignond-GSignondPlugin.html#gsignond-plugin-request"/>
- <keyword type="function" name="gsignond_plugin_request_initial ()" link="gsignond-GSignondPlugin.html#gsignond-plugin-request-initial"/>
- <keyword type="function" name="gsignond_plugin_response ()" link="gsignond-GSignondPlugin.html#gsignond-plugin-response"/>
- <keyword type="function" name="gsignond_plugin_response_final ()" link="gsignond-GSignondPlugin.html#gsignond-plugin-response-final"/>
- <keyword type="function" name="gsignond_plugin_status_changed ()" link="gsignond-GSignondPlugin.html#gsignond-plugin-status-changed"/>
- <keyword type="function" name="gsignond_plugin_store ()" link="gsignond-GSignondPlugin.html#gsignond-plugin-store"/>
- <keyword type="function" name="gsignond_plugin_user_action_finished ()" link="gsignond-GSignondPlugin.html#gsignond-plugin-user-action-finished"/>
- <keyword type="function" name="gsignond_plugin_user_action_required ()" link="gsignond-GSignondPlugin.html#gsignond-plugin-user-action-required"/>
- <keyword type="typedef" name="GSignondDictionary" link="gsignond-GSignondDictionary.html#GSignondDictionary"/>
- <keyword type="function" name="gsignond_dictionary_copy ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-copy"/>
- <keyword type="function" name="gsignond_dictionary_get ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-get"/>
- <keyword type="function" name="gsignond_dictionary_get_boolean ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-get-boolean"/>
- <keyword type="function" name="gsignond_dictionary_get_int32 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-get-int32"/>
- <keyword type="function" name="gsignond_dictionary_get_int64 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-get-int64"/>
- <keyword type="function" name="gsignond_dictionary_get_string ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-get-string"/>
- <keyword type="function" name="gsignond_dictionary_get_uint32 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint32"/>
- <keyword type="function" name="gsignond_dictionary_get_uint64 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint64"/>
- <keyword type="function" name="gsignond_dictionary_new ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-new"/>
- <keyword type="function" name="gsignond_dictionary_new_from_variant ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-new-from-variant"/>
- <keyword type="function" name="gsignond_dictionary_ref ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-ref"/>
- <keyword type="function" name="gsignond_dictionary_remove ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-remove"/>
- <keyword type="function" name="gsignond_dictionary_set ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-set"/>
- <keyword type="function" name="gsignond_dictionary_set_boolean ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-set-boolean"/>
- <keyword type="function" name="gsignond_dictionary_set_int32 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-set-int32"/>
- <keyword type="function" name="gsignond_dictionary_set_int64 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-set-int64"/>
- <keyword type="function" name="gsignond_dictionary_set_string ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-set-string"/>
- <keyword type="function" name="gsignond_dictionary_set_uint32 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-set-uint32"/>
- <keyword type="function" name="gsignond_dictionary_set_uint64 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-set-uint64"/>
- <keyword type="function" name="gsignond_dictionary_to_variant ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-to-variant"/>
- <keyword type="function" name="gsignond_dictionary_unref ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-unref"/>
- <keyword type="typedef" name="GSignondSessionData" link="gsignond-GSignondSessionData.html#GSignondSessionData"/>
+ <keyword type="macro" name="GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT" link="gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-AUTH-SESSION-TIMEOUT:CAPS"/>
+ <keyword type="function" name="gsignond_plugin_cancel ()" link="GSignondPlugin.html#gsignond-plugin-cancel"/>
+ <keyword type="function" name="gsignond_plugin_request_initial ()" link="GSignondPlugin.html#gsignond-plugin-request-initial"/>
+ <keyword type="function" name="gsignond_plugin_request ()" link="GSignondPlugin.html#gsignond-plugin-request"/>
+ <keyword type="function" name="gsignond_plugin_user_action_finished ()" link="GSignondPlugin.html#gsignond-plugin-user-action-finished"/>
+ <keyword type="function" name="gsignond_plugin_refresh ()" link="GSignondPlugin.html#gsignond-plugin-refresh"/>
+ <keyword type="function" name="gsignond_plugin_response ()" link="GSignondPlugin.html#gsignond-plugin-response"/>
+ <keyword type="function" name="gsignond_plugin_response_final ()" link="GSignondPlugin.html#gsignond-plugin-response-final"/>
+ <keyword type="function" name="gsignond_plugin_store ()" link="GSignondPlugin.html#gsignond-plugin-store"/>
+ <keyword type="function" name="gsignond_plugin_error ()" link="GSignondPlugin.html#gsignond-plugin-error"/>
+ <keyword type="function" name="gsignond_plugin_user_action_required ()" link="GSignondPlugin.html#gsignond-plugin-user-action-required"/>
+ <keyword type="function" name="gsignond_plugin_refreshed ()" link="GSignondPlugin.html#gsignond-plugin-refreshed"/>
+ <keyword type="function" name="gsignond_plugin_status_changed ()" link="GSignondPlugin.html#gsignond-plugin-status-changed"/>
+ <keyword type="enum" name="enum GSignondPluginState" link="GSignondPlugin.html#GSignondPluginState"/>
+ <keyword type="struct" name="struct GSignondPluginInterface" link="GSignondPlugin.html#GSignondPluginInterface"/>
+ <keyword type="property" name="The “mechanisms” property" link="GSignondPlugin.html#GSignondPlugin--mechanisms"/>
+ <keyword type="property" name="The “type” property" link="GSignondPlugin.html#GSignondPlugin--type"/>
+ <keyword type="signal" name="The “error” signal" link="GSignondPlugin.html#GSignondPlugin-error"/>
+ <keyword type="signal" name="The “refreshed” signal" link="GSignondPlugin.html#GSignondPlugin-refreshed"/>
+ <keyword type="signal" name="The “response” signal" link="GSignondPlugin.html#GSignondPlugin-response"/>
+ <keyword type="signal" name="The “response-final” signal" link="GSignondPlugin.html#GSignondPlugin-response-final"/>
+ <keyword type="signal" name="The “status-changed” signal" link="GSignondPlugin.html#GSignondPlugin-status-changed"/>
+ <keyword type="signal" name="The “store” signal" link="GSignondPlugin.html#GSignondPlugin-store"/>
+ <keyword type="signal" name="The “user-action-required” signal" link="GSignondPlugin.html#GSignondPlugin-user-action-required"/>
+ <keyword type="function" name="gsignond_dictionary_new ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-new"/>
+ <keyword type="function" name="gsignond_dictionary_ref ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-ref"/>
+ <keyword type="function" name="gsignond_dictionary_unref ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-unref"/>
+ <keyword type="function" name="gsignond_dictionary_copy ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-copy"/>
+ <keyword type="function" name="gsignond_dictionary_new_from_variant ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-new-from-variant"/>
+ <keyword type="function" name="gsignond_dictionary_to_variant ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-to-variant"/>
+ <keyword type="function" name="gsignond_dictionary_to_variant_builder ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-to-variant-builder"/>
+ <keyword type="function" name="gsignond_dictionary_get ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-get"/>
+ <keyword type="function" name="gsignond_dictionary_set ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-set"/>
+ <keyword type="function" name="gsignond_dictionary_get_boolean ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-get-boolean"/>
+ <keyword type="function" name="gsignond_dictionary_set_boolean ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-set-boolean"/>
+ <keyword type="function" name="gsignond_dictionary_get_int32 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-get-int32"/>
+ <keyword type="function" name="gsignond_dictionary_set_int32 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-set-int32"/>
+ <keyword type="function" name="gsignond_dictionary_get_uint32 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint32"/>
+ <keyword type="function" name="gsignond_dictionary_set_uint32 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-set-uint32"/>
+ <keyword type="function" name="gsignond_dictionary_get_int64 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-get-int64"/>
+ <keyword type="function" name="gsignond_dictionary_set_int64 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-set-int64"/>
+ <keyword type="function" name="gsignond_dictionary_get_uint64 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint64"/>
+ <keyword type="function" name="gsignond_dictionary_set_uint64 ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-set-uint64"/>
+ <keyword type="function" name="gsignond_dictionary_get_string ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-get-string"/>
+ <keyword type="function" name="gsignond_dictionary_set_string ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-set-string"/>
+ <keyword type="function" name="gsignond_dictionary_remove ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-remove"/>
+ <keyword type="function" name="gsignond_dictionary_contains ()" link="gsignond-GSignondDictionary.html#gsignond-dictionary-contains"/>
+ <keyword type="function" name="gsignond_session_data_get_username ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-username"/>
+ <keyword type="function" name="gsignond_session_data_set_username ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-username"/>
+ <keyword type="function" name="gsignond_session_data_get_secret ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-secret"/>
+ <keyword type="function" name="gsignond_session_data_set_secret ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-secret"/>
+ <keyword type="function" name="gsignond_session_data_get_realm ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-realm"/>
+ <keyword type="function" name="gsignond_session_data_set_realm ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-realm"/>
+ <keyword type="function" name="gsignond_session_data_get_allowed_realms ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-allowed-realms"/>
+ <keyword type="function" name="gsignond_session_data_set_allowed_realms ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-allowed-realms"/>
+ <keyword type="function" name="gsignond_session_data_get_caption ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-caption"/>
+ <keyword type="function" name="gsignond_session_data_set_caption ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-caption"/>
+ <keyword type="function" name="gsignond_session_data_get_renew_token ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-renew-token"/>
+ <keyword type="function" name="gsignond_session_data_set_renew_token ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-renew-token"/>
+ <keyword type="function" name="gsignond_session_data_get_ui_policy ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-ui-policy"/>
+ <keyword type="function" name="gsignond_session_data_set_ui_policy ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-ui-policy"/>
+ <keyword type="function" name="gsignond_session_data_get_network_proxy ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-network-proxy"/>
+ <keyword type="function" name="gsignond_session_data_set_network_proxy ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-network-proxy"/>
+ <keyword type="function" name="gsignond_session_data_get_network_timeout ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-network-timeout"/>
+ <keyword type="function" name="gsignond_session_data_set_network_timeout ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-network-timeout"/>
+ <keyword type="function" name="gsignond_session_data_get_window_id ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-window-id"/>
+ <keyword type="function" name="gsignond_session_data_set_window_id ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-window-id"/>
<keyword type="enum" name="enum GSignondUiPolicy" link="gsignond-GSignondSessionData.html#GSignondUiPolicy"/>
- <keyword type="function" name="gsignond_session_data_get_caption ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-caption"/>
- <keyword type="function" name="gsignond_session_data_get_network_proxy ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-network-proxy"/>
- <keyword type="function" name="gsignond_session_data_get_network_timeout ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-network-timeout"/>
- <keyword type="function" name="gsignond_session_data_get_realm ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-realm"/>
- <keyword type="function" name="gsignond_session_data_get_renew_token ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-renew-token"/>
- <keyword type="function" name="gsignond_session_data_get_secret ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-secret"/>
- <keyword type="function" name="gsignond_session_data_get_ui_policy ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-ui-policy"/>
- <keyword type="function" name="gsignond_session_data_get_username ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-username"/>
- <keyword type="function" name="gsignond_session_data_get_window_id ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-get-window-id"/>
- <keyword type="function" name="gsignond_session_data_set_caption ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-caption"/>
- <keyword type="function" name="gsignond_session_data_set_network_proxy ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-network-proxy"/>
- <keyword type="function" name="gsignond_session_data_set_network_timeout ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-network-timeout"/>
- <keyword type="function" name="gsignond_session_data_set_realm ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-realm"/>
- <keyword type="function" name="gsignond_session_data_set_renew_token ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-renew-token"/>
- <keyword type="function" name="gsignond_session_data_set_secret ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-secret"/>
- <keyword type="function" name="gsignond_session_data_set_ui_policy ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-ui-policy"/>
- <keyword type="function" name="gsignond_session_data_set_username ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-username"/>
- <keyword type="function" name="gsignond_session_data_set_window_id ()" link="gsignond-GSignondSessionData.html#gsignond-session-data-set-window-id"/>
- <keyword type="typedef" name="GSignondSignonuiData" link="gsignond-GSignondSignonuiData.html#GSignondSignonuiData"/>
+ <keyword type="function" name="gsignond_signonui_data_get_captcha_response ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-captcha-response"/>
+ <keyword type="function" name="gsignond_signonui_data_set_captcha_response ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-captcha-response"/>
+ <keyword type="function" name="gsignond_signonui_data_get_captcha_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-captcha-url"/>
+ <keyword type="function" name="gsignond_signonui_data_set_captcha_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-captcha-url"/>
+ <keyword type="function" name="gsignond_signonui_data_get_caption ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-caption"/>
+ <keyword type="function" name="gsignond_signonui_data_set_caption ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-caption"/>
+ <keyword type="function" name="gsignond_signonui_data_get_confirm ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-confirm"/>
+ <keyword type="function" name="gsignond_signonui_data_set_confirm ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-confirm"/>
+ <keyword type="function" name="gsignond_signonui_data_get_final_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-final-url"/>
+ <keyword type="function" name="gsignond_signonui_data_set_final_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-final-url"/>
+ <keyword type="function" name="gsignond_signonui_data_get_forgot_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password"/>
+ <keyword type="function" name="gsignond_signonui_data_set_forgot_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-forgot-password"/>
+ <keyword type="function" name="gsignond_signonui_data_get_forgot_password_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password-url"/>
+ <keyword type="function" name="gsignond_signonui_data_set_forgot_password_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-forgot-password-url"/>
+ <keyword type="function" name="gsignond_signonui_data_get_message ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-message"/>
+ <keyword type="function" name="gsignond_signonui_data_set_message ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-message"/>
+ <keyword type="function" name="gsignond_signonui_data_get_open_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-open-url"/>
+ <keyword type="function" name="gsignond_signonui_data_set_open_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-open-url"/>
+ <keyword type="function" name="gsignond_signonui_data_get_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-password"/>
+ <keyword type="function" name="gsignond_signonui_data_set_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-password"/>
+ <keyword type="function" name="gsignond_signonui_data_get_query_error ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-error"/>
+ <keyword type="function" name="gsignond_signonui_data_set_query_error ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-error"/>
+ <keyword type="function" name="gsignond_signonui_data_get_query_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-password"/>
+ <keyword type="function" name="gsignond_signonui_data_set_query_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-password"/>
+ <keyword type="function" name="gsignond_signonui_data_get_query_username ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-username"/>
+ <keyword type="function" name="gsignond_signonui_data_set_query_username ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-username"/>
+ <keyword type="function" name="gsignond_signonui_data_get_remember_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-remember-password"/>
+ <keyword type="function" name="gsignond_signonui_data_set_remember_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-remember-password"/>
+ <keyword type="function" name="gsignond_signonui_data_get_request_id ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-request-id"/>
+ <keyword type="function" name="gsignond_signonui_data_set_request_id ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-request-id"/>
+ <keyword type="function" name="gsignond_signonui_data_get_test_reply ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-test-reply"/>
+ <keyword type="function" name="gsignond_signonui_data_set_test_reply ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-test-reply"/>
+ <keyword type="function" name="gsignond_signonui_data_get_title ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-title"/>
+ <keyword type="function" name="gsignond_signonui_data_set_title ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-title"/>
+ <keyword type="function" name="gsignond_signonui_data_get_url_response ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-url-response"/>
+ <keyword type="function" name="gsignond_signonui_data_set_url_response ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-url-response"/>
+ <keyword type="function" name="gsignond_signonui_data_get_username ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-username"/>
+ <keyword type="function" name="gsignond_signonui_data_set_username ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-username"/>
<keyword type="enum" name="enum GSignondSignonuiError" link="gsignond-GSignondSignonuiData.html#GSignondSignonuiError"/>
- <keyword type="function" name="gsignond_signonui_data_get_captcha_response ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-captcha-response"/>
- <keyword type="function" name="gsignond_signonui_data_get_captcha_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-captcha-url"/>
- <keyword type="function" name="gsignond_signonui_data_get_caption ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-caption"/>
- <keyword type="function" name="gsignond_signonui_data_get_confirm ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-confirm"/>
- <keyword type="function" name="gsignond_signonui_data_get_final_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-final-url"/>
- <keyword type="function" name="gsignond_signonui_data_get_forgot_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password"/>
- <keyword type="function" name="gsignond_signonui_data_get_forgot_password_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password-url"/>
- <keyword type="function" name="gsignond_signonui_data_get_message ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-message"/>
- <keyword type="function" name="gsignond_signonui_data_get_open_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-open-url"/>
- <keyword type="function" name="gsignond_signonui_data_get_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-password"/>
- <keyword type="function" name="gsignond_signonui_data_get_query_error ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-error"/>
- <keyword type="function" name="gsignond_signonui_data_get_query_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-password"/>
- <keyword type="function" name="gsignond_signonui_data_get_query_username ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-username"/>
- <keyword type="function" name="gsignond_signonui_data_get_remember_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-remember-password"/>
- <keyword type="function" name="gsignond_signonui_data_get_request_id ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-request-id"/>
- <keyword type="function" name="gsignond_signonui_data_get_test_reply ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-test-reply"/>
- <keyword type="function" name="gsignond_signonui_data_get_title ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-title"/>
- <keyword type="function" name="gsignond_signonui_data_get_url_response ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-url-response"/>
- <keyword type="function" name="gsignond_signonui_data_get_username ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-username"/>
- <keyword type="function" name="gsignond_signonui_data_set_captcha_response ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-captcha-response"/>
- <keyword type="function" name="gsignond_signonui_data_set_captcha_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-captcha-url"/>
- <keyword type="function" name="gsignond_signonui_data_set_caption ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-caption"/>
- <keyword type="function" name="gsignond_signonui_data_set_confirm ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-confirm"/>
- <keyword type="function" name="gsignond_signonui_data_set_final_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-final-url"/>
- <keyword type="function" name="gsignond_signonui_data_set_forgot_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-forgot-password"/>
- <keyword type="function" name="gsignond_signonui_data_set_forgot_password_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-forgot-password-url"/>
- <keyword type="function" name="gsignond_signonui_data_set_message ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-message"/>
- <keyword type="function" name="gsignond_signonui_data_set_open_url ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-open-url"/>
- <keyword type="function" name="gsignond_signonui_data_set_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-password"/>
- <keyword type="function" name="gsignond_signonui_data_set_query_error ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-error"/>
- <keyword type="function" name="gsignond_signonui_data_set_query_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-password"/>
- <keyword type="function" name="gsignond_signonui_data_set_query_username ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-username"/>
- <keyword type="function" name="gsignond_signonui_data_set_remember_password ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-remember-password"/>
- <keyword type="function" name="gsignond_signonui_data_set_request_id ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-request-id"/>
- <keyword type="function" name="gsignond_signonui_data_set_test_reply ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-test-reply"/>
- <keyword type="function" name="gsignond_signonui_data_set_title ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-title"/>
- <keyword type="function" name="gsignond_signonui_data_set_url_response ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-url-response"/>
- <keyword type="function" name="gsignond_signonui_data_set_username ()" link="gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-username"/>
- <keyword type="struct" name="struct GSignondDigestPlugin" link="GSignondDigestPlugin.html#GSignondDigestPlugin-struct"/>
- <keyword type="struct" name="struct GSignondDigestPluginClass" link="GSignondDigestPlugin.html#GSignondDigestPluginClass"/>
- <keyword type="struct" name="struct GSignondSsoTestPlugin" link="GSignondSsoTestPlugin.html#GSignondSsoTestPlugin-struct"/>
- <keyword type="struct" name="struct GSignondSsoTestPluginClass" link="GSignondSsoTestPlugin.html#GSignondSsoTestPluginClass"/>
- <keyword type="struct" name="struct GSignondPasswordPlugin" link="GSignondPasswordPlugin.html#GSignondPasswordPlugin-struct"/>
- <keyword type="struct" name="struct GSignondPasswordPluginClass" link="GSignondPasswordPlugin.html#GSignondPasswordPluginClass"/>
- <keyword type="struct" name="struct GSignondExtension" link="GSignondExtension.html#GSignondExtension-struct"/>
- <keyword type="struct" name="struct GSignondExtensionClass" link="GSignondExtension.html#GSignondExtensionClass"/>
- <keyword type="function" name="gsignond_extension_get_access_control_manager ()" link="GSignondExtension.html#gsignond-extension-get-access-control-manager"/>
- <keyword type="function" name="gsignond_extension_get_name ()" link="GSignondExtension.html#gsignond-extension-get-name"/>
- <keyword type="function" name="gsignond_extension_get_secret_storage ()" link="GSignondExtension.html#gsignond-extension-get-secret-storage"/>
- <keyword type="function" name="gsignond_extension_get_storage_manager ()" link="GSignondExtension.html#gsignond-extension-get-storage-manager"/>
- <keyword type="function" name="gsignond_extension_get_version ()" link="GSignondExtension.html#gsignond-extension-get-version"/>
- <keyword type="struct" name="struct GSignondAccessControlManager" link="GSignondAccessControlManager.html#GSignondAccessControlManager-struct"/>
- <keyword type="struct" name="struct GSignondAccessControlManagerClass" link="GSignondAccessControlManager.html#GSignondAccessControlManagerClass"/>
- <keyword type="function" name="gsignond_access_control_manager_acl_is_valid ()" link="GSignondAccessControlManager.html#gsignond-access-control-manager-acl-is-valid"/>
- <keyword type="function" name="gsignond_access_control_manager_peer_is_allowed_to_use_identity ()" link="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-allowed-to-use-identity"/>
- <keyword type="function" name="gsignond_access_control_manager_peer_is_owner_of_identity ()" link="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-owner-of-identity"/>
- <keyword type="function" name="gsignond_access_control_manager_security_context_of_keychain ()" link="GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-keychain"/>
- <keyword type="function" name="gsignond_access_control_manager_security_context_of_peer ()" link="GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-peer"/>
- <keyword type="property" name="The "config" property" link="GSignondAccessControlManager.html#GSignondAccessControlManager--config"/>
+ <keyword type="function" name="gsignond_extension_get_name ()" link="GSignondExtension.html#gsignond-extension-get-name"/>
+ <keyword type="function" name="gsignond_extension_get_version ()" link="GSignondExtension.html#gsignond-extension-get-version"/>
+ <keyword type="function" name="gsignond_extension_get_storage_manager ()" link="GSignondExtension.html#gsignond-extension-get-storage-manager"/>
+ <keyword type="function" name="gsignond_extension_get_secret_storage ()" link="GSignondExtension.html#gsignond-extension-get-secret-storage"/>
+ <keyword type="function" name="gsignond_extension_get_access_control_manager ()" link="GSignondExtension.html#gsignond-extension-get-access-control-manager"/>
+ <keyword type="function" name="gsignond_access_control_manager_security_context_of_peer ()" link="GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-peer"/>
+ <keyword type="function" name="gsignond_access_control_manager_peer_is_allowed_to_use_identity ()" link="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-allowed-to-use-identity"/>
+ <keyword type="function" name="gsignond_access_control_manager_peer_is_owner_of_identity ()" link="GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-owner-of-identity"/>
+ <keyword type="function" name="gsignond_access_control_manager_acl_is_valid ()" link="GSignondAccessControlManager.html#gsignond-access-control-manager-acl-is-valid"/>
+ <keyword type="function" name="gsignond_access_control_manager_security_context_of_keychain ()" link="GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-keychain"/>
+ <keyword type="property" name="The “config” property" link="GSignondAccessControlManager.html#GSignondAccessControlManager--config"/>
+ <keyword type="function" name="gsignond_security_context_new ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-new"/>
+ <keyword type="function" name="gsignond_security_context_new_from_values ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-new-from-values"/>
+ <keyword type="function" name="gsignond_security_context_free ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-free"/>
+ <keyword type="function" name="gsignond_security_context_copy ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-copy"/>
+ <keyword type="function" name="gsignond_security_context_set_system_context ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-set-system-context"/>
+ <keyword type="function" name="gsignond_security_context_get_system_context ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-get-system-context"/>
+ <keyword type="function" name="gsignond_security_context_set_application_context ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-set-application-context"/>
+ <keyword type="function" name="gsignond_security_context_get_application_context ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-get-application-context"/>
+ <keyword type="function" name="gsignond_security_context_to_variant ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-to-variant"/>
+ <keyword type="function" name="gsignond_security_context_from_variant ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-from-variant"/>
+ <keyword type="function" name="gsignond_security_context_compare ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-compare"/>
+ <keyword type="function" name="gsignond_security_context_match ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-match"/>
+ <keyword type="function" name="gsignond_security_context_check ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-check"/>
+ <keyword type="function" name="gsignond_security_context_list_to_variant ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-to-variant"/>
+ <keyword type="function" name="gsignond_security_context_list_from_variant ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-from-variant"/>
+ <keyword type="function" name="gsignond_security_context_list_copy ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-copy"/>
+ <keyword type="function" name="gsignond_security_context_list_free ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-free"/>
<keyword type="struct" name="GSignondSecurityContext" link="gsignond-GSignondSecurityContext.html#GSignondSecurityContext"/>
<keyword type="typedef" name="GSignondSecurityContextList" link="gsignond-GSignondSecurityContext.html#GSignondSecurityContextList"/>
- <keyword type="function" name="gsignond_security_context_check ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-check"/>
- <keyword type="function" name="gsignond_security_context_compare ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-compare"/>
- <keyword type="function" name="gsignond_security_context_copy ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-copy"/>
- <keyword type="function" name="gsignond_security_context_free ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-free"/>
- <keyword type="function" name="gsignond_security_context_from_variant ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-from-variant"/>
- <keyword type="function" name="gsignond_security_context_get_application_context ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-get-application-context"/>
- <keyword type="function" name="gsignond_security_context_get_system_context ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-get-system-context"/>
- <keyword type="function" name="gsignond_security_context_list_copy ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-copy"/>
- <keyword type="function" name="gsignond_security_context_list_free ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-free"/>
- <keyword type="function" name="gsignond_security_context_list_from_variant ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-from-variant"/>
- <keyword type="function" name="gsignond_security_context_list_to_variant ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-list-to-variant"/>
- <keyword type="function" name="gsignond_security_context_match ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-match"/>
- <keyword type="function" name="gsignond_security_context_new ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-new"/>
- <keyword type="function" name="gsignond_security_context_new_from_values ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-new-from-values"/>
- <keyword type="function" name="gsignond_security_context_set_application_context ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-set-application-context"/>
- <keyword type="function" name="gsignond_security_context_set_system_context ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-set-system-context"/>
- <keyword type="function" name="gsignond_security_context_to_variant ()" link="gsignond-GSignondSecurityContext.html#gsignond-security-context-to-variant"/>
- <keyword type="struct" name="struct GSignondStorageManager" link="GSignondStorageManager.html#GSignondStorageManager-struct"/>
- <keyword type="struct" name="struct GSignondStorageManagerClass" link="GSignondStorageManager.html#GSignondStorageManagerClass"/>
- <keyword type="function" name="gsignond_storage_manager_delete_storage ()" link="GSignondStorageManager.html#gsignond-storage-manager-delete-storage"/>
- <keyword type="function" name="gsignond_storage_manager_filesystem_is_mounted ()" link="GSignondStorageManager.html#gsignond-storage-manager-filesystem-is-mounted"/>
- <keyword type="function" name="gsignond_storage_manager_initialize_storage ()" link="GSignondStorageManager.html#gsignond-storage-manager-initialize-storage"/>
- <keyword type="function" name="gsignond_storage_manager_mount_filesystem ()" link="GSignondStorageManager.html#gsignond-storage-manager-mount-filesystem"/>
- <keyword type="function" name="gsignond_storage_manager_storage_is_initialized ()" link="GSignondStorageManager.html#gsignond-storage-manager-storage-is-initialized"/>
- <keyword type="function" name="gsignond_storage_manager_unmount_filesystem ()" link="GSignondStorageManager.html#gsignond-storage-manager-unmount-filesystem"/>
- <keyword type="property" name="The "config" property" link="GSignondStorageManager.html#GSignondStorageManager--config"/>
- <keyword type="struct" name="GSignondSecretStorage" link="GSignondSecretStorage.html#GSignondSecretStorage-struct"/>
- <keyword type="struct" name="GSignondSecretStorageClass" link="GSignondSecretStorage.html#GSignondSecretStorageClass"/>
- <keyword type="function" name="gsignond_secret_storage_check_credentials ()" link="GSignondSecretStorage.html#gsignond-secret-storage-check-credentials"/>
- <keyword type="function" name="gsignond_secret_storage_clear_db ()" link="GSignondSecretStorage.html#gsignond-secret-storage-clear-db"/>
- <keyword type="function" name="gsignond_secret_storage_close_db ()" link="GSignondSecretStorage.html#gsignond-secret-storage-close-db"/>
- <keyword type="function" name="gsignond_secret_storage_get_last_error ()" link="GSignondSecretStorage.html#gsignond-secret-storage-get-last-error"/>
- <keyword type="function" name="gsignond_secret_storage_is_open_db ()" link="GSignondSecretStorage.html#gsignond-secret-storage-is-open-db"/>
- <keyword type="function" name="gsignond_secret_storage_load_credentials ()" link="GSignondSecretStorage.html#gsignond-secret-storage-load-credentials"/>
- <keyword type="function" name="gsignond_secret_storage_load_data ()" link="GSignondSecretStorage.html#gsignond-secret-storage-load-data"/>
- <keyword type="function" name="gsignond_secret_storage_open_db ()" link="GSignondSecretStorage.html#gsignond-secret-storage-open-db"/>
- <keyword type="function" name="gsignond_secret_storage_remove_credentials ()" link="GSignondSecretStorage.html#gsignond-secret-storage-remove-credentials"/>
- <keyword type="function" name="gsignond_secret_storage_remove_data ()" link="GSignondSecretStorage.html#gsignond-secret-storage-remove-data"/>
- <keyword type="function" name="gsignond_secret_storage_update_credentials ()" link="GSignondSecretStorage.html#gsignond-secret-storage-update-credentials"/>
- <keyword type="function" name="gsignond_secret_storage_update_data ()" link="GSignondSecretStorage.html#gsignond-secret-storage-update-data"/>
- <keyword type="property" name="The "config" property" link="GSignondSecretStorage.html#GSignondSecretStorage--config"/>
- <keyword type="struct" name="GSignondCredentials" link="GSignondCredentials.html#GSignondCredentials-struct"/>
- <keyword type="struct" name="GSignondCredentialsClass" link="GSignondCredentials.html#GSignondCredentialsClass"/>
- <keyword type="function" name="gsignond_credentials_equal ()" link="GSignondCredentials.html#gsignond-credentials-equal"/>
- <keyword type="function" name="gsignond_credentials_get_id ()" link="GSignondCredentials.html#gsignond-credentials-get-id"/>
- <keyword type="function" name="gsignond_credentials_get_password ()" link="GSignondCredentials.html#gsignond-credentials-get-password"/>
- <keyword type="function" name="gsignond_credentials_get_username ()" link="GSignondCredentials.html#gsignond-credentials-get-username"/>
- <keyword type="function" name="gsignond_credentials_new ()" link="GSignondCredentials.html#gsignond-credentials-new"/>
- <keyword type="function" name="gsignond_credentials_set_data ()" link="GSignondCredentials.html#gsignond-credentials-set-data"/>
- <keyword type="function" name="gsignond_credentials_set_id ()" link="GSignondCredentials.html#gsignond-credentials-set-id"/>
- <keyword type="function" name="gsignond_credentials_set_password ()" link="GSignondCredentials.html#gsignond-credentials-set-password"/>
- <keyword type="function" name="gsignond_credentials_set_username ()" link="GSignondCredentials.html#gsignond-credentials-set-username"/>
+ <keyword type="function" name="gsignond_storage_manager_initialize_storage ()" link="GSignondStorageManager.html#gsignond-storage-manager-initialize-storage"/>
+ <keyword type="function" name="gsignond_storage_manager_delete_storage ()" link="GSignondStorageManager.html#gsignond-storage-manager-delete-storage"/>
+ <keyword type="function" name="gsignond_storage_manager_storage_is_initialized ()" link="GSignondStorageManager.html#gsignond-storage-manager-storage-is-initialized"/>
+ <keyword type="function" name="gsignond_storage_manager_mount_filesystem ()" link="GSignondStorageManager.html#gsignond-storage-manager-mount-filesystem"/>
+ <keyword type="function" name="gsignond_storage_manager_unmount_filesystem ()" link="GSignondStorageManager.html#gsignond-storage-manager-unmount-filesystem"/>
+ <keyword type="function" name="gsignond_storage_manager_filesystem_is_mounted ()" link="GSignondStorageManager.html#gsignond-storage-manager-filesystem-is-mounted"/>
+ <keyword type="property" name="The “config” property" link="GSignondStorageManager.html#GSignondStorageManager--config"/>
+ <keyword type="function" name="gsignond_secret_storage_open_db ()" link="GSignondSecretStorage.html#gsignond-secret-storage-open-db"/>
+ <keyword type="function" name="gsignond_secret_storage_close_db ()" link="GSignondSecretStorage.html#gsignond-secret-storage-close-db"/>
+ <keyword type="function" name="gsignond_secret_storage_clear_db ()" link="GSignondSecretStorage.html#gsignond-secret-storage-clear-db"/>
+ <keyword type="function" name="gsignond_secret_storage_is_open_db ()" link="GSignondSecretStorage.html#gsignond-secret-storage-is-open-db"/>
+ <keyword type="function" name="gsignond_secret_storage_load_credentials ()" link="GSignondSecretStorage.html#gsignond-secret-storage-load-credentials"/>
+ <keyword type="function" name="gsignond_secret_storage_update_credentials ()" link="GSignondSecretStorage.html#gsignond-secret-storage-update-credentials"/>
+ <keyword type="function" name="gsignond_secret_storage_remove_credentials ()" link="GSignondSecretStorage.html#gsignond-secret-storage-remove-credentials"/>
+ <keyword type="function" name="gsignond_secret_storage_check_credentials ()" link="GSignondSecretStorage.html#gsignond-secret-storage-check-credentials"/>
+ <keyword type="function" name="gsignond_secret_storage_load_data ()" link="GSignondSecretStorage.html#gsignond-secret-storage-load-data"/>
+ <keyword type="function" name="gsignond_secret_storage_update_data ()" link="GSignondSecretStorage.html#gsignond-secret-storage-update-data"/>
+ <keyword type="function" name="gsignond_secret_storage_remove_data ()" link="GSignondSecretStorage.html#gsignond-secret-storage-remove-data"/>
+ <keyword type="function" name="gsignond_secret_storage_get_last_error ()" link="GSignondSecretStorage.html#gsignond-secret-storage-get-last-error"/>
+ <keyword type="property" name="The “config” property" link="GSignondSecretStorage.html#GSignondSecretStorage--config"/>
+ <keyword type="function" name="gsignond_credentials_new ()" link="GSignondCredentials.html#gsignond-credentials-new"/>
+ <keyword type="function" name="gsignond_credentials_set_data ()" link="GSignondCredentials.html#gsignond-credentials-set-data"/>
+ <keyword type="function" name="gsignond_credentials_set_id ()" link="GSignondCredentials.html#gsignond-credentials-set-id"/>
+ <keyword type="function" name="gsignond_credentials_get_id ()" link="GSignondCredentials.html#gsignond-credentials-get-id"/>
+ <keyword type="function" name="gsignond_credentials_set_username ()" link="GSignondCredentials.html#gsignond-credentials-set-username"/>
+ <keyword type="function" name="gsignond_credentials_get_username ()" link="GSignondCredentials.html#gsignond-credentials-get-username"/>
+ <keyword type="function" name="gsignond_credentials_set_password ()" link="GSignondCredentials.html#gsignond-credentials-set-password"/>
+ <keyword type="function" name="gsignond_credentials_get_password ()" link="GSignondCredentials.html#gsignond-credentials-get-password"/>
+ <keyword type="function" name="gsignond_credentials_equal ()" link="GSignondCredentials.html#gsignond-credentials-equal"/>
<keyword type="macro" name="GSIGNOND_ERROR" link="gsignond-Errors.html#GSIGNOND-ERROR:CAPS"/>
- <keyword type="enum" name="enum GSignondError" link="gsignond-Errors.html#GSignondError"/>
- <keyword type="function" name="gsignond_error_new_from_variant ()" link="gsignond-Errors.html#gsignond-error-new-from-variant"/>
- <keyword type="function" name="gsignond_error_quark ()" link="gsignond-Errors.html#gsignond-error-quark"/>
- <keyword type="function" name="gsignond_error_to_variant ()" link="gsignond-Errors.html#gsignond-error-to-variant"/>
+ <keyword type="function" name="gsignond_error_quark ()" link="gsignond-Errors.html#gsignond-error-quark"/>
+ <keyword type="function" name="gsignond_error_new_from_variant ()" link="gsignond-Errors.html#gsignond-error-new-from-variant"/>
+ <keyword type="function" name="gsignond_error_to_variant ()" link="gsignond-Errors.html#gsignond-error-to-variant"/>
<keyword type="macro" name="gsignond_get_gerror_for_id()" link="gsignond-Errors.html#gsignond-get-gerror-for-id"/>
- <keyword type="macro" name="DBG()" link="gsignond-Logging.html#DBG:CAPS"/>
- <keyword type="macro" name="ERR()" link="gsignond-Logging.html#ERR:CAPS"/>
- <keyword type="macro" name="INFO()" link="gsignond-Logging.html#INFO:CAPS"/>
+ <keyword type="enum" name="enum GSignondError" link="gsignond-Errors.html#GSignondError"/>
<keyword type="macro" name="TRACEBACK" link="gsignond-Logging.html#TRACEBACK:CAPS"/>
+ <keyword type="macro" name="INFO()" link="gsignond-Logging.html#INFO:CAPS"/>
+ <keyword type="macro" name="ERR()" link="gsignond-Logging.html#ERR:CAPS"/>
<keyword type="macro" name="WARN()" link="gsignond-Logging.html#WARN:CAPS"/>
- <keyword type="function" name="gsignond_generate_nonce ()" link="gsignond-Utility-functions.html#gsignond-generate-nonce"/>
- <keyword type="function" name="gsignond_wipe_directory ()" link="gsignond-Utility-functions.html#gsignond-wipe-directory"/>
- <keyword type="function" name="gsignond_wipe_file ()" link="gsignond-Utility-functions.html#gsignond-wipe-file"/>
- <keyword type="constant" name="GSIGNOND_PLUGIN_STATE_NONE" link="gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-NONE:CAPS"/>
- <keyword type="constant" name="GSIGNOND_PLUGIN_STATE_RESOLVING" link="gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-RESOLVING:CAPS"/>
- <keyword type="constant" name="GSIGNOND_PLUGIN_STATE_CONNECTING" link="gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-CONNECTING:CAPS"/>
- <keyword type="constant" name="GSIGNOND_PLUGIN_STATE_SENDING_DATA" link="gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-SENDING-DATA:CAPS"/>
- <keyword type="constant" name="GSIGNOND_PLUGIN_STATE_WAITING" link="gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-WAITING:CAPS"/>
- <keyword type="constant" name="GSIGNOND_PLUGIN_STATE_USER_PENDING" link="gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-USER-PENDING:CAPS"/>
- <keyword type="constant" name="GSIGNOND_PLUGIN_STATE_REFRESHING" link="gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-REFRESHING:CAPS"/>
- <keyword type="constant" name="GSIGNOND_PLUGIN_STATE_PROCESS_PENDING" link="gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-PROCESS-PENDING:CAPS"/>
- <keyword type="constant" name="GSIGNOND_PLUGIN_STATE_STARTED" link="gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-STARTED:CAPS"/>
- <keyword type="constant" name="GSIGNOND_PLUGIN_STATE_CANCELING" link="gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-CANCELING:CAPS"/>
- <keyword type="constant" name="GSIGNOND_PLUGIN_STATE_DONE" link="gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-DONE:CAPS"/>
- <keyword type="constant" name="GSIGNOND_PLUGIN_STATE_HOLDING" link="gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-HOLDING:CAPS"/>
- <keyword type="constant" name="GSIGNOND_UI_POLICY_DEFAULT" link="gsignond-GSignondSessionData.html#GSIGNOND-UI-POLICY-DEFAULT:CAPS"/>
- <keyword type="constant" name="GSIGNOND_UI_POLICY_REQUEST_PASSWORD" link="gsignond-GSignondSessionData.html#GSIGNOND-UI-POLICY-REQUEST-PASSWORD:CAPS"/>
- <keyword type="constant" name="GSIGNOND_UI_POLICY_NO_USER_INTERACTION" link="gsignond-GSignondSessionData.html#GSIGNOND-UI-POLICY-NO-USER-INTERACTION:CAPS"/>
- <keyword type="constant" name="GSIGNOND_UI_POLICY_VALIDATION" link="gsignond-GSignondSessionData.html#GSIGNOND-UI-POLICY-VALIDATION:CAPS"/>
- <keyword type="constant" name="SIGNONUI_ERROR_NONE" link="gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-NONE:CAPS"/>
- <keyword type="constant" name="SIGNONUI_ERROR_GENERAL" link="gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-GENERAL:CAPS"/>
- <keyword type="constant" name="SIGNONUI_ERROR_NO_SIGNONUI" link="gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-NO-SIGNONUI:CAPS"/>
- <keyword type="constant" name="SIGNONUI_ERROR_BAD_PARAMETERS" link="gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-BAD-PARAMETERS:CAPS"/>
- <keyword type="constant" name="SIGNONUI_ERROR_CANCELED" link="gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-CANCELED:CAPS"/>
- <keyword type="constant" name="SIGNONUI_ERROR_NOT_AVAILABLE" link="gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-NOT-AVAILABLE:CAPS"/>
- <keyword type="constant" name="SIGNONUI_ERROR_BAD_URL" link="gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-BAD-URL:CAPS"/>
- <keyword type="constant" name="SIGNONUI_ERROR_BAD_CAPTCHA" link="gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-BAD-CAPTCHA:CAPS"/>
- <keyword type="constant" name="SIGNONUI_ERROR_BAD_CAPTCHA_URL" link="gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-BAD-CAPTCHA-URL:CAPS"/>
- <keyword type="constant" name="SIGNONUI_ERROR_REFRESH_FAILED" link="gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-REFRESH-FAILED:CAPS"/>
- <keyword type="constant" name="SIGNONUI_ERROR_FORBIDDEN" link="gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-FORBIDDEN:CAPS"/>
- <keyword type="constant" name="SIGNONUI_ERROR_FORGOT_PASSWORD" link="gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-FORGOT-PASSWORD:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_NONE" link="gsignond-Errors.html#GSIGNOND-ERROR-NONE:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_UNKNOWN" link="gsignond-Errors.html#GSIGNOND-ERROR-UNKNOWN:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_INTERNAL_SERVER" link="gsignond-Errors.html#GSIGNOND-ERROR-INTERNAL-SERVER:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_INTERNAL_COMMUNICATION" link="gsignond-Errors.html#GSIGNOND-ERROR-INTERNAL-COMMUNICATION:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_PERMISSION_DENIED" link="gsignond-Errors.html#GSIGNOND-ERROR-PERMISSION-DENIED:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_ENCRYPTION_FAILURE" link="gsignond-Errors.html#GSIGNOND-ERROR-ENCRYPTION-FAILURE:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_AUTH_SERVICE_ERR" link="gsignond-Errors.html#GSIGNOND-ERROR-AUTH-SERVICE-ERR:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_METHOD_NOT_KNOWN" link="gsignond-Errors.html#GSIGNOND-ERROR-METHOD-NOT-KNOWN:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_SERVICE_NOT_AVAILABLE" link="gsignond-Errors.html#GSIGNOND-ERROR-SERVICE-NOT-AVAILABLE:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_INVALID_QUERY" link="gsignond-Errors.html#GSIGNOND-ERROR-INVALID-QUERY:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_IDENTITY_ERR" link="gsignond-Errors.html#GSIGNOND-ERROR-IDENTITY-ERR:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_METHOD_NOT_AVAILABLE" link="gsignond-Errors.html#GSIGNOND-ERROR-METHOD-NOT-AVAILABLE:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_IDENTITY_NOT_FOUND" link="gsignond-Errors.html#GSIGNOND-ERROR-IDENTITY-NOT-FOUND:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_STORE_FAILED" link="gsignond-Errors.html#GSIGNOND-ERROR-STORE-FAILED:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_REMOVE_FAILED" link="gsignond-Errors.html#GSIGNOND-ERROR-REMOVE-FAILED:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_SIGN_OUT_FAILED" link="gsignond-Errors.html#GSIGNOND-ERROR-SIGN-OUT-FAILED:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_IDENTITY_OPERATION_CANCELED" link="gsignond-Errors.html#GSIGNOND-ERROR-IDENTITY-OPERATION-CANCELED:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_CREDENTIALS_NOT_AVAILABLE" link="gsignond-Errors.html#GSIGNOND-ERROR-CREDENTIALS-NOT-AVAILABLE:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_REFERENCE_NOT_FOUND" link="gsignond-Errors.html#GSIGNOND-ERROR-REFERENCE-NOT-FOUND:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_AUTH_SESSION_ERR" link="gsignond-Errors.html#GSIGNOND-ERROR-AUTH-SESSION-ERR:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_MECHANISM_NOT_AVAILABLE" link="gsignond-Errors.html#GSIGNOND-ERROR-MECHANISM-NOT-AVAILABLE:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_MISSING_DATA" link="gsignond-Errors.html#GSIGNOND-ERROR-MISSING-DATA:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_INVALID_CREDENTIALS" link="gsignond-Errors.html#GSIGNOND-ERROR-INVALID-CREDENTIALS:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_NOT_AUTHORIZED" link="gsignond-Errors.html#GSIGNOND-ERROR-NOT-AUTHORIZED:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_WRONG_STATE" link="gsignond-Errors.html#GSIGNOND-ERROR-WRONG-STATE:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_OPERATION_NOT_SUPPORTED" link="gsignond-Errors.html#GSIGNOND-ERROR-OPERATION-NOT-SUPPORTED:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_NO_CONNECTION" link="gsignond-Errors.html#GSIGNOND-ERROR-NO-CONNECTION:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_NETWORK" link="gsignond-Errors.html#GSIGNOND-ERROR-NETWORK:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_SSL" link="gsignond-Errors.html#GSIGNOND-ERROR-SSL:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_RUNTIME" link="gsignond-Errors.html#GSIGNOND-ERROR-RUNTIME:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_SESSION_CANCELED" link="gsignond-Errors.html#GSIGNOND-ERROR-SESSION-CANCELED:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_TIMED_OUT" link="gsignond-Errors.html#GSIGNOND-ERROR-TIMED-OUT:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_USER_INTERACTION" link="gsignond-Errors.html#GSIGNOND-ERROR-USER-INTERACTION:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_OPERATION_FAILED" link="gsignond-Errors.html#GSIGNOND-ERROR-OPERATION-FAILED:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_ENCRYPTION_FAILED" link="gsignond-Errors.html#GSIGNOND-ERROR-ENCRYPTION-FAILED:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_TOS_NOT_ACCEPTED" link="gsignond-Errors.html#GSIGNOND-ERROR-TOS-NOT-ACCEPTED:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_FORGOT_PASSWORD" link="gsignond-Errors.html#GSIGNOND-ERROR-FORGOT-PASSWORD:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_METHOD_OR_MECHANISM_NOT_ALLOWED" link="gsignond-Errors.html#GSIGNOND-ERROR-METHOD-OR-MECHANISM-NOT-ALLOWED:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_INCORRECT_DATE" link="gsignond-Errors.html#GSIGNOND-ERROR-INCORRECT-DATE:CAPS"/>
- <keyword type="constant" name="GSIGNOND_ERROR_USER_ERR" link="gsignond-Errors.html#GSIGNOND-ERROR-USER-ERR:CAPS"/>
+ <keyword type="macro" name="DBG()" link="gsignond-Logging.html#DBG:CAPS"/>
+ <keyword type="function" name="gsignond_wipe_file ()" link="gsignond-Utility-functions.html#gsignond-wipe-file"/>
+ <keyword type="function" name="gsignond_wipe_directory ()" link="gsignond-Utility-functions.html#gsignond-wipe-directory"/>
+ <keyword type="function" name="gsignond_generate_nonce ()" link="gsignond-Utility-functions.html#gsignond-generate-nonce"/>
+ <keyword type="function" name="gsignond_sequence_to_variant ()" link="gsignond-Utility-functions.html#gsignond-sequence-to-variant"/>
+ <keyword type="function" name="gsignond_variant_to_sequence ()" link="gsignond-Utility-functions.html#gsignond-variant-to-sequence"/>
+ <keyword type="function" name="gsignond_sequence_to_array ()" link="gsignond-Utility-functions.html#gsignond-sequence-to-array"/>
+ <keyword type="function" name="gsignond_array_to_sequence ()" link="gsignond-Utility-functions.html#gsignond-array-to-sequence"/>
+ <keyword type="function" name="gsignond_copy_array_to_sequence ()" link="gsignond-Utility-functions.html#gsignond-copy-array-to-sequence"/>
+ <keyword type="function" name="gsignond_is_host_in_domain ()" link="gsignond-Utility-functions.html#gsignond-is-host-in-domain"/>
</functions>
</book>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>gsignond API Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: gsignond API Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
<link rel="next" href="ch01.html" title="GSignond building and installation">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<hr>
</div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
<dt><span class="chapter"><a href="ch01.html">GSignond building and installation</a></span></dt>
<dd><dl><dt>
<span class="refentrytitle"><a href="gsignond-building.html">Building and installing the gsignond daemon</a></span><span class="refpurpose"></span>
<span class="refentrytitle"><a href="gsignond-General-configuration.html">General configuration</a></span><span class="refpurpose"> — gSSO general configuration keys</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="gsignond-Database-configuration.html">Database configuration</a></span><span class="refpurpose"> — gSSO database configuration keys</span>
-</dt>
-<dt>
<span class="refentrytitle"><a href="gsignond-DBus-configuration.html">DBus configuration</a></span><span class="refpurpose"> — gSSO dbus configuration keys</span>
</dt>
</dl></dd>
-<dt><span class="chapter"><a href="ch03.html">GSignond API for writing authentication plugins</a></span></dt>
+<dt><span class="chapter"><a href="ch03.html">Authentication plugins, plugin loaders and D-Bus IPC</a></span></dt>
+<dd><dl><dt>
+<span class="refentrytitle"><a href="gsignond-plugin-loaders-overview.html">Overview of GSignond's authentication plugin subsystem</a></span><span class="refpurpose"></span>
+</dt></dl></dd>
+<dt><span class="chapter"><a href="ch04.html">GSignond API for writing GLib-based authentication plugins</a></span></dt>
<dd><dl>
<dt>
-<span class="refentrytitle"><a href="gsignond-GSignondPlugin.html">GSignondPlugin</a></span><span class="refpurpose"> — an interface for implementing authentication plugins</span>
+<span class="refentrytitle"><a href="GSignondPlugin.html">GSignondPlugin</a></span><span class="refpurpose"> — an interface for implementing GLib-based authentication plugins</span>
</dt>
<dt>
<span class="refentrytitle"><a href="gsignond-GSignondDictionary.html">GSignondDictionary</a></span><span class="refpurpose"> — a dictionary container holding string keys and variant values</span>
<span class="refentrytitle"><a href="gsignond-GSignondSignonuiData.html">GSignondSignonuiData</a></span><span class="refpurpose"> — definitions for user interaction parameters</span>
</dt>
</dl></dd>
-<dt><span class="chapter"><a href="ch04.html">Standard in-tree authentication plugins</a></span></dt>
+<dt><span class="chapter"><a href="ch05.html">Standard in-tree authentication plugins</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="GSignondDigestPlugin.html">GSignondDigestPlugin</a></span><span class="refpurpose"> — a plugin that performs HTTP Digest authentication</span>
<span class="refentrytitle"><a href="GSignondPasswordPlugin.html">GSignondPasswordPlugin</a></span><span class="refpurpose"> — a plugin for retrieving the username/password</span>
</dt>
</dl></dd>
-<dt><span class="chapter"><a href="ch05.html">GSignond API for writing platform adaptation extensions</a></span></dt>
+<dt><span class="chapter"><a href="ch06.html">GSignond API for writing platform adaptation extensions</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="GSignondExtension.html">GSignondExtension</a></span><span class="refpurpose"> — provides platform adaptation functionality</span>
<span class="refentrytitle"><a href="GSignondCredentials.html">GSignondCredentials</a></span><span class="refpurpose"> — credentials (username, password) associated with an identity</span>
</dt>
</dl></dd>
-<dt><span class="chapter"><a href="ch06.html">Miscellaneous</a></span></dt>
+<dt><span class="chapter"><a href="ch07.html">Miscellaneous</a></span></dt>
<dd><dl>
<dt>
<span class="refentrytitle"><a href="gsignond-Errors.html">Errors</a></span><span class="refpurpose"> — error definitions and utilities</span>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
<ANCHOR id="extra-configuration-options" href="gsignond/gsignond-building.html#extra-configuration-options">
<ANCHOR id="building-packages" href="gsignond/gsignond-building.html#building-packages">
<ANCHOR id="GSignondConfig" href="gsignond/GSignondConfig.html">
-<ANCHOR id="GSignondConfig.synopsis" href="gsignond/GSignondConfig.html#GSignondConfig.synopsis">
+<ANCHOR id="GSignondConfig.functions" href="gsignond/GSignondConfig.html#GSignondConfig.functions">
<ANCHOR id="GSignondConfig.object-hierarchy" href="gsignond/GSignondConfig.html#GSignondConfig.object-hierarchy">
+<ANCHOR id="GSignondConfig.includes" href="gsignond/GSignondConfig.html#GSignondConfig.includes">
<ANCHOR id="GSignondConfig.description" href="gsignond/GSignondConfig.html#GSignondConfig.description">
-<ANCHOR id="GSignondConfig.details" href="gsignond/GSignondConfig.html#GSignondConfig.details">
-<ANCHOR id="GSignondConfig-struct" href="gsignond/GSignondConfig.html#GSignondConfig-struct">
-<ANCHOR id="GSignondConfigClass" href="gsignond/GSignondConfig.html#GSignondConfigClass">
-<ANCHOR id="gsignond-config-get-integer" href="gsignond/GSignondConfig.html#gsignond-config-get-integer">
-<ANCHOR id="gsignond-config-get-string" href="gsignond/GSignondConfig.html#gsignond-config-get-string">
+<ANCHOR id="GSignondConfig.functions_details" href="gsignond/GSignondConfig.html#GSignondConfig.functions_details">
<ANCHOR id="gsignond-config-new" href="gsignond/GSignondConfig.html#gsignond-config-new">
+<ANCHOR id="gsignond-config-get-integer" href="gsignond/GSignondConfig.html#gsignond-config-get-integer">
<ANCHOR id="gsignond-config-set-integer" href="gsignond/GSignondConfig.html#gsignond-config-set-integer">
+<ANCHOR id="gsignond-config-get-string" href="gsignond/GSignondConfig.html#gsignond-config-get-string">
<ANCHOR id="gsignond-config-set-string" href="gsignond/GSignondConfig.html#gsignond-config-set-string">
+<ANCHOR id="GSignondConfig.other_details" href="gsignond/GSignondConfig.html#GSignondConfig.other_details">
<ANCHOR id="gsignond-General-configuration" href="gsignond/gsignond-General-configuration.html">
-<ANCHOR id="gsignond-General-configuration.synopsis" href="gsignond/gsignond-General-configuration.html#gsignond-General-configuration.synopsis">
+<ANCHOR id="gsignond-General-configuration.other" href="gsignond/gsignond-General-configuration.html#gsignond-General-configuration.other">
+<ANCHOR id="gsignond-General-configuration.object-hierarchy" href="gsignond/gsignond-General-configuration.html#gsignond-General-configuration.object-hierarchy">
+<ANCHOR id="gsignond-General-configuration.includes" href="gsignond/gsignond-General-configuration.html#gsignond-General-configuration.includes">
<ANCHOR id="gsignond-General-configuration.description" href="gsignond/gsignond-General-configuration.html#gsignond-General-configuration.description">
-<ANCHOR id="gsignond-General-configuration.details" href="gsignond/gsignond-General-configuration.html#gsignond-General-configuration.details">
+<ANCHOR id="gsignond-General-configuration.functions_details" href="gsignond/gsignond-General-configuration.html#gsignond-General-configuration.functions_details">
+<ANCHOR id="gsignond-General-configuration.other_details" href="gsignond/gsignond-General-configuration.html#gsignond-General-configuration.other_details">
<ANCHOR id="GSIGNOND-CONFIG-GENERAL:CAPS" href="gsignond/gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL:CAPS">
-<ANCHOR id="GSIGNOND-CONFIG-GENERAL-BIN-DIR:CAPS" href="gsignond/gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-BIN-DIR:CAPS">
+<ANCHOR id="GSIGNOND-CONFIG-GENERAL-STORAGE-PATH:CAPS" href="gsignond/gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-STORAGE-PATH:CAPS">
<ANCHOR id="GSIGNOND-CONFIG-GENERAL-EXTENSION:CAPS" href="gsignond/gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-EXTENSION:CAPS">
-<ANCHOR id="GSIGNOND-CONFIG-GENERAL-EXTENSIONS-DIR:CAPS" href="gsignond/gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-EXTENSIONS-DIR:CAPS">
-<ANCHOR id="GSIGNOND-CONFIG-GENERAL-PLUGINS-DIR:CAPS" href="gsignond/gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-PLUGINS-DIR:CAPS">
<ANCHOR id="GSIGNOND-CONFIG-GENERAL-SECURE-DIR:CAPS" href="gsignond/gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-SECURE-DIR:CAPS">
-<ANCHOR id="GSIGNOND-CONFIG-GENERAL-STORAGE-PATH:CAPS" href="gsignond/gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-STORAGE-PATH:CAPS">
<ANCHOR id="GSIGNOND-CONFIG-PLUGIN-TIMEOUT:CAPS" href="gsignond/gsignond-General-configuration.html#GSIGNOND-CONFIG-PLUGIN-TIMEOUT:CAPS">
-<ANCHOR id="gsignond-Database-configuration" href="gsignond/gsignond-Database-configuration.html">
-<ANCHOR id="gsignond-Database-configuration.synopsis" href="gsignond/gsignond-Database-configuration.html#gsignond-Database-configuration.synopsis">
-<ANCHOR id="gsignond-Database-configuration.description" href="gsignond/gsignond-Database-configuration.html#gsignond-Database-configuration.description">
-<ANCHOR id="gsignond-Database-configuration.details" href="gsignond/gsignond-Database-configuration.html#gsignond-Database-configuration.details">
-<ANCHOR id="GSIGNOND-CONFIG-DB-METADATA-DB-FILENAME:CAPS" href="gsignond/gsignond-Database-configuration.html#GSIGNOND-CONFIG-DB-METADATA-DB-FILENAME:CAPS">
-<ANCHOR id="GSIGNOND-CONFIG-DB-SECRET-DB-FILENAME:CAPS" href="gsignond/gsignond-Database-configuration.html#GSIGNOND-CONFIG-DB-SECRET-DB-FILENAME:CAPS">
-<ANCHOR id="GSIGNOND-CONFIG-DB-SSO:CAPS" href="gsignond/gsignond-Database-configuration.html#GSIGNOND-CONFIG-DB-SSO:CAPS">
+<ANCHOR id="GSIGNOND-CONFIG-GENERAL-KEYCHAIN-SYSCTX:CAPS" href="gsignond/gsignond-General-configuration.html#GSIGNOND-CONFIG-GENERAL-KEYCHAIN-SYSCTX:CAPS">
<ANCHOR id="gsignond-DBus-configuration" href="gsignond/gsignond-DBus-configuration.html">
-<ANCHOR id="gsignond-DBus-configuration.synopsis" href="gsignond/gsignond-DBus-configuration.html#gsignond-DBus-configuration.synopsis">
+<ANCHOR id="gsignond-DBus-configuration.other" href="gsignond/gsignond-DBus-configuration.html#gsignond-DBus-configuration.other">
+<ANCHOR id="gsignond-DBus-configuration.object-hierarchy" href="gsignond/gsignond-DBus-configuration.html#gsignond-DBus-configuration.object-hierarchy">
+<ANCHOR id="gsignond-DBus-configuration.includes" href="gsignond/gsignond-DBus-configuration.html#gsignond-DBus-configuration.includes">
<ANCHOR id="gsignond-DBus-configuration.description" href="gsignond/gsignond-DBus-configuration.html#gsignond-DBus-configuration.description">
-<ANCHOR id="gsignond-DBus-configuration.details" href="gsignond/gsignond-DBus-configuration.html#gsignond-DBus-configuration.details">
-<ANCHOR id="GSIGNOND-CONFIG-DBUS-AUTH-SESSION-TIMEOUT:CAPS" href="gsignond/gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-AUTH-SESSION-TIMEOUT:CAPS">
+<ANCHOR id="gsignond-DBus-configuration.functions_details" href="gsignond/gsignond-DBus-configuration.html#gsignond-DBus-configuration.functions_details">
+<ANCHOR id="gsignond-DBus-configuration.other_details" href="gsignond/gsignond-DBus-configuration.html#gsignond-DBus-configuration.other_details">
+<ANCHOR id="GSIGNOND-CONFIG-DBUS-TIMEOUTS:CAPS" href="gsignond/gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-TIMEOUTS:CAPS">
<ANCHOR id="GSIGNOND-CONFIG-DBUS-DAEMON-TIMEOUT:CAPS" href="gsignond/gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-DAEMON-TIMEOUT:CAPS">
<ANCHOR id="GSIGNOND-CONFIG-DBUS-IDENTITY-TIMEOUT:CAPS" href="gsignond/gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-IDENTITY-TIMEOUT:CAPS">
-<ANCHOR id="GSIGNOND-CONFIG-DBUS-TIMEOUTS:CAPS" href="gsignond/gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-TIMEOUTS:CAPS">
-<ANCHOR id="gsignond-GSignondPlugin" href="gsignond/gsignond-GSignondPlugin.html">
-<ANCHOR id="gsignond-GSignondPlugin.synopsis" href="gsignond/gsignond-GSignondPlugin.html#gsignond-GSignondPlugin.synopsis">
-<ANCHOR id="gsignond-GSignondPlugin.description" href="gsignond/gsignond-GSignondPlugin.html#gsignond-GSignondPlugin.description">
-<ANCHOR id="gsignond-GSignondPlugin.details" href="gsignond/gsignond-GSignondPlugin.html#gsignond-GSignondPlugin.details">
-<ANCHOR id="GSignondPluginInterface" href="gsignond/gsignond-GSignondPlugin.html#GSignondPluginInterface">
-<ANCHOR id="GSignondPluginState" href="gsignond/gsignond-GSignondPlugin.html#GSignondPluginState">
-<ANCHOR id="GSIGNOND-PLUGIN-STATE-NONE:CAPS" href="gsignond/gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-NONE:CAPS">
-<ANCHOR id="GSIGNOND-PLUGIN-STATE-RESOLVING:CAPS" href="gsignond/gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-RESOLVING:CAPS">
-<ANCHOR id="GSIGNOND-PLUGIN-STATE-CONNECTING:CAPS" href="gsignond/gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-CONNECTING:CAPS">
-<ANCHOR id="GSIGNOND-PLUGIN-STATE-SENDING-DATA:CAPS" href="gsignond/gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-SENDING-DATA:CAPS">
-<ANCHOR id="GSIGNOND-PLUGIN-STATE-WAITING:CAPS" href="gsignond/gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-WAITING:CAPS">
-<ANCHOR id="GSIGNOND-PLUGIN-STATE-USER-PENDING:CAPS" href="gsignond/gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-USER-PENDING:CAPS">
-<ANCHOR id="GSIGNOND-PLUGIN-STATE-REFRESHING:CAPS" href="gsignond/gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-REFRESHING:CAPS">
-<ANCHOR id="GSIGNOND-PLUGIN-STATE-PROCESS-PENDING:CAPS" href="gsignond/gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-PROCESS-PENDING:CAPS">
-<ANCHOR id="GSIGNOND-PLUGIN-STATE-STARTED:CAPS" href="gsignond/gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-STARTED:CAPS">
-<ANCHOR id="GSIGNOND-PLUGIN-STATE-CANCELING:CAPS" href="gsignond/gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-CANCELING:CAPS">
-<ANCHOR id="GSIGNOND-PLUGIN-STATE-DONE:CAPS" href="gsignond/gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-DONE:CAPS">
-<ANCHOR id="GSIGNOND-PLUGIN-STATE-HOLDING:CAPS" href="gsignond/gsignond-GSignondPlugin.html#GSIGNOND-PLUGIN-STATE-HOLDING:CAPS">
-<ANCHOR id="gsignond-plugin-cancel" href="gsignond/gsignond-GSignondPlugin.html#gsignond-plugin-cancel">
-<ANCHOR id="gsignond-plugin-error" href="gsignond/gsignond-GSignondPlugin.html#gsignond-plugin-error">
-<ANCHOR id="gsignond-plugin-refresh" href="gsignond/gsignond-GSignondPlugin.html#gsignond-plugin-refresh">
-<ANCHOR id="gsignond-plugin-refreshed" href="gsignond/gsignond-GSignondPlugin.html#gsignond-plugin-refreshed">
-<ANCHOR id="gsignond-plugin-request" href="gsignond/gsignond-GSignondPlugin.html#gsignond-plugin-request">
-<ANCHOR id="gsignond-plugin-request-initial" href="gsignond/gsignond-GSignondPlugin.html#gsignond-plugin-request-initial">
-<ANCHOR id="gsignond-plugin-response" href="gsignond/gsignond-GSignondPlugin.html#gsignond-plugin-response">
-<ANCHOR id="gsignond-plugin-response-final" href="gsignond/gsignond-GSignondPlugin.html#gsignond-plugin-response-final">
-<ANCHOR id="gsignond-plugin-status-changed" href="gsignond/gsignond-GSignondPlugin.html#gsignond-plugin-status-changed">
-<ANCHOR id="gsignond-plugin-store" href="gsignond/gsignond-GSignondPlugin.html#gsignond-plugin-store">
-<ANCHOR id="gsignond-plugin-user-action-finished" href="gsignond/gsignond-GSignondPlugin.html#gsignond-plugin-user-action-finished">
-<ANCHOR id="gsignond-plugin-user-action-required" href="gsignond/gsignond-GSignondPlugin.html#gsignond-plugin-user-action-required">
+<ANCHOR id="GSIGNOND-CONFIG-DBUS-AUTH-SESSION-TIMEOUT:CAPS" href="gsignond/gsignond-DBus-configuration.html#GSIGNOND-CONFIG-DBUS-AUTH-SESSION-TIMEOUT:CAPS">
+<ANCHOR id="gsignond-plugin-loaders-overview" href="gsignond/gsignond-plugin-loaders-overview.html">
+<ANCHOR id="intro" href="gsignond/gsignond-plugin-loaders-overview.html#intro">
+<ANCHOR id="GSignondPlugin" href="gsignond/GSignondPlugin.html">
+<ANCHOR id="GSignondPlugin.functions" href="gsignond/GSignondPlugin.html#GSignondPlugin.functions">
+<ANCHOR id="GSignondPlugin.properties" href="gsignond/GSignondPlugin.html#GSignondPlugin.properties">
+<ANCHOR id="GSignondPlugin.signals" href="gsignond/GSignondPlugin.html#GSignondPlugin.signals">
+<ANCHOR id="GSignondPlugin.other" href="gsignond/GSignondPlugin.html#GSignondPlugin.other">
+<ANCHOR id="GSignondPlugin.object-hierarchy" href="gsignond/GSignondPlugin.html#GSignondPlugin.object-hierarchy">
+<ANCHOR id="GSignondPlugin.includes" href="gsignond/GSignondPlugin.html#GSignondPlugin.includes">
+<ANCHOR id="GSignondPlugin.description" href="gsignond/GSignondPlugin.html#GSignondPlugin.description">
+<ANCHOR id="GSignondPlugin.functions_details" href="gsignond/GSignondPlugin.html#GSignondPlugin.functions_details">
+<ANCHOR id="gsignond-plugin-cancel" href="gsignond/GSignondPlugin.html#gsignond-plugin-cancel">
+<ANCHOR id="gsignond-plugin-request-initial" href="gsignond/GSignondPlugin.html#gsignond-plugin-request-initial">
+<ANCHOR id="gsignond-plugin-request" href="gsignond/GSignondPlugin.html#gsignond-plugin-request">
+<ANCHOR id="gsignond-plugin-user-action-finished" href="gsignond/GSignondPlugin.html#gsignond-plugin-user-action-finished">
+<ANCHOR id="gsignond-plugin-refresh" href="gsignond/GSignondPlugin.html#gsignond-plugin-refresh">
+<ANCHOR id="gsignond-plugin-response" href="gsignond/GSignondPlugin.html#gsignond-plugin-response">
+<ANCHOR id="gsignond-plugin-response-final" href="gsignond/GSignondPlugin.html#gsignond-plugin-response-final">
+<ANCHOR id="gsignond-plugin-store" href="gsignond/GSignondPlugin.html#gsignond-plugin-store">
+<ANCHOR id="gsignond-plugin-error" href="gsignond/GSignondPlugin.html#gsignond-plugin-error">
+<ANCHOR id="gsignond-plugin-user-action-required" href="gsignond/GSignondPlugin.html#gsignond-plugin-user-action-required">
+<ANCHOR id="gsignond-plugin-refreshed" href="gsignond/GSignondPlugin.html#gsignond-plugin-refreshed">
+<ANCHOR id="gsignond-plugin-status-changed" href="gsignond/GSignondPlugin.html#gsignond-plugin-status-changed">
+<ANCHOR id="GSignondPlugin.other_details" href="gsignond/GSignondPlugin.html#GSignondPlugin.other_details">
+<ANCHOR id="GSignondPluginState" href="gsignond/GSignondPlugin.html#GSignondPluginState">
+<ANCHOR id="GSignondPluginInterface" href="gsignond/GSignondPlugin.html#GSignondPluginInterface">
+<ANCHOR id="GSignondPlugin.property-details" href="gsignond/GSignondPlugin.html#GSignondPlugin.property-details">
+<ANCHOR id="GSignondPlugin--mechanisms" href="gsignond/GSignondPlugin.html#GSignondPlugin--mechanisms">
+<ANCHOR id="GSignondPlugin--type" href="gsignond/GSignondPlugin.html#GSignondPlugin--type">
+<ANCHOR id="GSignondPlugin.signal-details" href="gsignond/GSignondPlugin.html#GSignondPlugin.signal-details">
+<ANCHOR id="GSignondPlugin-error" href="gsignond/GSignondPlugin.html#GSignondPlugin-error">
+<ANCHOR id="GSignondPlugin-refreshed" href="gsignond/GSignondPlugin.html#GSignondPlugin-refreshed">
+<ANCHOR id="GSignondPlugin-response" href="gsignond/GSignondPlugin.html#GSignondPlugin-response">
+<ANCHOR id="GSignondPlugin-response-final" href="gsignond/GSignondPlugin.html#GSignondPlugin-response-final">
+<ANCHOR id="GSignondPlugin-status-changed" href="gsignond/GSignondPlugin.html#GSignondPlugin-status-changed">
+<ANCHOR id="GSignondPlugin-store" href="gsignond/GSignondPlugin.html#GSignondPlugin-store">
+<ANCHOR id="GSignondPlugin-user-action-required" href="gsignond/GSignondPlugin.html#GSignondPlugin-user-action-required">
<ANCHOR id="gsignond-GSignondDictionary" href="gsignond/gsignond-GSignondDictionary.html">
-<ANCHOR id="gsignond-GSignondDictionary.synopsis" href="gsignond/gsignond-GSignondDictionary.html#gsignond-GSignondDictionary.synopsis">
+<ANCHOR id="gsignond-GSignondDictionary.functions" href="gsignond/gsignond-GSignondDictionary.html#gsignond-GSignondDictionary.functions">
+<ANCHOR id="gsignond-GSignondDictionary.object-hierarchy" href="gsignond/gsignond-GSignondDictionary.html#gsignond-GSignondDictionary.object-hierarchy">
+<ANCHOR id="gsignond-GSignondDictionary.includes" href="gsignond/gsignond-GSignondDictionary.html#gsignond-GSignondDictionary.includes">
<ANCHOR id="gsignond-GSignondDictionary.description" href="gsignond/gsignond-GSignondDictionary.html#gsignond-GSignondDictionary.description">
-<ANCHOR id="gsignond-GSignondDictionary.details" href="gsignond/gsignond-GSignondDictionary.html#gsignond-GSignondDictionary.details">
-<ANCHOR id="GSignondDictionary" href="gsignond/gsignond-GSignondDictionary.html#GSignondDictionary">
-<ANCHOR id="gsignond-dictionary-copy" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-copy">
-<ANCHOR id="gsignond-dictionary-get" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-get">
-<ANCHOR id="gsignond-dictionary-get-boolean" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-get-boolean">
-<ANCHOR id="gsignond-dictionary-get-int32" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-get-int32">
-<ANCHOR id="gsignond-dictionary-get-int64" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-get-int64">
-<ANCHOR id="gsignond-dictionary-get-string" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-get-string">
-<ANCHOR id="gsignond-dictionary-get-uint32" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint32">
-<ANCHOR id="gsignond-dictionary-get-uint64" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint64">
+<ANCHOR id="gsignond-GSignondDictionary.functions_details" href="gsignond/gsignond-GSignondDictionary.html#gsignond-GSignondDictionary.functions_details">
<ANCHOR id="gsignond-dictionary-new" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-new">
-<ANCHOR id="gsignond-dictionary-new-from-variant" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-new-from-variant">
<ANCHOR id="gsignond-dictionary-ref" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-ref">
-<ANCHOR id="gsignond-dictionary-remove" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-remove">
+<ANCHOR id="gsignond-dictionary-unref" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-unref">
+<ANCHOR id="gsignond-dictionary-copy" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-copy">
+<ANCHOR id="gsignond-dictionary-new-from-variant" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-new-from-variant">
+<ANCHOR id="gsignond-dictionary-to-variant" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-to-variant">
+<ANCHOR id="gsignond-dictionary-to-variant-builder" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-to-variant-builder">
+<ANCHOR id="gsignond-dictionary-get" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-get">
<ANCHOR id="gsignond-dictionary-set" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-set">
+<ANCHOR id="gsignond-dictionary-get-boolean" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-get-boolean">
<ANCHOR id="gsignond-dictionary-set-boolean" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-set-boolean">
+<ANCHOR id="gsignond-dictionary-get-int32" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-get-int32">
<ANCHOR id="gsignond-dictionary-set-int32" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-set-int32">
-<ANCHOR id="gsignond-dictionary-set-int64" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-set-int64">
-<ANCHOR id="gsignond-dictionary-set-string" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-set-string">
+<ANCHOR id="gsignond-dictionary-get-uint32" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint32">
<ANCHOR id="gsignond-dictionary-set-uint32" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-set-uint32">
+<ANCHOR id="gsignond-dictionary-get-int64" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-get-int64">
+<ANCHOR id="gsignond-dictionary-set-int64" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-set-int64">
+<ANCHOR id="gsignond-dictionary-get-uint64" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-get-uint64">
<ANCHOR id="gsignond-dictionary-set-uint64" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-set-uint64">
-<ANCHOR id="gsignond-dictionary-to-variant" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-to-variant">
-<ANCHOR id="gsignond-dictionary-unref" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-unref">
+<ANCHOR id="gsignond-dictionary-get-string" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-get-string">
+<ANCHOR id="gsignond-dictionary-set-string" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-set-string">
+<ANCHOR id="gsignond-dictionary-remove" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-remove">
+<ANCHOR id="gsignond-dictionary-contains" href="gsignond/gsignond-GSignondDictionary.html#gsignond-dictionary-contains">
+<ANCHOR id="gsignond-GSignondDictionary.other_details" href="gsignond/gsignond-GSignondDictionary.html#gsignond-GSignondDictionary.other_details">
<ANCHOR id="gsignond-GSignondSessionData" href="gsignond/gsignond-GSignondSessionData.html">
-<ANCHOR id="gsignond-GSignondSessionData.synopsis" href="gsignond/gsignond-GSignondSessionData.html#gsignond-GSignondSessionData.synopsis">
+<ANCHOR id="gsignond-GSignondSessionData.functions" href="gsignond/gsignond-GSignondSessionData.html#gsignond-GSignondSessionData.functions">
+<ANCHOR id="gsignond-GSignondSessionData.other" href="gsignond/gsignond-GSignondSessionData.html#gsignond-GSignondSessionData.other">
+<ANCHOR id="gsignond-GSignondSessionData.object-hierarchy" href="gsignond/gsignond-GSignondSessionData.html#gsignond-GSignondSessionData.object-hierarchy">
+<ANCHOR id="gsignond-GSignondSessionData.includes" href="gsignond/gsignond-GSignondSessionData.html#gsignond-GSignondSessionData.includes">
<ANCHOR id="gsignond-GSignondSessionData.description" href="gsignond/gsignond-GSignondSessionData.html#gsignond-GSignondSessionData.description">
-<ANCHOR id="gsignond-GSignondSessionData.details" href="gsignond/gsignond-GSignondSessionData.html#gsignond-GSignondSessionData.details">
-<ANCHOR id="GSignondSessionData" href="gsignond/gsignond-GSignondSessionData.html#GSignondSessionData">
-<ANCHOR id="GSignondUiPolicy" href="gsignond/gsignond-GSignondSessionData.html#GSignondUiPolicy">
-<ANCHOR id="GSIGNOND-UI-POLICY-DEFAULT:CAPS" href="gsignond/gsignond-GSignondSessionData.html#GSIGNOND-UI-POLICY-DEFAULT:CAPS">
-<ANCHOR id="GSIGNOND-UI-POLICY-REQUEST-PASSWORD:CAPS" href="gsignond/gsignond-GSignondSessionData.html#GSIGNOND-UI-POLICY-REQUEST-PASSWORD:CAPS">
-<ANCHOR id="GSIGNOND-UI-POLICY-NO-USER-INTERACTION:CAPS" href="gsignond/gsignond-GSignondSessionData.html#GSIGNOND-UI-POLICY-NO-USER-INTERACTION:CAPS">
-<ANCHOR id="GSIGNOND-UI-POLICY-VALIDATION:CAPS" href="gsignond/gsignond-GSignondSessionData.html#GSIGNOND-UI-POLICY-VALIDATION:CAPS">
-<ANCHOR id="gsignond-session-data-get-caption" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-caption">
-<ANCHOR id="gsignond-session-data-get-network-proxy" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-network-proxy">
-<ANCHOR id="gsignond-session-data-get-network-timeout" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-network-timeout">
+<ANCHOR id="gsignond-GSignondSessionData.functions_details" href="gsignond/gsignond-GSignondSessionData.html#gsignond-GSignondSessionData.functions_details">
+<ANCHOR id="gsignond-session-data-get-username" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-username">
+<ANCHOR id="gsignond-session-data-set-username" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-username">
+<ANCHOR id="gsignond-session-data-get-secret" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-secret">
+<ANCHOR id="gsignond-session-data-set-secret" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-secret">
<ANCHOR id="gsignond-session-data-get-realm" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-realm">
+<ANCHOR id="gsignond-session-data-set-realm" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-realm">
+<ANCHOR id="gsignond-session-data-get-allowed-realms" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-allowed-realms">
+<ANCHOR id="gsignond-session-data-set-allowed-realms" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-allowed-realms">
+<ANCHOR id="gsignond-session-data-get-caption" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-caption">
+<ANCHOR id="gsignond-session-data-set-caption" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-caption">
<ANCHOR id="gsignond-session-data-get-renew-token" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-renew-token">
-<ANCHOR id="gsignond-session-data-get-secret" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-secret">
+<ANCHOR id="gsignond-session-data-set-renew-token" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-renew-token">
<ANCHOR id="gsignond-session-data-get-ui-policy" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-ui-policy">
-<ANCHOR id="gsignond-session-data-get-username" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-username">
-<ANCHOR id="gsignond-session-data-get-window-id" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-window-id">
-<ANCHOR id="gsignond-session-data-set-caption" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-caption">
+<ANCHOR id="gsignond-session-data-set-ui-policy" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-ui-policy">
+<ANCHOR id="gsignond-session-data-get-network-proxy" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-network-proxy">
<ANCHOR id="gsignond-session-data-set-network-proxy" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-network-proxy">
+<ANCHOR id="gsignond-session-data-get-network-timeout" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-network-timeout">
<ANCHOR id="gsignond-session-data-set-network-timeout" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-network-timeout">
-<ANCHOR id="gsignond-session-data-set-realm" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-realm">
-<ANCHOR id="gsignond-session-data-set-renew-token" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-renew-token">
-<ANCHOR id="gsignond-session-data-set-secret" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-secret">
-<ANCHOR id="gsignond-session-data-set-ui-policy" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-ui-policy">
-<ANCHOR id="gsignond-session-data-set-username" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-username">
+<ANCHOR id="gsignond-session-data-get-window-id" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-get-window-id">
<ANCHOR id="gsignond-session-data-set-window-id" href="gsignond/gsignond-GSignondSessionData.html#gsignond-session-data-set-window-id">
+<ANCHOR id="gsignond-GSignondSessionData.other_details" href="gsignond/gsignond-GSignondSessionData.html#gsignond-GSignondSessionData.other_details">
+<ANCHOR id="GSignondUiPolicy" href="gsignond/gsignond-GSignondSessionData.html#GSignondUiPolicy">
<ANCHOR id="gsignond-GSignondSignonuiData" href="gsignond/gsignond-GSignondSignonuiData.html">
-<ANCHOR id="gsignond-GSignondSignonuiData.synopsis" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-GSignondSignonuiData.synopsis">
+<ANCHOR id="gsignond-GSignondSignonuiData.functions" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-GSignondSignonuiData.functions">
+<ANCHOR id="gsignond-GSignondSignonuiData.other" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-GSignondSignonuiData.other">
+<ANCHOR id="gsignond-GSignondSignonuiData.object-hierarchy" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-GSignondSignonuiData.object-hierarchy">
+<ANCHOR id="gsignond-GSignondSignonuiData.includes" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-GSignondSignonuiData.includes">
<ANCHOR id="gsignond-GSignondSignonuiData.description" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-GSignondSignonuiData.description">
-<ANCHOR id="gsignond-GSignondSignonuiData.details" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-GSignondSignonuiData.details">
-<ANCHOR id="GSignondSignonuiData" href="gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiData">
-<ANCHOR id="GSignondSignonuiError" href="gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiError">
-<ANCHOR id="SIGNONUI-ERROR-NONE:CAPS" href="gsignond/gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-NONE:CAPS">
-<ANCHOR id="SIGNONUI-ERROR-GENERAL:CAPS" href="gsignond/gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-GENERAL:CAPS">
-<ANCHOR id="SIGNONUI-ERROR-NO-SIGNONUI:CAPS" href="gsignond/gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-NO-SIGNONUI:CAPS">
-<ANCHOR id="SIGNONUI-ERROR-BAD-PARAMETERS:CAPS" href="gsignond/gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-BAD-PARAMETERS:CAPS">
-<ANCHOR id="SIGNONUI-ERROR-CANCELED:CAPS" href="gsignond/gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-CANCELED:CAPS">
-<ANCHOR id="SIGNONUI-ERROR-NOT-AVAILABLE:CAPS" href="gsignond/gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-NOT-AVAILABLE:CAPS">
-<ANCHOR id="SIGNONUI-ERROR-BAD-URL:CAPS" href="gsignond/gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-BAD-URL:CAPS">
-<ANCHOR id="SIGNONUI-ERROR-BAD-CAPTCHA:CAPS" href="gsignond/gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-BAD-CAPTCHA:CAPS">
-<ANCHOR id="SIGNONUI-ERROR-BAD-CAPTCHA-URL:CAPS" href="gsignond/gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-BAD-CAPTCHA-URL:CAPS">
-<ANCHOR id="SIGNONUI-ERROR-REFRESH-FAILED:CAPS" href="gsignond/gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-REFRESH-FAILED:CAPS">
-<ANCHOR id="SIGNONUI-ERROR-FORBIDDEN:CAPS" href="gsignond/gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-FORBIDDEN:CAPS">
-<ANCHOR id="SIGNONUI-ERROR-FORGOT-PASSWORD:CAPS" href="gsignond/gsignond-GSignondSignonuiData.html#SIGNONUI-ERROR-FORGOT-PASSWORD:CAPS">
+<ANCHOR id="gsignond-GSignondSignonuiData.functions_details" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-GSignondSignonuiData.functions_details">
<ANCHOR id="gsignond-signonui-data-get-captcha-response" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-captcha-response">
-<ANCHOR id="gsignond-signonui-data-get-captcha-url" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-captcha-url">
-<ANCHOR id="gsignond-signonui-data-get-caption" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-caption">
-<ANCHOR id="gsignond-signonui-data-get-confirm" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-confirm">
-<ANCHOR id="gsignond-signonui-data-get-final-url" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-final-url">
-<ANCHOR id="gsignond-signonui-data-get-forgot-password" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password">
-<ANCHOR id="gsignond-signonui-data-get-forgot-password-url" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password-url">
-<ANCHOR id="gsignond-signonui-data-get-message" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-message">
-<ANCHOR id="gsignond-signonui-data-get-open-url" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-open-url">
-<ANCHOR id="gsignond-signonui-data-get-password" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-password">
-<ANCHOR id="gsignond-signonui-data-get-query-error" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-error">
-<ANCHOR id="gsignond-signonui-data-get-query-password" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-password">
-<ANCHOR id="gsignond-signonui-data-get-query-username" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-username">
-<ANCHOR id="gsignond-signonui-data-get-remember-password" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-remember-password">
-<ANCHOR id="gsignond-signonui-data-get-request-id" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-request-id">
-<ANCHOR id="gsignond-signonui-data-get-test-reply" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-test-reply">
-<ANCHOR id="gsignond-signonui-data-get-title" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-title">
-<ANCHOR id="gsignond-signonui-data-get-url-response" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-url-response">
-<ANCHOR id="gsignond-signonui-data-get-username" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-username">
<ANCHOR id="gsignond-signonui-data-set-captcha-response" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-captcha-response">
+<ANCHOR id="gsignond-signonui-data-get-captcha-url" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-captcha-url">
<ANCHOR id="gsignond-signonui-data-set-captcha-url" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-captcha-url">
+<ANCHOR id="gsignond-signonui-data-get-caption" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-caption">
<ANCHOR id="gsignond-signonui-data-set-caption" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-caption">
+<ANCHOR id="gsignond-signonui-data-get-confirm" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-confirm">
<ANCHOR id="gsignond-signonui-data-set-confirm" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-confirm">
+<ANCHOR id="gsignond-signonui-data-get-final-url" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-final-url">
<ANCHOR id="gsignond-signonui-data-set-final-url" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-final-url">
+<ANCHOR id="gsignond-signonui-data-get-forgot-password" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password">
<ANCHOR id="gsignond-signonui-data-set-forgot-password" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-forgot-password">
+<ANCHOR id="gsignond-signonui-data-get-forgot-password-url" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-forgot-password-url">
<ANCHOR id="gsignond-signonui-data-set-forgot-password-url" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-forgot-password-url">
+<ANCHOR id="gsignond-signonui-data-get-message" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-message">
<ANCHOR id="gsignond-signonui-data-set-message" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-message">
+<ANCHOR id="gsignond-signonui-data-get-open-url" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-open-url">
<ANCHOR id="gsignond-signonui-data-set-open-url" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-open-url">
+<ANCHOR id="gsignond-signonui-data-get-password" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-password">
<ANCHOR id="gsignond-signonui-data-set-password" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-password">
+<ANCHOR id="gsignond-signonui-data-get-query-error" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-error">
<ANCHOR id="gsignond-signonui-data-set-query-error" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-error">
+<ANCHOR id="gsignond-signonui-data-get-query-password" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-password">
<ANCHOR id="gsignond-signonui-data-set-query-password" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-password">
+<ANCHOR id="gsignond-signonui-data-get-query-username" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-query-username">
<ANCHOR id="gsignond-signonui-data-set-query-username" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-query-username">
+<ANCHOR id="gsignond-signonui-data-get-remember-password" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-remember-password">
<ANCHOR id="gsignond-signonui-data-set-remember-password" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-remember-password">
+<ANCHOR id="gsignond-signonui-data-get-request-id" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-request-id">
<ANCHOR id="gsignond-signonui-data-set-request-id" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-request-id">
+<ANCHOR id="gsignond-signonui-data-get-test-reply" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-test-reply">
<ANCHOR id="gsignond-signonui-data-set-test-reply" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-test-reply">
+<ANCHOR id="gsignond-signonui-data-get-title" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-title">
<ANCHOR id="gsignond-signonui-data-set-title" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-title">
+<ANCHOR id="gsignond-signonui-data-get-url-response" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-url-response">
<ANCHOR id="gsignond-signonui-data-set-url-response" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-url-response">
+<ANCHOR id="gsignond-signonui-data-get-username" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-get-username">
<ANCHOR id="gsignond-signonui-data-set-username" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-signonui-data-set-username">
+<ANCHOR id="gsignond-GSignondSignonuiData.other_details" href="gsignond/gsignond-GSignondSignonuiData.html#gsignond-GSignondSignonuiData.other_details">
+<ANCHOR id="GSignondSignonuiError" href="gsignond/gsignond-GSignondSignonuiData.html#GSignondSignonuiError">
<ANCHOR id="GSignondDigestPlugin" href="gsignond/GSignondDigestPlugin.html">
-<ANCHOR id="GSignondDigestPlugin.synopsis" href="gsignond/GSignondDigestPlugin.html#GSignondDigestPlugin.synopsis">
<ANCHOR id="GSignondDigestPlugin.object-hierarchy" href="gsignond/GSignondDigestPlugin.html#GSignondDigestPlugin.object-hierarchy">
-<ANCHOR id="GSignondDigestPlugin.implemented-interfaces" href="gsignond/GSignondDigestPlugin.html#GSignondDigestPlugin.implemented-interfaces">
+<ANCHOR id="GSignondDigestPlugin.includes" href="gsignond/GSignondDigestPlugin.html#GSignondDigestPlugin.includes">
<ANCHOR id="GSignondDigestPlugin.description" href="gsignond/GSignondDigestPlugin.html#GSignondDigestPlugin.description">
-<ANCHOR id="GSignondDigestPlugin.details" href="gsignond/GSignondDigestPlugin.html#GSignondDigestPlugin.details">
-<ANCHOR id="GSignondDigestPlugin-struct" href="gsignond/GSignondDigestPlugin.html#GSignondDigestPlugin-struct">
-<ANCHOR id="GSignondDigestPluginClass" href="gsignond/GSignondDigestPlugin.html#GSignondDigestPluginClass">
+<ANCHOR id="GSignondDigestPlugin.functions_details" href="gsignond/GSignondDigestPlugin.html#GSignondDigestPlugin.functions_details">
+<ANCHOR id="GSignondDigestPlugin.other_details" href="gsignond/GSignondDigestPlugin.html#GSignondDigestPlugin.other_details">
<ANCHOR id="GSignondSsoTestPlugin" href="gsignond/GSignondSsoTestPlugin.html">
-<ANCHOR id="GSignondSsoTestPlugin.synopsis" href="gsignond/GSignondSsoTestPlugin.html#GSignondSsoTestPlugin.synopsis">
<ANCHOR id="GSignondSsoTestPlugin.object-hierarchy" href="gsignond/GSignondSsoTestPlugin.html#GSignondSsoTestPlugin.object-hierarchy">
-<ANCHOR id="GSignondSsoTestPlugin.implemented-interfaces" href="gsignond/GSignondSsoTestPlugin.html#GSignondSsoTestPlugin.implemented-interfaces">
+<ANCHOR id="GSignondSsoTestPlugin.includes" href="gsignond/GSignondSsoTestPlugin.html#GSignondSsoTestPlugin.includes">
<ANCHOR id="GSignondSsoTestPlugin.description" href="gsignond/GSignondSsoTestPlugin.html#GSignondSsoTestPlugin.description">
-<ANCHOR id="GSignondSsoTestPlugin.details" href="gsignond/GSignondSsoTestPlugin.html#GSignondSsoTestPlugin.details">
-<ANCHOR id="GSignondSsoTestPlugin-struct" href="gsignond/GSignondSsoTestPlugin.html#GSignondSsoTestPlugin-struct">
-<ANCHOR id="GSignondSsoTestPluginClass" href="gsignond/GSignondSsoTestPlugin.html#GSignondSsoTestPluginClass">
+<ANCHOR id="GSignondSsoTestPlugin.functions_details" href="gsignond/GSignondSsoTestPlugin.html#GSignondSsoTestPlugin.functions_details">
+<ANCHOR id="GSignondSsoTestPlugin.other_details" href="gsignond/GSignondSsoTestPlugin.html#GSignondSsoTestPlugin.other_details">
<ANCHOR id="GSignondPasswordPlugin" href="gsignond/GSignondPasswordPlugin.html">
-<ANCHOR id="GSignondPasswordPlugin.synopsis" href="gsignond/GSignondPasswordPlugin.html#GSignondPasswordPlugin.synopsis">
<ANCHOR id="GSignondPasswordPlugin.object-hierarchy" href="gsignond/GSignondPasswordPlugin.html#GSignondPasswordPlugin.object-hierarchy">
-<ANCHOR id="GSignondPasswordPlugin.implemented-interfaces" href="gsignond/GSignondPasswordPlugin.html#GSignondPasswordPlugin.implemented-interfaces">
+<ANCHOR id="GSignondPasswordPlugin.includes" href="gsignond/GSignondPasswordPlugin.html#GSignondPasswordPlugin.includes">
<ANCHOR id="GSignondPasswordPlugin.description" href="gsignond/GSignondPasswordPlugin.html#GSignondPasswordPlugin.description">
-<ANCHOR id="GSignondPasswordPlugin.details" href="gsignond/GSignondPasswordPlugin.html#GSignondPasswordPlugin.details">
-<ANCHOR id="GSignondPasswordPlugin-struct" href="gsignond/GSignondPasswordPlugin.html#GSignondPasswordPlugin-struct">
-<ANCHOR id="GSignondPasswordPluginClass" href="gsignond/GSignondPasswordPlugin.html#GSignondPasswordPluginClass">
+<ANCHOR id="GSignondPasswordPlugin.functions_details" href="gsignond/GSignondPasswordPlugin.html#GSignondPasswordPlugin.functions_details">
+<ANCHOR id="GSignondPasswordPlugin.other_details" href="gsignond/GSignondPasswordPlugin.html#GSignondPasswordPlugin.other_details">
<ANCHOR id="GSignondExtension" href="gsignond/GSignondExtension.html">
-<ANCHOR id="GSignondExtension.synopsis" href="gsignond/GSignondExtension.html#GSignondExtension.synopsis">
+<ANCHOR id="GSignondExtension.functions" href="gsignond/GSignondExtension.html#GSignondExtension.functions">
<ANCHOR id="GSignondExtension.object-hierarchy" href="gsignond/GSignondExtension.html#GSignondExtension.object-hierarchy">
+<ANCHOR id="GSignondExtension.includes" href="gsignond/GSignondExtension.html#GSignondExtension.includes">
<ANCHOR id="GSignondExtension.description" href="gsignond/GSignondExtension.html#GSignondExtension.description">
-<ANCHOR id="GSignondExtension.details" href="gsignond/GSignondExtension.html#GSignondExtension.details">
-<ANCHOR id="GSignondExtension-struct" href="gsignond/GSignondExtension.html#GSignondExtension-struct">
-<ANCHOR id="GSignondExtensionClass" href="gsignond/GSignondExtension.html#GSignondExtensionClass">
-<ANCHOR id="gsignond-extension-get-access-control-manager" href="gsignond/GSignondExtension.html#gsignond-extension-get-access-control-manager">
+<ANCHOR id="GSignondExtension.functions_details" href="gsignond/GSignondExtension.html#GSignondExtension.functions_details">
<ANCHOR id="gsignond-extension-get-name" href="gsignond/GSignondExtension.html#gsignond-extension-get-name">
-<ANCHOR id="gsignond-extension-get-secret-storage" href="gsignond/GSignondExtension.html#gsignond-extension-get-secret-storage">
-<ANCHOR id="gsignond-extension-get-storage-manager" href="gsignond/GSignondExtension.html#gsignond-extension-get-storage-manager">
<ANCHOR id="gsignond-extension-get-version" href="gsignond/GSignondExtension.html#gsignond-extension-get-version">
+<ANCHOR id="gsignond-extension-get-storage-manager" href="gsignond/GSignondExtension.html#gsignond-extension-get-storage-manager">
+<ANCHOR id="gsignond-extension-get-secret-storage" href="gsignond/GSignondExtension.html#gsignond-extension-get-secret-storage">
+<ANCHOR id="gsignond-extension-get-access-control-manager" href="gsignond/GSignondExtension.html#gsignond-extension-get-access-control-manager">
+<ANCHOR id="GSignondExtension.other_details" href="gsignond/GSignondExtension.html#GSignondExtension.other_details">
<ANCHOR id="GSignondAccessControlManager" href="gsignond/GSignondAccessControlManager.html">
-<ANCHOR id="GSignondAccessControlManager.synopsis" href="gsignond/GSignondAccessControlManager.html#GSignondAccessControlManager.synopsis">
-<ANCHOR id="GSignondAccessControlManager.object-hierarchy" href="gsignond/GSignondAccessControlManager.html#GSignondAccessControlManager.object-hierarchy">
+<ANCHOR id="GSignondAccessControlManager.functions" href="gsignond/GSignondAccessControlManager.html#GSignondAccessControlManager.functions">
<ANCHOR id="GSignondAccessControlManager.properties" href="gsignond/GSignondAccessControlManager.html#GSignondAccessControlManager.properties">
+<ANCHOR id="GSignondAccessControlManager.object-hierarchy" href="gsignond/GSignondAccessControlManager.html#GSignondAccessControlManager.object-hierarchy">
+<ANCHOR id="GSignondAccessControlManager.includes" href="gsignond/GSignondAccessControlManager.html#GSignondAccessControlManager.includes">
<ANCHOR id="GSignondAccessControlManager.description" href="gsignond/GSignondAccessControlManager.html#GSignondAccessControlManager.description">
-<ANCHOR id="GSignondAccessControlManager.details" href="gsignond/GSignondAccessControlManager.html#GSignondAccessControlManager.details">
-<ANCHOR id="GSignondAccessControlManager-struct" href="gsignond/GSignondAccessControlManager.html#GSignondAccessControlManager-struct">
-<ANCHOR id="GSignondAccessControlManagerClass" href="gsignond/GSignondAccessControlManager.html#GSignondAccessControlManagerClass">
-<ANCHOR id="gsignond-access-control-manager-acl-is-valid" href="gsignond/GSignondAccessControlManager.html#gsignond-access-control-manager-acl-is-valid">
+<ANCHOR id="GSignondAccessControlManager.functions_details" href="gsignond/GSignondAccessControlManager.html#GSignondAccessControlManager.functions_details">
+<ANCHOR id="gsignond-access-control-manager-security-context-of-peer" href="gsignond/GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-peer">
<ANCHOR id="gsignond-access-control-manager-peer-is-allowed-to-use-identity" href="gsignond/GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-allowed-to-use-identity">
<ANCHOR id="gsignond-access-control-manager-peer-is-owner-of-identity" href="gsignond/GSignondAccessControlManager.html#gsignond-access-control-manager-peer-is-owner-of-identity">
+<ANCHOR id="gsignond-access-control-manager-acl-is-valid" href="gsignond/GSignondAccessControlManager.html#gsignond-access-control-manager-acl-is-valid">
<ANCHOR id="gsignond-access-control-manager-security-context-of-keychain" href="gsignond/GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-keychain">
-<ANCHOR id="gsignond-access-control-manager-security-context-of-peer" href="gsignond/GSignondAccessControlManager.html#gsignond-access-control-manager-security-context-of-peer">
+<ANCHOR id="GSignondAccessControlManager.other_details" href="gsignond/GSignondAccessControlManager.html#GSignondAccessControlManager.other_details">
<ANCHOR id="GSignondAccessControlManager.property-details" href="gsignond/GSignondAccessControlManager.html#GSignondAccessControlManager.property-details">
<ANCHOR id="GSignondAccessControlManager--config" href="gsignond/GSignondAccessControlManager.html#GSignondAccessControlManager--config">
<ANCHOR id="gsignond-GSignondSecurityContext" href="gsignond/gsignond-GSignondSecurityContext.html">
-<ANCHOR id="gsignond-GSignondSecurityContext.synopsis" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-GSignondSecurityContext.synopsis">
+<ANCHOR id="gsignond-GSignondSecurityContext.functions" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-GSignondSecurityContext.functions">
+<ANCHOR id="gsignond-GSignondSecurityContext.other" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-GSignondSecurityContext.other">
+<ANCHOR id="gsignond-GSignondSecurityContext.object-hierarchy" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-GSignondSecurityContext.object-hierarchy">
+<ANCHOR id="gsignond-GSignondSecurityContext.includes" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-GSignondSecurityContext.includes">
<ANCHOR id="gsignond-GSignondSecurityContext.description" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-GSignondSecurityContext.description">
-<ANCHOR id="gsignond-GSignondSecurityContext.details" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-GSignondSecurityContext.details">
-<ANCHOR id="GSignondSecurityContext" href="gsignond/gsignond-GSignondSecurityContext.html#GSignondSecurityContext">
-<ANCHOR id="GSignondSecurityContextList" href="gsignond/gsignond-GSignondSecurityContext.html#GSignondSecurityContextList">
-<ANCHOR id="gsignond-security-context-check" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-check">
-<ANCHOR id="gsignond-security-context-compare" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-compare">
-<ANCHOR id="gsignond-security-context-copy" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-copy">
-<ANCHOR id="gsignond-security-context-free" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-free">
-<ANCHOR id="gsignond-security-context-from-variant" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-from-variant">
-<ANCHOR id="gsignond-security-context-get-application-context" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-get-application-context">
-<ANCHOR id="gsignond-security-context-get-system-context" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-get-system-context">
-<ANCHOR id="gsignond-security-context-list-copy" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-list-copy">
-<ANCHOR id="gsignond-security-context-list-free" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-list-free">
-<ANCHOR id="gsignond-security-context-list-from-variant" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-list-from-variant">
-<ANCHOR id="gsignond-security-context-list-to-variant" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-list-to-variant">
-<ANCHOR id="gsignond-security-context-match" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-match">
+<ANCHOR id="gsignond-GSignondSecurityContext.functions_details" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-GSignondSecurityContext.functions_details">
<ANCHOR id="gsignond-security-context-new" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-new">
<ANCHOR id="gsignond-security-context-new-from-values" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-new-from-values">
-<ANCHOR id="gsignond-security-context-set-application-context" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-set-application-context">
+<ANCHOR id="gsignond-security-context-free" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-free">
+<ANCHOR id="gsignond-security-context-copy" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-copy">
<ANCHOR id="gsignond-security-context-set-system-context" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-set-system-context">
+<ANCHOR id="gsignond-security-context-get-system-context" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-get-system-context">
+<ANCHOR id="gsignond-security-context-set-application-context" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-set-application-context">
+<ANCHOR id="gsignond-security-context-get-application-context" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-get-application-context">
<ANCHOR id="gsignond-security-context-to-variant" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-to-variant">
+<ANCHOR id="gsignond-security-context-from-variant" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-from-variant">
+<ANCHOR id="gsignond-security-context-compare" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-compare">
+<ANCHOR id="gsignond-security-context-match" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-match">
+<ANCHOR id="gsignond-security-context-check" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-check">
+<ANCHOR id="gsignond-security-context-list-to-variant" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-list-to-variant">
+<ANCHOR id="gsignond-security-context-list-from-variant" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-list-from-variant">
+<ANCHOR id="gsignond-security-context-list-copy" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-list-copy">
+<ANCHOR id="gsignond-security-context-list-free" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-security-context-list-free">
+<ANCHOR id="gsignond-GSignondSecurityContext.other_details" href="gsignond/gsignond-GSignondSecurityContext.html#gsignond-GSignondSecurityContext.other_details">
+<ANCHOR id="GSignondSecurityContext" href="gsignond/gsignond-GSignondSecurityContext.html#GSignondSecurityContext">
+<ANCHOR id="GSignondSecurityContextList" href="gsignond/gsignond-GSignondSecurityContext.html#GSignondSecurityContextList">
<ANCHOR id="GSignondStorageManager" href="gsignond/GSignondStorageManager.html">
-<ANCHOR id="GSignondStorageManager.synopsis" href="gsignond/GSignondStorageManager.html#GSignondStorageManager.synopsis">
-<ANCHOR id="GSignondStorageManager.object-hierarchy" href="gsignond/GSignondStorageManager.html#GSignondStorageManager.object-hierarchy">
+<ANCHOR id="GSignondStorageManager.functions" href="gsignond/GSignondStorageManager.html#GSignondStorageManager.functions">
<ANCHOR id="GSignondStorageManager.properties" href="gsignond/GSignondStorageManager.html#GSignondStorageManager.properties">
+<ANCHOR id="GSignondStorageManager.object-hierarchy" href="gsignond/GSignondStorageManager.html#GSignondStorageManager.object-hierarchy">
+<ANCHOR id="GSignondStorageManager.includes" href="gsignond/GSignondStorageManager.html#GSignondStorageManager.includes">
<ANCHOR id="GSignondStorageManager.description" href="gsignond/GSignondStorageManager.html#GSignondStorageManager.description">
-<ANCHOR id="GSignondStorageManager.details" href="gsignond/GSignondStorageManager.html#GSignondStorageManager.details">
-<ANCHOR id="GSignondStorageManager-struct" href="gsignond/GSignondStorageManager.html#GSignondStorageManager-struct">
-<ANCHOR id="GSignondStorageManagerClass" href="gsignond/GSignondStorageManager.html#GSignondStorageManagerClass">
-<ANCHOR id="gsignond-storage-manager-delete-storage" href="gsignond/GSignondStorageManager.html#gsignond-storage-manager-delete-storage">
-<ANCHOR id="gsignond-storage-manager-filesystem-is-mounted" href="gsignond/GSignondStorageManager.html#gsignond-storage-manager-filesystem-is-mounted">
+<ANCHOR id="GSignondStorageManager.functions_details" href="gsignond/GSignondStorageManager.html#GSignondStorageManager.functions_details">
<ANCHOR id="gsignond-storage-manager-initialize-storage" href="gsignond/GSignondStorageManager.html#gsignond-storage-manager-initialize-storage">
-<ANCHOR id="gsignond-storage-manager-mount-filesystem" href="gsignond/GSignondStorageManager.html#gsignond-storage-manager-mount-filesystem">
+<ANCHOR id="gsignond-storage-manager-delete-storage" href="gsignond/GSignondStorageManager.html#gsignond-storage-manager-delete-storage">
<ANCHOR id="gsignond-storage-manager-storage-is-initialized" href="gsignond/GSignondStorageManager.html#gsignond-storage-manager-storage-is-initialized">
+<ANCHOR id="gsignond-storage-manager-mount-filesystem" href="gsignond/GSignondStorageManager.html#gsignond-storage-manager-mount-filesystem">
<ANCHOR id="gsignond-storage-manager-unmount-filesystem" href="gsignond/GSignondStorageManager.html#gsignond-storage-manager-unmount-filesystem">
+<ANCHOR id="gsignond-storage-manager-filesystem-is-mounted" href="gsignond/GSignondStorageManager.html#gsignond-storage-manager-filesystem-is-mounted">
+<ANCHOR id="GSignondStorageManager.other_details" href="gsignond/GSignondStorageManager.html#GSignondStorageManager.other_details">
<ANCHOR id="GSignondStorageManager.property-details" href="gsignond/GSignondStorageManager.html#GSignondStorageManager.property-details">
<ANCHOR id="GSignondStorageManager--config" href="gsignond/GSignondStorageManager.html#GSignondStorageManager--config">
<ANCHOR id="GSignondSecretStorage" href="gsignond/GSignondSecretStorage.html">
-<ANCHOR id="GSignondSecretStorage.synopsis" href="gsignond/GSignondSecretStorage.html#GSignondSecretStorage.synopsis">
-<ANCHOR id="GSignondSecretStorage.object-hierarchy" href="gsignond/GSignondSecretStorage.html#GSignondSecretStorage.object-hierarchy">
+<ANCHOR id="GSignondSecretStorage.functions" href="gsignond/GSignondSecretStorage.html#GSignondSecretStorage.functions">
<ANCHOR id="GSignondSecretStorage.properties" href="gsignond/GSignondSecretStorage.html#GSignondSecretStorage.properties">
+<ANCHOR id="GSignondSecretStorage.object-hierarchy" href="gsignond/GSignondSecretStorage.html#GSignondSecretStorage.object-hierarchy">
+<ANCHOR id="GSignondSecretStorage.includes" href="gsignond/GSignondSecretStorage.html#GSignondSecretStorage.includes">
<ANCHOR id="GSignondSecretStorage.description" href="gsignond/GSignondSecretStorage.html#GSignondSecretStorage.description">
-<ANCHOR id="GSignondSecretStorage.details" href="gsignond/GSignondSecretStorage.html#GSignondSecretStorage.details">
-<ANCHOR id="GSignondSecretStorage-struct" href="gsignond/GSignondSecretStorage.html#GSignondSecretStorage-struct">
-<ANCHOR id="GSignondSecretStorageClass" href="gsignond/GSignondSecretStorage.html#GSignondSecretStorageClass">
-<ANCHOR id="gsignond-secret-storage-check-credentials" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-check-credentials">
-<ANCHOR id="gsignond-secret-storage-clear-db" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-clear-db">
+<ANCHOR id="GSignondSecretStorage.functions_details" href="gsignond/GSignondSecretStorage.html#GSignondSecretStorage.functions_details">
+<ANCHOR id="gsignond-secret-storage-open-db" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-open-db">
<ANCHOR id="gsignond-secret-storage-close-db" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-close-db">
-<ANCHOR id="gsignond-secret-storage-get-last-error" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-get-last-error">
+<ANCHOR id="gsignond-secret-storage-clear-db" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-clear-db">
<ANCHOR id="gsignond-secret-storage-is-open-db" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-is-open-db">
<ANCHOR id="gsignond-secret-storage-load-credentials" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-load-credentials">
-<ANCHOR id="gsignond-secret-storage-load-data" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-load-data">
-<ANCHOR id="gsignond-secret-storage-open-db" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-open-db">
-<ANCHOR id="gsignond-secret-storage-remove-credentials" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-remove-credentials">
-<ANCHOR id="gsignond-secret-storage-remove-data" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-remove-data">
<ANCHOR id="gsignond-secret-storage-update-credentials" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-update-credentials">
+<ANCHOR id="gsignond-secret-storage-remove-credentials" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-remove-credentials">
+<ANCHOR id="gsignond-secret-storage-check-credentials" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-check-credentials">
+<ANCHOR id="gsignond-secret-storage-load-data" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-load-data">
<ANCHOR id="gsignond-secret-storage-update-data" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-update-data">
+<ANCHOR id="gsignond-secret-storage-remove-data" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-remove-data">
+<ANCHOR id="gsignond-secret-storage-get-last-error" href="gsignond/GSignondSecretStorage.html#gsignond-secret-storage-get-last-error">
+<ANCHOR id="GSignondSecretStorage.other_details" href="gsignond/GSignondSecretStorage.html#GSignondSecretStorage.other_details">
<ANCHOR id="GSignondSecretStorage.property-details" href="gsignond/GSignondSecretStorage.html#GSignondSecretStorage.property-details">
<ANCHOR id="GSignondSecretStorage--config" href="gsignond/GSignondSecretStorage.html#GSignondSecretStorage--config">
<ANCHOR id="GSignondCredentials" href="gsignond/GSignondCredentials.html">
-<ANCHOR id="GSignondCredentials.synopsis" href="gsignond/GSignondCredentials.html#GSignondCredentials.synopsis">
+<ANCHOR id="GSignondCredentials.functions" href="gsignond/GSignondCredentials.html#GSignondCredentials.functions">
<ANCHOR id="GSignondCredentials.object-hierarchy" href="gsignond/GSignondCredentials.html#GSignondCredentials.object-hierarchy">
+<ANCHOR id="GSignondCredentials.includes" href="gsignond/GSignondCredentials.html#GSignondCredentials.includes">
<ANCHOR id="GSignondCredentials.description" href="gsignond/GSignondCredentials.html#GSignondCredentials.description">
-<ANCHOR id="GSignondCredentials.details" href="gsignond/GSignondCredentials.html#GSignondCredentials.details">
-<ANCHOR id="GSignondCredentials-struct" href="gsignond/GSignondCredentials.html#GSignondCredentials-struct">
-<ANCHOR id="GSignondCredentialsClass" href="gsignond/GSignondCredentials.html#GSignondCredentialsClass">
-<ANCHOR id="gsignond-credentials-equal" href="gsignond/GSignondCredentials.html#gsignond-credentials-equal">
-<ANCHOR id="gsignond-credentials-get-id" href="gsignond/GSignondCredentials.html#gsignond-credentials-get-id">
-<ANCHOR id="gsignond-credentials-get-password" href="gsignond/GSignondCredentials.html#gsignond-credentials-get-password">
-<ANCHOR id="gsignond-credentials-get-username" href="gsignond/GSignondCredentials.html#gsignond-credentials-get-username">
+<ANCHOR id="GSignondCredentials.functions_details" href="gsignond/GSignondCredentials.html#GSignondCredentials.functions_details">
<ANCHOR id="gsignond-credentials-new" href="gsignond/GSignondCredentials.html#gsignond-credentials-new">
<ANCHOR id="gsignond-credentials-set-data" href="gsignond/GSignondCredentials.html#gsignond-credentials-set-data">
<ANCHOR id="gsignond-credentials-set-id" href="gsignond/GSignondCredentials.html#gsignond-credentials-set-id">
-<ANCHOR id="gsignond-credentials-set-password" href="gsignond/GSignondCredentials.html#gsignond-credentials-set-password">
+<ANCHOR id="gsignond-credentials-get-id" href="gsignond/GSignondCredentials.html#gsignond-credentials-get-id">
<ANCHOR id="gsignond-credentials-set-username" href="gsignond/GSignondCredentials.html#gsignond-credentials-set-username">
+<ANCHOR id="gsignond-credentials-get-username" href="gsignond/GSignondCredentials.html#gsignond-credentials-get-username">
+<ANCHOR id="gsignond-credentials-set-password" href="gsignond/GSignondCredentials.html#gsignond-credentials-set-password">
+<ANCHOR id="gsignond-credentials-get-password" href="gsignond/GSignondCredentials.html#gsignond-credentials-get-password">
+<ANCHOR id="gsignond-credentials-equal" href="gsignond/GSignondCredentials.html#gsignond-credentials-equal">
+<ANCHOR id="GSignondCredentials.other_details" href="gsignond/GSignondCredentials.html#GSignondCredentials.other_details">
<ANCHOR id="gsignond-Errors" href="gsignond/gsignond-Errors.html">
-<ANCHOR id="gsignond-Errors.synopsis" href="gsignond/gsignond-Errors.html#gsignond-Errors.synopsis">
+<ANCHOR id="gsignond-Errors.functions" href="gsignond/gsignond-Errors.html#gsignond-Errors.functions">
+<ANCHOR id="gsignond-Errors.other" href="gsignond/gsignond-Errors.html#gsignond-Errors.other">
+<ANCHOR id="gsignond-Errors.object-hierarchy" href="gsignond/gsignond-Errors.html#gsignond-Errors.object-hierarchy">
+<ANCHOR id="gsignond-Errors.includes" href="gsignond/gsignond-Errors.html#gsignond-Errors.includes">
<ANCHOR id="gsignond-Errors.description" href="gsignond/gsignond-Errors.html#gsignond-Errors.description">
-<ANCHOR id="gsignond-Errors.details" href="gsignond/gsignond-Errors.html#gsignond-Errors.details">
+<ANCHOR id="gsignond-Errors.functions_details" href="gsignond/gsignond-Errors.html#gsignond-Errors.functions_details">
<ANCHOR id="GSIGNOND-ERROR:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR:CAPS">
-<ANCHOR id="GSignondError" href="gsignond/gsignond-Errors.html#GSignondError">
-<ANCHOR id="GSIGNOND-ERROR-NONE:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-NONE:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-UNKNOWN:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-UNKNOWN:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-INTERNAL-SERVER:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-INTERNAL-SERVER:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-INTERNAL-COMMUNICATION:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-INTERNAL-COMMUNICATION:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-PERMISSION-DENIED:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-PERMISSION-DENIED:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-ENCRYPTION-FAILURE:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-ENCRYPTION-FAILURE:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-AUTH-SERVICE-ERR:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-AUTH-SERVICE-ERR:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-METHOD-NOT-KNOWN:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-METHOD-NOT-KNOWN:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-SERVICE-NOT-AVAILABLE:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-SERVICE-NOT-AVAILABLE:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-INVALID-QUERY:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-INVALID-QUERY:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-IDENTITY-ERR:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-IDENTITY-ERR:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-METHOD-NOT-AVAILABLE:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-METHOD-NOT-AVAILABLE:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-IDENTITY-NOT-FOUND:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-IDENTITY-NOT-FOUND:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-STORE-FAILED:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-STORE-FAILED:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-REMOVE-FAILED:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-REMOVE-FAILED:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-SIGN-OUT-FAILED:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-SIGN-OUT-FAILED:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-IDENTITY-OPERATION-CANCELED:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-IDENTITY-OPERATION-CANCELED:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-CREDENTIALS-NOT-AVAILABLE:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-CREDENTIALS-NOT-AVAILABLE:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-REFERENCE-NOT-FOUND:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-REFERENCE-NOT-FOUND:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-AUTH-SESSION-ERR:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-AUTH-SESSION-ERR:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-MECHANISM-NOT-AVAILABLE:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-MECHANISM-NOT-AVAILABLE:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-MISSING-DATA:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-MISSING-DATA:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-INVALID-CREDENTIALS:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-INVALID-CREDENTIALS:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-NOT-AUTHORIZED:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-NOT-AUTHORIZED:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-WRONG-STATE:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-WRONG-STATE:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-OPERATION-NOT-SUPPORTED:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-OPERATION-NOT-SUPPORTED:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-NO-CONNECTION:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-NO-CONNECTION:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-NETWORK:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-NETWORK:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-SSL:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-SSL:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-RUNTIME:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-RUNTIME:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-SESSION-CANCELED:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-SESSION-CANCELED:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-TIMED-OUT:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-TIMED-OUT:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-USER-INTERACTION:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-USER-INTERACTION:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-OPERATION-FAILED:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-OPERATION-FAILED:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-ENCRYPTION-FAILED:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-ENCRYPTION-FAILED:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-TOS-NOT-ACCEPTED:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-TOS-NOT-ACCEPTED:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-FORGOT-PASSWORD:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-FORGOT-PASSWORD:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-METHOD-OR-MECHANISM-NOT-ALLOWED:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-METHOD-OR-MECHANISM-NOT-ALLOWED:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-INCORRECT-DATE:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-INCORRECT-DATE:CAPS">
-<ANCHOR id="GSIGNOND-ERROR-USER-ERR:CAPS" href="gsignond/gsignond-Errors.html#GSIGNOND-ERROR-USER-ERR:CAPS">
-<ANCHOR id="gsignond-error-new-from-variant" href="gsignond/gsignond-Errors.html#gsignond-error-new-from-variant">
<ANCHOR id="gsignond-error-quark" href="gsignond/gsignond-Errors.html#gsignond-error-quark">
+<ANCHOR id="gsignond-error-new-from-variant" href="gsignond/gsignond-Errors.html#gsignond-error-new-from-variant">
<ANCHOR id="gsignond-error-to-variant" href="gsignond/gsignond-Errors.html#gsignond-error-to-variant">
<ANCHOR id="gsignond-get-gerror-for-id" href="gsignond/gsignond-Errors.html#gsignond-get-gerror-for-id">
+<ANCHOR id="gsignond-Errors.other_details" href="gsignond/gsignond-Errors.html#gsignond-Errors.other_details">
+<ANCHOR id="GSignondError" href="gsignond/gsignond-Errors.html#GSignondError">
<ANCHOR id="gsignond-Logging" href="gsignond/gsignond-Logging.html">
-<ANCHOR id="gsignond-Logging.synopsis" href="gsignond/gsignond-Logging.html#gsignond-Logging.synopsis">
+<ANCHOR id="gsignond-Logging.functions" href="gsignond/gsignond-Logging.html#gsignond-Logging.functions">
+<ANCHOR id="gsignond-Logging.object-hierarchy" href="gsignond/gsignond-Logging.html#gsignond-Logging.object-hierarchy">
+<ANCHOR id="gsignond-Logging.includes" href="gsignond/gsignond-Logging.html#gsignond-Logging.includes">
<ANCHOR id="gsignond-Logging.description" href="gsignond/gsignond-Logging.html#gsignond-Logging.description">
-<ANCHOR id="gsignond-Logging.details" href="gsignond/gsignond-Logging.html#gsignond-Logging.details">
-<ANCHOR id="DBG:CAPS" href="gsignond/gsignond-Logging.html#DBG:CAPS">
-<ANCHOR id="ERR:CAPS" href="gsignond/gsignond-Logging.html#ERR:CAPS">
-<ANCHOR id="INFO:CAPS" href="gsignond/gsignond-Logging.html#INFO:CAPS">
+<ANCHOR id="gsignond-Logging.functions_details" href="gsignond/gsignond-Logging.html#gsignond-Logging.functions_details">
<ANCHOR id="TRACEBACK:CAPS" href="gsignond/gsignond-Logging.html#TRACEBACK:CAPS">
+<ANCHOR id="INFO:CAPS" href="gsignond/gsignond-Logging.html#INFO:CAPS">
+<ANCHOR id="ERR:CAPS" href="gsignond/gsignond-Logging.html#ERR:CAPS">
<ANCHOR id="WARN:CAPS" href="gsignond/gsignond-Logging.html#WARN:CAPS">
+<ANCHOR id="DBG:CAPS" href="gsignond/gsignond-Logging.html#DBG:CAPS">
+<ANCHOR id="gsignond-Logging.other_details" href="gsignond/gsignond-Logging.html#gsignond-Logging.other_details">
<ANCHOR id="gsignond-Utility-functions" href="gsignond/gsignond-Utility-functions.html">
-<ANCHOR id="gsignond-Utility-functions.synopsis" href="gsignond/gsignond-Utility-functions.html#gsignond-Utility-functions.synopsis">
+<ANCHOR id="gsignond-Utility-functions.functions" href="gsignond/gsignond-Utility-functions.html#gsignond-Utility-functions.functions">
+<ANCHOR id="gsignond-Utility-functions.object-hierarchy" href="gsignond/gsignond-Utility-functions.html#gsignond-Utility-functions.object-hierarchy">
+<ANCHOR id="gsignond-Utility-functions.includes" href="gsignond/gsignond-Utility-functions.html#gsignond-Utility-functions.includes">
<ANCHOR id="gsignond-Utility-functions.description" href="gsignond/gsignond-Utility-functions.html#gsignond-Utility-functions.description">
-<ANCHOR id="gsignond-Utility-functions.details" href="gsignond/gsignond-Utility-functions.html#gsignond-Utility-functions.details">
-<ANCHOR id="gsignond-generate-nonce" href="gsignond/gsignond-Utility-functions.html#gsignond-generate-nonce">
-<ANCHOR id="gsignond-wipe-directory" href="gsignond/gsignond-Utility-functions.html#gsignond-wipe-directory">
+<ANCHOR id="gsignond-Utility-functions.functions_details" href="gsignond/gsignond-Utility-functions.html#gsignond-Utility-functions.functions_details">
<ANCHOR id="gsignond-wipe-file" href="gsignond/gsignond-Utility-functions.html#gsignond-wipe-file">
+<ANCHOR id="gsignond-wipe-directory" href="gsignond/gsignond-Utility-functions.html#gsignond-wipe-directory">
+<ANCHOR id="gsignond-generate-nonce" href="gsignond/gsignond-Utility-functions.html#gsignond-generate-nonce">
+<ANCHOR id="gsignond-sequence-to-variant" href="gsignond/gsignond-Utility-functions.html#gsignond-sequence-to-variant">
+<ANCHOR id="gsignond-variant-to-sequence" href="gsignond/gsignond-Utility-functions.html#gsignond-variant-to-sequence">
+<ANCHOR id="gsignond-sequence-to-array" href="gsignond/gsignond-Utility-functions.html#gsignond-sequence-to-array">
+<ANCHOR id="gsignond-array-to-sequence" href="gsignond/gsignond-Utility-functions.html#gsignond-array-to-sequence">
+<ANCHOR id="gsignond-copy-array-to-sequence" href="gsignond/gsignond-Utility-functions.html#gsignond-copy-array-to-sequence">
+<ANCHOR id="gsignond-is-host-in-domain" href="gsignond/gsignond-Utility-functions.html#gsignond-is-host-in-domain">
+<ANCHOR id="gsignond-Utility-functions.other_details" href="gsignond/gsignond-Utility-functions.html#gsignond-Utility-functions.other_details">
<ANCHOR id="annotation-glossterm-transfer full" href="gsignond/annotation-glossary.html#annotation-glossterm-transfer full">
<ANCHOR id="annotation-glossterm-transfer none" href="gsignond/annotation-glossary.html#annotation-glossterm-transfer none">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Object Hierarchy</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>gsignond API Reference Manual: Object Hierarchy</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="gsignond API Reference Manual">
<link rel="up" href="index.html" title="gsignond API Reference Manual">
<link rel="prev" href="gsignond-Utility-functions.html" title="Utility functions">
<link rel="next" href="api-index-full.html" title="API Index">
-<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
-<td width="100%" align="left"></td>
+<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
<td><a accesskey="p" href="gsignond-Utility-functions.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="object-tree"></a>Object Hierarchy</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="object-tree"></a>Object Hierarchy</h1></div></div></div>
<pre class="screen">
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
- <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
- <a class="link" href="GSignondConfig.html" title="GSignondConfig">GSignondConfig</a>
- <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
- <a class="link" href="GSignondDigestPlugin.html" title="GSignondDigestPlugin">GSignondDigestPlugin</a>
- <a class="link" href="GSignondExtension.html" title="GSignondExtension">GSignondExtension</a>
- <a class="link" href="GSignondPasswordPlugin.html" title="GSignondPasswordPlugin">GSignondPasswordPlugin</a>
- <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
- <a class="link" href="GSignondSsoTestPlugin.html" title="GSignondSsoTestPlugin">GSignondSsoTestPlugin</a>
- <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
+ <span class="lineart">├──</span> <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>
+ <span class="lineart">├──</span> <a class="link" href="GSignondConfig.html" title="GSignondConfig">GSignondConfig</a>
+ <span class="lineart">├──</span> <a class="link" href="GSignondCredentials.html" title="GSignondCredentials">GSignondCredentials</a>
+ <span class="lineart">├──</span> <a class="link" href="GSignondDigestPlugin.html" title="GSignondDigestPlugin">GSignondDigestPlugin</a>
+ <span class="lineart">├──</span> <a class="link" href="GSignondExtension.html" title="GSignondExtension">GSignondExtension</a>
+ <span class="lineart">├──</span> <a class="link" href="GSignondPasswordPlugin.html" title="GSignondPasswordPlugin">GSignondPasswordPlugin</a>
+ <span class="lineart">├──</span> <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage">GSignondSecretStorage</a>
+ <span class="lineart">├──</span> <a class="link" href="GSignondSsoTestPlugin.html" title="GSignondSsoTestPlugin">GSignondSsoTestPlugin</a>
+ <span class="lineart">╰──</span> <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">GSignondStorageManager</a>
+ GInterface
+ <span class="lineart">╰──</span> <a class="link" href="GSignondPlugin.html" title="GSignondPlugin">GSignondPlugin</a>
</pre>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.19.1</div>
+ Generated by GTK-Doc V1.20</div>
</body>
</html>
\ No newline at end of file
{
/* tango:aluminium 1/2 */
background: #eeeeec;
- border: solid 1px #d3d7cf;
+ background: rgba(238, 238, 236, 0.5);
+ border: solid 1px rgb(238, 238, 236);
padding: 0.5em;
}
.programlisting
{
/* tango:sky blue 0/1 */
+ /* fallback for no rgba support */
background: #e6f3ff;
border: solid 1px #729fcf;
+ background: rgba(114, 159, 207, 0.1);
+ border: solid 1px rgba(114, 159, 207, 0.2);
padding: 0.5em;
}
.variablelist
{
position: relative;
top: 0em ! important;
-
}
/* this is needed so that the local anchors are displayed below the naviagtion */
div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
*/
body
{
- padding-top: 3.2em;
- padding-bottom: 20em;
+ padding-top: 5em;
+ padding-bottom: 500px;
+ max-width: 60em;
+ }
+ p
+ {
+ max-width: 60em;
}
/* style and size the navigation bar */
table.navigation#top
{
position: fixed;
- /* tango:aluminum 2 */
- background: #d3d7cf;
- border: solid 1px #babdb6;
+ background: #e2e2e2;
+ border-bottom: solid 1px #babdb6;
margin-top: 0;
margin-bottom: 0;
top: 0;
font-size: 80%;
white-space: nowrap;
}
+ td.shortcuts .dim
+ {
+ color: #babdb6;
+ }
+}
+@media screen and (min-width: 60em) {
+ /* screen larger than 60em */
+ body { margin: auto; }
+}
+@media screen and (max-width: 60em) {
+ /* screen less than 60em */
+ #nav_hierarchy { display: none; }
+ #nav_interfaces { display: none; }
+ #nav_prerequisites { display: none; }
+ #nav_derived_interfaces { display: none; }
+ #nav_implementations { display: none; }
+ #nav_child_properties { display: none; }
+ #nav_style_properties { display: none; }
+ #nav_index { display: none; }
+ #nav_glossary { display: none; }
+ .gallery_image { display: none; }
+ .property_flags { display: none; }
+ .signal_flags { display: none; }
+ .parameter_annotations { display: none; }
+ .enum_member_annotations { display: none; }
+ .struct_member_annotations { display: none; }
+ .union_member_annotations { display: none; }
+ /* now that a column is hidden, optimize space */
+ col.parameters_name { width: auto; }
+ col.parameters_description { width: auto; }
+ col.struct_members_name { width: auto; }
+ col.struct_members_description { width: auto; }
+ col.enum_members_name { width: auto; }
+ col.enum_members_description { width: auto; }
+ col.union_members_name { width: auto; }
+ col.union_members_description { width: auto; }
}
@media print {
table.navigation {
div.titlepage table.navigation {
visibility: visible;
display: table;
- /* tango:aluminum 2 */
- background: #d3d7cf;
+ background: #e2e2e2;
border: solid 1px #babdb6;
margin-top: 0;
margin-bottom: 0;
color: #729fcf;
}
+div.informaltable table
+{
+ border-collapse: separate;
+ border-spacing: 20px 3px;
+ border: none;
+}
+
+div.informaltable table td, div.informaltable table th
+{
+ vertical-align: top;
+}
+
+.function_type,
+.variable_type,
+.property_type,
+.signal_type,
+.parameter_name,
+.struct_member_name,
+.union_member_name,
+.define_keyword,
+.datatype_keyword,
+.typedef_keyword
+{
+ text-align: right;
+}
+
+/* dim non-primary columns */
+.c_punctuation,
+.function_type,
+.variable_type,
+.property_type,
+.signal_type,
+.define_keyword,
+.datatype_keyword,
+.typedef_keyword,
+.property_flags,
+.signal_flags,
+.parameter_annotations,
+.enum_member_annotations,
+.struct_member_annotations,
+.union_member_annotations
+{
+ color: #888a85;
+}
+
+.function_type a,
+.function_type a:visited,
+.function_type a:hover,
+.property_type a,
+.property_type a:visited,
+.property_type a:hover,
+.signal_type a,
+.signal_type a:visited,
+.signal_type a:hover,
+.signal_flags a,
+.signal_flags a:visited,
+.signal_flags a:hover
+{
+ color: #729fcf;
+}
+
div.table table
{
border-collapse: collapse;
background-color: #d3d7cf;
}
+h4
+{
+ color: #555753;
+}
+
hr
{
/* tango:aluminium 1 */
border: none 0px;
height: 1px;
clear: both;
+ margin: 2.0em 0em 2.0em 0em;
}
dl.toc dt
.informalfigure,
.figure
{
- margin: 2em;
+ margin: 1em;
}
.informalexample,
.example
{
- margin: 2em;
+ margin-top: 1em;
+ margin-bottom: 1em;
}
.warning
{
/* tango:orange 0/1 */
background: #ffeed9;
+ background: rgba(252, 175, 62, 0.1);
border-color: #ffb04f;
+ border-color: rgba(252, 175, 62, 0.2);
}
.note
{
/* tango:chameleon 0/0.5 */
background: #d8ffb2;
+ background: rgba(138, 226, 52, 0.1);
border-color: #abf562;
+ border-color: rgba(138, 226, 52, 0.2);
+}
+div.blockquote
+{
+ border-color: #eeeeec;
}
-.note, .warning
+.note, .warning, div.blockquote
{
padding: 0.5em;
border-width: 1px;
border-style: solid;
margin: 2em;
}
-.note h3, .warning h3
+.note p, .warning p
{
- margin-top: 0.0em
+ margin: 0;
}
-.note p, .warning p
+
+div.warning h3.title,
+div.note h3.title
{
- margin-bottom: 0.0em
+ display: none;
}
p + div.section
{
- margin-top: 2.5em;
+ margin-top: 1em;
}
div.refnamediv,
div.toc,
div.section
{
- margin-bottom: 2.5em;
+ margin-bottom: 1em;
}
/* blob links */
font-weight: normal;
}
+.lineart
+{
+ color: #d3d7cf;
+ font-weight: normal;
+}
+
.annotation
{
/* tango:aluminium 5 */
color: #555753;
- font-size: 80%;
+ font-weight: normal;
+}
+
+.structfield
+{
+ font-style: normal;
font-weight: normal;
}
.listing_frame {
/* tango:sky blue 1 */
border: solid 1px #729fcf;
+ border: solid 1px rgba(114, 159, 207, 0.2);
padding: 0px;
}
padding: 0.5em;
}
.listing_lines {
+ /* this just adds visual clutter and
+ takes precious room from small screens */
+ display: none;
+}
+.listing_lines {
/* tango:sky blue 0.5 */
background: #a6c5e3;
+ background: rgba(114, 159, 207, 0.2);
/* tango:aluminium 6 */
color: #2e3436;
}
.listing_code {
/* tango:sky blue 0 */
background: #e6f3ff;
+ background: rgba(114, 159, 207, 0.1);
}
.listing_code .programlisting {
/* override from previous */
border: none 0px;
padding: 0px;
+ background: none;
}
.listing_lines pre, .listing_code pre {
margin: 0px;
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+<refentry id="gsignond-plugin-loaders-overview">
+ <refmeta>
+ <refentrytitle>Overview of GSignond's authentication plugin subsystem</refentrytitle>
+ <manvolnum>3</manvolnum>
+ <refmiscinfo>GSignond</refmiscinfo>
+ </refmeta>
+
+ <refsect1 id="intro">
+ <title>Introduction</title>
+ <para>
+ For security and flexibility reasons, authentication sessions in GSSO are performed
+ by authentication plugins that run in separate processes and communicate with
+ the GSSO daemon using D-Bus IPC. This page describes that IPC, and the
+ options that plugin writers have for implementing additional plugins.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>GLib plugins</title>
+ <para>
+ The standard, most simple way to write plugins is by using GLib to
+ implement <link linkend="GSignondPlugin">GSignondPlugin</link> interface,
+ package the code as a shared library, and install the library into
+ gsso's standard location for GLib plugins. This approach is described
+ in detail in <link linkend="GSignondPlugin">GSignondPlugin chapter</link>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Plugin loaders</title>
+ <para>
+ If using GLib to implement authentication plugins is undesirable or
+ impossible, you can provide a binary that implements a GSSO plugin
+ loader, which should be installed in
+ <command>pkg-config gsignond --variable=pluginloadersdir</command>.
+ </para>
+ <para>
+ The GLib plugin loader that manages GLib-based plugins is a reference
+ implementation for such a loader. It is possible to fork and tweak its
+ code (as long as the IPC protocol, described below, is preserved),
+ or it's also possible to write such a loader from scratch. The source
+ code for the GLib plugin loader can be found
+ <ulink url="https://code.google.com/p/accounts-sso/source/browse/?repo=gsignond#git%2Fsrc%2Fgplugind">
+ here</ulink>.
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Plugin loaders' command line options</title>
+ <para>
+ The plugin loader binary should implement the following command line options:
+ <itemizedlist>
+ <listitem>
+ <systemitem>--list-plugins</systemitem> command line option
+ must be supported. The plugin loader binary should then list
+ available plugin names, one name per line, for example:
+ <literallayout>
+ <userinput>> gsignond-plugind --list-plugins</userinput>
+ password
+ ssotest
+ digest
+ </literallayout>
+ NOTE: it is recommended that plugin names are either hardcoded
+ in the plugin loader, or determined from plugin filenames in
+ the filesystem. It's less secure to determine the names by
+ loading the plugins' code and calling into each plugin.
+ </listitem>
+ <listitem>
+ <systemitem>--load-plugin=name</systemitem> command line option
+ must also be supported. The plugin loader binary should then
+ load and prepare the plugin with the corresponding name (or
+ simply prepare the plugin that is provided within the plugin
+ loader itself), and export a d-bus object on standard input and
+ output streams that gsso daemon will communicate with. The next
+ session describes this in more detail.
+ </listitem>
+ </itemizedlist>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Plugin loaders' D-Bus IPC</title>
+ <para>
+ When run with a <systemitem>--load-plugin</systemitem> command line
+ option, the plugin loader process is expected to export a D-Bus object
+ on path "/" that implements
+ <ulink url="https://code.google.com/p/accounts-sso/source/browse/src/daemon/dbus/interfaces/com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.xml?repo=gsignond">
+ this interface</ulink>.
+ </para>
+ <para>
+ The interface declarations map directly to the plugin API. See
+ <link linkend="GSignondPlugin">GSignondPlugin</link> interface for
+ the meaning of various methods, signals and properties.
+ </para>
+ <para>
+ The object is exported on a connection that is formed from standard
+ input and standard output streams. This is the most secure way
+ to communicate with the gsso daemon, because these streams are visible
+ only to the two ends of the connection - the plugin loader process
+ and the parent process (the gsso daemon).
+ </para>
+ <para>
+ NOTE: at the moment input and output should happen on two separate
+ streams, the standard input and the standard output respectively.
+ In the future, gsso will set both streams to the same
+ bidirectional channel, for compatibility with
+ <ulink url="http://dbus.freedesktop.org/doc/dbus-specification.html#transports-exec">
+ D-Bus' unixexec transport</ulink>.
+ </para>
+ </refsect1>
+</refentry>
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-GSignondAccessControlManager
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### STRUCT GSignondAccessControlManager ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG GSignondAccessControlManager:config ##### -->
-<para>
-
-</para>
-
-<!-- ##### STRUCT GSignondAccessControlManagerClass ##### -->
-<para>
-
-</para>
-
-@parent_class:
-@security_context_of_peer:
-@peer_is_allowed_to_use_identity:
-@peer_is_owner_of_identity:
-@acl_is_valid:
-@security_context_of_keychain:
-
-<!-- ##### FUNCTION gsignond_access_control_manager_acl_is_valid ##### -->
-<para>
-
-</para>
-
-@self:
-@peer_ctx:
-@identity_acl:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_access_control_manager_peer_is_allowed_to_use_identity ##### -->
-<para>
-
-</para>
-
-@self:
-@peer_ctx:
-@owner_ctx:
-@identity_acl:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_access_control_manager_peer_is_owner_of_identity ##### -->
-<para>
-
-</para>
-
-@self:
-@peer_ctx:
-@owner_ctx:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_access_control_manager_security_context_of_keychain ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_access_control_manager_security_context_of_peer ##### -->
-<para>
-
-</para>
-
-@self:
-@peer_ctx:
-@peer_fd:
-@peer_service:
-@peer_app_ctx:
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-gsignond-config-db
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### MACRO GSIGNOND_CONFIG_DB_METADATA_DB_FILENAME ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GSIGNOND_CONFIG_DB_SSO ##### -->
-<para>
-
-</para>
-
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-gsignond-config-dbus
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### MACRO GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GSIGNOND_CONFIG_DBUS_DAEMON_TIMEOUT ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GSIGNOND_CONFIG_DBUS_IDENTITY_TIMEOUT ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GSIGNOND_CONFIG_DBUS_TIMEOUTS ##### -->
-<para>
-
-</para>
-
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-gsignond-config-general
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### MACRO GSIGNOND_CONFIG_GENERAL ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GSIGNOND_CONFIG_GENERAL_BIN_DIR ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GSIGNOND_CONFIG_GENERAL_EXTENSION ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GSIGNOND_CONFIG_GENERAL_EXTENSIONS_DIR ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GSIGNOND_CONFIG_GENERAL_SECURE_DIR ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GSIGNOND_CONFIG_GENERAL_STORAGE_PATH ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO GSIGNOND_CONFIG_PLUGIN_TIMEOUT ##### -->
-<para>
-
-</para>
-
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-GSignondConfig
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### STRUCT GSignondConfig ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### STRUCT GSignondConfigClass ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION gsignond_config_get_integer ##### -->
-<para>
-
-</para>
-
-@self:
-@key:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_config_get_string ##### -->
-<para>
-
-</para>
-
-@self:
-@key:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_config_new ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_config_set_integer ##### -->
-<para>
-
-</para>
-
-@self:
-@key:
-@value:
-
-
-<!-- ##### FUNCTION gsignond_config_set_string ##### -->
-<para>
-
-</para>
-
-@self:
-@key:
-@value:
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-GSignondCredentials
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### STRUCT GSignondCredentials ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### STRUCT GSignondCredentialsClass ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION gsignond_credentials_equal ##### -->
-<para>
-
-</para>
-
-@one:
-@two:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_credentials_get_id ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_credentials_get_password ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_credentials_get_username ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_credentials_new ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_credentials_set_data ##### -->
-<para>
-
-</para>
-
-@self:
-@id:
-@username:
-@password:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_credentials_set_id ##### -->
-<para>
-
-</para>
-
-@self:
-@id:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_credentials_set_password ##### -->
-<para>
-
-</para>
-
-@self:
-@password:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_credentials_set_username ##### -->
-<para>
-
-</para>
-
-@self:
-@username:
-@Returns:
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-gsignond-dictionary
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### TYPEDEF GSignondDictionary ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION gsignond_dictionary_copy ##### -->
-<para>
-
-</para>
-
-@other:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_get ##### -->
-<para>
-
-</para>
-
-@dict:
-@key:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_get_boolean ##### -->
-<para>
-
-</para>
-
-@dict:
-@key:
-@value:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_get_int32 ##### -->
-<para>
-
-</para>
-
-@dict:
-@key:
-@value:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_get_int64 ##### -->
-<para>
-
-</para>
-
-@dict:
-@key:
-@value:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_get_string ##### -->
-<para>
-
-</para>
-
-@dict:
-@key:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_get_uint32 ##### -->
-<para>
-
-</para>
-
-@dict:
-@key:
-@value:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_get_uint64 ##### -->
-<para>
-
-</para>
-
-@dict:
-@key:
-@value:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_new ##### -->
-<para>
-
-</para>
-
-@void:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_new_from_variant ##### -->
-<para>
-
-</para>
-
-@variant:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_ref ##### -->
-<para>
-
-</para>
-
-@dict:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_remove ##### -->
-<para>
-
-</para>
-
-@dict:
-@key:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_set ##### -->
-<para>
-
-</para>
-
-@dict:
-@key:
-@value:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_set_boolean ##### -->
-<para>
-
-</para>
-
-@dict:
-@key:
-@value:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_set_int32 ##### -->
-<para>
-
-</para>
-
-@dict:
-@key:
-@value:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_set_int64 ##### -->
-<para>
-
-</para>
-
-@dict:
-@key:
-@value:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_set_string ##### -->
-<para>
-
-</para>
-
-@dict:
-@key:
-@value:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_set_uint32 ##### -->
-<para>
-
-</para>
-
-@dict:
-@key:
-@value:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_set_uint64 ##### -->
-<para>
-
-</para>
-
-@dict:
-@key:
-@value:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_to_variant ##### -->
-<para>
-
-</para>
-
-@dict:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_dictionary_unref ##### -->
-<para>
-
-</para>
-
-@dict:
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-GSignondDigestPlugin
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### STRUCT GSignondDigestPlugin ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### STRUCT GSignondDigestPluginClass ##### -->
-<para>
-
-</para>
-
-@parent_class:
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-gsignond-error
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### MACRO GSIGNOND_ERROR ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### ENUM GSignondError ##### -->
-<para>
-
-</para>
-
-@GSIGNOND_ERROR_NONE:
-@GSIGNOND_ERROR_UNKNOWN:
-@GSIGNOND_ERROR_INTERNAL_SERVER:
-@GSIGNOND_ERROR_INTERNAL_COMMUNICATION:
-@GSIGNOND_ERROR_PERMISSION_DENIED:
-@GSIGNOND_ERROR_ENCRYPTION_FAILURE:
-@GSIGNOND_ERROR_AUTH_SERVICE_ERR:
-@GSIGNOND_ERROR_METHOD_NOT_KNOWN:
-@GSIGNOND_ERROR_SERVICE_NOT_AVAILABLE:
-@GSIGNOND_ERROR_INVALID_QUERY:
-@GSIGNOND_ERROR_IDENTITY_ERR:
-@GSIGNOND_ERROR_METHOD_NOT_AVAILABLE:
-@GSIGNOND_ERROR_IDENTITY_NOT_FOUND:
-@GSIGNOND_ERROR_STORE_FAILED:
-@GSIGNOND_ERROR_REMOVE_FAILED:
-@GSIGNOND_ERROR_SIGN_OUT_FAILED:
-@GSIGNOND_ERROR_IDENTITY_OPERATION_CANCELED:
-@GSIGNOND_ERROR_CREDENTIALS_NOT_AVAILABLE:
-@GSIGNOND_ERROR_REFERENCE_NOT_FOUND:
-@GSIGNOND_ERROR_AUTH_SESSION_ERR:
-@GSIGNOND_ERROR_MECHANISM_NOT_AVAILABLE:
-@GSIGNOND_ERROR_MISSING_DATA:
-@GSIGNOND_ERROR_INVALID_CREDENTIALS:
-@GSIGNOND_ERROR_NOT_AUTHORIZED:
-@GSIGNOND_ERROR_WRONG_STATE:
-@GSIGNOND_ERROR_OPERATION_NOT_SUPPORTED:
-@GSIGNOND_ERROR_NO_CONNECTION:
-@GSIGNOND_ERROR_NETWORK:
-@GSIGNOND_ERROR_SSL:
-@GSIGNOND_ERROR_RUNTIME:
-@GSIGNOND_ERROR_SESSION_CANCELED:
-@GSIGNOND_ERROR_TIMED_OUT:
-@GSIGNOND_ERROR_USER_INTERACTION:
-@GSIGNOND_ERROR_OPERATION_FAILED:
-@GSIGNOND_ERROR_ENCRYPTION_FAILED:
-@GSIGNOND_ERROR_TOS_NOT_ACCEPTED:
-@GSIGNOND_ERROR_FORGOT_PASSWORD:
-@GSIGNOND_ERROR_METHOD_OR_MECHANISM_NOT_ALLOWED:
-@GSIGNOND_ERROR_INCORRECT_DATE:
-@GSIGNOND_ERROR_USER_ERR:
-
-<!-- ##### FUNCTION gsignond_error_new_from_variant ##### -->
-<para>
-
-</para>
-
-@var:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_error_quark ##### -->
-<para>
-
-</para>
-
-@void:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_error_to_variant ##### -->
-<para>
-
-</para>
-
-@error:
-@Returns:
-
-
-<!-- ##### MACRO gsignond_get_gerror_for_id ##### -->
-<para>
-
-</para>
-
-@err:
-@message:
-@...:
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-GSignondExtension
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### STRUCT GSignondExtension ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### STRUCT GSignondExtensionClass ##### -->
-<para>
-
-</para>
-
-@parent_class:
-@get_extension_name:
-@get_extension_version:
-@get_storage_manager:
-@get_secret_storage:
-@get_access_control_manager:
-
-<!-- ##### FUNCTION gsignond_extension_get_access_control_manager ##### -->
-<para>
-
-</para>
-
-@self:
-@config:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_extension_get_name ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_extension_get_secret_storage ##### -->
-<para>
-
-</para>
-
-@self:
-@config:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_extension_get_storage_manager ##### -->
-<para>
-
-</para>
-
-@self:
-@config:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_extension_get_version ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-gsignond-log
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### MACRO DBG ##### -->
-<para>
-
-</para>
-
-@frmt:
-@...:
-
-
-<!-- ##### MACRO ERR ##### -->
-<para>
-
-</para>
-
-@frmt:
-@...:
-
-
-<!-- ##### MACRO INFO ##### -->
-<para>
-
-</para>
-
-@frmt:
-@...:
-
-
-<!-- ##### MACRO TRACEBACK ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO WARN ##### -->
-<para>
-
-</para>
-
-@frmt:
-@...:
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-GSignondPasswordPlugin
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### STRUCT GSignondPasswordPlugin ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### STRUCT GSignondPasswordPluginClass ##### -->
-<para>
-
-</para>
-
-@parent_class:
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-GSignondPlugin
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### STRUCT GSignondPluginInterface ##### -->
-<para>
-
-</para>
-
-@parent:
-@cancel:
-@request_initial:
-@request:
-@user_action_finished:
-@refresh:
-
-<!-- ##### ENUM GSignondPluginState ##### -->
-<para>
-
-</para>
-
-@GSIGNOND_PLUGIN_STATE_NONE:
-@GSIGNOND_PLUGIN_STATE_RESOLVING:
-@GSIGNOND_PLUGIN_STATE_CONNECTING:
-@GSIGNOND_PLUGIN_STATE_SENDING_DATA:
-@GSIGNOND_PLUGIN_STATE_WAITING:
-@GSIGNOND_PLUGIN_STATE_USER_PENDING:
-@GSIGNOND_PLUGIN_STATE_REFRESHING:
-@GSIGNOND_PLUGIN_STATE_PROCESS_PENDING:
-@GSIGNOND_PLUGIN_STATE_STARTED:
-@GSIGNOND_PLUGIN_STATE_CANCELING:
-@GSIGNOND_PLUGIN_STATE_DONE:
-@GSIGNOND_PLUGIN_STATE_HOLDING:
-
-<!-- ##### FUNCTION gsignond_plugin_cancel ##### -->
-<para>
-
-</para>
-
-@self:
-
-
-<!-- ##### FUNCTION gsignond_plugin_error ##### -->
-<para>
-
-</para>
-
-@self:
-@error:
-
-
-<!-- ##### FUNCTION gsignond_plugin_refresh ##### -->
-<para>
-
-</para>
-
-@self:
-@ui_data:
-
-
-<!-- ##### FUNCTION gsignond_plugin_refreshed ##### -->
-<para>
-
-</para>
-
-@self:
-@ui_data:
-
-
-<!-- ##### FUNCTION gsignond_plugin_request ##### -->
-<para>
-
-</para>
-
-@self:
-@session_data:
-
-
-<!-- ##### FUNCTION gsignond_plugin_request_initial ##### -->
-<para>
-
-</para>
-
-@self:
-@session_data:
-@identity_method_cache:
-@mechanism:
-
-
-<!-- ##### FUNCTION gsignond_plugin_response ##### -->
-<para>
-
-</para>
-
-@self:
-@session_data:
-
-
-<!-- ##### FUNCTION gsignond_plugin_response_final ##### -->
-<para>
-
-</para>
-
-@self:
-@session_data:
-
-
-<!-- ##### FUNCTION gsignond_plugin_status_changed ##### -->
-<para>
-
-</para>
-
-@self:
-@state:
-@message:
-
-
-<!-- ##### FUNCTION gsignond_plugin_store ##### -->
-<para>
-
-</para>
-
-@self:
-@identity_method_cache:
-
-
-<!-- ##### FUNCTION gsignond_plugin_user_action_finished ##### -->
-<para>
-
-</para>
-
-@self:
-@ui_data:
-
-
-<!-- ##### FUNCTION gsignond_plugin_user_action_required ##### -->
-<para>
-
-</para>
-
-@self:
-@ui_data:
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-GSignondSecretStorage
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### STRUCT GSignondSecretStorage ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG GSignondSecretStorage:config ##### -->
-<para>
-
-</para>
-
-<!-- ##### STRUCT GSignondSecretStorageClass ##### -->
-<para>
-
-</para>
-
-@parent_class:
-@open_db:
-@close_db:
-@clear_db:
-@is_open_db:
-@load_credentials:
-@update_credentials:
-@remove_credentials:
-@check_credentials:
-@load_data:
-@update_data:
-@remove_data:
-@get_last_error:
-
-<!-- ##### FUNCTION gsignond_secret_storage_check_credentials ##### -->
-<para>
-
-</para>
-
-@self:
-@creds:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_secret_storage_clear_db ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_secret_storage_close_db ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_secret_storage_get_last_error ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_secret_storage_is_open_db ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_secret_storage_load_credentials ##### -->
-<para>
-
-</para>
-
-@self:
-@id:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_secret_storage_load_data ##### -->
-<para>
-
-</para>
-
-@self:
-@id:
-@method:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_secret_storage_open_db ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_secret_storage_remove_credentials ##### -->
-<para>
-
-</para>
-
-@self:
-@id:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_secret_storage_remove_data ##### -->
-<para>
-
-</para>
-
-@self:
-@id:
-@method:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_secret_storage_update_credentials ##### -->
-<para>
-
-</para>
-
-@self:
-@creds:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_secret_storage_update_data ##### -->
-<para>
-
-</para>
-
-@self:
-@id:
-@method:
-@data:
-@Returns:
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-gsignond-security-context
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### STRUCT GSignondSecurityContext ##### -->
-<para>
-
-</para>
-
-@sys_ctx:
-@app_ctx:
-
-<!-- ##### TYPEDEF GSignondSecurityContextList ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION gsignond_security_context_check ##### -->
-<para>
-
-</para>
-
-@reference:
-@test:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_security_context_compare ##### -->
-<para>
-
-</para>
-
-@ctx1:
-@ctx2:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_security_context_copy ##### -->
-<para>
-
-</para>
-
-@src_ctx:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_security_context_free ##### -->
-<para>
-
-</para>
-
-@ctx:
-
-
-<!-- ##### FUNCTION gsignond_security_context_from_variant ##### -->
-<para>
-
-</para>
-
-@variant:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_security_context_get_application_context ##### -->
-<para>
-
-</para>
-
-@ctx:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_security_context_get_system_context ##### -->
-<para>
-
-</para>
-
-@ctx:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_security_context_list_copy ##### -->
-<para>
-
-</para>
-
-@src_list:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_security_context_list_free ##### -->
-<para>
-
-</para>
-
-@seclist:
-
-
-<!-- ##### FUNCTION gsignond_security_context_list_from_variant ##### -->
-<para>
-
-</para>
-
-@variant:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_security_context_list_to_variant ##### -->
-<para>
-
-</para>
-
-@list:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_security_context_match ##### -->
-<para>
-
-</para>
-
-@ctx1:
-@ctx2:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_security_context_new ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_security_context_new_from_values ##### -->
-<para>
-
-</para>
-
-@system_context:
-@application_context:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_security_context_set_application_context ##### -->
-<para>
-
-</para>
-
-@ctx:
-@application_context:
-
-
-<!-- ##### FUNCTION gsignond_security_context_set_system_context ##### -->
-<para>
-
-</para>
-
-@ctx:
-@system_context:
-
-
-<!-- ##### FUNCTION gsignond_security_context_to_variant ##### -->
-<para>
-
-</para>
-
-@ctx:
-@Returns:
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-gsignond-session-data
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### TYPEDEF GSignondSessionData ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ENUM GSignondUiPolicy ##### -->
-<para>
-
-</para>
-
-@GSIGNOND_UI_POLICY_DEFAULT:
-@GSIGNOND_UI_POLICY_REQUEST_PASSWORD:
-@GSIGNOND_UI_POLICY_NO_USER_INTERACTION:
-@GSIGNOND_UI_POLICY_VALIDATION:
-
-<!-- ##### FUNCTION gsignond_session_data_get_caption ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_session_data_get_network_proxy ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_session_data_get_network_timeout ##### -->
-<para>
-
-</para>
-
-@data:
-@network_timeout:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_session_data_get_realm ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_session_data_get_renew_token ##### -->
-<para>
-
-</para>
-
-@data:
-@renew_token:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_session_data_get_secret ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_session_data_get_ui_policy ##### -->
-<para>
-
-</para>
-
-@data:
-@ui_policy:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_session_data_get_username ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_session_data_get_window_id ##### -->
-<para>
-
-</para>
-
-@data:
-@window_id:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_session_data_set_caption ##### -->
-<para>
-
-</para>
-
-@data:
-@caption:
-
-
-<!-- ##### FUNCTION gsignond_session_data_set_network_proxy ##### -->
-<para>
-
-</para>
-
-@data:
-@network_proxy:
-
-
-<!-- ##### FUNCTION gsignond_session_data_set_network_timeout ##### -->
-<para>
-
-</para>
-
-@data:
-@network_timeout:
-
-
-<!-- ##### FUNCTION gsignond_session_data_set_realm ##### -->
-<para>
-
-</para>
-
-@data:
-@realm:
-
-
-<!-- ##### FUNCTION gsignond_session_data_set_renew_token ##### -->
-<para>
-
-</para>
-
-@data:
-@renew_token:
-
-
-<!-- ##### FUNCTION gsignond_session_data_set_secret ##### -->
-<para>
-
-</para>
-
-@data:
-@secret:
-
-
-<!-- ##### FUNCTION gsignond_session_data_set_ui_policy ##### -->
-<para>
-
-</para>
-
-@data:
-@ui_policy:
-
-
-<!-- ##### FUNCTION gsignond_session_data_set_username ##### -->
-<para>
-
-</para>
-
-@data:
-@username:
-
-
-<!-- ##### FUNCTION gsignond_session_data_set_window_id ##### -->
-<para>
-
-</para>
-
-@data:
-@window_id:
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-gsignond-signonui-data
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### TYPEDEF GSignondSignonuiData ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ENUM GSignondSignonuiError ##### -->
-<para>
-
-</para>
-
-@SIGNONUI_ERROR_NONE:
-@SIGNONUI_ERROR_GENERAL:
-@SIGNONUI_ERROR_NO_SIGNONUI:
-@SIGNONUI_ERROR_BAD_PARAMETERS:
-@SIGNONUI_ERROR_CANCELED:
-@SIGNONUI_ERROR_NOT_AVAILABLE:
-@SIGNONUI_ERROR_BAD_URL:
-@SIGNONUI_ERROR_BAD_CAPTCHA:
-@SIGNONUI_ERROR_BAD_CAPTCHA_URL:
-@SIGNONUI_ERROR_REFRESH_FAILED:
-@SIGNONUI_ERROR_FORBIDDEN:
-@SIGNONUI_ERROR_FORGOT_PASSWORD:
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_captcha_response ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_captcha_url ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_caption ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_confirm ##### -->
-<para>
-
-</para>
-
-@data:
-@confirm:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_final_url ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_forgot_password ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_forgot_password_url ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_message ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_open_url ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_password ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_query_error ##### -->
-<para>
-
-</para>
-
-@data:
-@error:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_query_password ##### -->
-<para>
-
-</para>
-
-@data:
-@query_password:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_query_username ##### -->
-<para>
-
-</para>
-
-@data:
-@query_username:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_remember_password ##### -->
-<para>
-
-</para>
-
-@data:
-@remember_password:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_request_id ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_test_reply ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_title ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_url_response ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_get_username ##### -->
-<para>
-
-</para>
-
-@data:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_captcha_response ##### -->
-<para>
-
-</para>
-
-@data:
-@response:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_captcha_url ##### -->
-<para>
-
-</para>
-
-@data:
-@url:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_caption ##### -->
-<para>
-
-</para>
-
-@data:
-@caption:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_confirm ##### -->
-<para>
-
-</para>
-
-@data:
-@confirm:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_final_url ##### -->
-<para>
-
-</para>
-
-@data:
-@url:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_forgot_password ##### -->
-<para>
-
-</para>
-
-@data:
-@forgot:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_forgot_password_url ##### -->
-<para>
-
-</para>
-
-@data:
-@url:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_message ##### -->
-<para>
-
-</para>
-
-@data:
-@message:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_open_url ##### -->
-<para>
-
-</para>
-
-@data:
-@url:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_password ##### -->
-<para>
-
-</para>
-
-@data:
-@password:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_query_error ##### -->
-<para>
-
-</para>
-
-@data:
-@error:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_query_password ##### -->
-<para>
-
-</para>
-
-@data:
-@query:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_query_username ##### -->
-<para>
-
-</para>
-
-@data:
-@query:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_remember_password ##### -->
-<para>
-
-</para>
-
-@data:
-@remember:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_request_id ##### -->
-<para>
-
-</para>
-
-@data:
-@id:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_test_reply ##### -->
-<para>
-
-</para>
-
-@data:
-@reply:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_title ##### -->
-<para>
-
-</para>
-
-@data:
-@title:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_url_response ##### -->
-<para>
-
-</para>
-
-@data:
-@response:
-
-
-<!-- ##### FUNCTION gsignond_signonui_data_set_username ##### -->
-<para>
-
-</para>
-
-@data:
-@username:
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-GSignondSsoTestPlugin
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### STRUCT GSignondSsoTestPlugin ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### STRUCT GSignondSsoTestPluginClass ##### -->
-<para>
-
-</para>
-
-@parent_class:
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-GSignondStorageManager
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### STRUCT GSignondStorageManager ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG GSignondStorageManager:config ##### -->
-<para>
-
-</para>
-
-<!-- ##### STRUCT GSignondStorageManagerClass ##### -->
-<para>
-
-</para>
-
-@parent_class:
-@initialize_storage:
-@delete_storage:
-@storage_is_initialized:
-@mount_filesystem:
-@unmount_filesystem:
-@filesystem_is_mounted:
-
-<!-- ##### FUNCTION gsignond_storage_manager_delete_storage ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_storage_manager_filesystem_is_mounted ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_storage_manager_initialize_storage ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_storage_manager_mount_filesystem ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_storage_manager_storage_is_initialized ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_storage_manager_unmount_filesystem ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-
+++ /dev/null
-<!-- ##### SECTION Title ##### -->
-gsignond-utils
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### FUNCTION gsignond_generate_nonce ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_wipe_directory ##### -->
-<para>
-
-</para>
-
-@dirname:
-@Returns:
-
-
-<!-- ##### FUNCTION gsignond_wipe_file ##### -->
-<para>
-
-</para>
-
-@filename:
-@Returns:
-
-
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@abs_top_builddir@/include
-pluginsdir=@libdir@/@PACKAGE@/plugins
+gpluginsdir=@libdir@/@PACKAGE@/gplugins
+pluginloadersdir = @libdir@/@PACKAGE@/pluginloaders
extensionsdir=@libdir@/@PACKAGE@/extensions
Name: @PACKAGE_NAME@
#
[General]
-# Directory for binary executables.
-#BinDir =
-#
# Define extension / platform adaptation module to use.
# 'default' is a dummy one with no encrypted storage, but with basic Unix
# discretionary access control.
#Extension = default
#
-# Extension directory where extension modules are located.
-#ExtensionsDir =
-#
# Base path where user specific database directories will be located.
-# Default: /var/db
-#StoragePath =
-#
-# Location for authentication plugins.
-#PluginDir =
+@BASE_STORAGE_DIR@
#
# Timeout for unloading cached plugin instances.
#PluginTimeout = 0
-
-#
-# Database related settings.
-#
-[Storage]
-
-# File name for the metadata database. (excluding path)
-#MetadataDBFilename = metadata.db
#
-# File name for the credential database. (excluding path)
-#SecretDBFilename = secret.db
+# System security context of the keychain UI
+@KEYCHAIN_SYSCTX@
#
# D-Bus related settings.
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
-pluginsdir=@libdir@/@PACKAGE@/plugins
+gpluginsdir=@libdir@/@PACKAGE@/gplugins
+pluginloadersdir = @libdir@/@PACKAGE@/pluginloaders
extensionsdir=@libdir@/@PACKAGE@/extensions
Name: @PACKAGE_NAME@
$(HTML_IMAGES) \
$(SETUP_FILES)
-DOC_STAMPS=setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \
+DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \
html-build.stamp pdf-build.stamp \
- tmpl.stamp sgml.stamp html.stamp pdf.stamp
+ sgml.stamp html.stamp pdf.stamp
SCANOBJ_FILES = \
$(DOC_MODULE).args \
$(DOC_MODULE)-undeclared.txt \
$(DOC_MODULE)-unused.txt
-CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
+gtkdoc-check.test: Makefile
+ $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \
+ echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \
+ chmod +x $@
+
+CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test
-if ENABLE_GTK_DOC
if GTK_DOC_BUILD_HTML
HTML_BUILD_STAMP=html-build.stamp
else
PDF_BUILD_STAMP=
endif
-all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
-else
-all-local:
+all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+.PHONY: all-gtk-doc
+
+if ENABLE_GTK_DOC
+all-local: all-gtk-doc
endif
docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
if test "x$$files" != "x" ; then \
for file in $$files ; do \
+ destdir=`dirname $(abs_builddir)/$$file`; \
+ test -d "$$destdir" || mkdir -p "$$destdir"; \
test -f $(abs_srcdir)/$$file && \
- cp -pu $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
+ cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
done; \
fi; \
- test -d $(abs_srcdir)/tmpl && \
- { cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \
- chmod -R u+w $(abs_builddir)/tmpl; } \
fi
$(AM_V_at)touch setup-build.stamp
+
#### scan ####
GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V))
GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects";
-scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
+scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
$(GTK_DOC_V_SCAN)_source_dir='' ; \
for i in $(DOC_SOURCE_DIR) ; do \
_source_dir="$${_source_dir} --source-dir=$$i" ; \
$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
@true
-#### templates ####
-
-GTK_DOC_V_TMPL=$(GTK_DOC_V_TMPL_$(V))
-GTK_DOC_V_TMPL_=$(GTK_DOC_V_TMPL_$(AM_DEFAULT_VERBOSITY))
-GTK_DOC_V_TMPL_0=@echo " DOC Rebuilding template files";
-
-tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
- $(GTK_DOC_V_TMPL)gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
- $(AM_V_at)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
- if test -w $(abs_srcdir) ; then \
- cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
- fi \
- fi
- $(AM_V_at)touch tmpl-build.stamp
-
-tmpl.stamp: tmpl-build.stamp
- @true
-
-$(srcdir)/tmpl/*.sgml:
- @true
-
#### xml ####
GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V))
GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
GTK_DOC_V_XML_0=@echo " DOC Building XML";
-sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
- -$(GTK_DOC_V_XML)chmod -R u+w $(srcdir) && _source_dir='' ; \
+sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
+ $(GTK_DOC_V_XML)_source_dir='' ; \
for i in $(DOC_SOURCE_DIR) ; do \
_source_dir="$${_source_dir} --source-dir=$$i" ; \
done ; \
clean-local:
@rm -f *~ *.bak
@rm -rf .libs
+ @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
+ rm -f $(DOC_MODULE).types; \
+ fi
distclean-local:
@rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
$(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
- rm -rf tmpl; \
fi
maintainer-clean-local:
#
# Require gtk-doc when making dist
#
-if ENABLE_GTK_DOC
+if HAVE_GTK_DOC
dist-check-gtkdoc: docs
else
dist-check-gtkdoc:
- @echo "*** gtk-doc must be installed and enabled in order to make dist"
+ @echo "*** gtk-doc is needed to run 'make dist'. ***"
+ @echo "*** gtk-doc was not found when 'configure' ran. ***"
+ @echo "*** please install gtk-doc and rerun 'configure'. ***"
@false
endif
-dist-hook: dist-check-gtkdoc dist-hook-local
- @mkdir $(distdir)/tmpl
+dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local
@mkdir $(distdir)/html
- @-cp ./tmpl/*.sgml $(distdir)/tmpl
@cp ./html/* $(distdir)/html
@-cp ./$(DOC_MODULE).pdf $(distdir)/
@-cp ./$(DOC_MODULE).types $(distdir)/
+++ /dev/null
-/* vi: set et sw=4 ts=4 cino=t0,(0: */
-/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of gsignond
- *
- * Copyright (C) 2012 Intel Corporation.
- *
- * Contact: Amarnath Valluri <amarnath.valluri@linux.intel.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- */
-
-#ifndef __GSIGNOND_CONFIG_DB_H_
-#define __GSIGNOND_CONFIG_DB_H_
-
-/**
- * SECTION:gsignond-config-db
- * @title: Database configuration
- * @short_description: gSSO database configuration keys
- * @include: gsignond/gsignond-config.h
- *
- * Database configuration keys are defined below. See #GSignondConfig for how to use them.
- */
-
-/**
- * GSIGNOND_CONFIG_DB_SSO:
- *
- * A prefix for database keys. Should be used only when defining new keys.
- */
-#define GSIGNOND_CONFIG_DB_SSO "Storage"
-/**
- * GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME:
- *
- * The filename of the credentials database.
- *
- * Default value: "secret.db".
- */
-#define GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME GSIGNOND_CONFIG_DB_SSO \
- "/SecretDBFilename"
-/**
- * GSIGNOND_CONFIG_DB_METADATA_DB_FILENAME:
- *
- * The filename of the metadata database.
- *
- * Default value: "metadata.db".
- */
-#define GSIGNOND_CONFIG_DB_METADATA_DB_FILENAME GSIGNOND_CONFIG_DB_SSO \
- "/MetadataDBFilename"
-
-#endif /* __GSIGNOND_DB_CONFIG_H_ */
* A prefix for general keys. Should be used only when defining new keys.
*/
#define GSIGNOND_CONFIG_GENERAL "General"
+
/**
* GSIGNOND_CONFIG_GENERAL_STORAGE_PATH:
*
#define GSIGNOND_CONFIG_GENERAL_STORAGE_PATH GSIGNOND_CONFIG_GENERAL \
"/StoragePath"
/**
- * GSIGNOND_CONFIG_GENERAL_EXTENSIONS_DIR:
- *
- * The path where gSSO is looking for available extension modules.
- *
- * Default value: $(pkglibdir)/extensions, can be overriden in debug
- * builds by setting SSO_EXTENSIONS_DIR environment variable.
- */
-#define GSIGNOND_CONFIG_GENERAL_EXTENSIONS_DIR GSIGNOND_CONFIG_GENERAL \
- "/ExtensionsDir"
-/**
- * GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR:
- *
- * The path where gSSO is looking for available plugins.
- *
- * Default value: $(pkglibdir)/plugins, can be overriden in debug
- * builds by setting SSO_PLUGINS_DIR environment variable.
- */
-#define GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR GSIGNOND_CONFIG_GENERAL \
- "/PluginsDir"
-/**
- * GSIGNOND_CONFIG_GENERAL_BIN_DIR:
- *
- * The path where gSSO is looking for the gsignond-plugind binary when it needs
- * to start a plugin process. Can be used for finding other supplementary binaries in
- * the future.
- *
- * Default value: $(bindir), can be overriden in debug
- * builds by setting SSO_BIN_DIR environment variable.
- */
-#define GSIGNOND_CONFIG_GENERAL_BIN_DIR GSIGNOND_CONFIG_GENERAL \
- "/BinDir"
-/**
* GSIGNOND_CONFIG_GENERAL_EXTENSION:
*
* The name of the gSSO extension to use. If not specified, the default
*
* Path provided by #GSignondStorageManager for storing user-specific
* information, including secret and metadata databases.
+ *
+ * This is a run-time value and any value read from configuration file
+ * is overwritten.
*
* Value provided by the default implementation:
* #GSIGNOND_CONFIG_GENERAL_STORAGE_PATH + "/gsignond." + g_get_user_name().
#define GSIGNOND_CONFIG_PLUGIN_TIMEOUT GSIGNOND_CONFIG_GENERAL \
"/PluginTimeout"
+/**
+ * GSIGNOND_CONFIG_GENERAL_KEYCHAIN_SYSCTX:
+ *
+ * System security context of the keychain UI process
+ * (see #GSignondAccessControlManager).
+ *
+ * Default value can be defined through configure --enable-keychain flag (see
+ * <link linkend="gsignond-building">Building gsignond</link>).
+ */
+#define GSIGNOND_CONFIG_GENERAL_KEYCHAIN_SYSCTX GSIGNOND_CONFIG_GENERAL \
+ "/KeychainSystemContext"
+
#endif /* __GSIGNOND_GENERAL_CONFIG_H_ */
#include <glib-object.h>
#include "gsignond-config-general.h"
-#include "gsignond-config-db.h"
#include "gsignond-config-dbus.h"
G_BEGIN_DECLS
GVariant *
gsignond_dictionary_to_variant (GSignondDictionary *dict);
+GVariantBuilder *
+gsignond_dictionary_to_variant_builder (GSignondDictionary *dict);
+
GVariant *
gsignond_dictionary_get (GSignondDictionary *dict, const gchar *key);
gboolean
gsignond_dictionary_remove (GSignondDictionary *dict, const gchar *key);
+gboolean
+gsignond_dictionary_contains (GSignondDictionary *dict, const gchar *key);
+
G_END_DECLS
#endif /* __GSIGNOND_DICTIONARY_H__ */
+++ /dev/null
-/* vi: set et sw=4 ts=4 cino=t0,(0: */
-/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of gsignond
- *
- * Copyright (C) 2012-2013 Intel Corporation.
- *
- * Contact: Imran Zaman <imran.zaman@linux.intel.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- */
-
-#ifndef __GSIGNOND_IDENTITY_INFO_H__
-#define __GSIGNOND_IDENTITY_INFO_H__
-
-#include <glib.h>
-#include <glib-object.h>
-#include <gsignond/gsignond-security-context.h>
-#include <gsignond/gsignond-dictionary.h>
-
-G_BEGIN_DECLS
-
-#define GSIGNOND_TYPE_IDENTITY_INFO (GSIGNOND_TYPE_DICTIONARY)
-
-#define GSIGNOND_IDENTITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
- GSIGNOND_TYPE_IDENTITY_INFO, \
- GSignondIdentityInfo))
-#define GSIGNOND_IS_IDENTITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj),\
- GSIGNOND_TYPE_IDENTITY_INFO))
-
-typedef GSignondDictionary GSignondIdentityInfo;
-typedef GList GSignondIdentityInfoList;
-
-GSignondIdentityInfo *
-gsignond_identity_info_new (void);
-
-GSignondIdentityInfo *
-gsignond_identity_info_copy (GSignondIdentityInfo *info);
-
-void
-gsignond_identity_info_ref (GSignondIdentityInfo *info);
-
-void
-gsignond_identity_info_unref (GSignondIdentityInfo *info);
-
-guint32
-gsignond_identity_info_get_id (GSignondIdentityInfo *info);
-
-gboolean
-gsignond_identity_info_set_id (
- GSignondIdentityInfo *info,
- guint32 id);
-
-gboolean
-gsignond_identity_info_get_is_identity_new (GSignondIdentityInfo *info);
-
-gboolean
-gsignond_identity_info_set_identity_new (GSignondIdentityInfo *info);
-
-const gchar *
-gsignond_identity_info_get_username (GSignondIdentityInfo *info);
-
-gboolean
-gsignond_identity_info_set_username (
- GSignondIdentityInfo *info,
- const gchar *username);
-
-void
-gsignond_identity_info_remove_username (GSignondIdentityInfo *info);
-
-gboolean
-gsignond_identity_info_get_is_username_secret (GSignondIdentityInfo *info);
-
-gboolean
-gsignond_identity_info_set_username_secret (
- GSignondIdentityInfo *info,
- gboolean username_secret);
-
-const gchar *
-gsignond_identity_info_get_secret (GSignondIdentityInfo *info);
-
-gboolean
-gsignond_identity_info_set_secret (
- GSignondIdentityInfo *info,
- const gchar *secret);
-
-void
-gsignond_identity_info_remove_secret (GSignondIdentityInfo *info);
-
-gboolean
-gsignond_identity_info_get_store_secret (GSignondIdentityInfo *info);
-
-gboolean
-gsignond_identity_info_set_store_secret (
- GSignondIdentityInfo *info,
- gboolean store_secret);
-
-const gchar *
-gsignond_identity_info_get_caption (GSignondIdentityInfo *info);
-
-gboolean
-gsignond_identity_info_set_caption (
- GSignondIdentityInfo *info,
- const gchar *caption);
-
-GSequence *
-gsignond_identity_info_get_realms (GSignondIdentityInfo *info);
-
-gboolean
-gsignond_identity_info_set_realms (
- GSignondIdentityInfo *info,
- GSequence *realms);
-
-GHashTable *
-gsignond_identity_info_get_methods (GSignondIdentityInfo *info);
-
-gboolean
-gsignond_identity_info_set_methods (
- GSignondIdentityInfo *info,
- GHashTable *methods);
-
-GSequence *
-gsignond_identity_info_get_mechanisms (
- GSignondIdentityInfo *info,
- const gchar *method);
-
-gboolean
-gsignond_identity_info_remove_method (
- GSignondIdentityInfo *info,
- const gchar *method);
-
-GSignondSecurityContextList *
-gsignond_identity_info_get_access_control_list (GSignondIdentityInfo *info);
-
-gboolean
-gsignond_identity_info_set_access_control_list (
- GSignondIdentityInfo *info,
- const GSignondSecurityContextList *acl);
-
-GSignondSecurityContext *
-gsignond_identity_info_get_owner (GSignondIdentityInfo *info);
-
-gboolean
-gsignond_identity_info_set_owner (
- GSignondIdentityInfo *info,
- const GSignondSecurityContext *owner);
-
-gboolean
-gsignond_identity_info_get_validated (GSignondIdentityInfo *info);
-
-gboolean
-gsignond_identity_info_set_validated (
- GSignondIdentityInfo *info,
- gboolean validated);
-
-guint32
-gsignond_identity_info_get_identity_type (GSignondIdentityInfo *info);
-
-gboolean
-gsignond_identity_info_set_identity_type (
- GSignondIdentityInfo *info,
- guint32 type);
-
-gboolean
-gsignond_identity_info_compare (
- GSignondIdentityInfo *info,
- GSignondIdentityInfo *other);
-
-void
-gsignond_identity_info_list_free (GSignondIdentityInfoList *list);
-
-G_END_DECLS
-
-#endif /* __GSIGNOND_IDENTITY_INFO_H__ */
gsignond_session_data_set_realm (GSignondSessionData *data,
const gchar *realm);
+GSequence *
+gsignond_session_data_get_allowed_realms (GSignondSessionData *data);
+
+void
+gsignond_session_data_set_allowed_realms (GSignondSessionData *data,
+ GSequence *realms);
const gchar *
gsignond_session_data_get_caption (GSignondSessionData *data);
+++ /dev/null
-#ifndef _GSIGNOND_SIGNONUI_H_
-#define _GSIGNOND_SIGNONUI_H_
-
-/**
- * @GSignondSignonuiError:
- * @SIGNONUI_ERROR_NONE: No errors
- * @SIGNONUI_ERROR_GENERAL: Generic error during interaction
- * @SIGNONUI_ERROR_NO_SIGNONUI: Cannot send request to signon-ui
- * @SIGNONUI_ERROR_BAD_PARAMETERS:Signon-Ui cannot create dialog based on the given UiSessionData
- * @SIGNONUI_ERROR_CANCELED: User canceled action. Plugin should not retry automatically after this
- * @SIGNONUI_ERROR_NOT_AVAILABLE: Requested ui is not available. For example browser cannot be started
- * @SIGNONUI_ERROR_BAD_URL: Given url was not valid
- * @SIGNONUI_ERROR_BAD_CAPTCHA: Given captcha image was not valid
- * @SIGNONUI_ERROR_BAD_CAPTCHA_URL: Given url for capctha loading was not valid
- * @SIGNONUI_ERROR_REFRESH_FAILED: Refresh failed
- * @SIGNONUI_ERROR_FORBIDDEN: Showing ui forbidden by ui policy
- * @SIGNONUI_ERROR_FORGOT_PASSWORD: User pressed forgot password
- */
-typedef enum {
- SIGNONUI_ERROR_NONE = 0,
- SIGNONUI_ERROR_GENERAL,
- SIGNONUI_ERROR_NO_SIGNONUI,
- SIGNONUI_ERROR_BAD_PARAMETERS,
- SIGNONUI_ERROR_CANCELED,
- SIGNONUI_ERROR_NOT_AVAILABLE,
- SIGNONUI_ERROR_BAD_URL,
- SIGNONUI_ERROR_BAD_CAPTCHA,
- SIGNONUI_ERROR_BAD_CAPTCHA_URL,
- SIGNONUI_ERROR_REFRESH_FAILED,
- SIGNONUI_ERROR_FORBIDDEN,
- SIGNONUI_ERROR_FORGOT_PASSWORD
-} GSignondSignonuiError;
-
-#endif //_GSIGNOND_SIGNONUI_H_
gchar *
gsignond_generate_nonce ();
+GVariant *
+gsignond_sequence_to_variant (GSequence *seq);
+
+GSequence *
+gsignond_variant_to_sequence (GVariant *var);
+
+gchar **
+gsignond_sequence_to_array (GSequence *seq);
+
+GSequence *
+gsignond_array_to_sequence (gchar **items);
+
+GSequence *
+gsignond_copy_array_to_sequence (const gchar **items);
+
+gboolean
+gsignond_is_host_in_domain(const gchar *host, const gchar *domain);
+
G_END_DECLS
#endif /* _SGINOND_UTILS_H_ */
dnl -*- mode: autoconf -*-
-# serial 1
+# serial 2
dnl Usage:
dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
+ ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"])
+ AC_MSG_CHECKING([for gtk-doc])
+ PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no])
+ AC_MSG_RESULT($have_gtk_doc)
+
+ if test "$have_gtk_doc" = "no"; then
+ AC_MSG_WARN([
+ You will not be able to create source packages with 'make dist'
+ because $gtk_doc_requires is not found.])
+ fi
+
dnl check for tools we added during development
- AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check])
+ dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that
+ dnl may not be writable by the user. Currently, automake requires that the
+ dnl test name must end in '.test'.
+ dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638
+ AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test])
+ AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check])
AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
[use gtk-doc to build documentation [[default=no]]]),,
[enable_gtk_doc=no])
- if test x$enable_gtk_doc = xyes; then
- ifelse([$1],[],
- [PKG_CHECK_EXISTS([gtk-doc],,
- AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
- [PKG_CHECK_EXISTS([gtk-doc >= $1],,
- AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
- dnl don't check for glib if we build glib
- if test "x$PACKAGE_NAME" != "xglib"; then
- dnl don't fail if someone does not have glib
- PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:])
- fi
- fi
-
AC_MSG_CHECKING([whether to build gtk-doc documentation])
AC_MSG_RESULT($enable_gtk_doc)
+ if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then
+ AC_MSG_ERROR([
+ You must have $gtk_doc_requires installed to build documentation for
+ $PACKAGE_NAME. Please install gtk-doc or disable building the
+ documentation by adding '--disable-gtk-doc' to '[$]0'.])
+ fi
+
+ dnl don't check for glib if we build glib
+ if test "x$PACKAGE_NAME" != "xglib"; then
+ dnl don't fail if someone does not have glib
+ PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:])
+ fi
+
dnl enable/disable output formats
AC_ARG_ENABLE([gtk-doc-html],
AS_HELP_STRING([--enable-gtk-doc-html],
fi
AC_SUBST([AM_DEFAULT_VERBOSITY])
+ AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes])
AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
+* Fri Mar 07 2014 Jussi Laako <jussi.laako@linux.intel.com>
+- Release 1.0.1
+
+* Thu Mar 06 2014 Imran Zaman <imran.zaman@intel.com>
+- Release 1.0.0
+- Assorted fixes and cleanups, updated version
+- docs: add documentation for multple plugin loaders
+- Update .gitignore
+- plugins: simplify process killing
+- plugind: export the plugin object on d-bus after connecting all the signals and setting properties
+- Other memory leak and bug fixes
+
+* Fri Feb 28 2014 Jussi Laako <jussi.laako@linux.intel.com>
+- Release 0.0.4
+
* Thu Aug 22 2013 Amarnath Valluri <amarnath.valluri@linux.intel.com>
- Release 0.0.3
- Bug fixes in UI interaction
--- /dev/null
+<manifest>
+ <request>
+ <domain name="_"/>
+ </request>
+</manifest>
Name: gsignond
Summary: GLib based Single Sign-On daemon
-Version: 0.0.3
+Version: 1.0.1
Release: 1
Group: System/Daemons
License: LGPL-2.1+
Source: %{name}-%{version}.tar.gz
+URL: https://01.org/gsso
+Source1001: %{name}.manifest
Provides: gsignon
%if %{dbus_type} != "p2p"
Requires: dbus-1
%prep
%setup -q -n %{name}-%{version}
-if [ -f = "gtk-doc.make" ]
-then
-rm gtk-doc.make
-fi
-touch gtk-doc.make
-autoreconf -f -i
%build
%install
rm -rf %{buildroot}
%make_install
+cp -a %{SOURCE1001} %{buildroot}%{_datadir}/%{name}.manifest
%post
/sbin/ldconfig
chmod u+s %{_bindir}/%{name}
-groupadd -f -r gsignond
+getent group gsignond > /dev/null || /usr/sbin/groupadd -r gsignond
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
+%manifest %{_datadir}/%{name}.manifest
%doc AUTHORS COPYING.LIB INSTALL NEWS README
%{_bindir}/%{name}
-%{_bindir}/%{name}-plugind
%{_libdir}/lib%{name}-*.so.*
%{_libdir}/%{name}/extensions/*.so*
-%{_libdir}/%{name}/plugins/*.so*
+%{_libdir}/%{name}/gplugins/*.so*
+%{_libdir}/%{name}/pluginloaders/%{name}-plugind
%if %{dbus_type} != "p2p"
%{_datadir}/dbus-1/services/*SingleSignOn*.service
%endif
-SUBDIRS=common daemon extensions plugins
+SUBDIRS=common daemon gplugind extensions plugins
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-SUBDIRS = common daemon extensions plugins
+SUBDIRS = common daemon gplugind extensions plugins
all: all-recursive
.SUFFIXES:
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
-I$(top_srcdir)/include \
-I. \
$(GSIGNOND_CFLAGS) \
- -DGSIGNOND_PLUGINS_DIR='"$(pluginsdir)"' \
- -DGSIGNOND_EXTENSIONS_DIR='"$(extensionsdir)"' \
- -DGSIGNOND_BIN_DIR='"$(bindir)"' \
+ -DGSIGNOND_GPLUGINS_DIR='"$(gpluginsdir)"' \
-DGSIGNOND_SYSCONF_DIR='"$(sysconfdir)"' \
$(NULL)
gsignond-dictionary.c \
gsignond-session-data.c \
gsignond-signonui-data.c \
- gsignond-plugin-loader.h \
- gsignond-plugin-loader.c \
gsignond-utils.c \
gsignond-pipe-stream.h \
gsignond-pipe-stream.c \
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
libgsignond_common_la-gsignond-dictionary.lo \
libgsignond_common_la-gsignond-session-data.lo \
libgsignond_common_la-gsignond-signonui-data.lo \
- libgsignond_common_la-gsignond-plugin-loader.lo \
libgsignond_common_la-gsignond-utils.lo \
libgsignond_common_la-gsignond-pipe-stream.lo \
libgsignond_common_la-gsignond-disposable.lo $(am__objects_2) \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
extensionsdir = $(pkglibdir)/extensions
-pluginsdir = $(pkglibdir)/plugins
+pluginloadersdir = $(pkglibdir)/pluginloaders
+gpluginsdir = $(pkglibdir)/gplugins
SUBDIRS = db
NULL =
lib_LTLIBRARIES = libgsignond-common.la
-I$(top_srcdir)/include \
-I. \
$(GSIGNOND_CFLAGS) \
- -DGSIGNOND_PLUGINS_DIR='"$(pluginsdir)"' \
- -DGSIGNOND_EXTENSIONS_DIR='"$(extensionsdir)"' \
- -DGSIGNOND_BIN_DIR='"$(bindir)"' \
+ -DGSIGNOND_GPLUGINS_DIR='"$(gpluginsdir)"' \
-DGSIGNOND_SYSCONF_DIR='"$(sysconfdir)"' \
$(NULL)
gsignond-dictionary.c \
gsignond-session-data.c \
gsignond-signonui-data.c \
- gsignond-plugin-loader.h \
- gsignond-plugin-loader.c \
gsignond-utils.c \
gsignond-pipe-stream.h \
gsignond-pipe-stream.c \
$(am__aclocal_m4_deps):
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
+ test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
else :; fi; \
done; \
test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_common_la-gsignond-pipe-stream.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_common_la-gsignond-plugin-enum-types.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_common_la-gsignond-plugin-interface.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_common_la-gsignond-plugin-loader.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_common_la-gsignond-security-context.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_common_la-gsignond-session-data.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_common_la-gsignond-signonui-data.Plo@am__quote@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_common_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_common_la-gsignond-signonui-data.lo `test -f 'gsignond-signonui-data.c' || echo '$(srcdir)/'`gsignond-signonui-data.c
-libgsignond_common_la-gsignond-plugin-loader.lo: gsignond-plugin-loader.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_common_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_common_la-gsignond-plugin-loader.lo -MD -MP -MF $(DEPDIR)/libgsignond_common_la-gsignond-plugin-loader.Tpo -c -o libgsignond_common_la-gsignond-plugin-loader.lo `test -f 'gsignond-plugin-loader.c' || echo '$(srcdir)/'`gsignond-plugin-loader.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_common_la-gsignond-plugin-loader.Tpo $(DEPDIR)/libgsignond_common_la-gsignond-plugin-loader.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsignond-plugin-loader.c' object='libgsignond_common_la-gsignond-plugin-loader.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_common_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_common_la-gsignond-plugin-loader.lo `test -f 'gsignond-plugin-loader.c' || echo '$(srcdir)/'`gsignond-plugin-loader.c
-
libgsignond_common_la-gsignond-utils.lo: gsignond-utils.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_common_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_common_la-gsignond-utils.lo -MD -MP -MF $(DEPDIR)/libgsignond_common_la-gsignond-utils.Tpo -c -o libgsignond_common_la-gsignond-utils.lo `test -f 'gsignond-utils.c' || echo '$(srcdir)/'`gsignond-utils.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_common_la-gsignond-utils.Tpo $(DEPDIR)/libgsignond_common_la-gsignond-utils.Plo
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(libgsignond_common_db_la_SOURCES)
DIST_SOURCES = $(libgsignond_common_db_la_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
#include "gsignond/gsignond-log.h"
#include "gsignond/gsignond-secret-storage.h"
+#define GSIGNOND_SECRET_DB_FILENAME "secret.db"
+
/**
* SECTION:gsignond-secret-storage
* @short_description: provides access to the database that stores user credentials and identity/method cache
_open_db (GSignondSecretStorage *self)
{
const gchar *dir = NULL;
- const gchar *filename = NULL;
gchar *db_filename = NULL;
gboolean ret = FALSE;
ERR ("No directory specified in config object for secret db...");
return FALSE;
}
- filename = gsignond_config_get_string (self->config,
- GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME);
- if (!filename) {
- ERR ("Database filename not specified");
- return FALSE;
- }
- db_filename = g_build_filename (dir, filename, NULL);
+ db_filename = g_build_filename (dir, GSIGNOND_SECRET_DB_FILENAME, NULL);
if (!db_filename) {
ERR ("Invalid db filename...");
return FALSE;
*
* Opens (and initializes) the database. The implementation should take
* care of creating the DB, if it doesn't exist, and it should use
- * #GSIGNOND_CONFIG_GENERAL_SECURE_DIR and #GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME
+ * #GSIGNOND_CONFIG_GENERAL_SECURE_DIR
* to determine database location in the filesystem.
*
* The default implementation is using SQLite for the storage.
GSignondSecurityContext *
_security_context_of_keychain (GSignondAccessControlManager *self)
{
- const gchar *keychain_sysctx = NULL;
+ g_return_val_if_fail (self != NULL, NULL);
- (void) self;
+ const gchar *keychain_sysctx;
-# if defined(ENABLE_DEBUG)
- keychain_sysctx = g_getenv ("SSO_KEYCHAIN_SYSCTX");
-# elif defined(KEYCHAIN_SYSCTX)
- keychain_sysctx = KEYCHAIN_SYSCTX;
-# endif
+ keychain_sysctx = gsignond_config_get_string (
+ self->config,
+ GSIGNOND_CONFIG_GENERAL_KEYCHAIN_SYSCTX);
if (!keychain_sysctx)
+# ifdef KEYCHAIN_SYSCTX
+ keychain_sysctx = KEYCHAIN_SYSCTX;
+# else
keychain_sysctx = "";
- return gsignond_security_context_new_from_values (keychain_sysctx, "");
+# endif
+# ifdef ENABLE_DEBUG
+ const gchar *keychain_env = g_getenv ("SSO_KEYCHAIN_SYSCTX");
+ if (keychain_env)
+ keychain_sysctx = keychain_env;
+# endif
+
+ return gsignond_security_context_new_from_values (keychain_sysctx, NULL);
}
/**
* has a special management access to all stored identities and is able to
* perform deletion of all identities from storage.
*
- * The default implementation returns an empty context. If gSSO was compiled
+ * The default implementation returns a context either set in #GSignondConfig,
+ * or if not set, a value specified through a configure --enable-keychain
+ * option (see
+ * <link linkend="gsignond-building">Building gsignond</link>), or if that is not
+ * set either then an empty string "" is returned.
+ *
+ * If gSSO was compiled
* with --enable-debug and SSO_KEYCHAIN_SYSCTX environment variable is set, then
* the value of that variable is used to set the returned system context instead.
*
/*
* This file is part of gsignond
*
- * Copyright (C) 2012 Intel Corporation.
+ * Copyright (C) 2012-2013 Intel Corporation.
*
* Contact: Jussi Laako <jussi.laako@linux.intel.com>
* Amarnath Valluri <amarnath.valluri@linux.intel.com>
#include "gsignond/gsignond-config.h"
#include "gsignond/gsignond-config-general.h"
-#include "gsignond/gsignond-config-db.h"
#include "gsignond/gsignond-config-dbus.h"
#include "gsignond/gsignond-log.h"
#include "gsignond/gsignond-dictionary.h"
* #GSignondConfig holds configuration information as a set of keys and values
* (integer or strings). The key names are defined in
* <link linkend="gsignond-General-configuration">general config keys</link>,
- * <link linkend="gsignond-Database-configuration">database config keys</link>, and
- * <link linkend="gsignond-DBus-configuration">DBus config keys</link>.
+ * and <link linkend="gsignond-DBus-configuration">DBus config keys</link>.
*
- * The configuration is discovered from these sources, in decreasing order of
- * priority:
- * - environment variables, if gSSO has been compiled with --enable-debug switch.
- * See the specific keys documentation for the variable names.
- * - gSSO configuration file. See below for where the file is searched for.
- * - default values. See the documentation for specific keys for those.
+ * The configuration is retrieved from the gSSO configuration file. See below
+ * for where the file is searched for.
*
* <refsect1><title>Where the configuration file is searched for</title></refsect1>
*
* If gSSO has been compiled with --enable-debug, then these locations are used,
* in decreasing order of priority:
* - GSIGNOND_CONFIG environment variable
- * - g_get_user_config_dir() + "gsignond/gsignond.conf"
- * - each of g_get_system_config_dirs() + "gsignond/gsignond.conf"
+ * - g_get_user_config_dir() + "gsignond.conf"
+ * - path specified in --sysconfdir configure option ($(sysconfdir))
+ * - each of g_get_system_config_dirs() + "gsignond.conf"
*
* Otherwise, the config file location is determined at compilation time as
- * $(sysconfdir) + "gsignond/gsignond.conf"
+ * $(sysconfdir) + "gsignond.conf"
*
* <refsect1><title>Example configuration file</title></refsect1>
*
* See example configuration file here:
- * <ulink url="http://code.google.com/p/accounts-sso/source/browse/gsignond.conf?repo=gsignond">
- * http://code.google.com/p/accounts-sso/source/browse/gsignond.conf?repo=gsignond</ulink>
+ * <ulink url="http://code.google.com/p/accounts-sso/source/browse/gsignond.conf.in?repo=gsignond">
+ * http://code.google.com/p/accounts-sso/source/browse/gsignond.conf.in?repo=gsignond</ulink>
*/
/**
*/
-#define GSIGNOND_DB_METADATA_DEFAULT_DB_FILENAME "metadata.db"
-#define GSIGNOND_DB_SECRET_DEFAULT_DB_FILENAME "secret.db"
-
struct _GSignondConfigPrivate
{
gchar *config_file_path;
G_DEFINE_TYPE (GSignondConfig, gsignond_config, G_TYPE_OBJECT);
-
-static void
-_set_storage_path (GSignondConfig *self, const gchar *value)
+static gchar *
+_check_config_file (const gchar *path)
{
- gchar *storage_path = g_build_filename (value,
- "gsignond.general",
- NULL);
- gsignond_config_set_string (self,
- GSIGNOND_CONFIG_GENERAL_STORAGE_PATH,
- storage_path);
- g_free (storage_path);
+ gchar *fn;
+
+ fn = g_build_filename (path,
+ "gsignond.conf",
+ NULL);
+ DBG ("check config at %s", fn);
+ if (g_access (fn, R_OK) == 0)
+ return fn;
+ g_free (fn);
+ return NULL;
}
static gboolean
_load_config (GSignondConfig *self)
{
- gchar *def_config;
GError *err = NULL;
gchar **groups = NULL;
gsize n_groups = 0;
const gchar * const *sysconfdirs;
if (!self->priv->config_file_path) {
- def_config = g_strdup (g_getenv ("GSIGNOND_CONFIG"));
- if (!def_config)
- def_config = g_build_filename (g_get_user_config_dir(),
- "gsignond/gsignond.conf",
- NULL);
- if (g_access (def_config, R_OK) == 0) {
- self->priv->config_file_path = def_config;
- } else {
- g_free (def_config);
- sysconfdirs = g_get_system_config_dirs ();
- while (*sysconfdirs != NULL) {
- def_config = g_build_filename (*sysconfdirs,
- "gsignond/gsignond.conf",
- NULL);
- if (g_access (def_config, R_OK) == 0) {
- self->priv->config_file_path = def_config;
- break;
- }
- g_free (def_config);
- sysconfdirs++;
+ const gchar *cfg_env = g_getenv ("GSIGNOND_CONFIG");
+ if (cfg_env)
+ self->priv->config_file_path = _check_config_file (cfg_env);
+ }
+ if (!self->priv->config_file_path) {
+ gchar *user_cfg = g_strdup_printf ("%s/%s",
+ g_get_user_config_dir (),
+ "gsignond");
+ self->priv->config_file_path = _check_config_file (user_cfg);
+ g_free (user_cfg);
+ }
+ if (!self->priv->config_file_path) {
+ self->priv->config_file_path =
+ _check_config_file (GSIGNOND_SYSCONF_DIR);
+ }
+ if (!self->priv->config_file_path) {
+ sysconfdirs = g_get_system_config_dirs ();
+ while (*sysconfdirs != NULL) {
+ gchar *sys_cfg = _check_config_file (*sysconfdirs);
+ if (sys_cfg) {
+ self->priv->config_file_path = sys_cfg;
+ break;
}
+ sysconfdirs++;
}
}
# else /* ENABLE_DEBUG */
# ifndef GSIGNOND_SYSCONF_DIR
# error "System configuration directory not defined!"
# endif
- def_config = g_build_filename (GSIGNOND_SYSCONF_DIR,
- "gsignond/gsignond.conf",
- NULL);
- if (g_access (def_config, R_OK) == 0) {
- self->priv->config_file_path = def_config;
- } else {
- g_free (def_config);
- }
+ self->priv->config_file_path = _check_config_file (GSIGNOND_SYSCONF_DIR);
# endif /* ENABLE_DEBUG */
if (self->priv->config_file_path) {
}
INFO ("found config : '%s/%s' - '%s'", groups[i], keys[j], value);
-
- /* construct a full storage path for wipe safety */
- if (g_strcmp0 (key, GSIGNOND_CONFIG_GENERAL_STORAGE_PATH) == 0)
- _set_storage_path (self, value);
- else
- gsignond_config_set_string (self, key, value);
+ gsignond_config_set_string (self, key, value);
g_free (key);
g_free (value);
return TRUE;
}
-#ifdef ENABLE_DEBUG
-static void
-_load_environment (GSignondConfig *self)
-{
- const gchar *e_val = 0;
- guint timeout = 0;
-
- e_val = g_getenv ("SSO_DAEMON_TIMEOUT");
- if (e_val && (timeout = atoi(e_val)))
- gsignond_config_set_string (self,
- GSIGNOND_CONFIG_DBUS_DAEMON_TIMEOUT,
- e_val);
-
- e_val = g_getenv ("SSO_IDENTITY_TIMEOUT");
- if (e_val && (timeout = atoi(e_val)))
- gsignond_config_set_string (self,
- GSIGNOND_CONFIG_DBUS_IDENTITY_TIMEOUT,
- e_val);
-
- e_val = g_getenv ("SSO_AUTH_SESSION_TIMEOUT");
- if (e_val && (timeout = atoi(e_val)))
- gsignond_config_set_string (self,
- GSIGNOND_CONFIG_DBUS_AUTH_SESSION_TIMEOUT,
- e_val);
-
- e_val = g_getenv ("SSO_PLUGIN_TIMEOUT");
- if (e_val && (timeout = atoi(e_val)))
- gsignond_config_set_string (self,
- GSIGNOND_CONFIG_PLUGIN_TIMEOUT,
- e_val);
-
- e_val = g_getenv ("SSO_PLUGINS_DIR");
- if (e_val)
- gsignond_config_set_string (self,
- GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR,
- e_val);
-
- e_val = g_getenv ("SSO_EXTENSIONS_DIR");
- if (e_val)
- gsignond_config_set_string (self,
- GSIGNOND_CONFIG_GENERAL_EXTENSIONS_DIR,
- e_val);
-
- e_val = g_getenv ("SSO_BIN_DIR");
- if (e_val)
- gsignond_config_set_string (self,
- GSIGNOND_CONFIG_GENERAL_BIN_DIR,
- e_val);
-
- e_val = g_getenv ("SSO_EXTENSION");
- if (e_val)
- gsignond_config_set_string (self,
- GSIGNOND_CONFIG_GENERAL_EXTENSION,
- e_val);
-
- e_val = g_getenv ("SSO_STORAGE_PATH");
- if (e_val)
- _set_storage_path (self, e_val);
-}
-#endif /* ENABLE_DEBUG */
-
/**
* gsignond_config_get_integer:
* @self: an instance of #GSignondConfig
self->priv->config_file_path = NULL;
self->priv->config_table = gsignond_dictionary_new();
- gsignond_config_set_string (self,
- GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR,
- (GSIGNOND_PLUGINS_DIR));
- gsignond_config_set_string (self,
- GSIGNOND_CONFIG_GENERAL_EXTENSIONS_DIR,
- (GSIGNOND_EXTENSIONS_DIR));
- gsignond_config_set_string (self,
- (GSIGNOND_CONFIG_GENERAL_BIN_DIR),
- (GSIGNOND_BIN_DIR));
-
- gsignond_config_set_string (self,
- GSIGNOND_CONFIG_GENERAL_STORAGE_PATH,
- "/var/db");
-
- gsignond_config_set_string (self,
- GSIGNOND_CONFIG_DB_SECRET_DB_FILENAME,
- GSIGNOND_DB_SECRET_DEFAULT_DB_FILENAME);
- gsignond_config_set_string (self,
- GSIGNOND_CONFIG_DB_METADATA_DB_FILENAME,
- GSIGNOND_DB_METADATA_DEFAULT_DB_FILENAME);
-
if (!_load_config (self))
WARN ("load configuration failed, using default settings");
-# ifdef ENABLE_DEBUG
- _load_environment (self);
-# endif
}
static void
}
/**
+ * gsignond_dictionary_to_variant_builder:
+ * @dict: instance of #GSignondDictionary
+ *
+ * Converts the #GSignondDictionary to a #GVariantBuilder of type
+ * G_VARIANT_TYPE_VARDICT.
+ *
+ * Caller should use g_variant_builder_unref() on the return value when it is
+ * no longer needed.
+ *
+ * Returns: (transfer full): #GVariantBuilder if successful, NULL otherwise.
+ */
+GVariantBuilder *
+gsignond_dictionary_to_variant_builder (GSignondDictionary *dict)
+{
+ GVariantBuilder *builder;
+ GHashTableIter iter;
+ const gchar *key = NULL;
+ GVariant *value = NULL;
+
+ g_return_val_if_fail (dict != NULL, NULL);
+
+ builder = g_variant_builder_new (G_VARIANT_TYPE_VARDICT);
+
+ g_hash_table_iter_init (&iter, dict);
+ while (g_hash_table_iter_next (&iter, (gpointer)&key, (gpointer)&value))
+ {
+ g_variant_builder_add (builder, "{sv}", key, value);
+ }
+
+ return builder;
+}
+
+/**
* gsignond_dictionary_to_variant:
* @dict: instance of #GSignondDictionary
*
GVariant *
gsignond_dictionary_to_variant (GSignondDictionary *dict)
{
- GVariantBuilder builder;
- GHashTableIter iter;
+ GVariantBuilder *builder = NULL;
GVariant *vdict = NULL;
- const gchar *key = NULL;
- GVariant *value = NULL;
g_return_val_if_fail (dict != NULL, NULL);
- g_variant_builder_init (&builder, G_VARIANT_TYPE_VARDICT);
- g_hash_table_iter_init (&iter, dict);
- while (g_hash_table_iter_next (&iter,
- (gpointer)&key,
- (gpointer)&value))
- {
- g_variant_builder_add (&builder, "{sv}",
- key,
- value);
- }
- vdict = g_variant_builder_end (&builder);
+ builder = gsignond_dictionary_to_variant_builder (dict);
+ if (!builder) return NULL;
+
+ vdict = g_variant_builder_end (builder);
+
+ g_variant_builder_unref (builder);
+
return vdict;
}
return dict;
}
+
+/**
+ * gsignond_dictionary_contains:
+ * @dict: instance of #GSignondDictionary
+ * @key: (transfer none): key to check
+ *
+ * Checks if the @dict contains @key.
+ *
+ * Returns: TRUE if found, FALSE otherwise.
+ */
+gboolean
+gsignond_dictionary_contains (GSignondDictionary *dict,
+ const gchar *key)
+{
+ g_return_val_if_fail (dict != NULL, FALSE);
+ g_return_val_if_fail (key != NULL, FALSE);
+
+ return g_hash_table_contains (dict, key);
+}
+
#define GSIGNOND_IDENTITY_INFO_VALIDATED "Validated"
#define GSIGNOND_IDENTITY_INFO_USERNAME_IS_SECRET "UserNameSecret"
+#define GSIGNOND_IDENTITY_INFO_EDIT_FLAGS "EditFlags"
+
+typedef enum {
+ IDENTITY_INFO_PROP_NONE = 0x0000,
+
+ /* Secret fields */
+ IDENTITY_INFO_PROP_USERNAME = 0x0001,
+ IDENTITY_INFO_PROP_SECRET = 0x0002,
+
+ IDENTITY_INFO_PROP_ID = 0x0004,
+ IDENTITY_INFO_PROP_TYPE = 0x0008,
+ IDENTITY_INFO_PROP_CAPTION = 0x0010,
+ IDENTITY_INFO_PROP_STORE_SECRET = 0x0020,
+ IDENTITY_INFO_PROP_USERNAME_IS_SECRET = 0x0040,
+ IDENTITY_INFO_PROP_OWNER = 0x0080,
+ IDENTITY_INFO_PROP_ACL = 0x0100,
+ IDENTITY_INFO_PROP_METHODS = 0x0200,
+ IDENTITY_INFO_PROP_REALMS = 0x0400,
+ IDENTITY_INFO_PROP_REF_COUNT = 0x0800,
+ IDENTITY_INFO_PROP_VALIDATED = 0x1000,
+
+ IDENTITY_INFO_PROP_MAX = 0x2000,
+ IDENTITY_INFO_PROP_ALL = 0x1ffff
+
+} GSignondIdentityInfoPropFlags;
+
+GSignondIdentityInfoPropFlags
+gsignond_identity_info_get_edit_flags (GSignondIdentityInfo *info);
+
+gboolean
+gsignond_identity_info_set_edit_flags (GSignondIdentityInfo *info,
+ GSignondIdentityInfoPropFlags flags);
+
+gboolean
+gsignond_identity_info_reset_edit_flags (GSignondIdentityInfo *info,
+ GSignondIdentityInfoPropFlags flags);
+
+gboolean
+gsignond_identity_info_unset_edit_flags (GSignondIdentityInfo *info,
+ GSignondIdentityInfoPropFlags flags);
+
+GSignondIdentityInfoPropFlags
+gsignond_identity_info_selective_copy (GSignondIdentityInfo *dest,
+ const GSignondIdentityInfo *src,
+ GSignondIdentityInfoPropFlags flags);
+
+void
+gsignond_identity_info_remove_owner (GSignondIdentityInfo *info);
+
G_END_DECLS
#endif /* __GSIGNOND_IDENTITY_INFO_INTERNAL_H__ */
#include "gsignond-identity-info.h"
#include "gsignond-identity-info-internal.h"
+#include "gsignond/gsignond-utils.h"
+G_DEFINE_BOXED_TYPE(GSignondIdentityInfo,
+ gsignond_identity_info,
+ gsignond_identity_info_ref,
+ gsignond_identity_info_unref)
+
+struct _GSignondIdentityInfo
+{
+ volatile gint ref_count;
+ gchar *username;
+ gchar *secret;
+ GSignondIdentityInfoPropFlags edit_flags;
+ GSignondDictionary *map;
+};
static gboolean
_gsignond_identity_info_seq_cmp (
return equal;
}
-static gint
-_compare_strings (
- const gchar* a,
- const gchar* b,
- gpointer data)
-{
- (void)data;
- return g_strcmp0 (a,b);
-}
-
-static GVariant *
-_gsignond_identity_info_sequence_to_variant (GSequence *seq)
-
-{
- GSequenceIter * iter = NULL;
- GVariant *var = NULL;
- GVariantBuilder builder;
-
- if (!seq) return NULL;
-
- g_variant_builder_init (&builder, G_VARIANT_TYPE_STRING_ARRAY);
- iter = g_sequence_get_begin_iter (seq);
- while (!g_sequence_iter_is_end (iter)) {
- const gchar * d = g_sequence_get (iter);
- g_variant_builder_add (&builder, "s", d);
- iter = g_sequence_iter_next (iter);
- }
- var = g_variant_builder_end (&builder);
- return var;
-}
-
-static GSequence *
-_gsignond_identity_info_variant_to_sequence (GVariant *var)
-
-{
- GVariantIter iter;
- GSequence *seq = NULL;
- gchar *item = NULL;
-
- if (!var) return NULL;
-
- seq = g_sequence_new ((GDestroyNotify)g_free);
- g_variant_iter_init (&iter, var);
- while (g_variant_iter_next (&iter, "s", &item)) {
- g_sequence_insert_sorted (seq,
- item,
- (GCompareDataFunc) _compare_strings,
- NULL);
- }
- return seq;
-}
-
-static gchar **
-_gsignond_identity_info_sequence_to_array (GSequence *seq)
-{
- gchar **items, **temp;
- GSequenceIter *iter;
-
- if (!seq) return NULL;
-
- items = g_malloc0 ((g_sequence_get_length (seq) + 1) * sizeof (gchar *));
- temp = items;
- for (iter = g_sequence_get_begin_iter (seq);
- iter != g_sequence_get_end_iter (seq);
- iter = g_sequence_iter_next (iter)) {
- *temp = g_sequence_get (iter);
- temp++;
- }
- return items;
-}
-
-static GSequence *
-_gsignond_identity_info_array_to_sequence (gchar **items)
-
-{
- GSequence *seq = NULL;
-
- if (!items) return NULL;
-
- seq = g_sequence_new ((GDestroyNotify) g_free);
- while (*items) {
- g_sequence_insert_sorted (seq,
- *items,
- (GCompareDataFunc) _compare_strings,
- NULL);
- items++;
- }
- return seq;
-}
-
static gboolean
_gsignond_identity_info_sec_context_list_cmp (
GSignondSecurityContextList *one,
return equal;
}
+GSignondIdentityInfoPropFlags
+gsignond_identity_info_get_edit_flags (
+ GSignondIdentityInfo *info)
+{
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO(info),
+ IDENTITY_INFO_PROP_NONE);
+
+ return info->edit_flags;
+}
+
+gboolean
+gsignond_identity_info_set_edit_flags (
+ GSignondIdentityInfo *info,
+ GSignondIdentityInfoPropFlags flag)
+{
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO(info), FALSE);
+
+ info->edit_flags |= flag;
+
+ return TRUE;
+}
+
+gboolean
+gsignond_identity_info_reset_edit_flags (
+ GSignondIdentityInfo *info,
+ GSignondIdentityInfoPropFlags flags)
+{
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO(info), FALSE);
+
+ info->edit_flags = flags;
+
+ return TRUE;
+}
+
+gboolean
+gsignond_identity_info_unset_edit_flags (
+ GSignondIdentityInfo *info,
+ GSignondIdentityInfoPropFlags unset_flags)
+{
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO(info), FALSE);
+
+ info->edit_flags &= ~unset_flags;
+
+ return TRUE;
+}
+
+GSignondIdentityInfoPropFlags
+gsignond_identity_info_selective_copy (GSignondIdentityInfo *dest,
+ const GSignondIdentityInfo *src,
+ GSignondIdentityInfoPropFlags flags)
+{
+ GSignondIdentityInfoPropFlags tmp_flag;
+ guint i;
+ g_return_val_if_fail (src, IDENTITY_INFO_PROP_NONE);
+ g_return_val_if_fail (dest, IDENTITY_INFO_PROP_NONE);
+ g_return_val_if_fail (flags != IDENTITY_INFO_PROP_NONE, flags);
+
+ /* This table should match to GSignondIdentityInfoPropFlags order */
+ const gchar *keys[] = {
+ GSIGNOND_IDENTITY_INFO_ID,
+ GSIGNOND_IDENTITY_INFO_TYPE,
+ GSIGNOND_IDENTITY_INFO_CAPTION,
+ GSIGNOND_IDENTITY_INFO_STORESECRET,
+ GSIGNOND_IDENTITY_INFO_USERNAME_IS_SECRET,
+ GSIGNOND_IDENTITY_INFO_OWNER,
+ GSIGNOND_IDENTITY_INFO_ACL,
+ GSIGNOND_IDENTITY_INFO_AUTHMETHODS,
+ GSIGNOND_IDENTITY_INFO_REALMS,
+ GSIGNOND_IDENTITY_INFO_REFCOUNT,
+ GSIGNOND_IDENTITY_INFO_VALIDATED
+ };
+
+ for (i= 0, tmp_flag = IDENTITY_INFO_PROP_ID;
+ tmp_flag < IDENTITY_INFO_PROP_MAX;
+ tmp_flag <<= 1, i++) {
+ if ((flags & tmp_flag) &&
+ gsignond_dictionary_contains (src->map, keys[i])) {
+ gsignond_dictionary_set (dest->map, keys[i],
+ g_variant_ref (gsignond_dictionary_get (src->map, keys[i])));
+ }
+ else {
+ flags &= ~tmp_flag;
+ }
+ }
+
+ if (flags & IDENTITY_INFO_PROP_USERNAME) {
+ g_free (dest->username);
+ dest->username = g_strdup (src->username);
+ }
+
+ if (flags & IDENTITY_INFO_PROP_SECRET) {
+ g_free (dest->secret);
+ dest->secret = g_strdup (src->secret);
+ }
+
+ dest->edit_flags |= flags;
+
+ return flags;
+}
+
+void
+gsignond_identity_info_remove_owner (GSignondIdentityInfo *info)
+{
+ g_return_if_fail (info && GSIGNOND_IS_IDENTITY_INFO(info));
+
+ gsignond_dictionary_remove (info->map, GSIGNOND_IDENTITY_INFO_OWNER);
+}
+
/**
* gsignond_identity_info_new:
*
GSignondIdentityInfo *
gsignond_identity_info_new (void)
{
- GSignondIdentityInfo *info;
+ return gsignond_identity_info_new_from_variant (NULL);
+}
+
+/**
+ * gsignond_identity_info_new_from_variant:
+ *
+ * Creates new instance of GSignondIdentityInfo.
+ *
+ * Returns: (transfer full) #GSignondIdentityInfo object if successful,
+ * NULL otherwise.
+ */
+GSignondIdentityInfo *
+gsignond_identity_info_new_from_variant (GVariant *variant_map)
+{
+ gboolean uname_is_secret = FALSE;
+ GSignondIdentityInfo *info = g_slice_new0 (GSignondIdentityInfo);
+ if (!info) return NULL;
+
+ info->ref_count = 1;
+ info->edit_flags = IDENTITY_INFO_PROP_NONE;
+ info->username = info->secret = NULL;
+
+ if (!variant_map) {
+ info->map = gsignond_dictionary_new ();
+
+ gsignond_dictionary_set (info->map, GSIGNOND_IDENTITY_INFO_ID,
+ g_variant_new_uint32 (GSIGNOND_IDENTITY_INFO_NEW_IDENTITY));
- info = gsignond_dictionary_new ();
- gsignond_identity_info_set_id (info, GSIGNOND_IDENTITY_INFO_NEW_IDENTITY);
+ return info;
+ }
+
+ info->map = gsignond_dictionary_new_from_variant (variant_map);
+ if (!info->map) return info;
+
+ /* update edit flags */
+ if (gsignond_dictionary_contains (info->map, GSIGNOND_IDENTITY_INFO_ID))
+ info->edit_flags |= IDENTITY_INFO_PROP_ID;
+ if (gsignond_dictionary_contains (info->map, GSIGNOND_IDENTITY_INFO_TYPE))
+ info->edit_flags |= IDENTITY_INFO_PROP_TYPE;
+ if (gsignond_dictionary_contains (info->map,
+ GSIGNOND_IDENTITY_INFO_USERNAME_IS_SECRET)) {
+ info->edit_flags |= IDENTITY_INFO_PROP_USERNAME_IS_SECRET;
+ gsignond_dictionary_get_boolean (info->map,
+ GSIGNOND_IDENTITY_INFO_USERNAME_IS_SECRET, &uname_is_secret);
+ }
+ if (gsignond_dictionary_contains (info->map,
+ GSIGNOND_IDENTITY_INFO_USERNAME)) {
+ info->edit_flags |= IDENTITY_INFO_PROP_USERNAME;
+ info->username = g_strdup (gsignond_dictionary_get_string (info->map,
+ GSIGNOND_IDENTITY_INFO_USERNAME));
+ gsignond_dictionary_remove (info->map, GSIGNOND_IDENTITY_INFO_USERNAME);
+ }
+ if (gsignond_dictionary_contains (info->map,
+ GSIGNOND_IDENTITY_INFO_SECRET)) {
+ info->edit_flags |= IDENTITY_INFO_PROP_SECRET;
+ info->secret = g_strdup (gsignond_dictionary_get_string (info->map,
+ GSIGNOND_IDENTITY_INFO_SECRET));
+ gsignond_dictionary_remove (info->map, GSIGNOND_IDENTITY_INFO_SECRET);
+ }
+ if (gsignond_dictionary_contains (info->map,
+ GSIGNOND_IDENTITY_INFO_STORESECRET))
+ info->edit_flags |= IDENTITY_INFO_PROP_STORE_SECRET;
+ if (gsignond_dictionary_contains (info->map,
+ GSIGNOND_IDENTITY_INFO_CAPTION))
+ info->edit_flags |= IDENTITY_INFO_PROP_CAPTION;
+ if (gsignond_dictionary_contains (info->map,
+ GSIGNOND_IDENTITY_INFO_AUTHMETHODS))
+ info->edit_flags |= IDENTITY_INFO_PROP_METHODS;
+ if (gsignond_dictionary_contains (info->map, GSIGNOND_IDENTITY_INFO_REALMS))
+ info->edit_flags |= IDENTITY_INFO_PROP_REALMS;
+ if (gsignond_dictionary_contains (info->map, GSIGNOND_IDENTITY_INFO_ACL))
+ info->edit_flags |= IDENTITY_INFO_PROP_ACL;
+ if (gsignond_dictionary_contains (info->map, GSIGNOND_IDENTITY_INFO_OWNER))
+ info->edit_flags |= IDENTITY_INFO_PROP_OWNER;
+ if (gsignond_dictionary_contains (info->map,
+ GSIGNOND_IDENTITY_INFO_REFCOUNT))
+ info->edit_flags |= IDENTITY_INFO_PROP_REF_COUNT;
+ if (gsignond_dictionary_contains (info->map,
+ GSIGNOND_IDENTITY_INFO_VALIDATED))
+ info->edit_flags |= IDENTITY_INFO_PROP_VALIDATED;
return info;
}
GSignondIdentityInfo *
gsignond_identity_info_copy (GSignondIdentityInfo *info)
{
- if (!info)
- return NULL;
+ GSignondIdentityInfo *new_info = NULL;
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), NULL);
+
+ new_info = g_slice_new0 (GSignondIdentityInfo);
+ if (!new_info) return NULL;
+
+ new_info->ref_count = 1;
+ new_info->edit_flags = info->edit_flags;
+ new_info->username = g_strdup (info->username);
+ new_info->secret = g_strdup (info->secret);
+ new_info->map = gsignond_dictionary_copy (info->map);
- return gsignond_dictionary_copy (info);
+ return new_info;
}
/**
* @info: instance of #GSignondIdentityInfo
*
* Increment reference count of the info structure.
+ *
+ * Returns: (transfer none) returns the same copy of the info.
*/
-void
+GSignondIdentityInfo *
gsignond_identity_info_ref (GSignondIdentityInfo *info)
{
- g_return_if_fail (info != NULL);
+ g_return_val_if_fail (info != NULL, info);
- gsignond_dictionary_ref (info);
+ g_atomic_int_inc (&info->ref_count);
+
+ return info;
}
/**
void
gsignond_identity_info_unref (GSignondIdentityInfo *info)
{
- if (!info)
- return;
+ g_return_if_fail (info != NULL);
- gsignond_dictionary_unref (info);
+ if (g_atomic_int_dec_and_test (&info->ref_count)) {
+ gsignond_dictionary_unref (info->map);
+ g_free(info->username);
+ g_free(info->secret);
+ g_slice_free (GSignondIdentityInfo, info);
+ }
}
/**
guint32
gsignond_identity_info_get_id (GSignondIdentityInfo *info)
{
- g_assert (info != NULL);
-
- GVariant *var = NULL;
- var = gsignond_dictionary_get (info, GSIGNOND_IDENTITY_INFO_ID);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info),
+ GSIGNOND_IDENTITY_INFO_NEW_IDENTITY);
- g_return_val_if_fail (var != NULL, -1);
+ GVariant *var = gsignond_dictionary_get (info->map,
+ GSIGNOND_IDENTITY_INFO_ID);
- return g_variant_get_uint32 (var);
+ return var ? g_variant_get_uint32 (var)
+ : GSIGNOND_IDENTITY_INFO_NEW_IDENTITY;
}
/**
GSignondIdentityInfo *info,
guint32 id)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
+
+ if (gsignond_identity_info_get_id (info) == id)
+ return TRUE;
return gsignond_dictionary_set (
- info,
+ info->map,
GSIGNOND_IDENTITY_INFO_ID,
- g_variant_new_uint32 (id));
+ g_variant_new_uint32 (id)) &&
+ gsignond_identity_info_set_edit_flags (info,
+ IDENTITY_INFO_PROP_ID);
}
/**
gboolean
gsignond_identity_info_get_is_identity_new (GSignondIdentityInfo *info)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
return GSIGNOND_IDENTITY_INFO_NEW_IDENTITY ==
gsignond_identity_info_get_id (info);
gsignond_identity_info_set_identity_new (
GSignondIdentityInfo *info)
{
- g_assert (info != NULL);
-
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
+
return gsignond_identity_info_set_id (
info,
GSIGNOND_IDENTITY_INFO_NEW_IDENTITY);
const gchar *
gsignond_identity_info_get_username (GSignondIdentityInfo *info)
{
- g_assert (info != NULL);
-
- GVariant *var = NULL;
- var = gsignond_dictionary_get (info, GSIGNOND_IDENTITY_INFO_USERNAME);
- if (var != NULL) {
- return g_variant_get_string (var, NULL);
- }
- return NULL;
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), NULL);
+
+ return (const gchar *)info->username;
}
/**
GSignondIdentityInfo *info,
const gchar *username)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
- if (!username) {
- return gsignond_dictionary_remove (info,
- GSIGNOND_IDENTITY_INFO_USERNAME);
- }
- return gsignond_dictionary_set (
- info,
- GSIGNOND_IDENTITY_INFO_USERNAME,
- g_variant_new_string (username));
-}
+ const gchar *current_name = gsignond_identity_info_get_username(info);
+ if (g_strcmp0 (username, current_name) == 0) return TRUE;
-/**
- * gsignond_identity_info_remove_username:
- * @info: instance of #GSignondIdentityInfo
- *
- * Removes username from the info.
- */
-void
-gsignond_identity_info_remove_username (GSignondIdentityInfo *info)
-{
- g_assert (info != NULL);
-
- gsignond_dictionary_remove (info, GSIGNOND_IDENTITY_INFO_USERNAME);
+ g_free (info->username);
+ info->username = g_strdup (username);
+
+ return gsignond_identity_info_set_edit_flags (info,
+ IDENTITY_INFO_PROP_USERNAME);
}
/**
gboolean
gsignond_identity_info_get_is_username_secret (GSignondIdentityInfo *info)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
- GVariant *var = NULL;
- var = gsignond_dictionary_get (info,
+ GVariant *var = gsignond_dictionary_get (info->map,
GSIGNOND_IDENTITY_INFO_USERNAME_IS_SECRET);
- if (var != NULL) {
- return g_variant_get_boolean (var);
- }
- return FALSE;
+ return var ? g_variant_get_boolean (var) : FALSE;
}
/**
GSignondIdentityInfo *info,
gboolean username_secret)
{
- g_assert (info != NULL);
+ gboolean res = FALSE;
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
- return gsignond_dictionary_set (
- info,
+ if (gsignond_identity_info_get_is_username_secret(info) == username_secret)
+ return TRUE;
+
+ res = gsignond_dictionary_set (info->map,
GSIGNOND_IDENTITY_INFO_USERNAME_IS_SECRET,
- g_variant_new_boolean(username_secret));
+ g_variant_new_boolean(username_secret)) &&
+ gsignond_identity_info_set_edit_flags (info,
+ IDENTITY_INFO_PROP_USERNAME_IS_SECRET);
+
+ return res;
}
/**
const gchar *
gsignond_identity_info_get_secret (GSignondIdentityInfo *info)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
- GVariant *var = NULL;
- var = gsignond_dictionary_get (info, GSIGNOND_IDENTITY_INFO_SECRET);
- if (var != NULL) {
- return g_variant_get_string (var, NULL);
- }
- return NULL;
+ return info->secret;
}
/**
GSignondIdentityInfo *info,
const gchar *secret)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
- if (!secret) {
- return gsignond_dictionary_remove (info,
- GSIGNOND_IDENTITY_INFO_SECRET);
- }
- return gsignond_dictionary_set (
- info,
- GSIGNOND_IDENTITY_INFO_SECRET,
- g_variant_new_string (secret));
-}
+ const gchar *current_secret =
+ gsignond_identity_info_get_secret (info);
-/**
- * gsignond_identity_info_remove_secret:
- * @info: instance of #GSignondIdentityInfo
- *
- * Removes secret from the info.
- */
-void
-gsignond_identity_info_remove_secret (GSignondIdentityInfo *info)
-{
- g_assert (info != NULL);
+ if (g_strcmp0 (current_secret, secret) == 0) return TRUE;
+
+ if (info->secret) g_free (info->secret);
+
+ info->secret = g_strdup (secret);
- gsignond_dictionary_remove (info, GSIGNOND_IDENTITY_INFO_SECRET);
+ return gsignond_identity_info_set_edit_flags (
+ info, IDENTITY_INFO_PROP_SECRET);
}
/**
gboolean
gsignond_identity_info_get_store_secret (GSignondIdentityInfo *info)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
- GVariant *var = NULL;
- var = gsignond_dictionary_get (info, GSIGNOND_IDENTITY_INFO_STORESECRET);
- if (var != NULL) {
- return g_variant_get_boolean (var);
- }
- return FALSE;
+ GVariant *var = gsignond_dictionary_get (info->map,
+ GSIGNOND_IDENTITY_INFO_STORESECRET);
+ return var ? g_variant_get_boolean (var) : FALSE;
}
/**
GSignondIdentityInfo *info,
gboolean store_secret)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
- return gsignond_dictionary_set (
- info,
- GSIGNOND_IDENTITY_INFO_STORESECRET,
- g_variant_new_boolean(store_secret));
+ if (gsignond_identity_info_get_store_secret (info) == store_secret)
+ return TRUE;
+
+ return gsignond_dictionary_set (info->map,
+ GSIGNOND_IDENTITY_INFO_STORESECRET,
+ g_variant_new_boolean(store_secret)) &&
+ gsignond_identity_info_set_edit_flags (info,
+ IDENTITY_INFO_PROP_STORE_SECRET);
}
/**
const gchar *
gsignond_identity_info_get_caption (GSignondIdentityInfo *info)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), NULL);
- GVariant *var = NULL;
- var = gsignond_dictionary_get (info, GSIGNOND_IDENTITY_INFO_CAPTION);
- if (var != NULL) {
- return g_variant_get_string (var, NULL);
- }
- return NULL;
+ GVariant *var = gsignond_dictionary_get (info->map,
+ GSIGNOND_IDENTITY_INFO_CAPTION);
+ return var ? g_variant_get_string (var, NULL) : NULL;
}
/**
GSignondIdentityInfo *info,
const gchar *caption)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
+ const gchar *current_caption =
+ gsignond_identity_info_get_caption (info);
+
+ if (g_strcmp0 (current_caption, caption) == 0)
+ return TRUE;
if (!caption) {
- return gsignond_dictionary_remove (info,
- GSIGNOND_IDENTITY_INFO_CAPTION);
+ return gsignond_dictionary_remove (info->map,
+ GSIGNOND_IDENTITY_INFO_CAPTION) &&
+ gsignond_identity_info_set_edit_flags (info,
+ IDENTITY_INFO_PROP_CAPTION);
}
- return gsignond_dictionary_set (
- info,
- GSIGNOND_IDENTITY_INFO_CAPTION,
- g_variant_new_string (caption));
+ return gsignond_dictionary_set (info->map,
+ GSIGNOND_IDENTITY_INFO_CAPTION,
+ g_variant_new_string (caption)) &&
+ gsignond_identity_info_set_edit_flags (info,
+ IDENTITY_INFO_PROP_CAPTION);
}
/**
GSequence *
gsignond_identity_info_get_realms (GSignondIdentityInfo *info)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), NULL);
- GVariant *var = NULL;
- var = gsignond_dictionary_get (info, GSIGNOND_IDENTITY_INFO_REALMS);
- if (var != NULL) {
- return _gsignond_identity_info_variant_to_sequence (var);
- }
- return NULL;
+ GVariant *var = gsignond_dictionary_get (info->map,
+ GSIGNOND_IDENTITY_INFO_REALMS);
+ return var ? gsignond_variant_to_sequence (var) : NULL;
}
/**
GSignondIdentityInfo *info,
GSequence *realms)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
g_return_val_if_fail (realms != NULL, FALSE);
- return gsignond_dictionary_set (
- info,
- GSIGNOND_IDENTITY_INFO_REALMS,
- _gsignond_identity_info_sequence_to_variant (realms));
+ GVariant *current_realms = gsignond_dictionary_get (info->map,
+ GSIGNOND_IDENTITY_INFO_REALMS);
+ GVariant *var_realms = gsignond_sequence_to_variant (realms);
+
+ if (current_realms != NULL &&
+ g_variant_equal (current_realms, var_realms) == TRUE) {
+ g_variant_unref (var_realms);
+ return TRUE;
+ }
+
+ return gsignond_dictionary_set (info->map,
+ GSIGNOND_IDENTITY_INFO_REALMS,
+ var_realms) &&
+ gsignond_identity_info_set_edit_flags (info,
+ IDENTITY_INFO_PROP_REALMS);
}
/**
GHashTable *
gsignond_identity_info_get_methods (GSignondIdentityInfo *info)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), NULL);
- GVariant *var = NULL;
GHashTable *methods = NULL;
- var = gsignond_dictionary_get (info, GSIGNOND_IDENTITY_INFO_AUTHMETHODS);
+ GVariant *var = gsignond_dictionary_get (info->map,
+ GSIGNOND_IDENTITY_INFO_AUTHMETHODS);
if (var != NULL) {
GVariantIter iter;
gchar *vmethod;
g_variant_iter_init (&iter, var);
while (g_variant_iter_next (&iter, "{s^as}", &vmethod, &vmechanisms))
{
- /* ownership of all content is transferred */
- seq = _gsignond_identity_info_array_to_sequence (vmechanisms);
+ /* ownership is transferred */
+ seq = gsignond_array_to_sequence (vmechanisms);
g_hash_table_insert (methods, vmethod, seq);
- g_free (vmechanisms);
}
}
return methods;
GSignondIdentityInfo *info,
GHashTable *methods)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
gchar **items = NULL;
GVariantBuilder builder;
+ GVariant *current_mehtods, *var_methods;
GHashTableIter iter;
const gchar *method;
(gpointer)&method,
(gpointer)&mechanisms))
{
- items = _gsignond_identity_info_sequence_to_array (mechanisms);
+ items = gsignond_sequence_to_array (mechanisms);
g_variant_builder_add (&builder, "{s^as}", method, items);
g_free (items);
}
- return gsignond_dictionary_set (
- info,
- GSIGNOND_IDENTITY_INFO_AUTHMETHODS,
- g_variant_builder_end (&builder));
+
+ var_methods = g_variant_builder_end (&builder);
+ current_mehtods = gsignond_dictionary_get (info->map,
+ GSIGNOND_IDENTITY_INFO_AUTHMETHODS);
+
+ if (current_mehtods != NULL &&
+ g_variant_equal (current_mehtods, var_methods) == TRUE) {
+ g_variant_unref (var_methods);
+ return TRUE;
+ }
+
+ return gsignond_dictionary_set (info->map,
+ GSIGNOND_IDENTITY_INFO_AUTHMETHODS,
+ var_methods) &&
+ gsignond_identity_info_set_edit_flags (info,
+ IDENTITY_INFO_PROP_METHODS);
}
/**
GSignondIdentityInfo *info,
const gchar *method)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), NULL);
GVariant *var = NULL;
GSequence *mechanisms = NULL;
g_return_val_if_fail (method != NULL, NULL);
- var = gsignond_dictionary_get (info, GSIGNOND_IDENTITY_INFO_AUTHMETHODS);
+ var = gsignond_dictionary_get (info->map,
+ GSIGNOND_IDENTITY_INFO_AUTHMETHODS);
if (var != NULL) {
GVariantIter iter;
gchar *vmethod;
g_variant_iter_init (&iter, var);
while (g_variant_iter_next (&iter, "{s^as}", &vmethod, &vmechanisms))
{
- /* ownership of content is transferred */
+ /* ownership is transferred */
if (vmethod != NULL && g_strcmp0 (vmethod, method) == 0) {
- mechanisms = _gsignond_identity_info_array_to_sequence (
- vmechanisms);
+ mechanisms = gsignond_array_to_sequence (vmechanisms);
g_free (vmethod);
- g_free (vmechanisms);
break;
}
g_free (vmethod); vmethod = NULL;
GSignondIdentityInfo *info,
const gchar *method)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
GHashTable *methods = NULL;
gboolean ret = FALSE;
GSignondSecurityContextList *
gsignond_identity_info_get_access_control_list (GSignondIdentityInfo *info)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), NULL);
- GVariant *var = NULL;
- var = gsignond_dictionary_get (info, GSIGNOND_IDENTITY_INFO_ACL);
- if (var != NULL) {
- return gsignond_security_context_list_from_variant (var);
- }
- return NULL;
+ GVariant *var = gsignond_dictionary_get (info->map,
+ GSIGNOND_IDENTITY_INFO_ACL);
+ return var ? gsignond_security_context_list_from_variant (var) : NULL;
}
/**
GSignondIdentityInfo *info,
const GSignondSecurityContextList *acl)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
+
+ GVariant *current_acl = gsignond_dictionary_get (info->map,
+ GSIGNOND_IDENTITY_INFO_ACL);
+ GVariant *var_acl = NULL;
+
+ if (!current_acl && !acl) return TRUE;
+
+ var_acl = gsignond_security_context_list_to_variant (acl);
+ if (current_acl != NULL &&
+ g_variant_equal (current_acl, var_acl) == TRUE) {
+ g_variant_unref (var_acl);
+ return TRUE;
+ }
g_return_val_if_fail (acl != NULL, FALSE);
- return gsignond_dictionary_set (
- info,
- GSIGNOND_IDENTITY_INFO_ACL,
- gsignond_security_context_list_to_variant (acl));
+ return gsignond_dictionary_set (info->map,
+ GSIGNOND_IDENTITY_INFO_ACL, var_acl) &&
+ gsignond_identity_info_set_edit_flags (info,
+ IDENTITY_INFO_PROP_ACL);
}
/**
GSignondSecurityContext *
gsignond_identity_info_get_owner (GSignondIdentityInfo *info)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), NULL);
- GVariant *var = NULL;
- var = gsignond_dictionary_get (info, GSIGNOND_IDENTITY_INFO_OWNER);
- if (var != NULL) {
- return gsignond_security_context_from_variant (var);
- }
- return NULL;
+ GVariant *var = gsignond_dictionary_get (info->map,
+ GSIGNOND_IDENTITY_INFO_OWNER);
+ return var ? gsignond_security_context_from_variant (var) : NULL;
}
/**
* gsignond_identity_info_set_owner:
* @info: instance of #GSignondIdentityInfo
*
- * @owners: (transfer none): owner to be set
+ * @owner: (transfer none): owner to be set
*
* Sets the owner of the info.
*
gboolean
gsignond_identity_info_set_owner (
GSignondIdentityInfo *info,
- const GSignondSecurityContext *owners)
+ const GSignondSecurityContext *owner)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
- g_return_val_if_fail (owners != NULL, FALSE);
- return gsignond_dictionary_set (
- info,
- GSIGNOND_IDENTITY_INFO_OWNER,
- gsignond_security_context_to_variant (owners));
+ g_return_val_if_fail (owner != NULL, FALSE);
+ GSignondSecurityContext *current_owner =
+ gsignond_identity_info_get_owner (info);
+
+ if (current_owner != NULL &&
+ gsignond_security_context_compare (current_owner, owner) == 0)
+ return TRUE;
+
+ return (gsignond_dictionary_set (info->map,
+ GSIGNOND_IDENTITY_INFO_OWNER,
+ gsignond_security_context_to_variant (owner)) &&
+ gsignond_identity_info_set_edit_flags (info,
+ IDENTITY_INFO_PROP_OWNER));
}
/**
gboolean
gsignond_identity_info_get_validated (GSignondIdentityInfo *info)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
- GVariant *var = NULL;
- var = gsignond_dictionary_get (info, GSIGNOND_IDENTITY_INFO_VALIDATED);
- if (var != NULL) {
- return g_variant_get_boolean (var);
- }
- return FALSE;
+ GVariant *var = gsignond_dictionary_get (info->map,
+ GSIGNOND_IDENTITY_INFO_VALIDATED);
+ return var ? g_variant_get_boolean (var) : FALSE;
}
/**
GSignondIdentityInfo *info,
gboolean validated)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
- return gsignond_dictionary_set (
- info,
- GSIGNOND_IDENTITY_INFO_VALIDATED,
- g_variant_new_boolean (validated));
+ if (gsignond_identity_info_get_validated (info) == validated)
+ return TRUE;
+
+ return gsignond_dictionary_set (info->map,
+ GSIGNOND_IDENTITY_INFO_VALIDATED,
+ g_variant_new_boolean (validated)) &&
+ gsignond_identity_info_set_edit_flags (info,
+ IDENTITY_INFO_PROP_VALIDATED);
}
/**
guint32
gsignond_identity_info_get_identity_type (GSignondIdentityInfo *info)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), 0);
- GVariant *var = NULL;
- var = gsignond_dictionary_get (info, GSIGNOND_IDENTITY_INFO_TYPE);
- if (var != NULL) {
- return g_variant_get_int32 (var);
- }
- return -1;
+ GVariant *var = gsignond_dictionary_get (info->map,
+ GSIGNOND_IDENTITY_INFO_TYPE);
+ return var ? g_variant_get_int32 (var) : 0;
}
/**
GSignondIdentityInfo *info,
guint32 type)
{
- g_assert (info != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
- return gsignond_dictionary_set (
- info,
- GSIGNOND_IDENTITY_INFO_TYPE,
- g_variant_new_int32 (type));
+ if (gsignond_identity_info_get_identity_type (info) == type)
+ return TRUE;
+
+ return gsignond_dictionary_set (info->map,
+ GSIGNOND_IDENTITY_INFO_TYPE,
+ g_variant_new_int32 (type)) &&
+ gsignond_identity_info_set_edit_flags (info,
+ IDENTITY_INFO_PROP_TYPE);
}
/**
GSignondIdentityInfo *info,
GSignondIdentityInfo *other)
{
- g_assert (info != NULL && other != NULL);
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), FALSE);
+ g_return_val_if_fail (other && GSIGNOND_IS_IDENTITY_INFO (other), FALSE);
GSequence *info_realms = NULL, *other_realms = NULL;
GHashTable *info_methods = NULL, *other_methods = NULL;
return TRUE;
}
+/**
+ * gsignond_identity_info_to_variant:
+ * @info: instance of #GSignondIdentityInfo
+ *
+ * Converts the #GSignondIndentityInfo to a #GVariant.
+ *
+ * Returns: (transfer full): #GVariant object if successful, NULL otherwise.
+ */
+GVariant *
+gsignond_identity_info_to_variant (GSignondIdentityInfo *info)
+{
+ gboolean username_is_secret ;
+
+ g_return_val_if_fail (info && GSIGNOND_IS_IDENTITY_INFO (info), NULL);
+
+ username_is_secret = gsignond_identity_info_get_is_username_secret (info);
+
+ if (username_is_secret)
+ return gsignond_dictionary_to_variant (info->map);
+ else {
+ GVariant *vdict = NULL;
+ GVariantBuilder *builder =
+ gsignond_dictionary_to_variant_builder (info->map);
+ if (!builder) return NULL;
+
+ g_variant_builder_add (builder, "{sv}", GSIGNOND_IDENTITY_INFO_USERNAME,
+ g_variant_new_string (info->username ? info->username : ""));
+
+ vdict = g_variant_builder_end (builder);
+
+ g_variant_builder_unref (builder);
+
+ return vdict;
+ }
+}
+
void
gsignond_identity_info_list_free (GSignondIdentityInfoList *list)
{
g_return_if_fail (list != NULL);
g_list_free_full (list, (GDestroyNotify)gsignond_identity_info_unref);
}
-
G_BEGIN_DECLS
-#define GSIGNOND_TYPE_IDENTITY_INFO (GSIGNOND_TYPE_DICTIONARY)
-
-#define GSIGNOND_IDENTITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
+#define GSIGNOND_TYPE_IDENTITY_INFO (gsignond_identity_info_get_type())
+#define GSIGNOND_IDENTITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
GSIGNOND_TYPE_IDENTITY_INFO, \
GSignondIdentityInfo))
-#define GSIGNOND_IS_IDENTITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj),\
- GSIGNOND_TYPE_IDENTITY_INFO))
+/*#define GSIGNOND_IS_IDENTITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj),\
+ GSIGNOND_TYPE_IDENTITY_INFO))*/
+
+#define GSIGNOND_IS_IDENTITY_INFO(obj) (obj)
-typedef GSignondDictionary GSignondIdentityInfo;
+typedef struct _GSignondIdentityInfo GSignondIdentityInfo;
typedef GList GSignondIdentityInfoList;
+GType gsignond_identity_info_get_type (void) G_GNUC_CONST;
+
+
GSignondIdentityInfo *
gsignond_identity_info_new (void);
GSignondIdentityInfo *
+gsignond_identity_info_new_from_variant (GVariant *variatn_mp);
+
+GVariant *
+gsignond_identity_info_to_variant (GSignondIdentityInfo *info);
+
+GSignondIdentityInfo *
gsignond_identity_info_copy (GSignondIdentityInfo *info);
-void
+GSignondIdentityInfo *
gsignond_identity_info_ref (GSignondIdentityInfo *info);
void
GSignondIdentityInfo *info,
const gchar *username);
-void
-gsignond_identity_info_remove_username (GSignondIdentityInfo *info);
-
gboolean
gsignond_identity_info_get_is_username_secret (GSignondIdentityInfo *info);
GSignondIdentityInfo *info,
const gchar *secret);
-void
-gsignond_identity_info_remove_secret (GSignondIdentityInfo *info);
-
gboolean
gsignond_identity_info_get_store_secret (GSignondIdentityInfo *info);
GSignondIdentityInfo *info,
GSignondIdentityInfo *other);
+GVariant *
+gsignond_identity_info_to_variant (GSignondIdentityInfo *info);
+
void
gsignond_identity_info_list_free (GSignondIdentityInfoList *list);
/**
* SECTION:gsignond-plugin-interface
- * @short_description: an interface for implementing authentication plugins
+ * @short_description: an interface for implementing GLib-based authentication plugins
* @include: gsignond/gsignond-plugin-interface.h
*
- * #GSignondPlugin is an interface for implementing authentication plugins.
+ * #GSignondPlugin is an interface for implementing GLib-based authentication plugins.
*
* When creating a plugin, write the #GObject boilerplate code as usual, but
*
* 02110-1301 USA
*/
-#include <gsignond/gsignond-session-data.h>
+#include "gsignond/gsignond-session-data.h"
+#include "gsignond/gsignond-utils.h"
/**
}
/**
+ * gsignond_session_data_set_allowed_realms:
+ * @data: a #GSignondDictionary structure
+ * @realms: a #GSequence if allowed realms
+ *
+ * A setter for a list of realms allowed for the identity use.
+ */
+void
+gsignond_session_data_set_allowed_realms (GSignondSessionData *data,
+ GSequence *realms)
+{
+ gsignond_dictionary_set (data, "AllowedRealms",
+ gsignond_sequence_to_variant (realms));
+}
+
+/**
+ * gsignond_session_data_get_allowed_realms:
+ * @data: a #GSignondDictionary structure
+ *
+ * A getter for a list of realms allowed for the identity use.
+ *
+ * Returns: (transfer full): #GSequence of allowed realms
+ */
+GSequence *
+gsignond_session_data_get_allowed_realms (GSignondSessionData *data)
+{
+ return gsignond_variant_to_sequence (gsignond_dictionary_get (data,
+ "AllowedRealms"));
+}
+
+/**
* gsignond_session_data_set_realm:
* @data: a #GSignondDictionary structure
* @realm: a realm to set
#include <glib/gstdio.h>
+#include "config.h"
+
#include "gsignond/gsignond-log.h"
#include "gsignond/gsignond-storage-manager.h"
#include "gsignond/gsignond-utils.h"
const gchar *storage_path = gsignond_config_get_string (
self->config,
GSIGNOND_CONFIG_GENERAL_STORAGE_PATH);
- if (storage_path)
- self->location = g_build_filename (storage_path,
- user_dir,
- NULL);
- else
- self->location = g_build_filename ("/var/db",
- user_dir,
- NULL);
+ if (!storage_path) {
+ storage_path = BASE_STORAGE_DIR;
+ DBG ("storage path not configured, using default location");
+ }
+# ifdef ENABLE_DEBUG
+ const gchar *env_val = g_getenv("SSO_STORAGE_PATH");
+ if (env_val)
+ storage_path = env_val;
+# endif
+ self->location = g_build_filename (storage_path, user_dir, NULL);
g_free (user_dir);
DBG ("secure dir %s", self->location);
}
* @self: object instance.
*
* Initialize encryption storage. This means making sure that the
- * necessary directories exist and are accessible.
+ * necessary directories under #GSIGNOND_CONFIG_GENERAL_STORAGE_PATH exist and are accessible.
*
* Returns: success?
*/
* @self: object instance.
*
* Mounts an encrypted storage and returns the filesystem path of the storage
- * mount point. This path will be used to access the secret database via
+ * mount point. This path will be set in #GSignondConfig as
+ * #GSIGNOND_CONFIG_GENERAL_SECURE_DIR and used to access the secret database via
* #GSignondSecretStorage.
*
* The default implemenation does nothing, and immediately returns the path for the
return nonce;
}
+static gint
+_compare_strings (
+ const gchar* a,
+ const gchar* b,
+ gpointer data)
+{
+ (void)data;
+ return g_strcmp0 (a,b);
+}
+
+/**
+ * gsignond_sequence_to_variant:
+ * @seq: Sequence of strings to convert
+ *
+ * Convert a string sequence to a variant.
+ *
+ * Returns: (transfer full): #GVariant of type "as".
+ */
+GVariant *
+gsignond_sequence_to_variant (GSequence *seq)
+{
+ GSequenceIter * iter = NULL;
+ GVariant *var = NULL;
+ GVariantBuilder builder;
+
+ if (!seq) return NULL;
+
+ g_variant_builder_init (&builder, G_VARIANT_TYPE_STRING_ARRAY);
+ iter = g_sequence_get_begin_iter (seq);
+ while (!g_sequence_iter_is_end (iter)) {
+ const gchar * d = g_sequence_get (iter);
+ g_variant_builder_add (&builder, "s", d);
+ iter = g_sequence_iter_next (iter);
+ }
+ var = g_variant_builder_end (&builder);
+ return var;
+}
+
+/**
+ * gsignond_variant_to_sequence:
+ * @var: Variant of "as" to convert
+ *
+ * Convert variant containing string array to sequence.
+ *
+ * Returns: (transfer full): #GSequence of strings
+ */
+GSequence *
+gsignond_variant_to_sequence (GVariant *var)
+{
+ GVariantIter iter;
+ GSequence *seq = NULL;
+ gchar *item = NULL;
+
+ if (!var) return NULL;
+
+ seq = g_sequence_new ((GDestroyNotify)g_free);
+ g_variant_iter_init (&iter, var);
+ while (g_variant_iter_next (&iter, "s", &item)) {
+ g_sequence_insert_sorted (seq,
+ item,
+ (GCompareDataFunc) _compare_strings,
+ NULL);
+ }
+ return seq;
+}
+
+/**
+ * gsignond_sequence_to_array:
+ * @seq: Sequence of strings to convert
+ *
+ * Convert sequence of strings to null-terminated string array.
+ *
+ * Returns: (transfer full): Null-terminated array of strings
+ */
+gchar **
+gsignond_sequence_to_array (GSequence *seq)
+{
+ gchar **items, **temp;
+ GSequenceIter *iter;
+
+ if (!seq) return NULL;
+
+ items = g_malloc0 ((g_sequence_get_length (seq) + 1) * sizeof (gchar *));
+ temp = items;
+ for (iter = g_sequence_get_begin_iter (seq);
+ iter != g_sequence_get_end_iter (seq);
+ iter = g_sequence_iter_next (iter)) {
+ *temp = g_sequence_get (iter);
+ temp++;
+ }
+ return items;
+}
+
+/**
+ * gsignond_array_to_sequence:
+ * @items: (transfer full): Null-terminated array of strings to convert
+ *
+ * Convert null-terminated array of strings to a sequence.
+ *
+ * Returns: (transfer full): #GSequence of strings
+ */
+GSequence *
+gsignond_array_to_sequence (gchar **items)
+{
+ gchar **item_iter = items;
+ GSequence *seq = NULL;
+
+ if (!items) return NULL;
+
+ seq = g_sequence_new ((GDestroyNotify) g_free);
+ while (*item_iter) {
+ g_sequence_insert_sorted (seq,
+ *item_iter,
+ (GCompareDataFunc) _compare_strings,
+ NULL);
+ item_iter++;
+ }
+ g_free (items);
+ return seq;
+}
+
+/**
+ * gsignond_copy_array_to_sequence:
+ * @items: Null-terminated array of strings to copy
+ *
+ * Copy null-terminated array of strings to a sequence.
+ *
+ * Returns: (transfer full): #GSequence of strings
+ */
+GSequence *
+gsignond_copy_array_to_sequence (const gchar **items)
+{
+ GSequence *seq = NULL;
+
+ if (!items) return NULL;
+
+ seq = g_sequence_new ((GDestroyNotify) g_free);
+ while (*items) {
+ g_sequence_insert_sorted (seq,
+ g_strdup (*items),
+ (GCompareDataFunc) _compare_strings,
+ NULL);
+ items++;
+ }
+ return seq;
+}
+
+/**
+ * gsignond_is_host_in_domain:
+ * @domain: a domain name
+ * @host: a host name
+ *
+ * Checks if @host belongs to @domain.
+ *
+ * Returns: the result
+ */
+gboolean
+gsignond_is_host_in_domain(const gchar *host, const gchar *domain)
+{
+ gchar** domain_parts = g_strsplit(domain, ".", 0);
+ gchar** host_parts = g_strsplit(host, ".", 0);
+ gchar** truncated_host_parts = host_parts;
+
+ guint domain_parts_n = g_strv_length(domain_parts);
+ guint host_parts_n = g_strv_length(host_parts);
+
+ gint extra_host_parts_n = host_parts_n - domain_parts_n;
+
+ while (extra_host_parts_n > 0) {
+ truncated_host_parts++;
+ extra_host_parts_n--;
+ }
+ gchar* truncated_host = g_strjoinv(".", truncated_host_parts);
+ gint result = g_strcmp0(domain, truncated_host);
+
+ g_free(truncated_host);
+ g_strfreev(host_parts);
+ g_strfreev(domain_parts);
+
+ return result == 0 ? TRUE : FALSE;
+}
\ No newline at end of file
+include $(top_srcdir)/common.mk
SUBDIRS = db dbus plugins
NULL=
gsignond_pubhdr = ../../include/gsignond
gsignond_include_HEADERS = \
$(gsignond_pubhdr)/gsignond-access-control-manager.h \
- $(gsignond_pubhdr)/gsignond-config-db.h \
$(gsignond_pubhdr)/gsignond-config-dbus.h \
$(gsignond_pubhdr)/gsignond-config-general.h \
$(gsignond_pubhdr)/gsignond-config.h \
-I$(top_builddir) \
-I$(top_srcdir)/include/ \
-I$(top_srcdir)/src/ \
+ -DGSIGNOND_EXTENSIONS_DIR='"$(extensionsdir)"' \
$(GSIGNOND_CFLAGS) \
$(NULL)
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+DIST_COMMON = $(gsignond_include_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(top_srcdir)/common.mk
bin_PROGRAMS = gsignond$(EXEEXT)
subdir = src/daemon
-DIST_COMMON = $(gsignond_include_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_gnu_make.m4 \
$(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
+extensionsdir = $(pkglibdir)/extensions
+pluginloadersdir = $(pkglibdir)/pluginloaders
+gpluginsdir = $(pkglibdir)/gplugins
SUBDIRS = db dbus plugins
NULL =
BUILT_SOURCES = \
gsignond_pubhdr = ../../include/gsignond
gsignond_include_HEADERS = \
$(gsignond_pubhdr)/gsignond-access-control-manager.h \
- $(gsignond_pubhdr)/gsignond-config-db.h \
$(gsignond_pubhdr)/gsignond-config-dbus.h \
$(gsignond_pubhdr)/gsignond-config-general.h \
$(gsignond_pubhdr)/gsignond-config.h \
-I$(top_builddir) \
-I$(top_srcdir)/include/ \
-I$(top_srcdir)/src/ \
+ -DGSIGNOND_EXTENSIONS_DIR='"$(extensionsdir)"' \
$(GSIGNOND_CFLAGS) \
$(NULL)
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/common.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p || test -f $$p1; \
-rm -rf .libs _libs
install-gsignond_includeHEADERS: $(gsignond_include_HEADERS)
@$(NORMAL_INSTALL)
+ test -z "$(gsignond_includedir)" || $(MKDIR_P) "$(DESTDIR)$(gsignond_includedir)"
@list='$(gsignond_include_HEADERS)'; test -n "$(gsignond_includedir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(gsignond_includedir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(gsignond_includedir)" || exit 1; \
- fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(libgsignond_db_la_SOURCES)
DIST_SOURCES = $(libgsignond_db_la_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
#include "gsignond/gsignond-log.h"
#include "gsignond/gsignond-credentials.h"
#include "common/db/gsignond-db-error.h"
+#include "common/gsignond-identity-info-internal.h"
#include "gsignond-db-credentials-database.h"
#define GSIGNOND_DB_CREDENTIALS_DATABASE_GET_PRIVATE(obj) \
identity = gsignond_db_metadata_database_get_identity (
self->priv->metadata_db, identity_id);
- if (identity && query_secret &&
+ if (!identity)
+ return identity;
+
+ if (query_secret &&
!gsignond_identity_info_get_is_identity_new (identity) &&
gsignond_db_credentials_database_is_open_secret_storage (self)) {
}
}
}
+ /* Reseting the edit state to NONE as its newly loaded identity */
+ gsignond_identity_info_reset_edit_flags (identity, IDENTITY_INFO_PROP_NONE);
return identity;
}
id = gsignond_db_metadata_database_update_identity (self->priv->metadata_db,
identity);
- if (id != 0 &&
- gsignond_db_credentials_database_is_open_secret_storage (self)) {
+ if (!id) return 0;
+
+ /* Reseting the edit state to NONE as all the changes are stored in db. */
+ gsignond_identity_info_reset_edit_flags (identity, IDENTITY_INFO_PROP_NONE);
+
+ if (gsignond_db_credentials_database_is_open_secret_storage (self)) {
GSignondCredentials *creds = NULL;
gboolean un_sec, pwd_sec;
const gchar *tmp_str = NULL;
#include "gsignond/gsignond-log.h"
#include "gsignond/gsignond-config.h"
#include "common/db/gsignond-db-error.h"
+#include "common/gsignond-identity-info-internal.h"
#include "gsignond-db-metadata-database.h"
+#define GSIGNOND_METADATA_DB_FILENAME "metadata.db"
+
#define RETURN_IF_NOT_OPEN(obj, retval) \
if (gsignond_db_sql_database_is_open (obj) == FALSE) { \
GError* last_error = gsignond_db_create_error( \
gboolean
gsignond_db_metadata_database_open (GSignondDbMetadataDatabase *self)
{
- const gchar *filename = NULL;
-
g_return_val_if_fail (GSIGNOND_DB_IS_METADATA_DATABASE (self), FALSE);
if (gsignond_db_sql_database_is_open (GSIGNOND_DB_SQL_DATABASE (self)))
return TRUE;
- filename = gsignond_config_get_string (self->config,
- GSIGNOND_CONFIG_DB_METADATA_DB_FILENAME);
-
return _gsignond_db_metadata_database_open (
- GSIGNOND_DB_SQL_DATABASE (self), filename,
+ GSIGNOND_DB_SQL_DATABASE (self),
+ GSIGNOND_METADATA_DB_FILENAME,
SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE);
}
GHashTableIter method_iter;
const gchar *method = NULL;
GSequence *mechanisms = NULL;
+ GSignondIdentityInfoPropFlags edit_flags;
+ gboolean was_new_identity;
g_return_val_if_fail (GSIGNOND_DB_IS_METADATA_DATABASE (self), 0);
g_return_val_if_fail (identity != NULL, 0);
RETURN_IF_NOT_OPEN (GSIGNOND_DB_SQL_DATABASE (self), id);
+ edit_flags = gsignond_identity_info_get_edit_flags (identity);
+
+ DBG ("Identity EDIT FLAGS : %x", edit_flags);
+ if (edit_flags == IDENTITY_INFO_PROP_NONE) {
+ DBG("No Changes found to update");
+ return gsignond_identity_info_get_id (identity);
+ }
+
+ was_new_identity = gsignond_identity_info_get_is_identity_new (identity);
+
sql = GSIGNOND_DB_SQL_DATABASE (self);
if (!gsignond_db_sql_database_start_transaction (sql)) {
return 0;
return 0;
}
- if (!gsignond_identity_info_get_is_identity_new (identity)) {
- DBG ("Remove old acl and owner list as identity is not new");
- /* remove acl */
- _gsignond_db_metadata_database_exec (self,
- "DELETE FROM ACL WHERE identity_id = %u;", id);
-
- /* remove owner */
- _gsignond_db_metadata_database_exec (self,
- "DELETE FROM OWNER WHERE identity_id = %u;", id);
- }
-
- /* methods */
- methods = gsignond_identity_info_get_methods (identity);
- if (!_gsignond_db_metadata_database_insert_methods (self, identity,
- methods)) {
- DBG ("Update methods failed");
+ /* realms */
+ if (edit_flags & IDENTITY_INFO_PROP_REALMS) {
+ realms = gsignond_identity_info_get_realms (identity);
+ if (!_gsignond_db_metadata_database_update_realms (self,
+ identity, id, realms)) {
+ DBG ("Update realms failed");
+ gsignond_db_sql_database_rollback_transaction (sql);
+ goto finished;
+ }
}
- /* realms */
- realms = gsignond_identity_info_get_realms (identity);
- if (!_gsignond_db_metadata_database_update_realms (self,
- identity, id, realms)) {
- DBG ("Update realms failed");
+ /* owner */
+ owner = gsignond_identity_info_get_owner (identity);
+ if (!owner) {
+ WARN("Missing mandatory owner field");
gsignond_db_sql_database_rollback_transaction (sql);
goto finished;
}
+ if (edit_flags & IDENTITY_INFO_PROP_OWNER) {
+ if (!was_new_identity) {
+ /* remove owner */
+ _gsignond_db_metadata_database_exec (self,
+ "DELETE FROM OWNER WHERE identity_id = %u;", id);
+ }
+ if (!_gsignond_db_metadata_database_update_owner (self, identity, owner)){
+ DBG ("Update owner failed");
+ gsignond_db_sql_database_rollback_transaction (sql);
+ goto finished;
+ }
+
+ /* insert owner */
+ _gsignond_db_metadata_database_exec (self,
+ "INSERT OR REPLACE INTO OWNER "
+ "(identity_id, secctx_id) "
+ "VALUES ( %u, "
+ "( SELECT id FROM SECCTX WHERE sysctx = %Q AND appctx = %Q ));",
+ id, owner->sys_ctx, owner->app_ctx);
+ }
+
/* acl */
acl = gsignond_identity_info_get_access_control_list (identity);
- if (!_gsignond_db_metadata_database_update_acl (self, identity, acl)) {
- DBG ("Update acl failed");
+ if (!acl) {
+ WARN("Missing mandatory ACL field");
gsignond_db_sql_database_rollback_transaction (sql);
goto finished;
}
-
- /* owner */
- owner = gsignond_identity_info_get_owner (identity);
- if (!_gsignond_db_metadata_database_update_owner (self, identity, owner)){
- DBG ("Update owner failed");
- gsignond_db_sql_database_rollback_transaction (sql);
- goto finished;
+ if (edit_flags & IDENTITY_INFO_PROP_ACL) {
+ if (!was_new_identity) {
+ /* remove acl */
+ _gsignond_db_metadata_database_exec (self,
+ "DELETE FROM ACL WHERE identity_id = %u;", id);
+ }
+ if (!_gsignond_db_metadata_database_update_acl (self, identity, acl)) {
+ DBG ("Update acl failed");
+ gsignond_db_sql_database_rollback_transaction (sql);
+ goto finished;
+ }
}
+ /* methods */
+ methods = gsignond_identity_info_get_methods (identity);
+ if (edit_flags & IDENTITY_INFO_PROP_METHODS) {
+ if (!_gsignond_db_metadata_database_insert_methods (self, identity,
+ methods)) {
+ DBG ("Update methods failed");
+ }
+ }
+ if ((edit_flags & IDENTITY_INFO_PROP_ACL ||
+ edit_flags & IDENTITY_INFO_PROP_METHODS) &&
+ methods) {
/* ACL insert, this will do basically identity level ACL */
g_hash_table_iter_init (&method_iter, methods);
while (g_hash_table_iter_next (&method_iter, (gpointer)&method,
id, ctx->sys_ctx, ctx->app_ctx);
}
}
-
- /* insert owner */
- _gsignond_db_metadata_database_exec (self,
- "INSERT OR REPLACE INTO OWNER "
- "(identity_id, secctx_id) "
- "VALUES ( %u, "
- "( SELECT id FROM SECCTX WHERE sysctx = %Q AND appctx = %Q ));",
- id, owner->sys_ctx, owner->app_ctx);
+ }
if (gsignond_db_sql_database_commit_transaction (sql)) {
DBG ("Identity updated");
identity);
sqlite3_free (query);
if (G_UNLIKELY (rows <= 0)) {
- DBG ("Fetch IDENTITY failed");
+ DBG ("Fetch IDENTITY '%d' failed", identity_id);
gsignond_identity_info_unref (identity);
return NULL;
}
gsignond-dbus-auth-service-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.AuthService.xml \
gsignond-dbus-auth-session-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.AuthSession.xml \
gsignond-dbus-identity-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.Identity.xml \
- gsignond-dbus-remote-plugin-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.xml \
+ gsignond-dbus-remote-plugin-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1.xml \
$(NULL)
DBUS_INTERFACE_PREFIX="com.google.code.AccountsSSO.gSingleSignOn."
$(GSIGNOND_LIBS) \
$(NULL)
-libgsignond_dbus_glue_la_SOURCES = $(DBUS_BUILT_SOURCES)
+nodist_libgsignond_dbus_glue_la_SOURCES = $(DBUS_BUILT_SOURCES)
noinst_LTLIBRARIES += libgsignond-dbus.la
$(NULL)
libgsignond_dbus_la_SOURCES = \
- $(DBUS_BUILT_SOURCES) \
gsignond-dbus.h \
gsignond-dbus-server.c \
gsignond-dbus-server.h \
gsignond-dbus-signonui-adapter.h \
$(NULL)
+nodist_libgsignond_dbus_la_SOURCES = \
+ $(DBUS_BUILT_SOURCES) \
+ $(NULL)
+
dbusservicedir = $(DBUS_SERVICES_DIR)
dbusservice_DATA = \
$(SERVICES_DIR)/com.google.code.AccountsSSO.gSingleSignOn.service
EXTRA_DIST = interfaces
-clean-local :
- rm -f *~ $(DBUS_BUILT_SOURCES) $(DBUS_BUILT_DOCS)
+#clean-local :
+# rm -f *~ $(DBUS_BUILT_SOURCES) $(DBUS_BUILT_DOCS)
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
libgsignond_dbus_glue_la-gsignond-dbus-identity-gen.lo \
libgsignond_dbus_glue_la-gsignond-dbus-remote-plugin-gen.lo \
$(am__objects_1)
-am_libgsignond_dbus_glue_la_OBJECTS = $(am__objects_2)
+nodist_libgsignond_dbus_glue_la_OBJECTS = $(am__objects_2)
libgsignond_dbus_glue_la_OBJECTS = \
- $(am_libgsignond_dbus_glue_la_OBJECTS)
+ $(nodist_libgsignond_dbus_glue_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
libgsignond_dbus_la_DEPENDENCIES = libgsignond-dbus-glue.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-am__objects_3 = libgsignond_dbus_la-gsignond-dbus-auth-service-gen.lo \
- libgsignond_dbus_la-gsignond-dbus-auth-session-gen.lo \
- libgsignond_dbus_la-gsignond-dbus-identity-gen.lo \
- libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo \
- $(am__objects_1)
-am_libgsignond_dbus_la_OBJECTS = $(am__objects_3) \
+am_libgsignond_dbus_la_OBJECTS = \
libgsignond_dbus_la-gsignond-dbus-server.lo \
libgsignond_dbus_la-gsignond-dbus-auth-service-adapter.lo \
libgsignond_dbus_la-gsignond-dbus-auth-session-adapter.lo \
libgsignond_dbus_la-gsignond-dbus-identity-adapter.lo \
libgsignond_dbus_la-gsignond-dbus-signonui-adapter.lo \
$(am__objects_1)
-libgsignond_dbus_la_OBJECTS = $(am_libgsignond_dbus_la_OBJECTS)
+am__objects_3 = libgsignond_dbus_la-gsignond-dbus-auth-service-gen.lo \
+ libgsignond_dbus_la-gsignond-dbus-auth-session-gen.lo \
+ libgsignond_dbus_la-gsignond-dbus-identity-gen.lo \
+ libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo \
+ $(am__objects_1)
+nodist_libgsignond_dbus_la_OBJECTS = $(am__objects_3) $(am__objects_1)
+libgsignond_dbus_la_OBJECTS = $(am_libgsignond_dbus_la_OBJECTS) \
+ $(nodist_libgsignond_dbus_la_OBJECTS)
DEFAULT_INCLUDES =
depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
am__depfiles_maybe = depfiles
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
-SOURCES = $(libgsignond_dbus_glue_la_SOURCES) \
- $(libgsignond_dbus_la_SOURCES)
-DIST_SOURCES = $(libgsignond_dbus_glue_la_SOURCES) \
- $(libgsignond_dbus_la_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
+SOURCES = $(nodist_libgsignond_dbus_glue_la_SOURCES) \
+ $(libgsignond_dbus_la_SOURCES) \
+ $(nodist_libgsignond_dbus_la_SOURCES)
+DIST_SOURCES = $(libgsignond_dbus_la_SOURCES)
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
gsignond-dbus-auth-service-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.AuthService.xml \
gsignond-dbus-auth-session-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.AuthSession.xml \
gsignond-dbus-identity-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.Identity.xml \
- gsignond-dbus-remote-plugin-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.xml \
+ gsignond-dbus-remote-plugin-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1.xml \
$(NULL)
DBUS_INTERFACE_PREFIX = "com.google.code.AccountsSSO.gSingleSignOn."
$(GSIGNOND_LIBS) \
$(NULL)
-libgsignond_dbus_glue_la_SOURCES = $(DBUS_BUILT_SOURCES)
+nodist_libgsignond_dbus_glue_la_SOURCES = $(DBUS_BUILT_SOURCES)
libgsignond_dbus_la_CPPFLAGS = \
-I$(top_builddir) \
-I$(top_srcdir)/include \
$(NULL)
libgsignond_dbus_la_SOURCES = \
- $(DBUS_BUILT_SOURCES) \
gsignond-dbus.h \
gsignond-dbus-server.c \
gsignond-dbus-server.h \
gsignond-dbus-signonui-adapter.h \
$(NULL)
+nodist_libgsignond_dbus_la_SOURCES = \
+ $(DBUS_BUILT_SOURCES) \
+ $(NULL)
+
dbusservicedir = $(DBUS_SERVICES_DIR)
dbusservice_DATA = \
$(SERVICES_DIR)/com.google.code.AccountsSSO.gSingleSignOn.service
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_glue_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_dbus_glue_la-gsignond-dbus-remote-plugin-gen.lo `test -f 'gsignond-dbus-remote-plugin-gen.c' || echo '$(srcdir)/'`gsignond-dbus-remote-plugin-gen.c
-libgsignond_dbus_la-gsignond-dbus-auth-service-gen.lo: gsignond-dbus-auth-service-gen.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_dbus_la-gsignond-dbus-auth-service-gen.lo -MD -MP -MF $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-auth-service-gen.Tpo -c -o libgsignond_dbus_la-gsignond-dbus-auth-service-gen.lo `test -f 'gsignond-dbus-auth-service-gen.c' || echo '$(srcdir)/'`gsignond-dbus-auth-service-gen.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-auth-service-gen.Tpo $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-auth-service-gen.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsignond-dbus-auth-service-gen.c' object='libgsignond_dbus_la-gsignond-dbus-auth-service-gen.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_dbus_la-gsignond-dbus-auth-service-gen.lo `test -f 'gsignond-dbus-auth-service-gen.c' || echo '$(srcdir)/'`gsignond-dbus-auth-service-gen.c
-
-libgsignond_dbus_la-gsignond-dbus-auth-session-gen.lo: gsignond-dbus-auth-session-gen.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_dbus_la-gsignond-dbus-auth-session-gen.lo -MD -MP -MF $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-auth-session-gen.Tpo -c -o libgsignond_dbus_la-gsignond-dbus-auth-session-gen.lo `test -f 'gsignond-dbus-auth-session-gen.c' || echo '$(srcdir)/'`gsignond-dbus-auth-session-gen.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-auth-session-gen.Tpo $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-auth-session-gen.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsignond-dbus-auth-session-gen.c' object='libgsignond_dbus_la-gsignond-dbus-auth-session-gen.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_dbus_la-gsignond-dbus-auth-session-gen.lo `test -f 'gsignond-dbus-auth-session-gen.c' || echo '$(srcdir)/'`gsignond-dbus-auth-session-gen.c
-
-libgsignond_dbus_la-gsignond-dbus-identity-gen.lo: gsignond-dbus-identity-gen.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_dbus_la-gsignond-dbus-identity-gen.lo -MD -MP -MF $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-identity-gen.Tpo -c -o libgsignond_dbus_la-gsignond-dbus-identity-gen.lo `test -f 'gsignond-dbus-identity-gen.c' || echo '$(srcdir)/'`gsignond-dbus-identity-gen.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-identity-gen.Tpo $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-identity-gen.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsignond-dbus-identity-gen.c' object='libgsignond_dbus_la-gsignond-dbus-identity-gen.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_dbus_la-gsignond-dbus-identity-gen.lo `test -f 'gsignond-dbus-identity-gen.c' || echo '$(srcdir)/'`gsignond-dbus-identity-gen.c
-
-libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo: gsignond-dbus-remote-plugin-gen.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo -MD -MP -MF $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.Tpo -c -o libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo `test -f 'gsignond-dbus-remote-plugin-gen.c' || echo '$(srcdir)/'`gsignond-dbus-remote-plugin-gen.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.Tpo $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsignond-dbus-remote-plugin-gen.c' object='libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo `test -f 'gsignond-dbus-remote-plugin-gen.c' || echo '$(srcdir)/'`gsignond-dbus-remote-plugin-gen.c
-
libgsignond_dbus_la-gsignond-dbus-server.lo: gsignond-dbus-server.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_dbus_la-gsignond-dbus-server.lo -MD -MP -MF $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-server.Tpo -c -o libgsignond_dbus_la-gsignond-dbus-server.lo `test -f 'gsignond-dbus-server.c' || echo '$(srcdir)/'`gsignond-dbus-server.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-server.Tpo $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-server.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_dbus_la-gsignond-dbus-signonui-adapter.lo `test -f 'gsignond-dbus-signonui-adapter.c' || echo '$(srcdir)/'`gsignond-dbus-signonui-adapter.c
+libgsignond_dbus_la-gsignond-dbus-auth-service-gen.lo: gsignond-dbus-auth-service-gen.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_dbus_la-gsignond-dbus-auth-service-gen.lo -MD -MP -MF $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-auth-service-gen.Tpo -c -o libgsignond_dbus_la-gsignond-dbus-auth-service-gen.lo `test -f 'gsignond-dbus-auth-service-gen.c' || echo '$(srcdir)/'`gsignond-dbus-auth-service-gen.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-auth-service-gen.Tpo $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-auth-service-gen.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsignond-dbus-auth-service-gen.c' object='libgsignond_dbus_la-gsignond-dbus-auth-service-gen.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_dbus_la-gsignond-dbus-auth-service-gen.lo `test -f 'gsignond-dbus-auth-service-gen.c' || echo '$(srcdir)/'`gsignond-dbus-auth-service-gen.c
+
+libgsignond_dbus_la-gsignond-dbus-auth-session-gen.lo: gsignond-dbus-auth-session-gen.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_dbus_la-gsignond-dbus-auth-session-gen.lo -MD -MP -MF $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-auth-session-gen.Tpo -c -o libgsignond_dbus_la-gsignond-dbus-auth-session-gen.lo `test -f 'gsignond-dbus-auth-session-gen.c' || echo '$(srcdir)/'`gsignond-dbus-auth-session-gen.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-auth-session-gen.Tpo $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-auth-session-gen.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsignond-dbus-auth-session-gen.c' object='libgsignond_dbus_la-gsignond-dbus-auth-session-gen.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_dbus_la-gsignond-dbus-auth-session-gen.lo `test -f 'gsignond-dbus-auth-session-gen.c' || echo '$(srcdir)/'`gsignond-dbus-auth-session-gen.c
+
+libgsignond_dbus_la-gsignond-dbus-identity-gen.lo: gsignond-dbus-identity-gen.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_dbus_la-gsignond-dbus-identity-gen.lo -MD -MP -MF $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-identity-gen.Tpo -c -o libgsignond_dbus_la-gsignond-dbus-identity-gen.lo `test -f 'gsignond-dbus-identity-gen.c' || echo '$(srcdir)/'`gsignond-dbus-identity-gen.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-identity-gen.Tpo $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-identity-gen.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsignond-dbus-identity-gen.c' object='libgsignond_dbus_la-gsignond-dbus-identity-gen.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_dbus_la-gsignond-dbus-identity-gen.lo `test -f 'gsignond-dbus-identity-gen.c' || echo '$(srcdir)/'`gsignond-dbus-identity-gen.c
+
+libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo: gsignond-dbus-remote-plugin-gen.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo -MD -MP -MF $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.Tpo -c -o libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo `test -f 'gsignond-dbus-remote-plugin-gen.c' || echo '$(srcdir)/'`gsignond-dbus-remote-plugin-gen.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.Tpo $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsignond-dbus-remote-plugin-gen.c' object='libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo `test -f 'gsignond-dbus-remote-plugin-gen.c' || echo '$(srcdir)/'`gsignond-dbus-remote-plugin-gen.c
+
mostlyclean-libtool:
-rm -f *.lo
-rm -rf .libs _libs
install-dbusinterfacesDATA: $(dbusinterfaces_DATA)
@$(NORMAL_INSTALL)
+ test -z "$(dbusinterfacesdir)" || $(MKDIR_P) "$(DESTDIR)$(dbusinterfacesdir)"
@list='$(dbusinterfaces_DATA)'; test -n "$(dbusinterfacesdir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(dbusinterfacesdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(dbusinterfacesdir)" || exit 1; \
- fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
dir='$(DESTDIR)$(dbusinterfacesdir)'; $(am__uninstall_files_from_dir)
install-dbusserviceDATA: $(dbusservice_DATA)
@$(NORMAL_INSTALL)
+ test -z "$(dbusservicedir)" || $(MKDIR_P) "$(DESTDIR)$(dbusservicedir)"
@list='$(dbusservice_DATA)'; test -n "$(dbusservicedir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(dbusservicedir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(dbusservicedir)" || exit 1; \
- fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
dir='$(DESTDIR)$(dbusservicedir)'; $(am__uninstall_files_from_dir)
install-nodist_dbusserviceDATA: $(nodist_dbusservice_DATA)
@$(NORMAL_INSTALL)
+ test -z "$(dbusservicedir)" || $(MKDIR_P) "$(DESTDIR)$(dbusservicedir)"
@list='$(nodist_dbusservice_DATA)'; test -n "$(dbusservicedir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(dbusservicedir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(dbusservicedir)" || exit 1; \
- fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-generic clean-libtool clean-local \
- clean-noinstLTLIBRARIES mostlyclean-am
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+ mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-local clean-noinstLTLIBRARIES ctags \
- distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dbusinterfacesDATA \
- install-dbusserviceDATA install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man \
+ clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-dbusinterfacesDATA install-dbusserviceDATA install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
install-nodist_dbusserviceDATA install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs maintainer-clean \
--generate-docbook gsignond-dbus-remote-plugin-doc-gen \
$<
-clean-local :
- rm -f *~ $(DBUS_BUILT_SOURCES) $(DBUS_BUILT_DOCS)
+#clean-local :
+# rm -f *~ $(DBUS_BUILT_SOURCES) $(DBUS_BUILT_DOCS)
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
info = gsignond_identity_get_identity_info (identity);
gsignond_dbus_auth_service_complete_get_identity (self->priv->dbus_auth_service,
invocation, gsignond_dbus_identity_adapter_get_object_path (dbus_identity),
- gsignond_dictionary_to_variant (info));
+ gsignond_identity_info_to_variant(info));
}
else {
g_dbus_method_invocation_return_gerror (invocation, error);
{
GVariantBuilder *builder = (GVariantBuilder *)user_data;
- g_variant_builder_add (builder, "@a{sv}", gsignond_dictionary_to_variant ((GSignondIdentityInfo*)data));
+ g_variant_builder_add (builder, "@a{sv}", gsignond_identity_info_to_variant ((GSignondIdentityInfo*)data));
}
static gboolean
/*
- * Generated by gdbus-codegen 2.34.1. DO NOT EDIT.
+ * Generated by gdbus-codegen 2.32.4. DO NOT EDIT.
*
* The license of this code is the same as for the source it was derived from.
*/
{
{
-1,
- (gchar *) "applicationContext",
- (gchar *) "s",
+ "applicationContext",
+ "s",
NULL
},
FALSE
{
{
-1,
- (gchar *) "objectPath",
- (gchar *) "o",
+ "objectPath",
+ "o",
NULL
},
FALSE
{
{
-1,
- (gchar *) "registerNewIdentity",
+ "registerNewIdentity",
(GDBusArgInfo **) &_gsignond_dbus_auth_service_method_info_register_new_identity_IN_ARG_pointers,
(GDBusArgInfo **) &_gsignond_dbus_auth_service_method_info_register_new_identity_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "id",
- (gchar *) "u",
+ "id",
+ "u",
NULL
},
FALSE
{
{
-1,
- (gchar *) "applicationContext",
- (gchar *) "s",
+ "applicationContext",
+ "s",
NULL
},
FALSE
{
{
-1,
- (gchar *) "objectPath",
- (gchar *) "o",
+ "objectPath",
+ "o",
NULL
},
FALSE
{
{
-1,
- (gchar *) "identityData",
- (gchar *) "a{sv}",
+ "identityData",
+ "a{sv}",
NULL
},
FALSE
{
{
-1,
- (gchar *) "getIdentity",
+ "getIdentity",
(GDBusArgInfo **) &_gsignond_dbus_auth_service_method_info_get_identity_IN_ARG_pointers,
(GDBusArgInfo **) &_gsignond_dbus_auth_service_method_info_get_identity_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "authMethods",
- (gchar *) "as",
+ "authMethods",
+ "as",
NULL
},
FALSE
{
{
-1,
- (gchar *) "queryMethods",
+ "queryMethods",
NULL,
(GDBusArgInfo **) &_gsignond_dbus_auth_service_method_info_query_methods_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "method",
- (gchar *) "s",
+ "method",
+ "s",
NULL
},
FALSE
{
{
-1,
- (gchar *) "mechanisms",
- (gchar *) "as",
+ "mechanisms",
+ "as",
NULL
},
FALSE
{
{
-1,
- (gchar *) "queryMechanisms",
+ "queryMechanisms",
(GDBusArgInfo **) &_gsignond_dbus_auth_service_method_info_query_mechanisms_IN_ARG_pointers,
(GDBusArgInfo **) &_gsignond_dbus_auth_service_method_info_query_mechanisms_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "filter",
- (gchar *) "a{sv}",
+ "filter",
+ "a{sv}",
NULL
},
FALSE
{
{
-1,
- (gchar *) "applicationContext",
- (gchar *) "s",
+ "applicationContext",
+ "s",
NULL
},
FALSE
{
{
-1,
- (gchar *) "identities",
- (gchar *) "aa{sv}",
+ "identities",
+ "aa{sv}",
NULL
},
FALSE
{
{
-1,
- (gchar *) "queryIdentities",
+ "queryIdentities",
(GDBusArgInfo **) &_gsignond_dbus_auth_service_method_info_query_identities_IN_ARG_pointers,
(GDBusArgInfo **) &_gsignond_dbus_auth_service_method_info_query_identities_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "unnamed_arg0",
- (gchar *) "b",
+ "unnamed_arg0",
+ "b",
NULL
},
FALSE
{
{
-1,
- (gchar *) "clear",
+ "clear",
NULL,
(GDBusArgInfo **) &_gsignond_dbus_auth_service_method_info_clear_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "unnamed_arg0",
- (gchar *) "y",
+ "unnamed_arg0",
+ "y",
NULL
},
FALSE
{
{
-1,
- (gchar *) "backupStarts",
+ "backupStarts",
NULL,
(GDBusArgInfo **) &_gsignond_dbus_auth_service_method_info_backup_starts_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "unnamed_arg0",
- (gchar *) "y",
+ "unnamed_arg0",
+ "y",
NULL
},
FALSE
{
{
-1,
- (gchar *) "backupFinished",
+ "backupFinished",
NULL,
(GDBusArgInfo **) &_gsignond_dbus_auth_service_method_info_backup_finished_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "unnamed_arg0",
- (gchar *) "y",
+ "unnamed_arg0",
+ "y",
NULL
},
FALSE
{
{
-1,
- (gchar *) "restoreStarts",
+ "restoreStarts",
NULL,
(GDBusArgInfo **) &_gsignond_dbus_auth_service_method_info_restore_starts_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "unnamed_arg0",
- (gchar *) "y",
+ "unnamed_arg0",
+ "y",
NULL
},
FALSE
{
{
-1,
- (gchar *) "restoreFinished",
+ "restoreFinished",
NULL,
(GDBusArgInfo **) &_gsignond_dbus_auth_service_method_info_restore_finished_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "com.google.code.AccountsSSO.gSingleSignOn.AuthService",
+ "com.google.code.AccountsSSO.gSingleSignOn.AuthService",
(GDBusMethodInfo **) &_gsignond_dbus_auth_service_method_info_pointers,
NULL,
NULL,
GDBusInterfaceInfo *
gsignond_dbus_auth_service_interface_info (void)
{
- return (GDBusInterfaceInfo *) &_gsignond_dbus_auth_service_interface_info.parent_struct;
+ return (GDBusInterfaceInfo *) &_gsignond_dbus_auth_service_interface_info;
}
/**
guint num_params;
guint n;
guint signal_id;
- info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_service_interface_info.parent_struct, signal_name);
+ info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_service_interface_info, signal_name);
if (info == NULL)
return;
num_params = g_variant_n_children (parameters);
g_variant_get (changed_properties, "a{sv}", &iter);
while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
{
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_service_interface_info.parent_struct, key);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_service_interface_info, key);
g_datalist_remove_data (&proxy->priv->qdata, key);
if (info != NULL)
g_object_notify (G_OBJECT (proxy), info->hyphen_name);
g_variant_iter_free (iter);
for (n = 0; invalidated_properties[n] != NULL; n++)
{
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_service_interface_info.parent_struct, invalidated_properties[n]);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_service_interface_info, invalidated_properties[n]);
g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
if (info != NULL)
g_object_notify (G_OBJECT (proxy), info->hyphen_name);
_ExtendedGDBusPropertyInfo *info;
GVariant *ret;
ret = NULL;
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_service_interface_info.parent_struct, property_name);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_service_interface_info, property_name);
g_assert (info != NULL);
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
if (pspec == NULL)
_ExtendedGDBusPropertyInfo *info;
gboolean ret;
ret = FALSE;
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_service_interface_info.parent_struct, property_name);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_service_interface_info, property_name);
g_assert (info != NULL);
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
if (pspec == NULL)
/*
- * Generated by gdbus-codegen 2.34.1. DO NOT EDIT.
+ * Generated by gdbus-codegen 2.32.4. DO NOT EDIT.
*
* The license of this code is the same as for the source it was derived from.
*/
gsignond_dbus_auth_session_adapter_new (GSignondAuthSession *session, const gchar *app_context, guint timeout)
{
GError *error = NULL;
- GDBusConnection *connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
+ GDBusConnection *connection = g_bus_get_sync (GSIGNOND_BUS_TYPE, NULL, &error);
if (error) {
ERR ("Error getting session bus :%s", error->message);
g_error_free (error);
/*
- * Generated by gdbus-codegen 2.34.1. DO NOT EDIT.
+ * Generated by gdbus-codegen 2.32.4. DO NOT EDIT.
*
* The license of this code is the same as for the source it was derived from.
*/
{
{
-1,
- (gchar *) "wantedMechanisms",
- (gchar *) "as",
+ "wantedMechanisms",
+ "as",
NULL
},
FALSE
{
{
-1,
- (gchar *) "unnamed_arg1",
- (gchar *) "as",
+ "unnamed_arg1",
+ "as",
NULL
},
FALSE
{
{
-1,
- (gchar *) "queryAvailableMechanisms",
+ "queryAvailableMechanisms",
(GDBusArgInfo **) &_gsignond_dbus_auth_session_method_info_query_available_mechanisms_IN_ARG_pointers,
(GDBusArgInfo **) &_gsignond_dbus_auth_session_method_info_query_available_mechanisms_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "sessionDataVa",
- (gchar *) "a{sv}",
+ "sessionDataVa",
+ "a{sv}",
NULL
},
FALSE
{
{
-1,
- (gchar *) "mechanism",
- (gchar *) "s",
+ "mechanism",
+ "s",
NULL
},
FALSE
{
{
-1,
- (gchar *) "unnamed_arg2",
- (gchar *) "a{sv}",
+ "unnamed_arg2",
+ "a{sv}",
NULL
},
FALSE
{
{
-1,
- (gchar *) "process",
+ "process",
(GDBusArgInfo **) &_gsignond_dbus_auth_session_method_info_process_IN_ARG_pointers,
(GDBusArgInfo **) &_gsignond_dbus_auth_session_method_info_process_OUT_ARG_pointers,
NULL
static const GDBusAnnotationInfo _gsignond_dbus_auth_session_method_cancel_annotation_info_0 =
{
-1,
- (gchar *) "org.freedesktop.DBus.Method.NoReply",
- (gchar *) "true",
+ "org.freedesktop.DBus.Method.NoReply",
+ "true",
NULL
};
{
{
-1,
- (gchar *) "cancel",
+ "cancel",
NULL,
NULL,
(GDBusAnnotationInfo **) &_gsignond_dbus_auth_session_method_cancel_annotation_info_pointers
{
{
-1,
- (gchar *) "state",
- (gchar *) "i",
+ "state",
+ "i",
NULL
},
FALSE
{
{
-1,
- (gchar *) "message",
- (gchar *) "s",
+ "message",
+ "s",
NULL
},
FALSE
{
{
-1,
- (gchar *) "stateChanged",
+ "stateChanged",
(GDBusArgInfo **) &_gsignond_dbus_auth_session_signal_info_state_changed_ARG_pointers,
NULL
},
{
{
-1,
- (gchar *) "unregistered",
+ "unregistered",
NULL,
NULL
},
{
{
-1,
- (gchar *) "com.google.code.AccountsSSO.gSingleSignOn.AuthSession",
+ "com.google.code.AccountsSSO.gSingleSignOn.AuthSession",
(GDBusMethodInfo **) &_gsignond_dbus_auth_session_method_info_pointers,
(GDBusSignalInfo **) &_gsignond_dbus_auth_session_signal_info_pointers,
NULL,
GDBusInterfaceInfo *
gsignond_dbus_auth_session_interface_info (void)
{
- return (GDBusInterfaceInfo *) &_gsignond_dbus_auth_session_interface_info.parent_struct;
+ return (GDBusInterfaceInfo *) &_gsignond_dbus_auth_session_interface_info;
}
/**
guint num_params;
guint n;
guint signal_id;
- info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_session_interface_info.parent_struct, signal_name);
+ info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_session_interface_info, signal_name);
if (info == NULL)
return;
num_params = g_variant_n_children (parameters);
g_variant_get (changed_properties, "a{sv}", &iter);
while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
{
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_session_interface_info.parent_struct, key);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_session_interface_info, key);
g_datalist_remove_data (&proxy->priv->qdata, key);
if (info != NULL)
g_object_notify (G_OBJECT (proxy), info->hyphen_name);
g_variant_iter_free (iter);
for (n = 0; invalidated_properties[n] != NULL; n++)
{
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_session_interface_info.parent_struct, invalidated_properties[n]);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_session_interface_info, invalidated_properties[n]);
g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
if (info != NULL)
g_object_notify (G_OBJECT (proxy), info->hyphen_name);
_ExtendedGDBusPropertyInfo *info;
GVariant *ret;
ret = NULL;
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_session_interface_info.parent_struct, property_name);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_session_interface_info, property_name);
g_assert (info != NULL);
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
if (pspec == NULL)
_ExtendedGDBusPropertyInfo *info;
gboolean ret;
ret = FALSE;
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_session_interface_info.parent_struct, property_name);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_auth_session_interface_info, property_name);
g_assert (info != NULL);
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
if (pspec == NULL)
/*
- * Generated by gdbus-codegen 2.34.1. DO NOT EDIT.
+ * Generated by gdbus-codegen 2.32.4. DO NOT EDIT.
*
* The license of this code is the same as for the source it was derived from.
*/
gsignond_dbus_identity_adapter_new (GSignondIdentity *identity, const gchar *app_context, guint timeout)
{
GError *error = NULL;
- GDBusConnection *connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
+ GDBusConnection *connection = g_bus_get_sync (GSIGNOND_BUS_TYPE, NULL, &error);
if (error) {
ERR("failed to connect to session bus : %s", error->message);
/*
- * Generated by gdbus-codegen 2.34.1. DO NOT EDIT.
+ * Generated by gdbus-codegen 2.32.4. DO NOT EDIT.
*
* The license of this code is the same as for the source it was derived from.
*/
{
{
-1,
- (gchar *) "message",
- (gchar *) "s",
+ "message",
+ "s",
NULL
},
FALSE
{
{
-1,
- (gchar *) "unnamed_arg1",
- (gchar *) "u",
+ "unnamed_arg1",
+ "u",
NULL
},
FALSE
{
{
-1,
- (gchar *) "requestCredentialsUpdate",
+ "requestCredentialsUpdate",
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_request_credentials_update_IN_ARG_pointers,
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_request_credentials_update_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "identityInfo",
- (gchar *) "a{sv}",
+ "identityInfo",
+ "a{sv}",
NULL
},
FALSE
{
{
-1,
- (gchar *) "getInfo",
+ "getInfo",
NULL,
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_get_info_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "method",
- (gchar *) "s",
+ "method",
+ "s",
NULL
},
FALSE
{
{
-1,
- (gchar *) "objectPath",
- (gchar *) "o",
+ "objectPath",
+ "o",
NULL
},
FALSE
{
{
-1,
- (gchar *) "getAuthSession",
+ "getAuthSession",
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_get_auth_session_IN_ARG_pointers,
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_get_auth_session_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "params",
- (gchar *) "a{sv}",
+ "params",
+ "a{sv}",
NULL
},
FALSE
{
{
-1,
- (gchar *) "unnamed_arg1",
- (gchar *) "b",
+ "unnamed_arg1",
+ "b",
NULL
},
FALSE
{
{
-1,
- (gchar *) "verifyUser",
+ "verifyUser",
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_verify_user_IN_ARG_pointers,
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_verify_user_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "secret",
- (gchar *) "s",
+ "secret",
+ "s",
NULL
},
FALSE
{
{
-1,
- (gchar *) "unnamed_arg1",
- (gchar *) "b",
+ "unnamed_arg1",
+ "b",
NULL
},
FALSE
{
{
-1,
- (gchar *) "verifySecret",
+ "verifySecret",
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_verify_secret_IN_ARG_pointers,
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_verify_secret_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "remove",
+ "remove",
NULL,
NULL,
NULL
{
{
-1,
- (gchar *) "unnamed_arg0",
- (gchar *) "b",
+ "unnamed_arg0",
+ "b",
NULL
},
FALSE
{
{
-1,
- (gchar *) "signOut",
+ "signOut",
NULL,
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_sign_out_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "unnamed_arg0",
- (gchar *) "a{sv}",
+ "unnamed_arg0",
+ "a{sv}",
NULL
},
FALSE
{
{
-1,
- (gchar *) "unnamed_arg1",
- (gchar *) "u",
+ "unnamed_arg1",
+ "u",
NULL
},
FALSE
{
{
-1,
- (gchar *) "store",
+ "store",
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_store_IN_ARG_pointers,
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_store_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "reference",
- (gchar *) "s",
+ "reference",
+ "s",
NULL
},
FALSE
{
{
-1,
- (gchar *) "unnamed_arg1",
- (gchar *) "i",
+ "unnamed_arg1",
+ "i",
NULL
},
FALSE
{
{
-1,
- (gchar *) "addReference",
+ "addReference",
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_add_reference_IN_ARG_pointers,
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_add_reference_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "reference",
- (gchar *) "s",
+ "reference",
+ "s",
NULL
},
FALSE
{
{
-1,
- (gchar *) "unnamed_arg1",
- (gchar *) "i",
+ "unnamed_arg1",
+ "i",
NULL
},
FALSE
{
{
-1,
- (gchar *) "removeReference",
+ "removeReference",
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_remove_reference_IN_ARG_pointers,
(GDBusArgInfo **) &_gsignond_dbus_identity_method_info_remove_reference_OUT_ARG_pointers,
NULL
{
{
-1,
- (gchar *) "unregistered",
+ "unregistered",
NULL,
NULL
},
{
{
-1,
- (gchar *) "unnamed_arg0",
- (gchar *) "i",
+ "unnamed_arg0",
+ "i",
NULL
},
FALSE
{
{
-1,
- (gchar *) "infoUpdated",
+ "infoUpdated",
(GDBusArgInfo **) &_gsignond_dbus_identity_signal_info_info_updated_ARG_pointers,
NULL
},
{
{
-1,
- (gchar *) "com.google.code.AccountsSSO.gSingleSignOn.Identity",
+ "com.google.code.AccountsSSO.gSingleSignOn.Identity",
(GDBusMethodInfo **) &_gsignond_dbus_identity_method_info_pointers,
(GDBusSignalInfo **) &_gsignond_dbus_identity_signal_info_pointers,
NULL,
GDBusInterfaceInfo *
gsignond_dbus_identity_interface_info (void)
{
- return (GDBusInterfaceInfo *) &_gsignond_dbus_identity_interface_info.parent_struct;
+ return (GDBusInterfaceInfo *) &_gsignond_dbus_identity_interface_info;
}
/**
guint num_params;
guint n;
guint signal_id;
- info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_gsignond_dbus_identity_interface_info.parent_struct, signal_name);
+ info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_gsignond_dbus_identity_interface_info, signal_name);
if (info == NULL)
return;
num_params = g_variant_n_children (parameters);
g_variant_get (changed_properties, "a{sv}", &iter);
while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
{
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_identity_interface_info.parent_struct, key);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_identity_interface_info, key);
g_datalist_remove_data (&proxy->priv->qdata, key);
if (info != NULL)
g_object_notify (G_OBJECT (proxy), info->hyphen_name);
g_variant_iter_free (iter);
for (n = 0; invalidated_properties[n] != NULL; n++)
{
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_identity_interface_info.parent_struct, invalidated_properties[n]);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_identity_interface_info, invalidated_properties[n]);
g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
if (info != NULL)
g_object_notify (G_OBJECT (proxy), info->hyphen_name);
_ExtendedGDBusPropertyInfo *info;
GVariant *ret;
ret = NULL;
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_identity_interface_info.parent_struct, property_name);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_identity_interface_info, property_name);
g_assert (info != NULL);
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
if (pspec == NULL)
_ExtendedGDBusPropertyInfo *info;
gboolean ret;
ret = FALSE;
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_identity_interface_info.parent_struct, property_name);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_identity_interface_info, property_name);
g_assert (info != NULL);
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
if (pspec == NULL)
/*
- * Generated by gdbus-codegen 2.34.1. DO NOT EDIT.
+ * Generated by gdbus-codegen 2.32.4. DO NOT EDIT.
*
* The license of this code is the same as for the source it was derived from.
*/
/*
- * Generated by gdbus-codegen 2.34.1. DO NOT EDIT.
+ * Generated by gdbus-codegen 2.32.4. DO NOT EDIT.
*
* The license of this code is the same as for the source it was derived from.
*/
}
/* ------------------------------------------------------------------------
- * Code for interface com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin
+ * Code for interface com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1
* ------------------------------------------------------------------------
*/
/**
- * SECTION:GSignondDbusRemotePlugin
- * @title: GSignondDbusRemotePlugin
- * @short_description: Generated C code for the com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin D-Bus interface
+ * SECTION:GSignondDbusRemotePluginV1
+ * @title: GSignondDbusRemotePluginV1
+ * @short_description: Generated C code for the com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1 D-Bus interface
*
- * This section contains code for working with the <link linkend="gdbus-interface-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.top_of_page">com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin</link> D-Bus interface in C.
+ * This section contains code for working with the <link linkend="gdbus-interface-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.top_of_page">com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1</link> D-Bus interface in C.
*/
-/* ---- Introspection data for com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin ---- */
+/* ---- Introspection data for com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1 ---- */
-static const _ExtendedGDBusMethodInfo _gsignond_dbus_remote_plugin_method_info_cancel =
+static const _ExtendedGDBusMethodInfo _gsignond_dbus_remote_plugin_v1_method_info_cancel =
{
{
-1,
- (gchar *) "cancel",
+ "cancel",
NULL,
NULL,
NULL
FALSE
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_method_info_request_initial_IN_ARG_sessionData =
+static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_v1_method_info_request_initial_IN_ARG_sessionData =
{
{
-1,
- (gchar *) "sessionData",
- (gchar *) "a{sv}",
+ "sessionData",
+ "a{sv}",
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_method_info_request_initial_IN_ARG_identityMethodCache =
+static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_v1_method_info_request_initial_IN_ARG_identityMethodCache =
{
{
-1,
- (gchar *) "identityMethodCache",
- (gchar *) "a{sv}",
+ "identityMethodCache",
+ "a{sv}",
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_method_info_request_initial_IN_ARG_mechanism =
+static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_v1_method_info_request_initial_IN_ARG_mechanism =
{
{
-1,
- (gchar *) "mechanism",
- (gchar *) "s",
+ "mechanism",
+ "s",
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_method_info_request_initial_IN_ARG_pointers[] =
+static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_v1_method_info_request_initial_IN_ARG_pointers[] =
{
- &_gsignond_dbus_remote_plugin_method_info_request_initial_IN_ARG_sessionData,
- &_gsignond_dbus_remote_plugin_method_info_request_initial_IN_ARG_identityMethodCache,
- &_gsignond_dbus_remote_plugin_method_info_request_initial_IN_ARG_mechanism,
+ &_gsignond_dbus_remote_plugin_v1_method_info_request_initial_IN_ARG_sessionData,
+ &_gsignond_dbus_remote_plugin_v1_method_info_request_initial_IN_ARG_identityMethodCache,
+ &_gsignond_dbus_remote_plugin_v1_method_info_request_initial_IN_ARG_mechanism,
NULL
};
-static const _ExtendedGDBusMethodInfo _gsignond_dbus_remote_plugin_method_info_request_initial =
+static const _ExtendedGDBusMethodInfo _gsignond_dbus_remote_plugin_v1_method_info_request_initial =
{
{
-1,
- (gchar *) "requestInitial",
- (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_method_info_request_initial_IN_ARG_pointers,
+ "requestInitial",
+ (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_v1_method_info_request_initial_IN_ARG_pointers,
NULL,
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_method_info_request_IN_ARG_sessionData =
+static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_v1_method_info_request_IN_ARG_sessionData =
{
{
-1,
- (gchar *) "sessionData",
- (gchar *) "a{sv}",
+ "sessionData",
+ "a{sv}",
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_method_info_request_IN_ARG_pointers[] =
+static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_v1_method_info_request_IN_ARG_pointers[] =
{
- &_gsignond_dbus_remote_plugin_method_info_request_IN_ARG_sessionData,
+ &_gsignond_dbus_remote_plugin_v1_method_info_request_IN_ARG_sessionData,
NULL
};
-static const _ExtendedGDBusMethodInfo _gsignond_dbus_remote_plugin_method_info_request =
+static const _ExtendedGDBusMethodInfo _gsignond_dbus_remote_plugin_v1_method_info_request =
{
{
-1,
- (gchar *) "request",
- (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_method_info_request_IN_ARG_pointers,
+ "request",
+ (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_v1_method_info_request_IN_ARG_pointers,
NULL,
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_method_info_user_action_finished_IN_ARG_uiData =
+static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_v1_method_info_user_action_finished_IN_ARG_uiData =
{
{
-1,
- (gchar *) "uiData",
- (gchar *) "a{sv}",
+ "uiData",
+ "a{sv}",
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_method_info_user_action_finished_IN_ARG_pointers[] =
+static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_v1_method_info_user_action_finished_IN_ARG_pointers[] =
{
- &_gsignond_dbus_remote_plugin_method_info_user_action_finished_IN_ARG_uiData,
+ &_gsignond_dbus_remote_plugin_v1_method_info_user_action_finished_IN_ARG_uiData,
NULL
};
-static const _ExtendedGDBusMethodInfo _gsignond_dbus_remote_plugin_method_info_user_action_finished =
+static const _ExtendedGDBusMethodInfo _gsignond_dbus_remote_plugin_v1_method_info_user_action_finished =
{
{
-1,
- (gchar *) "userActionFinished",
- (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_method_info_user_action_finished_IN_ARG_pointers,
+ "userActionFinished",
+ (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_v1_method_info_user_action_finished_IN_ARG_pointers,
NULL,
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_method_info_refresh_IN_ARG_uiData =
+static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_v1_method_info_refresh_IN_ARG_uiData =
{
{
-1,
- (gchar *) "uiData",
- (gchar *) "a{sv}",
+ "uiData",
+ "a{sv}",
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_method_info_refresh_IN_ARG_pointers[] =
+static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_v1_method_info_refresh_IN_ARG_pointers[] =
{
- &_gsignond_dbus_remote_plugin_method_info_refresh_IN_ARG_uiData,
+ &_gsignond_dbus_remote_plugin_v1_method_info_refresh_IN_ARG_uiData,
NULL
};
-static const _ExtendedGDBusMethodInfo _gsignond_dbus_remote_plugin_method_info_refresh =
+static const _ExtendedGDBusMethodInfo _gsignond_dbus_remote_plugin_v1_method_info_refresh =
{
{
-1,
- (gchar *) "refresh",
- (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_method_info_refresh_IN_ARG_pointers,
+ "refresh",
+ (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_v1_method_info_refresh_IN_ARG_pointers,
NULL,
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_method_info_get_info_OUT_ARG_type =
+static const _ExtendedGDBusMethodInfo * const _gsignond_dbus_remote_plugin_v1_method_info_pointers[] =
{
- {
- -1,
- (gchar *) "type",
- (gchar *) "s",
- NULL
- },
- FALSE
+ &_gsignond_dbus_remote_plugin_v1_method_info_cancel,
+ &_gsignond_dbus_remote_plugin_v1_method_info_request_initial,
+ &_gsignond_dbus_remote_plugin_v1_method_info_request,
+ &_gsignond_dbus_remote_plugin_v1_method_info_user_action_finished,
+ &_gsignond_dbus_remote_plugin_v1_method_info_refresh,
+ NULL
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_method_info_get_info_OUT_ARG_mechanisms =
+static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_v1_signal_info_response_ARG_sessionData =
{
{
-1,
- (gchar *) "mechanisms",
- (gchar *) "as",
+ "sessionData",
+ "a{sv}",
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_method_info_get_info_OUT_ARG_pointers[] =
+static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_v1_signal_info_response_ARG_pointers[] =
{
- &_gsignond_dbus_remote_plugin_method_info_get_info_OUT_ARG_type,
- &_gsignond_dbus_remote_plugin_method_info_get_info_OUT_ARG_mechanisms,
+ &_gsignond_dbus_remote_plugin_v1_signal_info_response_ARG_sessionData,
NULL
};
-static const _ExtendedGDBusMethodInfo _gsignond_dbus_remote_plugin_method_info_get_info =
+static const _ExtendedGDBusSignalInfo _gsignond_dbus_remote_plugin_v1_signal_info_response =
{
{
-1,
- (gchar *) "getInfo",
- NULL,
- (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_method_info_get_info_OUT_ARG_pointers,
+ "response",
+ (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_v1_signal_info_response_ARG_pointers,
NULL
},
- "handle-get-info",
- FALSE
-};
-
-static const _ExtendedGDBusMethodInfo * const _gsignond_dbus_remote_plugin_method_info_pointers[] =
-{
- &_gsignond_dbus_remote_plugin_method_info_cancel,
- &_gsignond_dbus_remote_plugin_method_info_request_initial,
- &_gsignond_dbus_remote_plugin_method_info_request,
- &_gsignond_dbus_remote_plugin_method_info_user_action_finished,
- &_gsignond_dbus_remote_plugin_method_info_refresh,
- &_gsignond_dbus_remote_plugin_method_info_get_info,
- NULL
+ "response"
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_signal_info_response_ARG_sessionData =
+static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_v1_signal_info_response_final_ARG_sessionData =
{
{
-1,
- (gchar *) "sessionData",
- (gchar *) "a{sv}",
+ "sessionData",
+ "a{sv}",
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_signal_info_response_ARG_pointers[] =
+static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_v1_signal_info_response_final_ARG_pointers[] =
{
- &_gsignond_dbus_remote_plugin_signal_info_response_ARG_sessionData,
+ &_gsignond_dbus_remote_plugin_v1_signal_info_response_final_ARG_sessionData,
NULL
};
-static const _ExtendedGDBusSignalInfo _gsignond_dbus_remote_plugin_signal_info_response =
+static const _ExtendedGDBusSignalInfo _gsignond_dbus_remote_plugin_v1_signal_info_response_final =
{
{
-1,
- (gchar *) "response",
- (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_signal_info_response_ARG_pointers,
+ "responseFinal",
+ (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_v1_signal_info_response_final_ARG_pointers,
NULL
},
- "response"
+ "response-final"
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_signal_info_response_final_ARG_sessionData =
+static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_v1_signal_info_store_ARG_sessionData =
{
{
-1,
- (gchar *) "sessionData",
- (gchar *) "a{sv}",
+ "sessionData",
+ "a{sv}",
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_signal_info_response_final_ARG_pointers[] =
+static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_v1_signal_info_store_ARG_pointers[] =
{
- &_gsignond_dbus_remote_plugin_signal_info_response_final_ARG_sessionData,
+ &_gsignond_dbus_remote_plugin_v1_signal_info_store_ARG_sessionData,
NULL
};
-static const _ExtendedGDBusSignalInfo _gsignond_dbus_remote_plugin_signal_info_response_final =
+static const _ExtendedGDBusSignalInfo _gsignond_dbus_remote_plugin_v1_signal_info_store =
{
{
-1,
- (gchar *) "responseFinal",
- (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_signal_info_response_final_ARG_pointers,
+ "store",
+ (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_v1_signal_info_store_ARG_pointers,
NULL
},
- "response-final"
+ "store"
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_signal_info_store_ARG_sessionData =
+static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_v1_signal_info_error_ARG_error =
{
{
-1,
- (gchar *) "sessionData",
- (gchar *) "a{sv}",
+ "error",
+ "(uis)",
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_signal_info_store_ARG_pointers[] =
+static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_v1_signal_info_error_ARG_pointers[] =
{
- &_gsignond_dbus_remote_plugin_signal_info_store_ARG_sessionData,
+ &_gsignond_dbus_remote_plugin_v1_signal_info_error_ARG_error,
NULL
};
-static const _ExtendedGDBusSignalInfo _gsignond_dbus_remote_plugin_signal_info_store =
+static const _ExtendedGDBusSignalInfo _gsignond_dbus_remote_plugin_v1_signal_info_error =
{
{
-1,
- (gchar *) "store",
- (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_signal_info_store_ARG_pointers,
+ "error",
+ (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_v1_signal_info_error_ARG_pointers,
NULL
},
- "store"
+ "error"
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_signal_info_error_ARG_error =
+static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_v1_signal_info_user_action_required_ARG_uiData =
{
{
-1,
- (gchar *) "error",
- (gchar *) "(uis)",
+ "uiData",
+ "a{sv}",
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_signal_info_error_ARG_pointers[] =
+static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_v1_signal_info_user_action_required_ARG_pointers[] =
{
- &_gsignond_dbus_remote_plugin_signal_info_error_ARG_error,
+ &_gsignond_dbus_remote_plugin_v1_signal_info_user_action_required_ARG_uiData,
NULL
};
-static const _ExtendedGDBusSignalInfo _gsignond_dbus_remote_plugin_signal_info_error =
+static const _ExtendedGDBusSignalInfo _gsignond_dbus_remote_plugin_v1_signal_info_user_action_required =
{
{
-1,
- (gchar *) "error",
- (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_signal_info_error_ARG_pointers,
+ "userActionRequired",
+ (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_v1_signal_info_user_action_required_ARG_pointers,
NULL
},
- "error"
+ "user-action-required"
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_signal_info_user_action_required_ARG_uiData =
+static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_v1_signal_info_refreshed_ARG_uiData =
{
{
-1,
- (gchar *) "uiData",
- (gchar *) "a{sv}",
+ "uiData",
+ "a{sv}",
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_signal_info_user_action_required_ARG_pointers[] =
+static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_v1_signal_info_refreshed_ARG_pointers[] =
{
- &_gsignond_dbus_remote_plugin_signal_info_user_action_required_ARG_uiData,
+ &_gsignond_dbus_remote_plugin_v1_signal_info_refreshed_ARG_uiData,
NULL
};
-static const _ExtendedGDBusSignalInfo _gsignond_dbus_remote_plugin_signal_info_user_action_required =
+static const _ExtendedGDBusSignalInfo _gsignond_dbus_remote_plugin_v1_signal_info_refreshed =
{
{
-1,
- (gchar *) "userActionRequired",
- (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_signal_info_user_action_required_ARG_pointers,
+ "refreshed",
+ (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_v1_signal_info_refreshed_ARG_pointers,
NULL
},
- "user-action-required"
+ "refreshed"
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_signal_info_refreshed_ARG_uiData =
+static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_v1_signal_info_status_changed_ARG_state =
{
{
-1,
- (gchar *) "uiData",
- (gchar *) "a{sv}",
+ "state",
+ "i",
NULL
},
FALSE
};
-static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_signal_info_refreshed_ARG_pointers[] =
-{
- &_gsignond_dbus_remote_plugin_signal_info_refreshed_ARG_uiData,
- NULL
-};
-
-static const _ExtendedGDBusSignalInfo _gsignond_dbus_remote_plugin_signal_info_refreshed =
+static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_v1_signal_info_status_changed_ARG_message =
{
{
-1,
- (gchar *) "refreshed",
- (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_signal_info_refreshed_ARG_pointers,
+ "message",
+ "s",
NULL
},
- "refreshed"
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_v1_signal_info_status_changed_ARG_pointers[] =
+{
+ &_gsignond_dbus_remote_plugin_v1_signal_info_status_changed_ARG_state,
+ &_gsignond_dbus_remote_plugin_v1_signal_info_status_changed_ARG_message,
+ NULL
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_signal_info_status_changed_ARG_state =
+static const _ExtendedGDBusSignalInfo _gsignond_dbus_remote_plugin_v1_signal_info_status_changed =
{
{
-1,
- (gchar *) "state",
- (gchar *) "i",
+ "statusChanged",
+ (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_v1_signal_info_status_changed_ARG_pointers,
NULL
},
- FALSE
+ "status-changed"
+};
+
+static const _ExtendedGDBusSignalInfo * const _gsignond_dbus_remote_plugin_v1_signal_info_pointers[] =
+{
+ &_gsignond_dbus_remote_plugin_v1_signal_info_response,
+ &_gsignond_dbus_remote_plugin_v1_signal_info_response_final,
+ &_gsignond_dbus_remote_plugin_v1_signal_info_store,
+ &_gsignond_dbus_remote_plugin_v1_signal_info_error,
+ &_gsignond_dbus_remote_plugin_v1_signal_info_user_action_required,
+ &_gsignond_dbus_remote_plugin_v1_signal_info_refreshed,
+ &_gsignond_dbus_remote_plugin_v1_signal_info_status_changed,
+ NULL
};
-static const _ExtendedGDBusArgInfo _gsignond_dbus_remote_plugin_signal_info_status_changed_ARG_message =
+static const _ExtendedGDBusPropertyInfo _gsignond_dbus_remote_plugin_v1_property_info_method =
{
{
-1,
- (gchar *) "message",
- (gchar *) "s",
+ "method",
+ "s",
+ G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
NULL
},
+ "method",
FALSE
};
-static const _ExtendedGDBusArgInfo * const _gsignond_dbus_remote_plugin_signal_info_status_changed_ARG_pointers[] =
-{
- &_gsignond_dbus_remote_plugin_signal_info_status_changed_ARG_state,
- &_gsignond_dbus_remote_plugin_signal_info_status_changed_ARG_message,
- NULL
-};
-
-static const _ExtendedGDBusSignalInfo _gsignond_dbus_remote_plugin_signal_info_status_changed =
+static const _ExtendedGDBusPropertyInfo _gsignond_dbus_remote_plugin_v1_property_info_mechanisms =
{
{
-1,
- (gchar *) "statusChanged",
- (GDBusArgInfo **) &_gsignond_dbus_remote_plugin_signal_info_status_changed_ARG_pointers,
+ "mechanisms",
+ "as",
+ G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
NULL
},
- "status-changed"
+ "mechanisms",
+ FALSE
};
-static const _ExtendedGDBusSignalInfo * const _gsignond_dbus_remote_plugin_signal_info_pointers[] =
+static const _ExtendedGDBusPropertyInfo * const _gsignond_dbus_remote_plugin_v1_property_info_pointers[] =
{
- &_gsignond_dbus_remote_plugin_signal_info_response,
- &_gsignond_dbus_remote_plugin_signal_info_response_final,
- &_gsignond_dbus_remote_plugin_signal_info_store,
- &_gsignond_dbus_remote_plugin_signal_info_error,
- &_gsignond_dbus_remote_plugin_signal_info_user_action_required,
- &_gsignond_dbus_remote_plugin_signal_info_refreshed,
- &_gsignond_dbus_remote_plugin_signal_info_status_changed,
+ &_gsignond_dbus_remote_plugin_v1_property_info_method,
+ &_gsignond_dbus_remote_plugin_v1_property_info_mechanisms,
NULL
};
-static const _ExtendedGDBusInterfaceInfo _gsignond_dbus_remote_plugin_interface_info =
+static const _ExtendedGDBusInterfaceInfo _gsignond_dbus_remote_plugin_v1_interface_info =
{
{
-1,
- (gchar *) "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin",
- (GDBusMethodInfo **) &_gsignond_dbus_remote_plugin_method_info_pointers,
- (GDBusSignalInfo **) &_gsignond_dbus_remote_plugin_signal_info_pointers,
- NULL,
+ "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1",
+ (GDBusMethodInfo **) &_gsignond_dbus_remote_plugin_v1_method_info_pointers,
+ (GDBusSignalInfo **) &_gsignond_dbus_remote_plugin_v1_signal_info_pointers,
+ (GDBusPropertyInfo **) &_gsignond_dbus_remote_plugin_v1_property_info_pointers,
NULL
},
- "remote-plugin",
+ "remote-plugin-v1",
};
/**
- * gsignond_dbus_remote_plugin_interface_info:
+ * gsignond_dbus_remote_plugin_v1_interface_info:
*
- * Gets a machine-readable description of the <link linkend="gdbus-interface-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.top_of_page">com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin</link> D-Bus interface.
+ * Gets a machine-readable description of the <link linkend="gdbus-interface-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.top_of_page">com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1</link> D-Bus interface.
*
* Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
*/
GDBusInterfaceInfo *
-gsignond_dbus_remote_plugin_interface_info (void)
+gsignond_dbus_remote_plugin_v1_interface_info (void)
{
- return (GDBusInterfaceInfo *) &_gsignond_dbus_remote_plugin_interface_info.parent_struct;
+ return (GDBusInterfaceInfo *) &_gsignond_dbus_remote_plugin_v1_interface_info;
}
/**
- * gsignond_dbus_remote_plugin_override_properties:
+ * gsignond_dbus_remote_plugin_v1_override_properties:
* @klass: The class structure for a #GObject<!-- -->-derived class.
* @property_id_begin: The property id to assign to the first overridden property.
*
- * Overrides all #GObject properties in the #GSignondDbusRemotePlugin interface for a concrete class.
+ * Overrides all #GObject properties in the #GSignondDbusRemotePluginV1 interface for a concrete class.
* The properties are overridden in the order they are defined.
*
* Returns: The last property id.
*/
guint
-gsignond_dbus_remote_plugin_override_properties (GObjectClass *klass, guint property_id_begin)
+gsignond_dbus_remote_plugin_v1_override_properties (GObjectClass *klass, guint property_id_begin)
{
+ g_object_class_override_property (klass, property_id_begin++, "method");
+ g_object_class_override_property (klass, property_id_begin++, "mechanisms");
return property_id_begin - 1;
}
/**
- * GSignondDbusRemotePlugin:
+ * GSignondDbusRemotePluginV1:
*
- * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.top_of_page">com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin</link>.
+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.top_of_page">com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1</link>.
*/
/**
- * GSignondDbusRemotePluginIface:
+ * GSignondDbusRemotePluginV1Iface:
* @parent_iface: The parent interface.
- * @handle_cancel: Handler for the #GSignondDbusRemotePlugin::handle-cancel signal.
- * @handle_get_info: Handler for the #GSignondDbusRemotePlugin::handle-get-info signal.
- * @handle_refresh: Handler for the #GSignondDbusRemotePlugin::handle-refresh signal.
- * @handle_request: Handler for the #GSignondDbusRemotePlugin::handle-request signal.
- * @handle_request_initial: Handler for the #GSignondDbusRemotePlugin::handle-request-initial signal.
- * @handle_user_action_finished: Handler for the #GSignondDbusRemotePlugin::handle-user-action-finished signal.
- * @error: Handler for the #GSignondDbusRemotePlugin::error signal.
- * @refreshed: Handler for the #GSignondDbusRemotePlugin::refreshed signal.
- * @response: Handler for the #GSignondDbusRemotePlugin::response signal.
- * @response_final: Handler for the #GSignondDbusRemotePlugin::response-final signal.
- * @status_changed: Handler for the #GSignondDbusRemotePlugin::status-changed signal.
- * @store: Handler for the #GSignondDbusRemotePlugin::store signal.
- * @user_action_required: Handler for the #GSignondDbusRemotePlugin::user-action-required signal.
- *
- * Virtual table for the D-Bus interface <link linkend="gdbus-interface-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.top_of_page">com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin</link>.
+ * @handle_cancel: Handler for the #GSignondDbusRemotePluginV1::handle-cancel signal.
+ * @handle_refresh: Handler for the #GSignondDbusRemotePluginV1::handle-refresh signal.
+ * @handle_request: Handler for the #GSignondDbusRemotePluginV1::handle-request signal.
+ * @handle_request_initial: Handler for the #GSignondDbusRemotePluginV1::handle-request-initial signal.
+ * @handle_user_action_finished: Handler for the #GSignondDbusRemotePluginV1::handle-user-action-finished signal.
+ * @get_mechanisms: Getter for the #GSignondDbusRemotePluginV1:mechanisms property.
+ * @get_method: Getter for the #GSignondDbusRemotePluginV1:method property.
+ * @error: Handler for the #GSignondDbusRemotePluginV1::error signal.
+ * @refreshed: Handler for the #GSignondDbusRemotePluginV1::refreshed signal.
+ * @response: Handler for the #GSignondDbusRemotePluginV1::response signal.
+ * @response_final: Handler for the #GSignondDbusRemotePluginV1::response-final signal.
+ * @status_changed: Handler for the #GSignondDbusRemotePluginV1::status-changed signal.
+ * @store: Handler for the #GSignondDbusRemotePluginV1::store signal.
+ * @user_action_required: Handler for the #GSignondDbusRemotePluginV1::user-action-required signal.
+ *
+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.top_of_page">com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1</link>.
*/
static void
-gsignond_dbus_remote_plugin_default_init (GSignondDbusRemotePluginIface *iface)
+gsignond_dbus_remote_plugin_v1_default_init (GSignondDbusRemotePluginV1Iface *iface)
{
/* GObject signals for incoming D-Bus method calls: */
/**
- * GSignondDbusRemotePlugin::handle-cancel:
- * @object: A #GSignondDbusRemotePlugin.
+ * GSignondDbusRemotePluginV1::handle-cancel:
+ * @object: A #GSignondDbusRemotePluginV1.
* @invocation: A #GDBusMethodInvocation.
*
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.cancel">cancel()</link> D-Bus method.
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.cancel">cancel()</link> D-Bus method.
*
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gsignond_dbus_remote_plugin_complete_cancel() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gsignond_dbus_remote_plugin_v1_complete_cancel() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
*
* Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
*/
g_signal_new ("handle-cancel",
G_TYPE_FROM_INTERFACE (iface),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GSignondDbusRemotePluginIface, handle_cancel),
+ G_STRUCT_OFFSET (GSignondDbusRemotePluginV1Iface, handle_cancel),
g_signal_accumulator_true_handled,
NULL,
g_cclosure_marshal_generic,
G_TYPE_DBUS_METHOD_INVOCATION);
/**
- * GSignondDbusRemotePlugin::handle-request-initial:
- * @object: A #GSignondDbusRemotePlugin.
+ * GSignondDbusRemotePluginV1::handle-request-initial:
+ * @object: A #GSignondDbusRemotePluginV1.
* @invocation: A #GDBusMethodInvocation.
* @arg_sessionData: Argument passed by remote caller.
* @arg_identityMethodCache: Argument passed by remote caller.
* @arg_mechanism: Argument passed by remote caller.
*
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.requestInitial">requestInitial()</link> D-Bus method.
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.requestInitial">requestInitial()</link> D-Bus method.
*
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gsignond_dbus_remote_plugin_complete_request_initial() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gsignond_dbus_remote_plugin_v1_complete_request_initial() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
*
* Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
*/
g_signal_new ("handle-request-initial",
G_TYPE_FROM_INTERFACE (iface),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GSignondDbusRemotePluginIface, handle_request_initial),
+ G_STRUCT_OFFSET (GSignondDbusRemotePluginV1Iface, handle_request_initial),
g_signal_accumulator_true_handled,
NULL,
g_cclosure_marshal_generic,
G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT, G_TYPE_VARIANT, G_TYPE_STRING);
/**
- * GSignondDbusRemotePlugin::handle-request:
- * @object: A #GSignondDbusRemotePlugin.
+ * GSignondDbusRemotePluginV1::handle-request:
+ * @object: A #GSignondDbusRemotePluginV1.
* @invocation: A #GDBusMethodInvocation.
* @arg_sessionData: Argument passed by remote caller.
*
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.request">request()</link> D-Bus method.
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.request">request()</link> D-Bus method.
*
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gsignond_dbus_remote_plugin_complete_request() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gsignond_dbus_remote_plugin_v1_complete_request() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
*
* Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
*/
g_signal_new ("handle-request",
G_TYPE_FROM_INTERFACE (iface),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GSignondDbusRemotePluginIface, handle_request),
+ G_STRUCT_OFFSET (GSignondDbusRemotePluginV1Iface, handle_request),
g_signal_accumulator_true_handled,
NULL,
g_cclosure_marshal_generic,
G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT);
/**
- * GSignondDbusRemotePlugin::handle-user-action-finished:
- * @object: A #GSignondDbusRemotePlugin.
+ * GSignondDbusRemotePluginV1::handle-user-action-finished:
+ * @object: A #GSignondDbusRemotePluginV1.
* @invocation: A #GDBusMethodInvocation.
* @arg_uiData: Argument passed by remote caller.
*
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.userActionFinished">userActionFinished()</link> D-Bus method.
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.userActionFinished">userActionFinished()</link> D-Bus method.
*
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gsignond_dbus_remote_plugin_complete_user_action_finished() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gsignond_dbus_remote_plugin_v1_complete_user_action_finished() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
*
* Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
*/
g_signal_new ("handle-user-action-finished",
G_TYPE_FROM_INTERFACE (iface),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GSignondDbusRemotePluginIface, handle_user_action_finished),
+ G_STRUCT_OFFSET (GSignondDbusRemotePluginV1Iface, handle_user_action_finished),
g_signal_accumulator_true_handled,
NULL,
g_cclosure_marshal_generic,
G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT);
/**
- * GSignondDbusRemotePlugin::handle-refresh:
- * @object: A #GSignondDbusRemotePlugin.
+ * GSignondDbusRemotePluginV1::handle-refresh:
+ * @object: A #GSignondDbusRemotePluginV1.
* @invocation: A #GDBusMethodInvocation.
* @arg_uiData: Argument passed by remote caller.
*
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.refresh">refresh()</link> D-Bus method.
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.refresh">refresh()</link> D-Bus method.
*
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gsignond_dbus_remote_plugin_complete_refresh() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gsignond_dbus_remote_plugin_v1_complete_refresh() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
*
* Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
*/
g_signal_new ("handle-refresh",
G_TYPE_FROM_INTERFACE (iface),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GSignondDbusRemotePluginIface, handle_refresh),
+ G_STRUCT_OFFSET (GSignondDbusRemotePluginV1Iface, handle_refresh),
g_signal_accumulator_true_handled,
NULL,
g_cclosure_marshal_generic,
2,
G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT);
- /**
- * GSignondDbusRemotePlugin::handle-get-info:
- * @object: A #GSignondDbusRemotePlugin.
- * @invocation: A #GDBusMethodInvocation.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.getInfo">getInfo()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gsignond_dbus_remote_plugin_complete_get_info() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
- g_signal_new ("handle-get-info",
- G_TYPE_FROM_INTERFACE (iface),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GSignondDbusRemotePluginIface, handle_get_info),
- g_signal_accumulator_true_handled,
- NULL,
- g_cclosure_marshal_generic,
- G_TYPE_BOOLEAN,
- 1,
- G_TYPE_DBUS_METHOD_INVOCATION);
-
/* GObject signals for received D-Bus signals: */
/**
- * GSignondDbusRemotePlugin::response:
- * @object: A #GSignondDbusRemotePlugin.
+ * GSignondDbusRemotePluginV1::response:
+ * @object: A #GSignondDbusRemotePluginV1.
* @arg_sessionData: Argument.
*
- * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.response">"response"</link> is received.
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.response">"response"</link> is received.
*
* On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
*/
g_signal_new ("response",
G_TYPE_FROM_INTERFACE (iface),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GSignondDbusRemotePluginIface, response),
+ G_STRUCT_OFFSET (GSignondDbusRemotePluginV1Iface, response),
NULL,
NULL,
g_cclosure_marshal_generic,
1, G_TYPE_VARIANT);
/**
- * GSignondDbusRemotePlugin::response-final:
- * @object: A #GSignondDbusRemotePlugin.
+ * GSignondDbusRemotePluginV1::response-final:
+ * @object: A #GSignondDbusRemotePluginV1.
* @arg_sessionData: Argument.
*
- * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.responseFinal">"responseFinal"</link> is received.
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.responseFinal">"responseFinal"</link> is received.
*
* On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
*/
g_signal_new ("response-final",
G_TYPE_FROM_INTERFACE (iface),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GSignondDbusRemotePluginIface, response_final),
+ G_STRUCT_OFFSET (GSignondDbusRemotePluginV1Iface, response_final),
NULL,
NULL,
g_cclosure_marshal_generic,
1, G_TYPE_VARIANT);
/**
- * GSignondDbusRemotePlugin::store:
- * @object: A #GSignondDbusRemotePlugin.
+ * GSignondDbusRemotePluginV1::store:
+ * @object: A #GSignondDbusRemotePluginV1.
* @arg_sessionData: Argument.
*
- * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.store">"store"</link> is received.
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.store">"store"</link> is received.
*
* On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
*/
g_signal_new ("store",
G_TYPE_FROM_INTERFACE (iface),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GSignondDbusRemotePluginIface, store),
+ G_STRUCT_OFFSET (GSignondDbusRemotePluginV1Iface, store),
NULL,
NULL,
g_cclosure_marshal_generic,
1, G_TYPE_VARIANT);
/**
- * GSignondDbusRemotePlugin::error:
- * @object: A #GSignondDbusRemotePlugin.
+ * GSignondDbusRemotePluginV1::error:
+ * @object: A #GSignondDbusRemotePluginV1.
* @arg_error: Argument.
*
- * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.error">"error"</link> is received.
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.error">"error"</link> is received.
*
* On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
*/
g_signal_new ("error",
G_TYPE_FROM_INTERFACE (iface),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GSignondDbusRemotePluginIface, error),
+ G_STRUCT_OFFSET (GSignondDbusRemotePluginV1Iface, error),
NULL,
NULL,
g_cclosure_marshal_generic,
1, G_TYPE_VARIANT);
/**
- * GSignondDbusRemotePlugin::user-action-required:
- * @object: A #GSignondDbusRemotePlugin.
+ * GSignondDbusRemotePluginV1::user-action-required:
+ * @object: A #GSignondDbusRemotePluginV1.
* @arg_uiData: Argument.
*
- * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.userActionRequired">"userActionRequired"</link> is received.
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.userActionRequired">"userActionRequired"</link> is received.
*
* On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
*/
g_signal_new ("user-action-required",
G_TYPE_FROM_INTERFACE (iface),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GSignondDbusRemotePluginIface, user_action_required),
+ G_STRUCT_OFFSET (GSignondDbusRemotePluginV1Iface, user_action_required),
NULL,
NULL,
g_cclosure_marshal_generic,
1, G_TYPE_VARIANT);
/**
- * GSignondDbusRemotePlugin::refreshed:
- * @object: A #GSignondDbusRemotePlugin.
+ * GSignondDbusRemotePluginV1::refreshed:
+ * @object: A #GSignondDbusRemotePluginV1.
* @arg_uiData: Argument.
*
- * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.refreshed">"refreshed"</link> is received.
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.refreshed">"refreshed"</link> is received.
*
* On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
*/
g_signal_new ("refreshed",
G_TYPE_FROM_INTERFACE (iface),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GSignondDbusRemotePluginIface, refreshed),
+ G_STRUCT_OFFSET (GSignondDbusRemotePluginV1Iface, refreshed),
NULL,
NULL,
g_cclosure_marshal_generic,
1, G_TYPE_VARIANT);
/**
- * GSignondDbusRemotePlugin::status-changed:
- * @object: A #GSignondDbusRemotePlugin.
+ * GSignondDbusRemotePluginV1::status-changed:
+ * @object: A #GSignondDbusRemotePluginV1.
* @arg_state: Argument.
* @arg_message: Argument.
*
- * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.statusChanged">"statusChanged"</link> is received.
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.statusChanged">"statusChanged"</link> is received.
*
* On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
*/
g_signal_new ("status-changed",
G_TYPE_FROM_INTERFACE (iface),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GSignondDbusRemotePluginIface, status_changed),
+ G_STRUCT_OFFSET (GSignondDbusRemotePluginV1Iface, status_changed),
NULL,
NULL,
g_cclosure_marshal_generic,
G_TYPE_NONE,
2, G_TYPE_INT, G_TYPE_STRING);
+ /* GObject properties for D-Bus properties: */
+ /**
+ * GSignondDbusRemotePluginV1:method:
+ *
+ * Represents the D-Bus property <link linkend="gdbus-property-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.method">"method"</link>.
+ *
+ * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+ */
+ g_object_interface_install_property (iface,
+ g_param_spec_string ("method", "method", "method", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ /**
+ * GSignondDbusRemotePluginV1:mechanisms:
+ *
+ * Represents the D-Bus property <link linkend="gdbus-property-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.mechanisms">"mechanisms"</link>.
+ *
+ * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+ */
+ g_object_interface_install_property (iface,
+ g_param_spec_boxed ("mechanisms", "mechanisms", "mechanisms", G_TYPE_STRV, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
}
-typedef GSignondDbusRemotePluginIface GSignondDbusRemotePluginInterface;
-G_DEFINE_INTERFACE (GSignondDbusRemotePlugin, gsignond_dbus_remote_plugin, G_TYPE_OBJECT);
+typedef GSignondDbusRemotePluginV1Iface GSignondDbusRemotePluginV1Interface;
+G_DEFINE_INTERFACE (GSignondDbusRemotePluginV1, gsignond_dbus_remote_plugin_v1, G_TYPE_OBJECT);
/**
- * gsignond_dbus_remote_plugin_emit_response:
- * @object: A #GSignondDbusRemotePlugin.
+ * gsignond_dbus_remote_plugin_v1_get_method: (skip)
+ * @object: A #GSignondDbusRemotePluginV1.
+ *
+ * Gets the value of the <link linkend="gdbus-property-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.method">"method"</link> D-Bus property.
+ *
+ * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+ *
+ * <warning>The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use gsignond_dbus_remote_plugin_v1_dup_method() if on another thread.</warning>
+ *
+ * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
+ */
+const gchar *
+gsignond_dbus_remote_plugin_v1_get_method (GSignondDbusRemotePluginV1 *object)
+{
+ return GSIGNOND_DBUS_REMOTE_PLUGIN_V1_GET_IFACE (object)->get_method (object);
+}
+
+/**
+ * gsignond_dbus_remote_plugin_v1_dup_method: (skip)
+ * @object: A #GSignondDbusRemotePluginV1.
+ *
+ * Gets a copy of the <link linkend="gdbus-property-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.method">"method"</link> D-Bus property.
+ *
+ * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+ *
+ * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free().
+ */
+gchar *
+gsignond_dbus_remote_plugin_v1_dup_method (GSignondDbusRemotePluginV1 *object)
+{
+ gchar *value;
+ g_object_get (G_OBJECT (object), "method", &value, NULL);
+ return value;
+}
+
+/**
+ * gsignond_dbus_remote_plugin_v1_set_method: (skip)
+ * @object: A #GSignondDbusRemotePluginV1.
+ * @value: The value to set.
+ *
+ * Sets the <link linkend="gdbus-property-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.method">"method"</link> D-Bus property to @value.
+ *
+ * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
+ */
+void
+gsignond_dbus_remote_plugin_v1_set_method (GSignondDbusRemotePluginV1 *object, const gchar *value)
+{
+ g_object_set (G_OBJECT (object), "method", value, NULL);
+}
+
+/**
+ * gsignond_dbus_remote_plugin_v1_get_mechanisms: (skip)
+ * @object: A #GSignondDbusRemotePluginV1.
+ *
+ * Gets the value of the <link linkend="gdbus-property-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.mechanisms">"mechanisms"</link> D-Bus property.
+ *
+ * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+ *
+ * <warning>The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use gsignond_dbus_remote_plugin_v1_dup_mechanisms() if on another thread.</warning>
+ *
+ * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
+ */
+const gchar *const *
+gsignond_dbus_remote_plugin_v1_get_mechanisms (GSignondDbusRemotePluginV1 *object)
+{
+ return GSIGNOND_DBUS_REMOTE_PLUGIN_V1_GET_IFACE (object)->get_mechanisms (object);
+}
+
+/**
+ * gsignond_dbus_remote_plugin_v1_dup_mechanisms: (skip)
+ * @object: A #GSignondDbusRemotePluginV1.
+ *
+ * Gets a copy of the <link linkend="gdbus-property-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.mechanisms">"mechanisms"</link> D-Bus property.
+ *
+ * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+ *
+ * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_strfreev().
+ */
+gchar **
+gsignond_dbus_remote_plugin_v1_dup_mechanisms (GSignondDbusRemotePluginV1 *object)
+{
+ gchar **value;
+ g_object_get (G_OBJECT (object), "mechanisms", &value, NULL);
+ return value;
+}
+
+/**
+ * gsignond_dbus_remote_plugin_v1_set_mechanisms: (skip)
+ * @object: A #GSignondDbusRemotePluginV1.
+ * @value: The value to set.
+ *
+ * Sets the <link linkend="gdbus-property-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.mechanisms">"mechanisms"</link> D-Bus property to @value.
+ *
+ * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
+ */
+void
+gsignond_dbus_remote_plugin_v1_set_mechanisms (GSignondDbusRemotePluginV1 *object, const gchar *const *value)
+{
+ g_object_set (G_OBJECT (object), "mechanisms", value, NULL);
+}
+
+/**
+ * gsignond_dbus_remote_plugin_v1_emit_response:
+ * @object: A #GSignondDbusRemotePluginV1.
* @arg_sessionData: Argument to pass with the signal.
*
- * Emits the <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.response">"response"</link> D-Bus signal.
+ * Emits the <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.response">"response"</link> D-Bus signal.
*/
void
-gsignond_dbus_remote_plugin_emit_response (
- GSignondDbusRemotePlugin *object,
+gsignond_dbus_remote_plugin_v1_emit_response (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_sessionData)
{
g_signal_emit_by_name (object, "response", arg_sessionData);
}
/**
- * gsignond_dbus_remote_plugin_emit_response_final:
- * @object: A #GSignondDbusRemotePlugin.
+ * gsignond_dbus_remote_plugin_v1_emit_response_final:
+ * @object: A #GSignondDbusRemotePluginV1.
* @arg_sessionData: Argument to pass with the signal.
*
- * Emits the <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.responseFinal">"responseFinal"</link> D-Bus signal.
+ * Emits the <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.responseFinal">"responseFinal"</link> D-Bus signal.
*/
void
-gsignond_dbus_remote_plugin_emit_response_final (
- GSignondDbusRemotePlugin *object,
+gsignond_dbus_remote_plugin_v1_emit_response_final (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_sessionData)
{
g_signal_emit_by_name (object, "response-final", arg_sessionData);
}
/**
- * gsignond_dbus_remote_plugin_emit_store:
- * @object: A #GSignondDbusRemotePlugin.
+ * gsignond_dbus_remote_plugin_v1_emit_store:
+ * @object: A #GSignondDbusRemotePluginV1.
* @arg_sessionData: Argument to pass with the signal.
*
- * Emits the <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.store">"store"</link> D-Bus signal.
+ * Emits the <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.store">"store"</link> D-Bus signal.
*/
void
-gsignond_dbus_remote_plugin_emit_store (
- GSignondDbusRemotePlugin *object,
+gsignond_dbus_remote_plugin_v1_emit_store (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_sessionData)
{
g_signal_emit_by_name (object, "store", arg_sessionData);
}
/**
- * gsignond_dbus_remote_plugin_emit_error:
- * @object: A #GSignondDbusRemotePlugin.
+ * gsignond_dbus_remote_plugin_v1_emit_error:
+ * @object: A #GSignondDbusRemotePluginV1.
* @arg_error: Argument to pass with the signal.
*
- * Emits the <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.error">"error"</link> D-Bus signal.
+ * Emits the <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.error">"error"</link> D-Bus signal.
*/
void
-gsignond_dbus_remote_plugin_emit_error (
- GSignondDbusRemotePlugin *object,
+gsignond_dbus_remote_plugin_v1_emit_error (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_error)
{
g_signal_emit_by_name (object, "error", arg_error);
}
/**
- * gsignond_dbus_remote_plugin_emit_user_action_required:
- * @object: A #GSignondDbusRemotePlugin.
+ * gsignond_dbus_remote_plugin_v1_emit_user_action_required:
+ * @object: A #GSignondDbusRemotePluginV1.
* @arg_uiData: Argument to pass with the signal.
*
- * Emits the <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.userActionRequired">"userActionRequired"</link> D-Bus signal.
+ * Emits the <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.userActionRequired">"userActionRequired"</link> D-Bus signal.
*/
void
-gsignond_dbus_remote_plugin_emit_user_action_required (
- GSignondDbusRemotePlugin *object,
+gsignond_dbus_remote_plugin_v1_emit_user_action_required (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_uiData)
{
g_signal_emit_by_name (object, "user-action-required", arg_uiData);
}
/**
- * gsignond_dbus_remote_plugin_emit_refreshed:
- * @object: A #GSignondDbusRemotePlugin.
+ * gsignond_dbus_remote_plugin_v1_emit_refreshed:
+ * @object: A #GSignondDbusRemotePluginV1.
* @arg_uiData: Argument to pass with the signal.
*
- * Emits the <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.refreshed">"refreshed"</link> D-Bus signal.
+ * Emits the <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.refreshed">"refreshed"</link> D-Bus signal.
*/
void
-gsignond_dbus_remote_plugin_emit_refreshed (
- GSignondDbusRemotePlugin *object,
+gsignond_dbus_remote_plugin_v1_emit_refreshed (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_uiData)
{
g_signal_emit_by_name (object, "refreshed", arg_uiData);
}
/**
- * gsignond_dbus_remote_plugin_emit_status_changed:
- * @object: A #GSignondDbusRemotePlugin.
+ * gsignond_dbus_remote_plugin_v1_emit_status_changed:
+ * @object: A #GSignondDbusRemotePluginV1.
* @arg_state: Argument to pass with the signal.
* @arg_message: Argument to pass with the signal.
*
- * Emits the <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.statusChanged">"statusChanged"</link> D-Bus signal.
+ * Emits the <link linkend="gdbus-signal-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.statusChanged">"statusChanged"</link> D-Bus signal.
*/
void
-gsignond_dbus_remote_plugin_emit_status_changed (
- GSignondDbusRemotePlugin *object,
+gsignond_dbus_remote_plugin_v1_emit_status_changed (
+ GSignondDbusRemotePluginV1 *object,
gint arg_state,
const gchar *arg_message)
{
}
/**
- * gsignond_dbus_remote_plugin_call_cancel:
- * @proxy: A #GSignondDbusRemotePluginProxy.
+ * gsignond_dbus_remote_plugin_v1_call_cancel:
+ * @proxy: A #GSignondDbusRemotePluginV1Proxy.
* @cancellable: (allow-none): A #GCancellable or %NULL.
* @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
* @user_data: User data to pass to @callback.
*
- * Asynchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.cancel">cancel()</link> D-Bus method on @proxy.
+ * Asynchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.cancel">cancel()</link> D-Bus method on @proxy.
* When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gsignond_dbus_remote_plugin_call_cancel_finish() to get the result of the operation.
+ * You can then call gsignond_dbus_remote_plugin_v1_call_cancel_finish() to get the result of the operation.
*
- * See gsignond_dbus_remote_plugin_call_cancel_sync() for the synchronous, blocking version of this method.
+ * See gsignond_dbus_remote_plugin_v1_call_cancel_sync() for the synchronous, blocking version of this method.
*/
void
-gsignond_dbus_remote_plugin_call_cancel (
- GSignondDbusRemotePlugin *proxy,
+gsignond_dbus_remote_plugin_v1_call_cancel (
+ GSignondDbusRemotePluginV1 *proxy,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data)
}
/**
- * gsignond_dbus_remote_plugin_call_cancel_finish:
- * @proxy: A #GSignondDbusRemotePluginProxy.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gsignond_dbus_remote_plugin_call_cancel().
+ * gsignond_dbus_remote_plugin_v1_call_cancel_finish:
+ * @proxy: A #GSignondDbusRemotePluginV1Proxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gsignond_dbus_remote_plugin_v1_call_cancel().
* @error: Return location for error or %NULL.
*
- * Finishes an operation started with gsignond_dbus_remote_plugin_call_cancel().
+ * Finishes an operation started with gsignond_dbus_remote_plugin_v1_call_cancel().
*
* Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
*/
gboolean
-gsignond_dbus_remote_plugin_call_cancel_finish (
- GSignondDbusRemotePlugin *proxy,
+gsignond_dbus_remote_plugin_v1_call_cancel_finish (
+ GSignondDbusRemotePluginV1 *proxy,
GAsyncResult *res,
GError **error)
{
}
/**
- * gsignond_dbus_remote_plugin_call_cancel_sync:
- * @proxy: A #GSignondDbusRemotePluginProxy.
+ * gsignond_dbus_remote_plugin_v1_call_cancel_sync:
+ * @proxy: A #GSignondDbusRemotePluginV1Proxy.
* @cancellable: (allow-none): A #GCancellable or %NULL.
* @error: Return location for error or %NULL.
*
- * Synchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.cancel">cancel()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Synchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.cancel">cancel()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
*
- * See gsignond_dbus_remote_plugin_call_cancel() for the asynchronous version of this method.
+ * See gsignond_dbus_remote_plugin_v1_call_cancel() for the asynchronous version of this method.
*
* Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
*/
gboolean
-gsignond_dbus_remote_plugin_call_cancel_sync (
- GSignondDbusRemotePlugin *proxy,
+gsignond_dbus_remote_plugin_v1_call_cancel_sync (
+ GSignondDbusRemotePluginV1 *proxy,
GCancellable *cancellable,
GError **error)
{
}
/**
- * gsignond_dbus_remote_plugin_call_request_initial:
- * @proxy: A #GSignondDbusRemotePluginProxy.
+ * gsignond_dbus_remote_plugin_v1_call_request_initial:
+ * @proxy: A #GSignondDbusRemotePluginV1Proxy.
* @arg_sessionData: Argument to pass with the method invocation.
* @arg_identityMethodCache: Argument to pass with the method invocation.
* @arg_mechanism: Argument to pass with the method invocation.
* @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
* @user_data: User data to pass to @callback.
*
- * Asynchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.requestInitial">requestInitial()</link> D-Bus method on @proxy.
+ * Asynchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.requestInitial">requestInitial()</link> D-Bus method on @proxy.
* When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gsignond_dbus_remote_plugin_call_request_initial_finish() to get the result of the operation.
+ * You can then call gsignond_dbus_remote_plugin_v1_call_request_initial_finish() to get the result of the operation.
*
- * See gsignond_dbus_remote_plugin_call_request_initial_sync() for the synchronous, blocking version of this method.
+ * See gsignond_dbus_remote_plugin_v1_call_request_initial_sync() for the synchronous, blocking version of this method.
*/
void
-gsignond_dbus_remote_plugin_call_request_initial (
- GSignondDbusRemotePlugin *proxy,
+gsignond_dbus_remote_plugin_v1_call_request_initial (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_sessionData,
GVariant *arg_identityMethodCache,
const gchar *arg_mechanism,
}
/**
- * gsignond_dbus_remote_plugin_call_request_initial_finish:
- * @proxy: A #GSignondDbusRemotePluginProxy.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gsignond_dbus_remote_plugin_call_request_initial().
+ * gsignond_dbus_remote_plugin_v1_call_request_initial_finish:
+ * @proxy: A #GSignondDbusRemotePluginV1Proxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gsignond_dbus_remote_plugin_v1_call_request_initial().
* @error: Return location for error or %NULL.
*
- * Finishes an operation started with gsignond_dbus_remote_plugin_call_request_initial().
+ * Finishes an operation started with gsignond_dbus_remote_plugin_v1_call_request_initial().
*
* Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
*/
gboolean
-gsignond_dbus_remote_plugin_call_request_initial_finish (
- GSignondDbusRemotePlugin *proxy,
+gsignond_dbus_remote_plugin_v1_call_request_initial_finish (
+ GSignondDbusRemotePluginV1 *proxy,
GAsyncResult *res,
GError **error)
{
}
/**
- * gsignond_dbus_remote_plugin_call_request_initial_sync:
- * @proxy: A #GSignondDbusRemotePluginProxy.
+ * gsignond_dbus_remote_plugin_v1_call_request_initial_sync:
+ * @proxy: A #GSignondDbusRemotePluginV1Proxy.
* @arg_sessionData: Argument to pass with the method invocation.
* @arg_identityMethodCache: Argument to pass with the method invocation.
* @arg_mechanism: Argument to pass with the method invocation.
* @cancellable: (allow-none): A #GCancellable or %NULL.
* @error: Return location for error or %NULL.
*
- * Synchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.requestInitial">requestInitial()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Synchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.requestInitial">requestInitial()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
*
- * See gsignond_dbus_remote_plugin_call_request_initial() for the asynchronous version of this method.
+ * See gsignond_dbus_remote_plugin_v1_call_request_initial() for the asynchronous version of this method.
*
* Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
*/
gboolean
-gsignond_dbus_remote_plugin_call_request_initial_sync (
- GSignondDbusRemotePlugin *proxy,
+gsignond_dbus_remote_plugin_v1_call_request_initial_sync (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_sessionData,
GVariant *arg_identityMethodCache,
const gchar *arg_mechanism,
}
/**
- * gsignond_dbus_remote_plugin_call_request:
- * @proxy: A #GSignondDbusRemotePluginProxy.
+ * gsignond_dbus_remote_plugin_v1_call_request:
+ * @proxy: A #GSignondDbusRemotePluginV1Proxy.
* @arg_sessionData: Argument to pass with the method invocation.
* @cancellable: (allow-none): A #GCancellable or %NULL.
* @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
* @user_data: User data to pass to @callback.
*
- * Asynchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.request">request()</link> D-Bus method on @proxy.
+ * Asynchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.request">request()</link> D-Bus method on @proxy.
* When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gsignond_dbus_remote_plugin_call_request_finish() to get the result of the operation.
+ * You can then call gsignond_dbus_remote_plugin_v1_call_request_finish() to get the result of the operation.
*
- * See gsignond_dbus_remote_plugin_call_request_sync() for the synchronous, blocking version of this method.
+ * See gsignond_dbus_remote_plugin_v1_call_request_sync() for the synchronous, blocking version of this method.
*/
void
-gsignond_dbus_remote_plugin_call_request (
- GSignondDbusRemotePlugin *proxy,
+gsignond_dbus_remote_plugin_v1_call_request (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_sessionData,
GCancellable *cancellable,
GAsyncReadyCallback callback,
}
/**
- * gsignond_dbus_remote_plugin_call_request_finish:
- * @proxy: A #GSignondDbusRemotePluginProxy.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gsignond_dbus_remote_plugin_call_request().
+ * gsignond_dbus_remote_plugin_v1_call_request_finish:
+ * @proxy: A #GSignondDbusRemotePluginV1Proxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gsignond_dbus_remote_plugin_v1_call_request().
* @error: Return location for error or %NULL.
*
- * Finishes an operation started with gsignond_dbus_remote_plugin_call_request().
+ * Finishes an operation started with gsignond_dbus_remote_plugin_v1_call_request().
*
* Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
*/
gboolean
-gsignond_dbus_remote_plugin_call_request_finish (
- GSignondDbusRemotePlugin *proxy,
+gsignond_dbus_remote_plugin_v1_call_request_finish (
+ GSignondDbusRemotePluginV1 *proxy,
GAsyncResult *res,
GError **error)
{
}
/**
- * gsignond_dbus_remote_plugin_call_request_sync:
- * @proxy: A #GSignondDbusRemotePluginProxy.
+ * gsignond_dbus_remote_plugin_v1_call_request_sync:
+ * @proxy: A #GSignondDbusRemotePluginV1Proxy.
* @arg_sessionData: Argument to pass with the method invocation.
* @cancellable: (allow-none): A #GCancellable or %NULL.
* @error: Return location for error or %NULL.
*
- * Synchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.request">request()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Synchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.request">request()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
*
- * See gsignond_dbus_remote_plugin_call_request() for the asynchronous version of this method.
+ * See gsignond_dbus_remote_plugin_v1_call_request() for the asynchronous version of this method.
*
* Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
*/
gboolean
-gsignond_dbus_remote_plugin_call_request_sync (
- GSignondDbusRemotePlugin *proxy,
+gsignond_dbus_remote_plugin_v1_call_request_sync (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_sessionData,
GCancellable *cancellable,
GError **error)
}
/**
- * gsignond_dbus_remote_plugin_call_user_action_finished:
- * @proxy: A #GSignondDbusRemotePluginProxy.
+ * gsignond_dbus_remote_plugin_v1_call_user_action_finished:
+ * @proxy: A #GSignondDbusRemotePluginV1Proxy.
* @arg_uiData: Argument to pass with the method invocation.
* @cancellable: (allow-none): A #GCancellable or %NULL.
* @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
* @user_data: User data to pass to @callback.
*
- * Asynchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.userActionFinished">userActionFinished()</link> D-Bus method on @proxy.
+ * Asynchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.userActionFinished">userActionFinished()</link> D-Bus method on @proxy.
* When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gsignond_dbus_remote_plugin_call_user_action_finished_finish() to get the result of the operation.
+ * You can then call gsignond_dbus_remote_plugin_v1_call_user_action_finished_finish() to get the result of the operation.
*
- * See gsignond_dbus_remote_plugin_call_user_action_finished_sync() for the synchronous, blocking version of this method.
+ * See gsignond_dbus_remote_plugin_v1_call_user_action_finished_sync() for the synchronous, blocking version of this method.
*/
void
-gsignond_dbus_remote_plugin_call_user_action_finished (
- GSignondDbusRemotePlugin *proxy,
+gsignond_dbus_remote_plugin_v1_call_user_action_finished (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_uiData,
GCancellable *cancellable,
GAsyncReadyCallback callback,
}
/**
- * gsignond_dbus_remote_plugin_call_user_action_finished_finish:
- * @proxy: A #GSignondDbusRemotePluginProxy.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gsignond_dbus_remote_plugin_call_user_action_finished().
+ * gsignond_dbus_remote_plugin_v1_call_user_action_finished_finish:
+ * @proxy: A #GSignondDbusRemotePluginV1Proxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gsignond_dbus_remote_plugin_v1_call_user_action_finished().
* @error: Return location for error or %NULL.
*
- * Finishes an operation started with gsignond_dbus_remote_plugin_call_user_action_finished().
+ * Finishes an operation started with gsignond_dbus_remote_plugin_v1_call_user_action_finished().
*
* Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
*/
gboolean
-gsignond_dbus_remote_plugin_call_user_action_finished_finish (
- GSignondDbusRemotePlugin *proxy,
+gsignond_dbus_remote_plugin_v1_call_user_action_finished_finish (
+ GSignondDbusRemotePluginV1 *proxy,
GAsyncResult *res,
GError **error)
{
}
/**
- * gsignond_dbus_remote_plugin_call_user_action_finished_sync:
- * @proxy: A #GSignondDbusRemotePluginProxy.
+ * gsignond_dbus_remote_plugin_v1_call_user_action_finished_sync:
+ * @proxy: A #GSignondDbusRemotePluginV1Proxy.
* @arg_uiData: Argument to pass with the method invocation.
* @cancellable: (allow-none): A #GCancellable or %NULL.
* @error: Return location for error or %NULL.
*
- * Synchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.userActionFinished">userActionFinished()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Synchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.userActionFinished">userActionFinished()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
*
- * See gsignond_dbus_remote_plugin_call_user_action_finished() for the asynchronous version of this method.
+ * See gsignond_dbus_remote_plugin_v1_call_user_action_finished() for the asynchronous version of this method.
*
* Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
*/
gboolean
-gsignond_dbus_remote_plugin_call_user_action_finished_sync (
- GSignondDbusRemotePlugin *proxy,
+gsignond_dbus_remote_plugin_v1_call_user_action_finished_sync (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_uiData,
GCancellable *cancellable,
GError **error)
}
/**
- * gsignond_dbus_remote_plugin_call_refresh:
- * @proxy: A #GSignondDbusRemotePluginProxy.
+ * gsignond_dbus_remote_plugin_v1_call_refresh:
+ * @proxy: A #GSignondDbusRemotePluginV1Proxy.
* @arg_uiData: Argument to pass with the method invocation.
* @cancellable: (allow-none): A #GCancellable or %NULL.
* @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
* @user_data: User data to pass to @callback.
*
- * Asynchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.refresh">refresh()</link> D-Bus method on @proxy.
+ * Asynchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.refresh">refresh()</link> D-Bus method on @proxy.
* When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gsignond_dbus_remote_plugin_call_refresh_finish() to get the result of the operation.
+ * You can then call gsignond_dbus_remote_plugin_v1_call_refresh_finish() to get the result of the operation.
*
- * See gsignond_dbus_remote_plugin_call_refresh_sync() for the synchronous, blocking version of this method.
+ * See gsignond_dbus_remote_plugin_v1_call_refresh_sync() for the synchronous, blocking version of this method.
*/
void
-gsignond_dbus_remote_plugin_call_refresh (
- GSignondDbusRemotePlugin *proxy,
+gsignond_dbus_remote_plugin_v1_call_refresh (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_uiData,
GCancellable *cancellable,
GAsyncReadyCallback callback,
}
/**
- * gsignond_dbus_remote_plugin_call_refresh_finish:
- * @proxy: A #GSignondDbusRemotePluginProxy.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gsignond_dbus_remote_plugin_call_refresh().
+ * gsignond_dbus_remote_plugin_v1_call_refresh_finish:
+ * @proxy: A #GSignondDbusRemotePluginV1Proxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gsignond_dbus_remote_plugin_v1_call_refresh().
* @error: Return location for error or %NULL.
*
- * Finishes an operation started with gsignond_dbus_remote_plugin_call_refresh().
+ * Finishes an operation started with gsignond_dbus_remote_plugin_v1_call_refresh().
*
* Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
*/
gboolean
-gsignond_dbus_remote_plugin_call_refresh_finish (
- GSignondDbusRemotePlugin *proxy,
+gsignond_dbus_remote_plugin_v1_call_refresh_finish (
+ GSignondDbusRemotePluginV1 *proxy,
GAsyncResult *res,
GError **error)
{
}
/**
- * gsignond_dbus_remote_plugin_call_refresh_sync:
- * @proxy: A #GSignondDbusRemotePluginProxy.
+ * gsignond_dbus_remote_plugin_v1_call_refresh_sync:
+ * @proxy: A #GSignondDbusRemotePluginV1Proxy.
* @arg_uiData: Argument to pass with the method invocation.
* @cancellable: (allow-none): A #GCancellable or %NULL.
* @error: Return location for error or %NULL.
*
- * Synchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.refresh">refresh()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Synchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.refresh">refresh()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
*
- * See gsignond_dbus_remote_plugin_call_refresh() for the asynchronous version of this method.
+ * See gsignond_dbus_remote_plugin_v1_call_refresh() for the asynchronous version of this method.
*
* Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
*/
gboolean
-gsignond_dbus_remote_plugin_call_refresh_sync (
- GSignondDbusRemotePlugin *proxy,
+gsignond_dbus_remote_plugin_v1_call_refresh_sync (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_uiData,
GCancellable *cancellable,
GError **error)
}
/**
- * gsignond_dbus_remote_plugin_call_get_info:
- * @proxy: A #GSignondDbusRemotePluginProxy.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
- *
- * Asynchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.getInfo">getInfo()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gsignond_dbus_remote_plugin_call_get_info_finish() to get the result of the operation.
- *
- * See gsignond_dbus_remote_plugin_call_get_info_sync() for the synchronous, blocking version of this method.
- */
-void
-gsignond_dbus_remote_plugin_call_get_info (
- GSignondDbusRemotePlugin *proxy,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- g_dbus_proxy_call (G_DBUS_PROXY (proxy),
- "getInfo",
- g_variant_new ("()"),
- G_DBUS_CALL_FLAGS_NONE,
- -1,
- cancellable,
- callback,
- user_data);
-}
-
-/**
- * gsignond_dbus_remote_plugin_call_get_info_finish:
- * @proxy: A #GSignondDbusRemotePluginProxy.
- * @out_type: (out): Return location for return parameter or %NULL to ignore.
- * @out_mechanisms: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gsignond_dbus_remote_plugin_call_get_info().
- * @error: Return location for error or %NULL.
- *
- * Finishes an operation started with gsignond_dbus_remote_plugin_call_get_info().
- *
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
- */
-gboolean
-gsignond_dbus_remote_plugin_call_get_info_finish (
- GSignondDbusRemotePlugin *proxy,
- gchar **out_type,
- gchar ***out_mechanisms,
- GAsyncResult *res,
- GError **error)
-{
- GVariant *_ret;
- _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
- if (_ret == NULL)
- goto _out;
- g_variant_get (_ret,
- "(s^as)",
- out_type,
- out_mechanisms);
- g_variant_unref (_ret);
-_out:
- return _ret != NULL;
-}
-
-/**
- * gsignond_dbus_remote_plugin_call_get_info_sync:
- * @proxy: A #GSignondDbusRemotePluginProxy.
- * @out_type: (out): Return location for return parameter or %NULL to ignore.
- * @out_mechanisms: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
- *
- * Synchronously invokes the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.getInfo">getInfo()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
- *
- * See gsignond_dbus_remote_plugin_call_get_info() for the asynchronous version of this method.
- *
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
- */
-gboolean
-gsignond_dbus_remote_plugin_call_get_info_sync (
- GSignondDbusRemotePlugin *proxy,
- gchar **out_type,
- gchar ***out_mechanisms,
- GCancellable *cancellable,
- GError **error)
-{
- GVariant *_ret;
- _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
- "getInfo",
- g_variant_new ("()"),
- G_DBUS_CALL_FLAGS_NONE,
- -1,
- cancellable,
- error);
- if (_ret == NULL)
- goto _out;
- g_variant_get (_ret,
- "(s^as)",
- out_type,
- out_mechanisms);
- g_variant_unref (_ret);
-_out:
- return _ret != NULL;
-}
-
-/**
- * gsignond_dbus_remote_plugin_complete_cancel:
- * @object: A #GSignondDbusRemotePlugin.
+ * gsignond_dbus_remote_plugin_v1_complete_cancel:
+ * @object: A #GSignondDbusRemotePluginV1.
* @invocation: (transfer full): A #GDBusMethodInvocation.
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.cancel">cancel()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.cancel">cancel()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
*
* This method will free @invocation, you cannot use it afterwards.
*/
void
-gsignond_dbus_remote_plugin_complete_cancel (
- GSignondDbusRemotePlugin *object,
+gsignond_dbus_remote_plugin_v1_complete_cancel (
+ GSignondDbusRemotePluginV1 *object,
GDBusMethodInvocation *invocation)
{
g_dbus_method_invocation_return_value (invocation,
}
/**
- * gsignond_dbus_remote_plugin_complete_request_initial:
- * @object: A #GSignondDbusRemotePlugin.
+ * gsignond_dbus_remote_plugin_v1_complete_request_initial:
+ * @object: A #GSignondDbusRemotePluginV1.
* @invocation: (transfer full): A #GDBusMethodInvocation.
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.requestInitial">requestInitial()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.requestInitial">requestInitial()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
*
* This method will free @invocation, you cannot use it afterwards.
*/
void
-gsignond_dbus_remote_plugin_complete_request_initial (
- GSignondDbusRemotePlugin *object,
+gsignond_dbus_remote_plugin_v1_complete_request_initial (
+ GSignondDbusRemotePluginV1 *object,
GDBusMethodInvocation *invocation)
{
g_dbus_method_invocation_return_value (invocation,
}
/**
- * gsignond_dbus_remote_plugin_complete_request:
- * @object: A #GSignondDbusRemotePlugin.
+ * gsignond_dbus_remote_plugin_v1_complete_request:
+ * @object: A #GSignondDbusRemotePluginV1.
* @invocation: (transfer full): A #GDBusMethodInvocation.
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.request">request()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.request">request()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
*
* This method will free @invocation, you cannot use it afterwards.
*/
void
-gsignond_dbus_remote_plugin_complete_request (
- GSignondDbusRemotePlugin *object,
+gsignond_dbus_remote_plugin_v1_complete_request (
+ GSignondDbusRemotePluginV1 *object,
GDBusMethodInvocation *invocation)
{
g_dbus_method_invocation_return_value (invocation,
}
/**
- * gsignond_dbus_remote_plugin_complete_user_action_finished:
- * @object: A #GSignondDbusRemotePlugin.
+ * gsignond_dbus_remote_plugin_v1_complete_user_action_finished:
+ * @object: A #GSignondDbusRemotePluginV1.
* @invocation: (transfer full): A #GDBusMethodInvocation.
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.userActionFinished">userActionFinished()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.userActionFinished">userActionFinished()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
*
* This method will free @invocation, you cannot use it afterwards.
*/
void
-gsignond_dbus_remote_plugin_complete_user_action_finished (
- GSignondDbusRemotePlugin *object,
+gsignond_dbus_remote_plugin_v1_complete_user_action_finished (
+ GSignondDbusRemotePluginV1 *object,
GDBusMethodInvocation *invocation)
{
g_dbus_method_invocation_return_value (invocation,
}
/**
- * gsignond_dbus_remote_plugin_complete_refresh:
- * @object: A #GSignondDbusRemotePlugin.
+ * gsignond_dbus_remote_plugin_v1_complete_refresh:
+ * @object: A #GSignondDbusRemotePluginV1.
* @invocation: (transfer full): A #GDBusMethodInvocation.
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.refresh">refresh()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.refresh">refresh()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
*
* This method will free @invocation, you cannot use it afterwards.
*/
void
-gsignond_dbus_remote_plugin_complete_refresh (
- GSignondDbusRemotePlugin *object,
+gsignond_dbus_remote_plugin_v1_complete_refresh (
+ GSignondDbusRemotePluginV1 *object,
GDBusMethodInvocation *invocation)
{
g_dbus_method_invocation_return_value (invocation,
g_variant_new ("()"));
}
-/**
- * gsignond_dbus_remote_plugin_complete_get_info:
- * @object: A #GSignondDbusRemotePlugin.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @type: Parameter to return.
- * @mechanisms: Parameter to return.
- *
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.getInfo">getInfo()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
- *
- * This method will free @invocation, you cannot use it afterwards.
- */
-void
-gsignond_dbus_remote_plugin_complete_get_info (
- GSignondDbusRemotePlugin *object,
- GDBusMethodInvocation *invocation,
- const gchar *type,
- const gchar *const *mechanisms)
-{
- g_dbus_method_invocation_return_value (invocation,
- g_variant_new ("(s^as)",
- type,
- mechanisms));
-}
-
/* ------------------------------------------------------------------------ */
/**
- * GSignondDbusRemotePluginProxy:
+ * GSignondDbusRemotePluginV1Proxy:
*
- * The #GSignondDbusRemotePluginProxy structure contains only private data and should only be accessed using the provided API.
+ * The #GSignondDbusRemotePluginV1Proxy structure contains only private data and should only be accessed using the provided API.
*/
/**
- * GSignondDbusRemotePluginProxyClass:
+ * GSignondDbusRemotePluginV1ProxyClass:
* @parent_class: The parent class.
*
- * Class structure for #GSignondDbusRemotePluginProxy.
+ * Class structure for #GSignondDbusRemotePluginV1Proxy.
*/
-struct _GSignondDbusRemotePluginProxyPrivate
+struct _GSignondDbusRemotePluginV1ProxyPrivate
{
GData *qdata;
};
-static void gsignond_dbus_remote_plugin_proxy_iface_init (GSignondDbusRemotePluginIface *iface);
+static void gsignond_dbus_remote_plugin_v1_proxy_iface_init (GSignondDbusRemotePluginV1Iface *iface);
-G_DEFINE_TYPE_WITH_CODE (GSignondDbusRemotePluginProxy, gsignond_dbus_remote_plugin_proxy, G_TYPE_DBUS_PROXY,
- G_IMPLEMENT_INTERFACE (GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN, gsignond_dbus_remote_plugin_proxy_iface_init));
+G_DEFINE_TYPE_WITH_CODE (GSignondDbusRemotePluginV1Proxy, gsignond_dbus_remote_plugin_v1_proxy, G_TYPE_DBUS_PROXY,
+ G_IMPLEMENT_INTERFACE (GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1, gsignond_dbus_remote_plugin_v1_proxy_iface_init));
static void
-gsignond_dbus_remote_plugin_proxy_finalize (GObject *object)
+gsignond_dbus_remote_plugin_v1_proxy_finalize (GObject *object)
{
- GSignondDbusRemotePluginProxy *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN_PROXY (object);
+ GSignondDbusRemotePluginV1Proxy *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_PROXY (object);
g_datalist_clear (&proxy->priv->qdata);
- G_OBJECT_CLASS (gsignond_dbus_remote_plugin_proxy_parent_class)->finalize (object);
+ G_OBJECT_CLASS (gsignond_dbus_remote_plugin_v1_proxy_parent_class)->finalize (object);
}
static void
-gsignond_dbus_remote_plugin_proxy_get_property (GObject *object,
+gsignond_dbus_remote_plugin_v1_proxy_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
+ const _ExtendedGDBusPropertyInfo *info;
+ GVariant *variant;
+ g_assert (prop_id != 0 && prop_id - 1 < 2);
+ info = _gsignond_dbus_remote_plugin_v1_property_info_pointers[prop_id - 1];
+ variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name);
+ if (info->use_gvariant)
+ {
+ g_value_set_variant (value, variant);
+ }
+ else
+ {
+ if (variant != NULL)
+ g_dbus_gvariant_to_gvalue (variant, value);
+ }
+ if (variant != NULL)
+ g_variant_unref (variant);
+}
+
+static void
+gsignond_dbus_remote_plugin_v1_proxy_set_property_cb (GDBusProxy *proxy,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ const _ExtendedGDBusPropertyInfo *info = user_data;
+ GError *error;
+ error = NULL;
+ if (!g_dbus_proxy_call_finish (proxy, res, &error))
+ {
+ g_warning ("Error setting property `%s' on interface com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1: %s (%s, %d)",
+ info->parent_struct.name,
+ error->message, g_quark_to_string (error->domain), error->code);
+ g_error_free (error);
+ }
}
static void
-gsignond_dbus_remote_plugin_proxy_set_property (GObject *object,
+gsignond_dbus_remote_plugin_v1_proxy_set_property (GObject *object,
guint prop_id,
const GValue *value,
GParamSpec *pspec)
{
+ const _ExtendedGDBusPropertyInfo *info;
+ GVariant *variant;
+ g_assert (prop_id != 0 && prop_id - 1 < 2);
+ info = _gsignond_dbus_remote_plugin_v1_property_info_pointers[prop_id - 1];
+ variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature));
+ g_dbus_proxy_call (G_DBUS_PROXY (object),
+ "org.freedesktop.DBus.Properties.Set",
+ g_variant_new ("(ssv)", "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1", info->parent_struct.name, variant),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ NULL, (GAsyncReadyCallback) gsignond_dbus_remote_plugin_v1_proxy_set_property_cb, (gpointer) info);
+ g_variant_unref (variant);
}
static void
-gsignond_dbus_remote_plugin_proxy_g_signal (GDBusProxy *proxy,
+gsignond_dbus_remote_plugin_v1_proxy_g_signal (GDBusProxy *proxy,
const gchar *sender_name,
const gchar *signal_name,
GVariant *parameters)
guint num_params;
guint n;
guint signal_id;
- info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_gsignond_dbus_remote_plugin_interface_info.parent_struct, signal_name);
+ info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_gsignond_dbus_remote_plugin_v1_interface_info, signal_name);
if (info == NULL)
return;
num_params = g_variant_n_children (parameters);
paramv = g_new0 (GValue, num_params + 1);
- g_value_init (¶mv[0], GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN);
+ g_value_init (¶mv[0], GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1);
g_value_set_object (¶mv[0], proxy);
g_variant_iter_init (&iter, parameters);
n = 1;
g_dbus_gvariant_to_gvalue (child, ¶mv[n++]);
g_variant_unref (child);
}
- signal_id = g_signal_lookup (info->signal_name, GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN);
+ signal_id = g_signal_lookup (info->signal_name, GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1);
g_signal_emitv (paramv, signal_id, 0, NULL);
for (n = 0; n < num_params + 1; n++)
g_value_unset (¶mv[n]);
}
static void
-gsignond_dbus_remote_plugin_proxy_g_properties_changed (GDBusProxy *_proxy,
+gsignond_dbus_remote_plugin_v1_proxy_g_properties_changed (GDBusProxy *_proxy,
GVariant *changed_properties,
const gchar *const *invalidated_properties)
{
- GSignondDbusRemotePluginProxy *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN_PROXY (_proxy);
+ GSignondDbusRemotePluginV1Proxy *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_PROXY (_proxy);
guint n;
const gchar *key;
GVariantIter *iter;
g_variant_get (changed_properties, "a{sv}", &iter);
while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
{
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_remote_plugin_interface_info.parent_struct, key);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_remote_plugin_v1_interface_info, key);
g_datalist_remove_data (&proxy->priv->qdata, key);
if (info != NULL)
g_object_notify (G_OBJECT (proxy), info->hyphen_name);
g_variant_iter_free (iter);
for (n = 0; invalidated_properties[n] != NULL; n++)
{
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_remote_plugin_interface_info.parent_struct, invalidated_properties[n]);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_remote_plugin_v1_interface_info, invalidated_properties[n]);
g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
if (info != NULL)
g_object_notify (G_OBJECT (proxy), info->hyphen_name);
}
}
+static const gchar *
+gsignond_dbus_remote_plugin_v1_proxy_get_method (GSignondDbusRemotePluginV1 *object)
+{
+ GSignondDbusRemotePluginV1Proxy *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_PROXY (object);
+ GVariant *variant;
+ const gchar *value = NULL;
+ variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "method");
+ if (variant != NULL)
+ {
+ value = g_variant_get_string (variant, NULL);
+ g_variant_unref (variant);
+ }
+ return value;
+}
+
+static const gchar *const *
+gsignond_dbus_remote_plugin_v1_proxy_get_mechanisms (GSignondDbusRemotePluginV1 *object)
+{
+ GSignondDbusRemotePluginV1Proxy *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_PROXY (object);
+ GVariant *variant;
+ const gchar *const *value = NULL;
+ value = g_datalist_get_data (&proxy->priv->qdata, "mechanisms");
+ if (value != NULL)
+ return value;
+ variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "mechanisms");
+ if (variant != NULL)
+ {
+ value = g_variant_get_strv (variant, NULL);
+ g_datalist_set_data_full (&proxy->priv->qdata, "mechanisms", (gpointer) value, g_free);
+ g_variant_unref (variant);
+ }
+ return value;
+}
+
static void
-gsignond_dbus_remote_plugin_proxy_init (GSignondDbusRemotePluginProxy *proxy)
+gsignond_dbus_remote_plugin_v1_proxy_init (GSignondDbusRemotePluginV1Proxy *proxy)
{
- proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_PROXY, GSignondDbusRemotePluginProxyPrivate);
- g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), gsignond_dbus_remote_plugin_interface_info ());
+ proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_PROXY, GSignondDbusRemotePluginV1ProxyPrivate);
+ g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), gsignond_dbus_remote_plugin_v1_interface_info ());
}
static void
-gsignond_dbus_remote_plugin_proxy_class_init (GSignondDbusRemotePluginProxyClass *klass)
+gsignond_dbus_remote_plugin_v1_proxy_class_init (GSignondDbusRemotePluginV1ProxyClass *klass)
{
GObjectClass *gobject_class;
GDBusProxyClass *proxy_class;
- g_type_class_add_private (klass, sizeof (GSignondDbusRemotePluginProxyPrivate));
+ g_type_class_add_private (klass, sizeof (GSignondDbusRemotePluginV1ProxyPrivate));
gobject_class = G_OBJECT_CLASS (klass);
- gobject_class->finalize = gsignond_dbus_remote_plugin_proxy_finalize;
- gobject_class->get_property = gsignond_dbus_remote_plugin_proxy_get_property;
- gobject_class->set_property = gsignond_dbus_remote_plugin_proxy_set_property;
+ gobject_class->finalize = gsignond_dbus_remote_plugin_v1_proxy_finalize;
+ gobject_class->get_property = gsignond_dbus_remote_plugin_v1_proxy_get_property;
+ gobject_class->set_property = gsignond_dbus_remote_plugin_v1_proxy_set_property;
proxy_class = G_DBUS_PROXY_CLASS (klass);
- proxy_class->g_signal = gsignond_dbus_remote_plugin_proxy_g_signal;
- proxy_class->g_properties_changed = gsignond_dbus_remote_plugin_proxy_g_properties_changed;
+ proxy_class->g_signal = gsignond_dbus_remote_plugin_v1_proxy_g_signal;
+ proxy_class->g_properties_changed = gsignond_dbus_remote_plugin_v1_proxy_g_properties_changed;
+
+ gsignond_dbus_remote_plugin_v1_override_properties (gobject_class, 1);
}
static void
-gsignond_dbus_remote_plugin_proxy_iface_init (GSignondDbusRemotePluginIface *iface)
+gsignond_dbus_remote_plugin_v1_proxy_iface_init (GSignondDbusRemotePluginV1Iface *iface)
{
+ iface->get_method = gsignond_dbus_remote_plugin_v1_proxy_get_method;
+ iface->get_mechanisms = gsignond_dbus_remote_plugin_v1_proxy_get_mechanisms;
}
/**
- * gsignond_dbus_remote_plugin_proxy_new:
+ * gsignond_dbus_remote_plugin_v1_proxy_new:
* @connection: A #GDBusConnection.
* @flags: Flags from the #GDBusProxyFlags enumeration.
* @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
* @callback: A #GAsyncReadyCallback to call when the request is satisfied.
* @user_data: User data to pass to @callback.
*
- * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.top_of_page">com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin</link>. See g_dbus_proxy_new() for more details.
+ * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.top_of_page">com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1</link>. See g_dbus_proxy_new() for more details.
*
* When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gsignond_dbus_remote_plugin_proxy_new_finish() to get the result of the operation.
+ * You can then call gsignond_dbus_remote_plugin_v1_proxy_new_finish() to get the result of the operation.
*
- * See gsignond_dbus_remote_plugin_proxy_new_sync() for the synchronous, blocking version of this constructor.
+ * See gsignond_dbus_remote_plugin_v1_proxy_new_sync() for the synchronous, blocking version of this constructor.
*/
void
-gsignond_dbus_remote_plugin_proxy_new (
+gsignond_dbus_remote_plugin_v1_proxy_new (
GDBusConnection *connection,
GDBusProxyFlags flags,
const gchar *name,
GAsyncReadyCallback callback,
gpointer user_data)
{
- g_async_initable_new_async (GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin", NULL);
+ g_async_initable_new_async (GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1", NULL);
}
/**
- * gsignond_dbus_remote_plugin_proxy_new_finish:
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gsignond_dbus_remote_plugin_proxy_new().
+ * gsignond_dbus_remote_plugin_v1_proxy_new_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gsignond_dbus_remote_plugin_v1_proxy_new().
* @error: Return location for error or %NULL
*
- * Finishes an operation started with gsignond_dbus_remote_plugin_proxy_new().
+ * Finishes an operation started with gsignond_dbus_remote_plugin_v1_proxy_new().
*
- * Returns: (transfer full) (type GSignondDbusRemotePluginProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: (transfer full) (type GSignondDbusRemotePluginV1Proxy): The constructed proxy object or %NULL if @error is set.
*/
-GSignondDbusRemotePlugin *
-gsignond_dbus_remote_plugin_proxy_new_finish (
+GSignondDbusRemotePluginV1 *
+gsignond_dbus_remote_plugin_v1_proxy_new_finish (
GAsyncResult *res,
GError **error)
{
ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
g_object_unref (source_object);
if (ret != NULL)
- return GSIGNOND_DBUS_REMOTE_PLUGIN (ret);
+ return GSIGNOND_DBUS_REMOTE_PLUGIN_V1 (ret);
else
return NULL;
}
/**
- * gsignond_dbus_remote_plugin_proxy_new_sync:
+ * gsignond_dbus_remote_plugin_v1_proxy_new_sync:
* @connection: A #GDBusConnection.
* @flags: Flags from the #GDBusProxyFlags enumeration.
* @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
* @cancellable: (allow-none): A #GCancellable or %NULL.
* @error: Return location for error or %NULL
*
- * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.top_of_page">com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin</link>. See g_dbus_proxy_new_sync() for more details.
+ * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.top_of_page">com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1</link>. See g_dbus_proxy_new_sync() for more details.
*
* The calling thread is blocked until a reply is received.
*
- * See gsignond_dbus_remote_plugin_proxy_new() for the asynchronous version of this constructor.
+ * See gsignond_dbus_remote_plugin_v1_proxy_new() for the asynchronous version of this constructor.
*
- * Returns: (transfer full) (type GSignondDbusRemotePluginProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: (transfer full) (type GSignondDbusRemotePluginV1Proxy): The constructed proxy object or %NULL if @error is set.
*/
-GSignondDbusRemotePlugin *
-gsignond_dbus_remote_plugin_proxy_new_sync (
+GSignondDbusRemotePluginV1 *
+gsignond_dbus_remote_plugin_v1_proxy_new_sync (
GDBusConnection *connection,
GDBusProxyFlags flags,
const gchar *name,
GError **error)
{
GInitable *ret;
- ret = g_initable_new (GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin", NULL);
+ ret = g_initable_new (GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1", NULL);
if (ret != NULL)
- return GSIGNOND_DBUS_REMOTE_PLUGIN (ret);
+ return GSIGNOND_DBUS_REMOTE_PLUGIN_V1 (ret);
else
return NULL;
}
/**
- * gsignond_dbus_remote_plugin_proxy_new_for_bus:
+ * gsignond_dbus_remote_plugin_v1_proxy_new_for_bus:
* @bus_type: A #GBusType.
* @flags: Flags from the #GDBusProxyFlags enumeration.
* @name: A bus name (well-known or unique).
* @callback: A #GAsyncReadyCallback to call when the request is satisfied.
* @user_data: User data to pass to @callback.
*
- * Like gsignond_dbus_remote_plugin_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
+ * Like gsignond_dbus_remote_plugin_v1_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
*
* When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gsignond_dbus_remote_plugin_proxy_new_for_bus_finish() to get the result of the operation.
+ * You can then call gsignond_dbus_remote_plugin_v1_proxy_new_for_bus_finish() to get the result of the operation.
*
- * See gsignond_dbus_remote_plugin_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ * See gsignond_dbus_remote_plugin_v1_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
*/
void
-gsignond_dbus_remote_plugin_proxy_new_for_bus (
+gsignond_dbus_remote_plugin_v1_proxy_new_for_bus (
GBusType bus_type,
GDBusProxyFlags flags,
const gchar *name,
GAsyncReadyCallback callback,
gpointer user_data)
{
- g_async_initable_new_async (GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin", NULL);
+ g_async_initable_new_async (GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1", NULL);
}
/**
- * gsignond_dbus_remote_plugin_proxy_new_for_bus_finish:
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gsignond_dbus_remote_plugin_proxy_new_for_bus().
+ * gsignond_dbus_remote_plugin_v1_proxy_new_for_bus_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gsignond_dbus_remote_plugin_v1_proxy_new_for_bus().
* @error: Return location for error or %NULL
*
- * Finishes an operation started with gsignond_dbus_remote_plugin_proxy_new_for_bus().
+ * Finishes an operation started with gsignond_dbus_remote_plugin_v1_proxy_new_for_bus().
*
- * Returns: (transfer full) (type GSignondDbusRemotePluginProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: (transfer full) (type GSignondDbusRemotePluginV1Proxy): The constructed proxy object or %NULL if @error is set.
*/
-GSignondDbusRemotePlugin *
-gsignond_dbus_remote_plugin_proxy_new_for_bus_finish (
+GSignondDbusRemotePluginV1 *
+gsignond_dbus_remote_plugin_v1_proxy_new_for_bus_finish (
GAsyncResult *res,
GError **error)
{
ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
g_object_unref (source_object);
if (ret != NULL)
- return GSIGNOND_DBUS_REMOTE_PLUGIN (ret);
+ return GSIGNOND_DBUS_REMOTE_PLUGIN_V1 (ret);
else
return NULL;
}
/**
- * gsignond_dbus_remote_plugin_proxy_new_for_bus_sync:
+ * gsignond_dbus_remote_plugin_v1_proxy_new_for_bus_sync:
* @bus_type: A #GBusType.
* @flags: Flags from the #GDBusProxyFlags enumeration.
* @name: A bus name (well-known or unique).
* @cancellable: (allow-none): A #GCancellable or %NULL.
* @error: Return location for error or %NULL
*
- * Like gsignond_dbus_remote_plugin_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+ * Like gsignond_dbus_remote_plugin_v1_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
*
* The calling thread is blocked until a reply is received.
*
- * See gsignond_dbus_remote_plugin_proxy_new_for_bus() for the asynchronous version of this constructor.
+ * See gsignond_dbus_remote_plugin_v1_proxy_new_for_bus() for the asynchronous version of this constructor.
*
- * Returns: (transfer full) (type GSignondDbusRemotePluginProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: (transfer full) (type GSignondDbusRemotePluginV1Proxy): The constructed proxy object or %NULL if @error is set.
*/
-GSignondDbusRemotePlugin *
-gsignond_dbus_remote_plugin_proxy_new_for_bus_sync (
+GSignondDbusRemotePluginV1 *
+gsignond_dbus_remote_plugin_v1_proxy_new_for_bus_sync (
GBusType bus_type,
GDBusProxyFlags flags,
const gchar *name,
GError **error)
{
GInitable *ret;
- ret = g_initable_new (GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin", NULL);
+ ret = g_initable_new (GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1", NULL);
if (ret != NULL)
- return GSIGNOND_DBUS_REMOTE_PLUGIN (ret);
+ return GSIGNOND_DBUS_REMOTE_PLUGIN_V1 (ret);
else
return NULL;
}
/* ------------------------------------------------------------------------ */
/**
- * GSignondDbusRemotePluginSkeleton:
+ * GSignondDbusRemotePluginV1Skeleton:
*
- * The #GSignondDbusRemotePluginSkeleton structure contains only private data and should only be accessed using the provided API.
+ * The #GSignondDbusRemotePluginV1Skeleton structure contains only private data and should only be accessed using the provided API.
*/
/**
- * GSignondDbusRemotePluginSkeletonClass:
+ * GSignondDbusRemotePluginV1SkeletonClass:
* @parent_class: The parent class.
*
- * Class structure for #GSignondDbusRemotePluginSkeleton.
+ * Class structure for #GSignondDbusRemotePluginV1Skeleton.
*/
-struct _GSignondDbusRemotePluginSkeletonPrivate
+struct _GSignondDbusRemotePluginV1SkeletonPrivate
{
GValue *properties;
GList *changed_properties;
};
static void
-_gsignond_dbus_remote_plugin_skeleton_handle_method_call (
+_gsignond_dbus_remote_plugin_v1_skeleton_handle_method_call (
GDBusConnection *connection,
const gchar *sender,
const gchar *object_path,
GDBusMethodInvocation *invocation,
gpointer user_data)
{
- GSignondDbusRemotePluginSkeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_SKELETON (user_data);
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (user_data);
_ExtendedGDBusMethodInfo *info;
GVariantIter iter;
GVariant *child;
num_params = g_variant_n_children (parameters);
num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra);
n = 0;
- g_value_init (¶mv[n], GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN);
+ g_value_init (¶mv[n], GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1);
g_value_set_object (¶mv[n++], skeleton);
g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION);
g_value_set_object (¶mv[n++], invocation);
g_dbus_gvariant_to_gvalue (child, ¶mv[n++]);
g_variant_unref (child);
}
- signal_id = g_signal_lookup (info->signal_name, GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN);
+ signal_id = g_signal_lookup (info->signal_name, GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1);
g_value_init (&return_value, G_TYPE_BOOLEAN);
g_signal_emitv (paramv, signal_id, 0, &return_value);
if (!g_value_get_boolean (&return_value))
}
static GVariant *
-_gsignond_dbus_remote_plugin_skeleton_handle_get_property (
+_gsignond_dbus_remote_plugin_v1_skeleton_handle_get_property (
GDBusConnection *connection,
const gchar *sender,
const gchar *object_path,
GError **error,
gpointer user_data)
{
- GSignondDbusRemotePluginSkeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_SKELETON (user_data);
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (user_data);
GValue value = G_VALUE_INIT;
GParamSpec *pspec;
_ExtendedGDBusPropertyInfo *info;
GVariant *ret;
ret = NULL;
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_remote_plugin_interface_info.parent_struct, property_name);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_remote_plugin_v1_interface_info, property_name);
g_assert (info != NULL);
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
if (pspec == NULL)
}
static gboolean
-_gsignond_dbus_remote_plugin_skeleton_handle_set_property (
+_gsignond_dbus_remote_plugin_v1_skeleton_handle_set_property (
GDBusConnection *connection,
const gchar *sender,
const gchar *object_path,
GError **error,
gpointer user_data)
{
- GSignondDbusRemotePluginSkeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_SKELETON (user_data);
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (user_data);
GValue value = G_VALUE_INIT;
GParamSpec *pspec;
_ExtendedGDBusPropertyInfo *info;
gboolean ret;
ret = FALSE;
- info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_remote_plugin_interface_info.parent_struct, property_name);
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gsignond_dbus_remote_plugin_v1_interface_info, property_name);
g_assert (info != NULL);
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
if (pspec == NULL)
return ret;
}
-static const GDBusInterfaceVTable _gsignond_dbus_remote_plugin_skeleton_vtable =
+static const GDBusInterfaceVTable _gsignond_dbus_remote_plugin_v1_skeleton_vtable =
{
- _gsignond_dbus_remote_plugin_skeleton_handle_method_call,
- _gsignond_dbus_remote_plugin_skeleton_handle_get_property,
- _gsignond_dbus_remote_plugin_skeleton_handle_set_property
+ _gsignond_dbus_remote_plugin_v1_skeleton_handle_method_call,
+ _gsignond_dbus_remote_plugin_v1_skeleton_handle_get_property,
+ _gsignond_dbus_remote_plugin_v1_skeleton_handle_set_property
};
static GDBusInterfaceInfo *
-gsignond_dbus_remote_plugin_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton)
+gsignond_dbus_remote_plugin_v1_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton)
{
- return gsignond_dbus_remote_plugin_interface_info ();
+ return gsignond_dbus_remote_plugin_v1_interface_info ();
}
static GDBusInterfaceVTable *
-gsignond_dbus_remote_plugin_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton)
+gsignond_dbus_remote_plugin_v1_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton)
{
- return (GDBusInterfaceVTable *) &_gsignond_dbus_remote_plugin_skeleton_vtable;
+ return (GDBusInterfaceVTable *) &_gsignond_dbus_remote_plugin_v1_skeleton_vtable;
}
static GVariant *
-gsignond_dbus_remote_plugin_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
+gsignond_dbus_remote_plugin_v1_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
{
- GSignondDbusRemotePluginSkeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_SKELETON (_skeleton);
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (_skeleton);
GVariantBuilder builder;
guint n;
g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
- if (_gsignond_dbus_remote_plugin_interface_info.parent_struct.properties == NULL)
+ if (_gsignond_dbus_remote_plugin_v1_interface_info.parent_struct.properties == NULL)
goto out;
- for (n = 0; _gsignond_dbus_remote_plugin_interface_info.parent_struct.properties[n] != NULL; n++)
+ for (n = 0; _gsignond_dbus_remote_plugin_v1_interface_info.parent_struct.properties[n] != NULL; n++)
{
- GDBusPropertyInfo *info = _gsignond_dbus_remote_plugin_interface_info.parent_struct.properties[n];
+ GDBusPropertyInfo *info = _gsignond_dbus_remote_plugin_v1_interface_info.parent_struct.properties[n];
if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
{
GVariant *value;
- value = _gsignond_dbus_remote_plugin_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin", info->name, NULL, skeleton);
+ value = _gsignond_dbus_remote_plugin_v1_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1", info->name, NULL, skeleton);
if (value != NULL)
{
g_variant_take_ref (value);
return g_variant_builder_end (&builder);
}
+static gboolean _gsignond_dbus_remote_plugin_v1_emit_changed (gpointer user_data);
+
static void
-gsignond_dbus_remote_plugin_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
+gsignond_dbus_remote_plugin_v1_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
{
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (_skeleton);
+ gboolean emit_changed = FALSE;
+
+ g_mutex_lock (&skeleton->priv->lock);
+ if (skeleton->priv->changed_properties_idle_source != NULL)
+ {
+ g_source_destroy (skeleton->priv->changed_properties_idle_source);
+ skeleton->priv->changed_properties_idle_source = NULL;
+ emit_changed = TRUE;
+ }
+ g_mutex_unlock (&skeleton->priv->lock);
+
+ if (emit_changed)
+ _gsignond_dbus_remote_plugin_v1_emit_changed (skeleton);
}
static void
-_gsignond_dbus_remote_plugin_on_signal_response (
- GSignondDbusRemotePlugin *object,
+_gsignond_dbus_remote_plugin_v1_on_signal_response (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_sessionData)
{
- GSignondDbusRemotePluginSkeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_SKELETON (object);
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (object);
GList *connections, *l;
GVariant *signal_variant;
{
GDBusConnection *connection = l->data;
g_dbus_connection_emit_signal (connection,
- NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin", "response",
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1", "response",
signal_variant, NULL);
}
g_variant_unref (signal_variant);
}
static void
-_gsignond_dbus_remote_plugin_on_signal_response_final (
- GSignondDbusRemotePlugin *object,
+_gsignond_dbus_remote_plugin_v1_on_signal_response_final (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_sessionData)
{
- GSignondDbusRemotePluginSkeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_SKELETON (object);
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (object);
GList *connections, *l;
GVariant *signal_variant;
{
GDBusConnection *connection = l->data;
g_dbus_connection_emit_signal (connection,
- NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin", "responseFinal",
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1", "responseFinal",
signal_variant, NULL);
}
g_variant_unref (signal_variant);
}
static void
-_gsignond_dbus_remote_plugin_on_signal_store (
- GSignondDbusRemotePlugin *object,
+_gsignond_dbus_remote_plugin_v1_on_signal_store (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_sessionData)
{
- GSignondDbusRemotePluginSkeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_SKELETON (object);
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (object);
GList *connections, *l;
GVariant *signal_variant;
{
GDBusConnection *connection = l->data;
g_dbus_connection_emit_signal (connection,
- NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin", "store",
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1", "store",
signal_variant, NULL);
}
g_variant_unref (signal_variant);
}
static void
-_gsignond_dbus_remote_plugin_on_signal_error (
- GSignondDbusRemotePlugin *object,
+_gsignond_dbus_remote_plugin_v1_on_signal_error (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_error)
{
- GSignondDbusRemotePluginSkeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_SKELETON (object);
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (object);
GList *connections, *l;
GVariant *signal_variant;
{
GDBusConnection *connection = l->data;
g_dbus_connection_emit_signal (connection,
- NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin", "error",
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1", "error",
signal_variant, NULL);
}
g_variant_unref (signal_variant);
}
static void
-_gsignond_dbus_remote_plugin_on_signal_user_action_required (
- GSignondDbusRemotePlugin *object,
+_gsignond_dbus_remote_plugin_v1_on_signal_user_action_required (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_uiData)
{
- GSignondDbusRemotePluginSkeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_SKELETON (object);
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (object);
GList *connections, *l;
GVariant *signal_variant;
{
GDBusConnection *connection = l->data;
g_dbus_connection_emit_signal (connection,
- NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin", "userActionRequired",
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1", "userActionRequired",
signal_variant, NULL);
}
g_variant_unref (signal_variant);
}
static void
-_gsignond_dbus_remote_plugin_on_signal_refreshed (
- GSignondDbusRemotePlugin *object,
+_gsignond_dbus_remote_plugin_v1_on_signal_refreshed (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_uiData)
{
- GSignondDbusRemotePluginSkeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_SKELETON (object);
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (object);
GList *connections, *l;
GVariant *signal_variant;
{
GDBusConnection *connection = l->data;
g_dbus_connection_emit_signal (connection,
- NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin", "refreshed",
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1", "refreshed",
signal_variant, NULL);
}
g_variant_unref (signal_variant);
}
static void
-_gsignond_dbus_remote_plugin_on_signal_status_changed (
- GSignondDbusRemotePlugin *object,
+_gsignond_dbus_remote_plugin_v1_on_signal_status_changed (
+ GSignondDbusRemotePluginV1 *object,
gint arg_state,
const gchar *arg_message)
{
- GSignondDbusRemotePluginSkeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_SKELETON (object);
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (object);
GList *connections, *l;
GVariant *signal_variant;
{
GDBusConnection *connection = l->data;
g_dbus_connection_emit_signal (connection,
- NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin", "statusChanged",
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1", "statusChanged",
signal_variant, NULL);
}
g_variant_unref (signal_variant);
g_list_free_full (connections, g_object_unref);
}
-static void gsignond_dbus_remote_plugin_skeleton_iface_init (GSignondDbusRemotePluginIface *iface);
-G_DEFINE_TYPE_WITH_CODE (GSignondDbusRemotePluginSkeleton, gsignond_dbus_remote_plugin_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
- G_IMPLEMENT_INTERFACE (GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN, gsignond_dbus_remote_plugin_skeleton_iface_init));
+static void gsignond_dbus_remote_plugin_v1_skeleton_iface_init (GSignondDbusRemotePluginV1Iface *iface);
+G_DEFINE_TYPE_WITH_CODE (GSignondDbusRemotePluginV1Skeleton, gsignond_dbus_remote_plugin_v1_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_IMPLEMENT_INTERFACE (GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1, gsignond_dbus_remote_plugin_v1_skeleton_iface_init));
static void
-gsignond_dbus_remote_plugin_skeleton_finalize (GObject *object)
+gsignond_dbus_remote_plugin_v1_skeleton_finalize (GObject *object)
{
- GSignondDbusRemotePluginSkeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_SKELETON (object);
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (object);
+ guint n;
+ for (n = 0; n < 2; n++)
+ g_value_unset (&skeleton->priv->properties[n]);
+ g_free (skeleton->priv->properties);
g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
if (skeleton->priv->changed_properties_idle_source != NULL)
g_source_destroy (skeleton->priv->changed_properties_idle_source);
g_main_context_unref (skeleton->priv->context);
g_mutex_clear (&skeleton->priv->lock);
- G_OBJECT_CLASS (gsignond_dbus_remote_plugin_skeleton_parent_class)->finalize (object);
+ G_OBJECT_CLASS (gsignond_dbus_remote_plugin_v1_skeleton_parent_class)->finalize (object);
+}
+
+static void
+gsignond_dbus_remote_plugin_v1_skeleton_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (object);
+ g_assert (prop_id != 0 && prop_id - 1 < 2);
+ g_mutex_lock (&skeleton->priv->lock);
+ g_value_copy (&skeleton->priv->properties[prop_id - 1], value);
+ g_mutex_unlock (&skeleton->priv->lock);
+}
+
+static gboolean
+_gsignond_dbus_remote_plugin_v1_emit_changed (gpointer user_data)
+{
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (user_data);
+ GList *l;
+ GVariantBuilder builder;
+ GVariantBuilder invalidated_builder;
+ guint num_changes;
+
+ g_mutex_lock (&skeleton->priv->lock);
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+ g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
+ for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next)
+ {
+ ChangedProperty *cp = l->data;
+ GVariant *variant;
+ const GValue *cur_value;
+
+ cur_value = &skeleton->priv->properties[cp->prop_id - 1];
+ if (!_g_value_equal (cur_value, &cp->orig_value))
+ {
+ variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature));
+ g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant);
+ g_variant_unref (variant);
+ num_changes++;
+ }
+ }
+ if (num_changes > 0)
+ {
+ GList *connections, *l;
+ GVariant *signal_variant;
+ signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1",
+ &builder, &invalidated_builder));
+ connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
+ for (l = connections; l != NULL; l = l->next)
+ {
+ GDBusConnection *connection = l->data;
+
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)),
+ "org.freedesktop.DBus.Properties",
+ "PropertiesChanged",
+ signal_variant,
+ NULL);
+ }
+ g_variant_unref (signal_variant);
+ g_list_free_full (connections, g_object_unref);
+ }
+ else
+ {
+ g_variant_builder_clear (&builder);
+ g_variant_builder_clear (&invalidated_builder);
+ }
+ g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
+ skeleton->priv->changed_properties = NULL;
+ skeleton->priv->changed_properties_idle_source = NULL;
+ g_mutex_unlock (&skeleton->priv->lock);
+ return FALSE;
}
static void
-gsignond_dbus_remote_plugin_skeleton_init (GSignondDbusRemotePluginSkeleton *skeleton)
+_gsignond_dbus_remote_plugin_v1_schedule_emit_changed (GSignondDbusRemotePluginV1Skeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value)
{
- skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_SKELETON, GSignondDbusRemotePluginSkeletonPrivate);
+ ChangedProperty *cp;
+ GList *l;
+ cp = NULL;
+ for (l = skeleton->priv->changed_properties; l != NULL; l = l->next)
+ {
+ ChangedProperty *i_cp = l->data;
+ if (i_cp->info == info)
+ {
+ cp = i_cp;
+ break;
+ }
+ }
+ if (cp == NULL)
+ {
+ cp = g_new0 (ChangedProperty, 1);
+ cp->prop_id = prop_id;
+ cp->info = info;
+ skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp);
+ g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value));
+ g_value_copy (orig_value, &cp->orig_value);
+ }
+}
+
+static void
+gsignond_dbus_remote_plugin_v1_skeleton_notify (GObject *object,
+ GParamSpec *pspec)
+{
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (object);
+ g_mutex_lock (&skeleton->priv->lock);
+ if (skeleton->priv->changed_properties != NULL &&
+ skeleton->priv->changed_properties_idle_source == NULL)
+ {
+ skeleton->priv->changed_properties_idle_source = g_idle_source_new ();
+ g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT);
+ g_source_set_callback (skeleton->priv->changed_properties_idle_source, _gsignond_dbus_remote_plugin_v1_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref);
+ g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context);
+ g_source_unref (skeleton->priv->changed_properties_idle_source);
+ }
+ g_mutex_unlock (&skeleton->priv->lock);
+}
+
+static void
+gsignond_dbus_remote_plugin_v1_skeleton_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (object);
+ g_assert (prop_id != 0 && prop_id - 1 < 2);
+ g_mutex_lock (&skeleton->priv->lock);
+ g_object_freeze_notify (object);
+ if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1]))
+ {
+ if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL)
+ _gsignond_dbus_remote_plugin_v1_schedule_emit_changed (skeleton, _gsignond_dbus_remote_plugin_v1_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]);
+ g_value_copy (value, &skeleton->priv->properties[prop_id - 1]);
+ g_object_notify_by_pspec (object, pspec);
+ }
+ g_mutex_unlock (&skeleton->priv->lock);
+ g_object_thaw_notify (object);
+}
+
+static void
+gsignond_dbus_remote_plugin_v1_skeleton_init (GSignondDbusRemotePluginV1Skeleton *skeleton)
+{
+ skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_SKELETON, GSignondDbusRemotePluginV1SkeletonPrivate);
g_mutex_init (&skeleton->priv->lock);
skeleton->priv->context = g_main_context_ref_thread_default ();
+ skeleton->priv->properties = g_new0 (GValue, 2);
+ g_value_init (&skeleton->priv->properties[0], G_TYPE_STRING);
+ g_value_init (&skeleton->priv->properties[1], G_TYPE_STRV);
+}
+
+static const gchar *
+gsignond_dbus_remote_plugin_v1_skeleton_get_method (GSignondDbusRemotePluginV1 *object)
+{
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (object);
+ const gchar *value;
+ g_mutex_lock (&skeleton->priv->lock);
+ value = g_value_get_string (&(skeleton->priv->properties[0]));
+ g_mutex_unlock (&skeleton->priv->lock);
+ return value;
+}
+
+static const gchar *const *
+gsignond_dbus_remote_plugin_v1_skeleton_get_mechanisms (GSignondDbusRemotePluginV1 *object)
+{
+ GSignondDbusRemotePluginV1Skeleton *skeleton = GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON (object);
+ const gchar *const *value;
+ g_mutex_lock (&skeleton->priv->lock);
+ value = g_value_get_boxed (&(skeleton->priv->properties[1]));
+ g_mutex_unlock (&skeleton->priv->lock);
+ return value;
}
static void
-gsignond_dbus_remote_plugin_skeleton_class_init (GSignondDbusRemotePluginSkeletonClass *klass)
+gsignond_dbus_remote_plugin_v1_skeleton_class_init (GSignondDbusRemotePluginV1SkeletonClass *klass)
{
GObjectClass *gobject_class;
GDBusInterfaceSkeletonClass *skeleton_class;
- g_type_class_add_private (klass, sizeof (GSignondDbusRemotePluginSkeletonPrivate));
+ g_type_class_add_private (klass, sizeof (GSignondDbusRemotePluginV1SkeletonPrivate));
gobject_class = G_OBJECT_CLASS (klass);
- gobject_class->finalize = gsignond_dbus_remote_plugin_skeleton_finalize;
+ gobject_class->finalize = gsignond_dbus_remote_plugin_v1_skeleton_finalize;
+ gobject_class->get_property = gsignond_dbus_remote_plugin_v1_skeleton_get_property;
+ gobject_class->set_property = gsignond_dbus_remote_plugin_v1_skeleton_set_property;
+ gobject_class->notify = gsignond_dbus_remote_plugin_v1_skeleton_notify;
+
+
+ gsignond_dbus_remote_plugin_v1_override_properties (gobject_class, 1);
skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
- skeleton_class->get_info = gsignond_dbus_remote_plugin_skeleton_dbus_interface_get_info;
- skeleton_class->get_properties = gsignond_dbus_remote_plugin_skeleton_dbus_interface_get_properties;
- skeleton_class->flush = gsignond_dbus_remote_plugin_skeleton_dbus_interface_flush;
- skeleton_class->get_vtable = gsignond_dbus_remote_plugin_skeleton_dbus_interface_get_vtable;
+ skeleton_class->get_info = gsignond_dbus_remote_plugin_v1_skeleton_dbus_interface_get_info;
+ skeleton_class->get_properties = gsignond_dbus_remote_plugin_v1_skeleton_dbus_interface_get_properties;
+ skeleton_class->flush = gsignond_dbus_remote_plugin_v1_skeleton_dbus_interface_flush;
+ skeleton_class->get_vtable = gsignond_dbus_remote_plugin_v1_skeleton_dbus_interface_get_vtable;
}
static void
-gsignond_dbus_remote_plugin_skeleton_iface_init (GSignondDbusRemotePluginIface *iface)
+gsignond_dbus_remote_plugin_v1_skeleton_iface_init (GSignondDbusRemotePluginV1Iface *iface)
{
- iface->response = _gsignond_dbus_remote_plugin_on_signal_response;
- iface->response_final = _gsignond_dbus_remote_plugin_on_signal_response_final;
- iface->store = _gsignond_dbus_remote_plugin_on_signal_store;
- iface->error = _gsignond_dbus_remote_plugin_on_signal_error;
- iface->user_action_required = _gsignond_dbus_remote_plugin_on_signal_user_action_required;
- iface->refreshed = _gsignond_dbus_remote_plugin_on_signal_refreshed;
- iface->status_changed = _gsignond_dbus_remote_plugin_on_signal_status_changed;
+ iface->response = _gsignond_dbus_remote_plugin_v1_on_signal_response;
+ iface->response_final = _gsignond_dbus_remote_plugin_v1_on_signal_response_final;
+ iface->store = _gsignond_dbus_remote_plugin_v1_on_signal_store;
+ iface->error = _gsignond_dbus_remote_plugin_v1_on_signal_error;
+ iface->user_action_required = _gsignond_dbus_remote_plugin_v1_on_signal_user_action_required;
+ iface->refreshed = _gsignond_dbus_remote_plugin_v1_on_signal_refreshed;
+ iface->status_changed = _gsignond_dbus_remote_plugin_v1_on_signal_status_changed;
+ iface->get_method = gsignond_dbus_remote_plugin_v1_skeleton_get_method;
+ iface->get_mechanisms = gsignond_dbus_remote_plugin_v1_skeleton_get_mechanisms;
}
/**
- * gsignond_dbus_remote_plugin_skeleton_new:
+ * gsignond_dbus_remote_plugin_v1_skeleton_new:
*
- * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin.top_of_page">com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin</link>.
+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-com-google-code-AccountsSSO-gSingleSignOn-RemotePlugin-V1.top_of_page">com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1</link>.
*
- * Returns: (transfer full) (type GSignondDbusRemotePluginSkeleton): The skeleton object.
+ * Returns: (transfer full) (type GSignondDbusRemotePluginV1Skeleton): The skeleton object.
*/
-GSignondDbusRemotePlugin *
-gsignond_dbus_remote_plugin_skeleton_new (void)
+GSignondDbusRemotePluginV1 *
+gsignond_dbus_remote_plugin_v1_skeleton_new (void)
{
- return GSIGNOND_DBUS_REMOTE_PLUGIN (g_object_new (GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_SKELETON, NULL));
+ return GSIGNOND_DBUS_REMOTE_PLUGIN_V1 (g_object_new (GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_SKELETON, NULL));
}
/*
- * Generated by gdbus-codegen 2.34.1. DO NOT EDIT.
+ * Generated by gdbus-codegen 2.32.4. DO NOT EDIT.
*
* The license of this code is the same as for the source it was derived from.
*/
/* ------------------------------------------------------------------------ */
-/* Declarations for com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin */
+/* Declarations for com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1 */
-#define GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN (gsignond_dbus_remote_plugin_get_type ())
-#define GSIGNOND_DBUS_REMOTE_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN, GSignondDbusRemotePlugin))
-#define GSIGNOND_DBUS_IS_REMOTE_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN))
-#define GSIGNOND_DBUS_REMOTE_PLUGIN_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN, GSignondDbusRemotePluginIface))
+#define GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1 (gsignond_dbus_remote_plugin_v1_get_type ())
+#define GSIGNOND_DBUS_REMOTE_PLUGIN_V1(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1, GSignondDbusRemotePluginV1))
+#define GSIGNOND_DBUS_IS_REMOTE_PLUGIN_V1(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1))
+#define GSIGNOND_DBUS_REMOTE_PLUGIN_V1_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1, GSignondDbusRemotePluginV1Iface))
-struct _GSignondDbusRemotePlugin;
-typedef struct _GSignondDbusRemotePlugin GSignondDbusRemotePlugin;
-typedef struct _GSignondDbusRemotePluginIface GSignondDbusRemotePluginIface;
+struct _GSignondDbusRemotePluginV1;
+typedef struct _GSignondDbusRemotePluginV1 GSignondDbusRemotePluginV1;
+typedef struct _GSignondDbusRemotePluginV1Iface GSignondDbusRemotePluginV1Iface;
-struct _GSignondDbusRemotePluginIface
+struct _GSignondDbusRemotePluginV1Iface
{
GTypeInterface parent_iface;
- gboolean (*handle_cancel) (
- GSignondDbusRemotePlugin *object,
- GDBusMethodInvocation *invocation);
- gboolean (*handle_get_info) (
- GSignondDbusRemotePlugin *object,
+ gboolean (*handle_cancel) (
+ GSignondDbusRemotePluginV1 *object,
GDBusMethodInvocation *invocation);
gboolean (*handle_refresh) (
- GSignondDbusRemotePlugin *object,
+ GSignondDbusRemotePluginV1 *object,
GDBusMethodInvocation *invocation,
GVariant *arg_uiData);
gboolean (*handle_request) (
- GSignondDbusRemotePlugin *object,
+ GSignondDbusRemotePluginV1 *object,
GDBusMethodInvocation *invocation,
GVariant *arg_sessionData);
gboolean (*handle_request_initial) (
- GSignondDbusRemotePlugin *object,
+ GSignondDbusRemotePluginV1 *object,
GDBusMethodInvocation *invocation,
GVariant *arg_sessionData,
GVariant *arg_identityMethodCache,
const gchar *arg_mechanism);
gboolean (*handle_user_action_finished) (
- GSignondDbusRemotePlugin *object,
+ GSignondDbusRemotePluginV1 *object,
GDBusMethodInvocation *invocation,
GVariant *arg_uiData);
+ const gchar *const * (*get_mechanisms) (GSignondDbusRemotePluginV1 *object);
+
+ const gchar * (*get_method) (GSignondDbusRemotePluginV1 *object);
+
void (*error) (
- GSignondDbusRemotePlugin *object,
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_error);
void (*refreshed) (
- GSignondDbusRemotePlugin *object,
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_uiData);
void (*response) (
- GSignondDbusRemotePlugin *object,
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_sessionData);
void (*response_final) (
- GSignondDbusRemotePlugin *object,
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_sessionData);
void (*status_changed) (
- GSignondDbusRemotePlugin *object,
+ GSignondDbusRemotePluginV1 *object,
gint arg_state,
const gchar *arg_message);
void (*store) (
- GSignondDbusRemotePlugin *object,
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_sessionData);
void (*user_action_required) (
- GSignondDbusRemotePlugin *object,
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_uiData);
};
-GType gsignond_dbus_remote_plugin_get_type (void) G_GNUC_CONST;
+GType gsignond_dbus_remote_plugin_v1_get_type (void) G_GNUC_CONST;
-GDBusInterfaceInfo *gsignond_dbus_remote_plugin_interface_info (void);
-guint gsignond_dbus_remote_plugin_override_properties (GObjectClass *klass, guint property_id_begin);
+GDBusInterfaceInfo *gsignond_dbus_remote_plugin_v1_interface_info (void);
+guint gsignond_dbus_remote_plugin_v1_override_properties (GObjectClass *klass, guint property_id_begin);
/* D-Bus method call completion functions: */
-void gsignond_dbus_remote_plugin_complete_cancel (
- GSignondDbusRemotePlugin *object,
+void gsignond_dbus_remote_plugin_v1_complete_cancel (
+ GSignondDbusRemotePluginV1 *object,
GDBusMethodInvocation *invocation);
-void gsignond_dbus_remote_plugin_complete_request_initial (
- GSignondDbusRemotePlugin *object,
+void gsignond_dbus_remote_plugin_v1_complete_request_initial (
+ GSignondDbusRemotePluginV1 *object,
GDBusMethodInvocation *invocation);
-void gsignond_dbus_remote_plugin_complete_request (
- GSignondDbusRemotePlugin *object,
+void gsignond_dbus_remote_plugin_v1_complete_request (
+ GSignondDbusRemotePluginV1 *object,
GDBusMethodInvocation *invocation);
-void gsignond_dbus_remote_plugin_complete_user_action_finished (
- GSignondDbusRemotePlugin *object,
+void gsignond_dbus_remote_plugin_v1_complete_user_action_finished (
+ GSignondDbusRemotePluginV1 *object,
GDBusMethodInvocation *invocation);
-void gsignond_dbus_remote_plugin_complete_refresh (
- GSignondDbusRemotePlugin *object,
+void gsignond_dbus_remote_plugin_v1_complete_refresh (
+ GSignondDbusRemotePluginV1 *object,
GDBusMethodInvocation *invocation);
-void gsignond_dbus_remote_plugin_complete_get_info (
- GSignondDbusRemotePlugin *object,
- GDBusMethodInvocation *invocation,
- const gchar *type,
- const gchar *const *mechanisms);
-
/* D-Bus signal emissions functions: */
-void gsignond_dbus_remote_plugin_emit_response (
- GSignondDbusRemotePlugin *object,
+void gsignond_dbus_remote_plugin_v1_emit_response (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_sessionData);
-void gsignond_dbus_remote_plugin_emit_response_final (
- GSignondDbusRemotePlugin *object,
+void gsignond_dbus_remote_plugin_v1_emit_response_final (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_sessionData);
-void gsignond_dbus_remote_plugin_emit_store (
- GSignondDbusRemotePlugin *object,
+void gsignond_dbus_remote_plugin_v1_emit_store (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_sessionData);
-void gsignond_dbus_remote_plugin_emit_error (
- GSignondDbusRemotePlugin *object,
+void gsignond_dbus_remote_plugin_v1_emit_error (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_error);
-void gsignond_dbus_remote_plugin_emit_user_action_required (
- GSignondDbusRemotePlugin *object,
+void gsignond_dbus_remote_plugin_v1_emit_user_action_required (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_uiData);
-void gsignond_dbus_remote_plugin_emit_refreshed (
- GSignondDbusRemotePlugin *object,
+void gsignond_dbus_remote_plugin_v1_emit_refreshed (
+ GSignondDbusRemotePluginV1 *object,
GVariant *arg_uiData);
-void gsignond_dbus_remote_plugin_emit_status_changed (
- GSignondDbusRemotePlugin *object,
+void gsignond_dbus_remote_plugin_v1_emit_status_changed (
+ GSignondDbusRemotePluginV1 *object,
gint arg_state,
const gchar *arg_message);
/* D-Bus method calls: */
-void gsignond_dbus_remote_plugin_call_cancel (
- GSignondDbusRemotePlugin *proxy,
+void gsignond_dbus_remote_plugin_v1_call_cancel (
+ GSignondDbusRemotePluginV1 *proxy,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-gboolean gsignond_dbus_remote_plugin_call_cancel_finish (
- GSignondDbusRemotePlugin *proxy,
+gboolean gsignond_dbus_remote_plugin_v1_call_cancel_finish (
+ GSignondDbusRemotePluginV1 *proxy,
GAsyncResult *res,
GError **error);
-gboolean gsignond_dbus_remote_plugin_call_cancel_sync (
- GSignondDbusRemotePlugin *proxy,
+gboolean gsignond_dbus_remote_plugin_v1_call_cancel_sync (
+ GSignondDbusRemotePluginV1 *proxy,
GCancellable *cancellable,
GError **error);
-void gsignond_dbus_remote_plugin_call_request_initial (
- GSignondDbusRemotePlugin *proxy,
+void gsignond_dbus_remote_plugin_v1_call_request_initial (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_sessionData,
GVariant *arg_identityMethodCache,
const gchar *arg_mechanism,
GAsyncReadyCallback callback,
gpointer user_data);
-gboolean gsignond_dbus_remote_plugin_call_request_initial_finish (
- GSignondDbusRemotePlugin *proxy,
+gboolean gsignond_dbus_remote_plugin_v1_call_request_initial_finish (
+ GSignondDbusRemotePluginV1 *proxy,
GAsyncResult *res,
GError **error);
-gboolean gsignond_dbus_remote_plugin_call_request_initial_sync (
- GSignondDbusRemotePlugin *proxy,
+gboolean gsignond_dbus_remote_plugin_v1_call_request_initial_sync (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_sessionData,
GVariant *arg_identityMethodCache,
const gchar *arg_mechanism,
GCancellable *cancellable,
GError **error);
-void gsignond_dbus_remote_plugin_call_request (
- GSignondDbusRemotePlugin *proxy,
+void gsignond_dbus_remote_plugin_v1_call_request (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_sessionData,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-gboolean gsignond_dbus_remote_plugin_call_request_finish (
- GSignondDbusRemotePlugin *proxy,
+gboolean gsignond_dbus_remote_plugin_v1_call_request_finish (
+ GSignondDbusRemotePluginV1 *proxy,
GAsyncResult *res,
GError **error);
-gboolean gsignond_dbus_remote_plugin_call_request_sync (
- GSignondDbusRemotePlugin *proxy,
+gboolean gsignond_dbus_remote_plugin_v1_call_request_sync (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_sessionData,
GCancellable *cancellable,
GError **error);
-void gsignond_dbus_remote_plugin_call_user_action_finished (
- GSignondDbusRemotePlugin *proxy,
+void gsignond_dbus_remote_plugin_v1_call_user_action_finished (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_uiData,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-gboolean gsignond_dbus_remote_plugin_call_user_action_finished_finish (
- GSignondDbusRemotePlugin *proxy,
+gboolean gsignond_dbus_remote_plugin_v1_call_user_action_finished_finish (
+ GSignondDbusRemotePluginV1 *proxy,
GAsyncResult *res,
GError **error);
-gboolean gsignond_dbus_remote_plugin_call_user_action_finished_sync (
- GSignondDbusRemotePlugin *proxy,
+gboolean gsignond_dbus_remote_plugin_v1_call_user_action_finished_sync (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_uiData,
GCancellable *cancellable,
GError **error);
-void gsignond_dbus_remote_plugin_call_refresh (
- GSignondDbusRemotePlugin *proxy,
+void gsignond_dbus_remote_plugin_v1_call_refresh (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_uiData,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-gboolean gsignond_dbus_remote_plugin_call_refresh_finish (
- GSignondDbusRemotePlugin *proxy,
+gboolean gsignond_dbus_remote_plugin_v1_call_refresh_finish (
+ GSignondDbusRemotePluginV1 *proxy,
GAsyncResult *res,
GError **error);
-gboolean gsignond_dbus_remote_plugin_call_refresh_sync (
- GSignondDbusRemotePlugin *proxy,
+gboolean gsignond_dbus_remote_plugin_v1_call_refresh_sync (
+ GSignondDbusRemotePluginV1 *proxy,
GVariant *arg_uiData,
GCancellable *cancellable,
GError **error);
-void gsignond_dbus_remote_plugin_call_get_info (
- GSignondDbusRemotePlugin *proxy,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-gboolean gsignond_dbus_remote_plugin_call_get_info_finish (
- GSignondDbusRemotePlugin *proxy,
- gchar **out_type,
- gchar ***out_mechanisms,
- GAsyncResult *res,
- GError **error);
-gboolean gsignond_dbus_remote_plugin_call_get_info_sync (
- GSignondDbusRemotePlugin *proxy,
- gchar **out_type,
- gchar ***out_mechanisms,
- GCancellable *cancellable,
- GError **error);
+/* D-Bus property accessors: */
+const gchar *gsignond_dbus_remote_plugin_v1_get_method (GSignondDbusRemotePluginV1 *object);
+gchar *gsignond_dbus_remote_plugin_v1_dup_method (GSignondDbusRemotePluginV1 *object);
+void gsignond_dbus_remote_plugin_v1_set_method (GSignondDbusRemotePluginV1 *object, const gchar *value);
+const gchar *const *gsignond_dbus_remote_plugin_v1_get_mechanisms (GSignondDbusRemotePluginV1 *object);
+gchar **gsignond_dbus_remote_plugin_v1_dup_mechanisms (GSignondDbusRemotePluginV1 *object);
+void gsignond_dbus_remote_plugin_v1_set_mechanisms (GSignondDbusRemotePluginV1 *object, const gchar *const *value);
/* ---- */
-#define GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_PROXY (gsignond_dbus_remote_plugin_proxy_get_type ())
-#define GSIGNOND_DBUS_REMOTE_PLUGIN_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_PROXY, GSignondDbusRemotePluginProxy))
-#define GSIGNOND_DBUS_REMOTE_PLUGIN_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_PROXY, GSignondDbusRemotePluginProxyClass))
-#define GSIGNOND_DBUS_REMOTE_PLUGIN_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_PROXY, GSignondDbusRemotePluginProxyClass))
-#define GSIGNOND_DBUS_IS_REMOTE_PLUGIN_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_PROXY))
-#define GSIGNOND_DBUS_IS_REMOTE_PLUGIN_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_PROXY))
+#define GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_PROXY (gsignond_dbus_remote_plugin_v1_proxy_get_type ())
+#define GSIGNOND_DBUS_REMOTE_PLUGIN_V1_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_PROXY, GSignondDbusRemotePluginV1Proxy))
+#define GSIGNOND_DBUS_REMOTE_PLUGIN_V1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_PROXY, GSignondDbusRemotePluginV1ProxyClass))
+#define GSIGNOND_DBUS_REMOTE_PLUGIN_V1_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_PROXY, GSignondDbusRemotePluginV1ProxyClass))
+#define GSIGNOND_DBUS_IS_REMOTE_PLUGIN_V1_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_PROXY))
+#define GSIGNOND_DBUS_IS_REMOTE_PLUGIN_V1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_PROXY))
-typedef struct _GSignondDbusRemotePluginProxy GSignondDbusRemotePluginProxy;
-typedef struct _GSignondDbusRemotePluginProxyClass GSignondDbusRemotePluginProxyClass;
-typedef struct _GSignondDbusRemotePluginProxyPrivate GSignondDbusRemotePluginProxyPrivate;
+typedef struct _GSignondDbusRemotePluginV1Proxy GSignondDbusRemotePluginV1Proxy;
+typedef struct _GSignondDbusRemotePluginV1ProxyClass GSignondDbusRemotePluginV1ProxyClass;
+typedef struct _GSignondDbusRemotePluginV1ProxyPrivate GSignondDbusRemotePluginV1ProxyPrivate;
-struct _GSignondDbusRemotePluginProxy
+struct _GSignondDbusRemotePluginV1Proxy
{
/*< private >*/
GDBusProxy parent_instance;
- GSignondDbusRemotePluginProxyPrivate *priv;
+ GSignondDbusRemotePluginV1ProxyPrivate *priv;
};
-struct _GSignondDbusRemotePluginProxyClass
+struct _GSignondDbusRemotePluginV1ProxyClass
{
GDBusProxyClass parent_class;
};
-GType gsignond_dbus_remote_plugin_proxy_get_type (void) G_GNUC_CONST;
+GType gsignond_dbus_remote_plugin_v1_proxy_get_type (void) G_GNUC_CONST;
-void gsignond_dbus_remote_plugin_proxy_new (
+void gsignond_dbus_remote_plugin_v1_proxy_new (
GDBusConnection *connection,
GDBusProxyFlags flags,
const gchar *name,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GSignondDbusRemotePlugin *gsignond_dbus_remote_plugin_proxy_new_finish (
+GSignondDbusRemotePluginV1 *gsignond_dbus_remote_plugin_v1_proxy_new_finish (
GAsyncResult *res,
GError **error);
-GSignondDbusRemotePlugin *gsignond_dbus_remote_plugin_proxy_new_sync (
+GSignondDbusRemotePluginV1 *gsignond_dbus_remote_plugin_v1_proxy_new_sync (
GDBusConnection *connection,
GDBusProxyFlags flags,
const gchar *name,
GCancellable *cancellable,
GError **error);
-void gsignond_dbus_remote_plugin_proxy_new_for_bus (
+void gsignond_dbus_remote_plugin_v1_proxy_new_for_bus (
GBusType bus_type,
GDBusProxyFlags flags,
const gchar *name,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GSignondDbusRemotePlugin *gsignond_dbus_remote_plugin_proxy_new_for_bus_finish (
+GSignondDbusRemotePluginV1 *gsignond_dbus_remote_plugin_v1_proxy_new_for_bus_finish (
GAsyncResult *res,
GError **error);
-GSignondDbusRemotePlugin *gsignond_dbus_remote_plugin_proxy_new_for_bus_sync (
+GSignondDbusRemotePluginV1 *gsignond_dbus_remote_plugin_v1_proxy_new_for_bus_sync (
GBusType bus_type,
GDBusProxyFlags flags,
const gchar *name,
/* ---- */
-#define GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_SKELETON (gsignond_dbus_remote_plugin_skeleton_get_type ())
-#define GSIGNOND_DBUS_REMOTE_PLUGIN_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_SKELETON, GSignondDbusRemotePluginSkeleton))
-#define GSIGNOND_DBUS_REMOTE_PLUGIN_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_SKELETON, GSignondDbusRemotePluginSkeletonClass))
-#define GSIGNOND_DBUS_REMOTE_PLUGIN_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_SKELETON, GSignondDbusRemotePluginSkeletonClass))
-#define GSIGNOND_DBUS_IS_REMOTE_PLUGIN_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_SKELETON))
-#define GSIGNOND_DBUS_IS_REMOTE_PLUGIN_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_SKELETON))
+#define GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_SKELETON (gsignond_dbus_remote_plugin_v1_skeleton_get_type ())
+#define GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_SKELETON, GSignondDbusRemotePluginV1Skeleton))
+#define GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_SKELETON, GSignondDbusRemotePluginV1SkeletonClass))
+#define GSIGNOND_DBUS_REMOTE_PLUGIN_V1_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_SKELETON, GSignondDbusRemotePluginV1SkeletonClass))
+#define GSIGNOND_DBUS_IS_REMOTE_PLUGIN_V1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_SKELETON))
+#define GSIGNOND_DBUS_IS_REMOTE_PLUGIN_V1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSIGNOND_DBUS_TYPE_REMOTE_PLUGIN_V1_SKELETON))
-typedef struct _GSignondDbusRemotePluginSkeleton GSignondDbusRemotePluginSkeleton;
-typedef struct _GSignondDbusRemotePluginSkeletonClass GSignondDbusRemotePluginSkeletonClass;
-typedef struct _GSignondDbusRemotePluginSkeletonPrivate GSignondDbusRemotePluginSkeletonPrivate;
+typedef struct _GSignondDbusRemotePluginV1Skeleton GSignondDbusRemotePluginV1Skeleton;
+typedef struct _GSignondDbusRemotePluginV1SkeletonClass GSignondDbusRemotePluginV1SkeletonClass;
+typedef struct _GSignondDbusRemotePluginV1SkeletonPrivate GSignondDbusRemotePluginV1SkeletonPrivate;
-struct _GSignondDbusRemotePluginSkeleton
+struct _GSignondDbusRemotePluginV1Skeleton
{
/*< private >*/
GDBusInterfaceSkeleton parent_instance;
- GSignondDbusRemotePluginSkeletonPrivate *priv;
+ GSignondDbusRemotePluginV1SkeletonPrivate *priv;
};
-struct _GSignondDbusRemotePluginSkeletonClass
+struct _GSignondDbusRemotePluginV1SkeletonClass
{
GDBusInterfaceSkeletonClass parent_class;
};
-GType gsignond_dbus_remote_plugin_skeleton_get_type (void) G_GNUC_CONST;
+GType gsignond_dbus_remote_plugin_v1_skeleton_get_type (void) G_GNUC_CONST;
-GSignondDbusRemotePlugin *gsignond_dbus_remote_plugin_skeleton_new (void);
+GSignondDbusRemotePluginV1 *gsignond_dbus_remote_plugin_v1_skeleton_new (void);
G_END_DECLS
g_object_unref (info->adapter);
g_slice_free (_SignonuiDbusInfo, info);
}
-
- if (error) g_error_free (error);
+ else if (error) g_error_free (error);
if (reply) g_variant_unref (reply);
}
g_object_unref (info->adapter);
g_slice_free (_SignonuiDbusInfo, info);
}
-
+ else if (error) g_error_free (error);
if (reply) g_variant_unref (reply);
- if (error) g_error_free (error);
}
gboolean
g_object_unref (info->adapter);
g_slice_free (_SignonuiDbusInfo, info);
}
+ else if (error) g_error_free (error);
if (reply) g_variant_unref (reply);
- if (error) g_error_free (error);
}
gboolean
#define GSIGNOND_DAEMON_INTERFACE GSIGNOND_SERVICE_PREFIX ".AuthService"
#define GSIGNOND_IDENTITY_INTERFACE GSIGNOND_SERVICE_PREFIX ".Identity"
#define GSIGNOND_AUTH_SESSION_INTERFACE GSIGNOND_SERVICE_PREFIX ".AuthSession"
-#define GSIGNOND_PLUGIN_OBJECTPATH GSIGNOND_DAEMON_OBJECTPATH "/Plugin"
+#define GSIGNOND_PLUGIN_OBJECTPATH "/"
#define SIGNONUI_SERVICE "com.google.code.AccountsSSO.gSingleSignOn.UI"
#define SIGNONUI_OBJECTPATH "/"
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
- <interface name="com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin">
+ <interface name="com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.V1">
+ <property type='s' name='method' access='read'/>
+ <property type='as' name='mechanisms' access='read'/>
<method name="cancel">
</method>
<method name="requestInitial">
<method name="refresh">
<arg name="uiData" type="a{sv}" direction="in"/>
</method>
- <method name="getInfo">
- <arg name="type" type="s" direction="out"/>
- <arg name="mechanisms" type="as" direction="out"/>
- </method>
<signal name="response">
<arg name="sessionData" type="a{sv}" direction="out"/>
if (secret)
gsignond_session_data_set_secret (session_data, secret);
}
+ GSequence *realms =
+ gsignond_identity_info_get_realms (self->priv->identity_info);
+ if (realms)
+ gsignond_session_data_set_allowed_realms (session_data,
+ realms);
}
_ProcessData * data = g_slice_new0 (_ProcessData);
}
if (self->priv->identity_info) {
- g_hash_table_unref ((GHashTable *)self->priv->identity_info);
+ gsignond_identity_info_unref (self->priv->identity_info);
self->priv->identity_info = NULL;
}
g_object_new (GSIGNOND_TYPE_AUTH_SESSION,
"method", method, NULL);
auth_session->priv->proxy = proxy;
- auth_session->priv->identity_info = g_hash_table_ref ((GHashTable *)info);
+ auth_session->priv->identity_info = gsignond_identity_info_ref (info);
auth_session->priv->token_data = token_data ? gsignond_dictionary_ref(token_data)
: gsignond_dictionary_new();
* 02110-1301 USA
*/
-#include "gsignond-daemon.h"
-
#include <gmodule.h>
+#include "config.h"
+
+#include "gsignond-daemon.h"
+
#include "gsignond/gsignond-config.h"
#include "gsignond/gsignond-log.h"
#include "gsignond/gsignond-error.h"
{
gboolean res = TRUE;
gboolean symfound;
- const gchar *ext_path;
+ const gchar *ext_path = GSIGNOND_EXTENSIONS_DIR;
const gchar *ext_name;
gchar *mod_name;
gchar *mod_filename;
gchar *initf_name;
GSignondExtension* (*ext_init) (void);
- ext_path = gsignond_config_get_string (self->priv->config,
- GSIGNOND_CONFIG_GENERAL_EXTENSIONS_DIR);
+# ifdef ENABLE_DEBUG
+ const gchar *env_val = g_getenv ("SSO_EXTENSIONS_DIR");
+ if (env_val)
+ ext_path = env_val;
+# endif
ext_name = gsignond_config_get_string (self->priv->config,
GSIGNOND_CONFIG_GENERAL_EXTENSION);
if (ext_name && !ext_path) return FALSE;
DBG("register_new_identity: cache size : %d", g_hash_table_size(daemon->priv->identities));
identity = gsignond_identity_new (daemon, info);
if (identity == NULL) {
- gsignond_dictionary_unref (info);
+ gsignond_identity_info_unref (info);
ERR("Unable to register new identity");
if (error) *error = gsignond_get_gerror_for_id (GSIGNOND_ERROR_INTERNAL_SERVER, "Internal server error");
return NULL;
gsignond_security_context_list_free (acl); \
if (!valid) { \
WARN ("identity access check failed"); \
- gsignond_dictionary_unref (info); \
+ gsignond_identity_info_unref (info); \
if (error) { \
*error = gsignond_get_gerror_for_id (GSIGNOND_ERROR_PERMISSION_DENIED, "Can not read identity"); \
} \
identity = GSIGNOND_IDENTITY(g_hash_table_lookup (daemon->priv->identities, GUINT_TO_POINTER(id)));
if (identity) {
identity_info = gsignond_identity_get_identity_info (identity);
+ gsignond_identity_info_ref (identity_info);
VALIDATE_IDENTITY_READ_ACCESS (identity_info, ctx, NULL);
DBG ("using cased Identity '%p' for id %d", identity, id);
+ gsignond_identity_info_unref (identity_info);
return GSIGNOND_IDENTITY (g_object_ref (identity));
}
* 02110-1301 USA
*/
-#include "gsignond-identity.h"
+#include <ctype.h>
#include <string.h>
+#include "gsignond-identity.h"
#include "gsignond/gsignond-log.h"
#include "gsignond/gsignond-error.h"
+#include "gsignond/gsignond-config-dbus.h"
#include "gsignond-daemon.h"
#include "gsignond-identity-enum-types.h"
#include "gsignond-auth-session.h"
-#include "gsignond/gsignond-config-dbus.h"
#include "common/gsignond-identity-info-internal.h"
#include "plugins/gsignond-plugin-proxy-factory.h"
return FALSE;
}
- GSignondIdentityInfo *info = NULL;
GVariant *vinfo = NULL;
if (!identity->priv->info) {
VALIDATE_IDENTITY_READ_ACCESS (identity, ctx, NULL);
- info = gsignond_identity_info_copy (identity->priv->info);
-
- /* remove password */
- gsignond_identity_info_remove_secret (info);
-
- /* remove username if its secret */
- if (gsignond_identity_info_get_is_username_secret (info))
- gsignond_identity_info_remove_username (info);
-
/* prepare identity info, excluding password and username if secret */
- vinfo = gsignond_dictionary_to_variant (identity->priv->info);
- gsignond_identity_info_unref (info);
+ vinfo = gsignond_identity_info_to_variant (identity->priv->info);
if (!vinfo) {
WARN ("identity info to variant convertion failed.");
if (error) *error = gsignond_get_gerror_for_id (GSIGNOND_ERROR_IDENTITY_ERR, "Identity internal eror.");
GSignondDaemon *daemon;
guint32 identity_id;
}_StoreCachedTokenCbInfo;
+
static void
_store_cached_token_data (const gchar *method, GSignondAuthSession *session, _StoreCachedTokenCbInfo *data)
{
gsignond_daemon_store_identity_data (data->daemon, data->identity_id, method, token_data);
}
+/* check for alphanumeric characters in a string */
+static long
+_check_string (const gchar *strptr)
+{
+ if (strptr == NULL)
+ return -1;
+ while (*strptr != '\0') {
+ if (isalnum(*strptr))
+ return 1;
+ strptr++;
+ }
+ return 0;
+}
+
guint32
gsignond_identity_store (GSignondIdentity *identity,
const GVariant *info,
const GSignondSecurityContext *ctx,
GError **error)
{
+ GSignondIdentityPrivate *priv = NULL;
GSignondIdentityInfo *identity_info = NULL;
gboolean was_new_identity = FALSE;
+ GSignondSecurityContext *owner_ctx = NULL;
GSignondSecurityContextList *contexts = NULL;
- GSignondSecurityContext *owner = NULL;
+ GSignondIdentityInfoPropFlags flags;
+ GSignondIdentityInfoPropFlags flag_mask;
guint32 id;
if (!(identity && GSIGNOND_IS_IDENTITY (identity))) {
if (error) *error = gsignond_get_gerror_for_id (GSIGNOND_ERROR_UNKNOWN, "Unknown error");
return 0;
}
-
+
+ priv = identity->priv;
+
VALIDATE_IDENTITY_WRITE_ACCESS (identity, ctx, 0);
- identity_info = gsignond_dictionary_new_from_variant ((GVariant *)info);
- /* dont trust 'identity id' passed via 'info' */
- id = gsignond_identity_info_get_id (identity->priv->info);
- gsignond_identity_info_set_id (identity_info, id);
+ was_new_identity = gsignond_identity_info_get_is_identity_new (priv->info);
- was_new_identity = gsignond_identity_info_get_is_identity_new (identity_info);
+ identity_info = gsignond_identity_info_new_from_variant ((GVariant *)info);
- contexts = gsignond_identity_info_get_access_control_list (identity_info);
- if (!contexts) {
- contexts = gsignond_identity_info_get_access_control_list (identity->priv->info);
- gsignond_identity_info_set_access_control_list (identity_info, contexts);
+ /* if owner context is non-NULL but empty, remove the dictionary item,
+ * it will get filled up later when actual store happens */
+ owner_ctx = gsignond_identity_info_get_owner (identity_info);
+ if (owner_ctx) {
+ const gchar *sys_ctx =
+ gsignond_security_context_get_system_context (owner_ctx);
+ if (_check_string (sys_ctx) <= 0) {
+ gsignond_identity_info_remove_owner (identity_info);
+ }
+ gsignond_security_context_free (owner_ctx);
+ owner_ctx = NULL;
}
- else {
+
+ contexts = gsignond_identity_info_get_access_control_list (identity_info);
+ if (contexts) {
VALIDATE_IDENTITY_WRITE_ACL (identity, ctx, 0);
+ gsignond_security_context_list_free (contexts);
}
- gsignond_security_context_list_free (contexts);
- owner = gsignond_identity_info_get_owner (identity_info);
- if (!owner) {
- owner = gsignond_identity_info_get_owner (identity->priv->info);
- gsignond_identity_info_set_owner (identity_info, owner);
- }
- gsignond_security_context_free (owner);
-
-
- /* update object cache */
- if (identity->priv->info)
- gsignond_identity_info_unref (identity->priv->info);
- identity->priv->info = identity_info;
+ flags = gsignond_identity_info_get_edit_flags (identity_info);
+
+ /* select only interested field */
+ flag_mask = (IDENTITY_INFO_PROP_USERNAME |
+ IDENTITY_INFO_PROP_USERNAME_IS_SECRET |
+ IDENTITY_INFO_PROP_SECRET |
+ IDENTITY_INFO_PROP_STORE_SECRET |
+ IDENTITY_INFO_PROP_CAPTION |
+ IDENTITY_INFO_PROP_TYPE |
+ IDENTITY_INFO_PROP_METHODS |
+ IDENTITY_INFO_PROP_REALMS |
+ IDENTITY_INFO_PROP_ACL);
+ if (was_new_identity)
+ flag_mask |= IDENTITY_INFO_PROP_OWNER;
+ flags &= flag_mask;
+ gsignond_identity_info_selective_copy (priv->info, identity_info, flags);
+
+ /* FIXME : either username/secret changed reset the identity
+ * valdated state to FALSE ???
+ */
+
+ gsignond_identity_info_unref (identity_info);
/* Ask daemon to store identity info to db */
- id = gsignond_daemon_store_identity (identity->priv->owner, identity);
+ id = gsignond_daemon_store_identity (priv->owner, identity);
if (!id) {
if (error) *error = gsignond_get_gerror_for_id (GSIGNOND_ERROR_STORE_FAILED,
"Failed to store identity");
+ /*FIXME: Roll-back the local changes */
}
else {
if (was_new_identity) {
_set_id (identity, id);
- _StoreCachedTokenCbInfo data = { identity->priv->owner, id };
+ _StoreCachedTokenCbInfo data = { priv->owner, id };
/* store any cached token data if available at auth sessions */
- g_hash_table_foreach (identity->priv->auth_sessions, (GHFunc)_store_cached_token_data, (gpointer)&data);
+ g_hash_table_foreach (priv->auth_sessions, (GHFunc)_store_cached_token_data, (gpointer)&data);
}
g_signal_emit (identity, signals[SIG_INFO_UPDATED], 0, GSIGNOND_IDENTITY_DATA_UPDATED);
-SUBDIRS = plugind
+include $(top_srcdir)/common.mk
noinst_LTLIBRARIES = libgsignond-plugins.la
-I$(top_srcdir)/src \
-I$(top_srcdir)/include \
-I$(top_builddir)/src \
+ -DGSIGNOND_PLUGINLOADERS_DIR='"$(pluginloadersdir)"' \
+ -DGSIGNOND_GPLUGINS_DIR='"$(gpluginsdir)"' \
$(GSIGNOND_CFLAGS)
libgsignond_plugins_la_LIBADD = \
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.mk
subdir = src/daemon/plugins
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_gnu_make.m4 \
$(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(libgsignond_plugins_la_SOURCES)
DIST_SOURCES = $(libgsignond_plugins_la_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-dvi-recursive install-exec-recursive \
- install-html-recursive install-info-recursive \
- install-pdf-recursive install-ps-recursive install-recursive \
- installcheck-recursive installdirs-recursive pdf-recursive \
- ps-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
- $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
- distdir
ETAGS = etags
CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-SUBDIRS = plugind
+extensionsdir = $(pkglibdir)/extensions
+pluginloadersdir = $(pkglibdir)/pluginloaders
+gpluginsdir = $(pkglibdir)/gplugins
noinst_LTLIBRARIES = libgsignond-plugins.la
libgsignond_plugins_la_CPPFLAGS = \
-I$(top_builddir) \
-I$(top_srcdir)/src \
-I$(top_srcdir)/include \
-I$(top_builddir)/src \
+ -DGSIGNOND_PLUGINLOADERS_DIR='"$(pluginloadersdir)"' \
+ -DGSIGNOND_GPLUGINS_DIR='"$(gpluginsdir)"' \
$(GSIGNOND_CFLAGS)
libgsignond_plugins_la_LIBADD = \
gsignond-plugin-remote.c
CLEANFILES =
-all: all-recursive
+all: all-am
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/common.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
clean-libtool:
-rm -rf .libs _libs
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-# (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
- @fail= failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-$(RECURSIVE_CLEAN_TARGETS):
- @fail= failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- dot_seen=no; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- rev=''; for subdir in $$list; do \
- if test "$$subdir" = "."; then :; else \
- rev="$$subdir $$rev"; \
- fi; \
- done; \
- rev="$$rev ."; \
- target=`echo $@ | sed s/-recursive//`; \
- for subdir in $$rev; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done && test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
-
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
mkid -fID $$unique
tags: TAGS
-TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
fi; \
fi
ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
|| exit 1; \
fi; \
done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
check-am: all-am
-check: check-recursive
+check: check-am
all-am: Makefile $(LTLIBRARIES)
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-installcheck: installcheck-recursive
+installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
+clean: clean-am
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
mostlyclean-am
-distclean: distclean-recursive
+distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
-dvi: dvi-recursive
+dvi: dvi-am
dvi-am:
-html: html-recursive
+html: html-am
html-am:
-info: info-recursive
+info: info-am
info-am:
install-data-am:
-install-dvi: install-dvi-recursive
+install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
-install-html: install-html-recursive
+install-html: install-html-am
install-html-am:
-install-info: install-info-recursive
+install-info: install-info-am
install-info-am:
install-man:
-install-pdf: install-pdf-recursive
+install-pdf: install-pdf-am
install-pdf-am:
-install-ps: install-ps-recursive
+install-ps: install-ps-am
install-ps-am:
installcheck-am:
-maintainer-clean: maintainer-clean-recursive
+maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
-mostlyclean: mostlyclean-recursive
+mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
-pdf: pdf-recursive
+pdf: pdf-am
pdf-am:
-ps: ps-recursive
+ps: ps-am
ps-am:
uninstall-am:
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
- install-am install-strip tags-recursive
+.MAKE: install-am install-strip
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
- all all-am check check-am clean clean-generic clean-libtool \
- clean-noinstLTLIBRARIES ctags ctags-recursive distclean \
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLTLIBRARIES ctags distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
- installdirs-am maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
- uninstall uninstall-am
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
/*
* This file is part of gsignond
*
- * Copyright (C) 2012 Intel Corporation.
+ * Copyright (C) 2012-2014 Intel Corporation.
*
* Contact: Alexander Kanavin <alex.kanavin@gmail.com>
*
#include <string.h>
#include <stdio.h>
+#include "config.h"
+
#include "gsignond/gsignond-log.h"
-#include "common/gsignond-plugin-loader.h"
#include "gsignond-plugin-proxy-factory.h"
#include "gsignond-plugin-remote.h"
static GParamSpec *obj_properties[N_PROPERTIES] = { NULL, };
+
+static gchar** _get_plugin_names_from_loader(const gchar* loader_path)
+{
+ gchar* command_line = g_strdup_printf("%s --list-plugins", loader_path);
+ gchar* standard_output = NULL;
+ gchar* standard_error = NULL;
+ gint exit_status;
+ GError* error = NULL;
+
+ if (g_spawn_command_line_sync(command_line, &standard_output, &standard_error,
+ &exit_status, &error)) {
+ DBG("Loader %s returned plugin list %s", loader_path, standard_output);
+ gchar** plugin_list = g_strsplit(standard_output, "\n", 0);
+ g_free(command_line);
+ g_free(standard_output);
+ g_free(standard_error);
+ return plugin_list;
+ } else {
+ DBG("Loader %s returned exit status %d, error %s", loader_path,
+ exit_status, error->message);
+ g_error_free(error);
+ g_free(command_line);
+ return NULL;
+ }
+}
+
+static void _add_plugins(GSignondPluginProxyFactory* self, const gchar* loader_path, gchar** plugins)
+{
+ DBG ("Checking mechanisms of plugins provided by %s", loader_path);
+ gchar **plugin_iter = plugins;
+ while (*plugin_iter) {
+ GSignondPlugin* plugin = GSIGNOND_PLUGIN (
+ gsignond_plugin_remote_new (loader_path, *plugin_iter));
+ if (plugin != NULL) {
+ gchar* plugin_type;
+ gchar** mechanisms;
+ g_object_get(plugin,
+ "type", &plugin_type,
+ "mechanisms", &mechanisms,
+ NULL);
+ if (g_strcmp0 (plugin_type, *plugin_iter) == 0) {
+ const gchar* loader = g_hash_table_lookup(self->methods_to_loader_paths,
+ plugin_type);
+ // Do not replace plugins provided by gsignond-plugind with
+ // 3rd party plugins
+ if (loader && g_str_has_suffix(loader, "/gsignond-plugind")) {
+ DBG("Do not replace plugin %s with plugin provided by loader %s",
+ plugin_type, loader_path);
+ g_strfreev(mechanisms);
+ } else {
+ DBG("Adding plugin %s to plugin enumeration", plugin_type);
+ g_hash_table_insert(self->methods_to_mechanisms,
+ g_strdup(plugin_type), mechanisms);
+ g_hash_table_insert(self->methods_to_loader_paths,
+ g_strdup(plugin_type), g_strdup(loader_path));
+ }
+ } else {
+ DBG("Plugin returned type property %s, which does not match requested type %s",
+ plugin_type, *plugin_iter);
+ g_strfreev(mechanisms);
+ }
+ g_free(plugin_type);
+ g_object_unref(plugin);
+ }
+ plugin_iter++;
+ }
+}
+
+static void _insert_method(gchar* method, gchar*** method_iter_p)
+{
+ *(*method_iter_p) = method;
+ (*method_iter_p)++;
+}
+
+
static void _enumerate_plugins(GSignondPluginProxyFactory* self)
{
- GDir* plugin_dir = g_dir_open(gsignond_config_get_string (self->config,
- GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR), 0, NULL);
- if (plugin_dir == NULL) {
+ const gchar *loaders_path = GSIGNOND_PLUGINLOADERS_DIR;
+# ifdef ENABLE_DEBUG
+ const gchar* env_val = g_getenv("SSO_BIN_DIR");
+ if (env_val)
+ loaders_path = env_val;
+# endif
+
+ GDir* loaders_dir = g_dir_open(loaders_path, 0, NULL);
+ if (loaders_dir == NULL) {
WARN ("plugin directory empty");
return;
}
-
- int n_plugins = 0;
- while (g_dir_read_name(plugin_dir) != NULL)
- n_plugins++;
- g_dir_rewind(plugin_dir);
-
- self->methods = g_malloc0(sizeof(gchar*) * (n_plugins + 1));
- DBG ("enumerate plugins in %s (factory=%p)",
- gsignond_config_get_string (self->config,
- GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR),
- self
- );
- gchar **method_iter = self->methods;
+ DBG ("Getting lists of plugins from loaders in %s (factory=%p)", loaders_path, self);
while (1) {
- const gchar* plugin_soname = g_dir_read_name(plugin_dir);
- if (plugin_soname == NULL)
+ const gchar* loader_name = g_dir_read_name(loaders_dir);
+ if (loader_name == NULL)
break;
- if (g_str_has_prefix(plugin_soname, "lib") &&
- g_str_has_suffix(plugin_soname, ".so")) {
- gchar* plugin_name = g_strndup(plugin_soname+3,
- strlen(plugin_soname) - 6);
- GSignondPlugin* plugin = GSIGNOND_PLUGIN (
- gsignond_plugin_remote_new (self->config, plugin_name));
- if (plugin != NULL) {
- gchar* plugin_type;
- gchar** mechanisms;
- g_object_get(plugin,
- "type", &plugin_type,
- "mechanisms", &mechanisms,
- NULL);
- if (g_strcmp0 (plugin_type, plugin_name) == 0) {
- *method_iter = plugin_type;
- method_iter++;
- g_hash_table_insert(self->mechanisms,
- plugin_type, mechanisms);
- } else {
- g_free(plugin_type);
- g_strfreev(mechanisms);
- }
- g_object_unref(plugin);
- }
- g_free(plugin_name);
+ gchar* loader_path = g_build_filename(loaders_path, loader_name, NULL);
+ gchar** plugins = _get_plugin_names_from_loader(loader_path);
+ if (plugins != NULL) {
+ _add_plugins(self, loader_path, plugins);
+ g_strfreev(plugins);
}
+ g_free(loader_path);
}
- g_dir_close(plugin_dir);
+ g_dir_close(loaders_dir);
+
+ // make a flat list of available plugin types
+ int n_plugins = g_hash_table_size(self->methods_to_mechanisms);
+ self->methods = g_new0(gchar*, n_plugins + 1);
+ gchar **method_iter = self->methods;
+
+ GList* keys = g_hash_table_get_keys(self->methods_to_mechanisms);
+ g_list_foreach(keys, (GFunc)_insert_method, &method_iter);
+
+ g_list_free(keys);
}
static GObject *
g_hash_table_destroy (self->plugins);
self->plugins = NULL;
}
- if (self->mechanisms) {
- g_hash_table_destroy (self->mechanisms);
- self->mechanisms = NULL;
+ if (self->methods_to_mechanisms) {
+ g_hash_table_destroy (self->methods_to_mechanisms);
+ self->methods_to_mechanisms = NULL;
+ }
+ if (self->methods_to_loader_paths) {
+ g_hash_table_destroy (self->methods_to_loader_paths);
+ self->methods_to_loader_paths = NULL;
}
if (self->methods) {
g_free (self->methods);
static void
gsignond_plugin_proxy_factory_init (GSignondPluginProxyFactory *self)
{
- self->mechanisms = g_hash_table_new_full((GHashFunc)g_str_hash,
+ self->methods_to_mechanisms = g_hash_table_new_full((GHashFunc)g_str_hash,
(GEqualFunc)g_str_equal,
(GDestroyNotify)g_free,
(GDestroyNotify)g_strfreev);
+ self->methods_to_loader_paths = g_hash_table_new_full((GHashFunc)g_str_hash,
+ (GEqualFunc)g_str_equal,
+ (GDestroyNotify)g_free,
+ (GDestroyNotify)g_free);
+
self->plugins = g_hash_table_new_full ((GHashFunc)g_str_hash,
(GEqualFunc)g_str_equal,
(GDestroyNotify)g_free,
_enumerate_plugins (factory);
}
- if (g_hash_table_lookup(factory->mechanisms, plugin_type) == NULL) {
+ if (g_hash_table_lookup(factory->methods_to_mechanisms, plugin_type) == NULL) {
DBG("Plugin not known %s", plugin_type);
return NULL;
}
return proxy;
}
- proxy = gsignond_plugin_proxy_new(factory->config, plugin_type);
+ proxy = gsignond_plugin_proxy_new(g_hash_table_lookup(factory->methods_to_loader_paths, plugin_type), plugin_type,
+ gsignond_config_get_integer (factory->config, GSIGNOND_CONFIG_PLUGIN_TIMEOUT));
if (proxy == NULL) {
return NULL;
}
return proxy;
}
-gboolean gsignond_plugin_proxy_factory_add_plugin(
- GSignondPluginProxyFactory* factory,
- GSignondPluginProxy* proxy)
-{
- g_return_val_if_fail (factory && GSIGNOND_IS_PLUGIN_PROXY_FACTORY(factory), FALSE);
- g_return_val_if_fail (proxy && GSIGNOND_IS_PLUGIN_PROXY(proxy), FALSE);
-
- gchar* plugin_type = NULL;
- g_object_get (proxy, "type", &plugin_type, NULL);
-
- if (g_hash_table_contains(factory->plugins, plugin_type)) {
- g_free(plugin_type);
- return FALSE;
- }
- g_object_ref(proxy);
- DBG("add plugin %s -> %p", plugin_type, proxy);
- g_hash_table_insert(factory->plugins, plugin_type, proxy);
-
- return TRUE;
-}
-
const gchar**
gsignond_plugin_proxy_factory_get_plugin_types(
GSignondPluginProxyFactory* factory)
gsignond_plugin_proxy_factory_get_plugin_mechanisms(
GSignondPluginProxyFactory* factory, const gchar* plugin_type)
{
- g_return_val_if_fail(factory->mechanisms, NULL);
+ g_return_val_if_fail(factory->methods_to_mechanisms, NULL);
if (factory->methods == NULL) {
_enumerate_plugins (factory);
}
- return g_hash_table_lookup(factory->mechanisms, plugin_type);
+ return g_hash_table_lookup(factory->methods_to_mechanisms, plugin_type);
}
GHashTable* plugins;
gchar** methods;
- GHashTable* mechanisms;
+ GHashTable* methods_to_mechanisms;
+ GHashTable* methods_to_loader_paths;
};
struct _GSignondPluginProxyFactoryClass
gsignond_plugin_proxy_factory_get_plugin(GSignondPluginProxyFactory* factory,
const gchar* plugin_type);
-gboolean gsignond_plugin_proxy_factory_add_plugin(
- GSignondPluginProxyFactory* factory,
- GSignondPluginProxy* proxy);
-
const gchar**
gsignond_plugin_proxy_factory_get_plugin_types(
GSignondPluginProxyFactory* factory);
/*
* This file is part of gsignond
*
- * Copyright (C) 2012 Intel Corporation.
+ * Copyright (C) 2012-2014 Intel Corporation.
*
* Contact: Alexander Kanavin <alex.kanavin@gmail.com>
*
#include "gsignond/gsignond-error.h"
#include "gsignond/gsignond-log.h"
#include "gsignond/gsignond-config.h"
-#include "common/gsignond-plugin-loader.h"
#include "daemon/gsignond-auth-session.h"
#include "gsignond-plugin-proxy.h"
#include "gsignond-plugin-remote.h"
PROP_TYPE,
PROP_MECHANISMS,
- PROP_CONFIG,
+ PROP_LOADERPATH,
N_PROPERTIES
};
struct _GSignondPluginProxyPrivate
{
- GSignondConfig *config;
+ gchar* loader_path;
gchar* plugin_type;
GSignondPlugin* plugin;
GQueue* session_queue;
/* update the object state depending on constructor properties */
GSignondPluginProxy* self = GSIGNOND_PLUGIN_PROXY (obj);
GSignondPluginProxyPrivate *priv = self->priv;
- priv->plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new (priv->config,
+ priv->plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new (priv->loader_path,
priv->plugin_type));
if (priv->plugin == NULL) {
g_free (self->priv->plugin_type);
priv->plugin_type = g_value_dup_string (value);
break;
- case PROP_CONFIG:
- g_assert (self->priv->config == NULL);
- priv->config = g_value_dup_object (value);
+ case PROP_LOADERPATH:
+ g_assert (self->priv->loader_path == NULL);
+ priv->loader_path = g_value_dup_string (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
g_object_get_property (G_OBJECT(priv->plugin),
"mechanisms", value);
break;
- case PROP_CONFIG:
- g_value_set_object (value, priv->config);
+ case PROP_LOADERPATH:
+ g_value_set_string (value, priv->loader_path);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
g_object_unref (priv->plugin);
priv->plugin = NULL;
}
- if (priv->config) {
- g_object_unref (priv->config);
- priv->config = NULL;
- }
/* Chain up to the parent class */
G_OBJECT_CLASS (gsignond_plugin_proxy_parent_class)->dispose (gobject);
g_free (priv->plugin_type);
priv->plugin_type = NULL;
}
+ if (priv->loader_path) {
+ g_free (priv->loader_path);
+ priv->loader_path = NULL;
+ }
if (priv->session_queue)
{
g_queue_free_full (priv->session_queue,
"List of plugin mechanisms",
G_TYPE_STRV, G_PARAM_READABLE);
- obj_properties[PROP_CONFIG] = g_param_spec_object ("config",
- "config",
- "Configuration object",
- GSIGNOND_TYPE_CONFIG,
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_READWRITE |
+ obj_properties[PROP_LOADERPATH] = g_param_spec_string ("loaderpath",
+ "Path to loader",
+ "Path to plugin loader for this plugin",
+ "" /* default value */,
+ G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS);
-
+
g_object_class_install_properties (gobject_class,
N_PROPERTIES,
obj_properties);
GSignondPluginProxyPrivate *priv = GSIGNOND_PLUGIN_PROXY_PRIV (self);
self->priv = priv;
- priv->config = NULL;
+ priv->loader_path = NULL;
priv->plugin_type = NULL;
priv->plugin = NULL;
priv->session_queue = g_queue_new ();
GSignondPluginProxy*
gsignond_plugin_proxy_new (
- GSignondConfig *config,
- const gchar *plugin_type)
+ const gchar *loader_path,
+ const gchar *plugin_type,
+ gint timeout)
{
- g_return_val_if_fail (config && plugin_type, NULL);
+ g_return_val_if_fail (loader_path && plugin_type, NULL);
- gint timeout = gsignond_config_get_integer (config, GSIGNOND_CONFIG_PLUGIN_TIMEOUT);
GSignondPluginProxy* proxy = g_object_new (GSIGNOND_TYPE_PLUGIN_PROXY,
- "config", config,
+ "loaderpath", loader_path,
"type", plugin_type,
"auto-dispose", FALSE,
"timeout", timeout,
GSignondPluginProxy*
gsignond_plugin_proxy_new(
- GSignondConfig *config,
- const gchar* plugin_type);
+ const gchar* loader_path,
+ const gchar* plugin_type,
+ gint timeout);
void
gsignond_plugin_proxy_cancel (
struct _GSignondPluginRemotePrivate
{
GDBusConnection *connection;
- GSignondDbusRemotePlugin *dbus_plugin_proxy;
- gchar *plugin_type;
- gchar **plugin_mechanisms;
+ GSignondDbusRemotePluginV1 *dbus_plugin_proxy;
GPid cpid;
guint child_watch_id;
- GIOChannel *err_watch_ch;
- guint err_watch_id;
-
- GMainLoop *main_loop;
gboolean is_plugind_up;
- gboolean unref_in_down_cb;
-
/* Signals */
gulong signal_response;
gulong signal_response_final;
/*
* This file is part of gsignond
*
- * Copyright (C) 2013 Intel Corporation.
+ * Copyright (C) 2013-2014 Intel Corporation.
*
* Contact: Imran Zaman <imran.zaman@intel.com>
*
* 02110-1301 USA
*/
+#include "config.h"
+
#include "gsignond/gsignond-log.h"
#include "gsignond/gsignond-error.h"
#include "gsignond/gsignond-plugin-interface.h"
G_TYPE_INSTANCE_GET_PRIVATE ((obj), GSIGNOND_TYPE_PLUGIN_REMOTE, \
GSignondPluginRemotePrivate)
-#define GSIGNOND_PLUGIND_NAME "gsignond-plugind"
-
static void
_on_child_down_cb (
GPid pid,
DBG ("Plugind(%p) with pid (%d) closed with status %d", plugin, pid,
status);
- if (!g_source_is_destroyed (g_main_current_source ())) {
- if (plugin->priv->main_loop && g_main_loop_is_running (
- plugin->priv->main_loop)) {
- g_main_loop_quit (plugin->priv->main_loop);
- }
- plugin->priv->is_plugind_up = FALSE;
- }
-
- if (plugin->priv->unref_in_down_cb) {
- plugin->priv->unref_in_down_cb = FALSE;
- g_object_unref (plugin);
- }
-}
-
-static gboolean
-_on_child_status_cb (
- GIOChannel *channel,
- GIOCondition condition,
- gpointer data)
-{
- GSignondPluginRemote *plugin = GSIGNOND_PLUGIN_REMOTE (data);
- DBG ("Plugind(%p) with pid (%d) status cb", plugin, plugin->priv->cpid);
-
- if (plugin->priv->main_loop && g_main_loop_is_running (
- plugin->priv->main_loop)) {
- g_main_loop_quit (plugin->priv->main_loop);
- }
-
- if (g_io_channel_get_flags (channel) & G_IO_FLAG_IS_READABLE) {
- gchar string[1];
- GError *error = NULL;
- gsize bytes_read = 0;
- GIOStatus status = g_io_channel_read_chars (channel, string, 1,
- &bytes_read, &error);
- if (status == G_IO_STATUS_NORMAL && error == NULL) {
- if (*string == '1') {
- DBG ("Plugind is UP and READY");
- plugin->priv->is_plugind_up = TRUE;
- } else if (*string == '0') {
- DBG ("Plugind is DOWN");
- plugin->priv->is_plugind_up = FALSE;
- }
- }
- if (error) {
- g_error_free (error);
- }
- }
-
- return FALSE;
-}
-
-static gboolean
-_on_loop_timeout_cb (gpointer data)
-{
- GSignondPluginRemote *self = GSIGNOND_PLUGIN_REMOTE (data);
-
- if (g_main_loop_is_running (self->priv->main_loop)) {
- g_main_loop_quit (self->priv->main_loop);
- }
-
- return FALSE;
-}
-
-static guint
-_create_main_loop_with_timeout (
- GSignondPluginRemote *self,
- GMainContext *context,
- guint timeout)
-{
- guint timer_id = 0;
- GSource *timer = g_timeout_source_new (timeout);
- g_source_set_callback (timer, (GSourceFunc) _on_loop_timeout_cb, self,
- NULL);
- //g_source_attach increments the ref count of the source
- timer_id = g_source_attach (timer, context);
- g_source_unref (timer);
-
- self->priv->main_loop = g_main_loop_new (context, TRUE);
- //loop has ref'd the context
- if (context) {
- g_main_context_unref (context);
- }
- return timer_id;
-}
-
-static void
-_run_main_loop (
- GSignondPluginRemote *self)
-{
- if (self->priv->main_loop) {
- g_main_loop_run (self->priv->main_loop);
- /* attached context gets freed as well, which internally destroys all
- * the attached sources */
- g_main_loop_unref (self->priv->main_loop);
- self->priv->main_loop = NULL;
- }
-}
-
-static void
-_run_main_loop_with_timeout (
- GSignondPluginRemote *self,
- guint timeout)
-{
- guint timer_id = _create_main_loop_with_timeout (self, NULL, timeout);
- _run_main_loop (self);
- g_source_remove (timer_id);
-}
-
-static void
-_run_main_loop_with_ready_watch (
- GSignondPluginRemote *self,
- gint fd,
- guint timeout)
-{
- GIOChannel *ready_watch = NULL;
- GSource *up_source = NULL;
+ plugin->priv->is_plugind_up = FALSE;
- GMainContext *context = g_main_context_new ();
- _create_main_loop_with_timeout (self, context, timeout);
-
- ready_watch = g_io_channel_unix_new (fd);
- up_source = g_io_create_watch (ready_watch, G_IO_IN | G_IO_HUP);
- g_source_set_callback (up_source, (GSourceFunc)_on_child_status_cb, self,
- NULL);
- g_source_attach (up_source, context);
- g_source_unref (up_source);
-
- _run_main_loop (self);
-
- g_io_channel_unref (ready_watch);
}
static void
switch (property_id) {
case PROP_TYPE: {
- if (!self->priv->plugin_type) {
- GError *error = NULL;
- gsignond_dbus_remote_plugin_call_get_info_sync (
- self->priv->dbus_plugin_proxy, &self->priv->plugin_type,
- &self->priv->plugin_mechanisms, NULL, &error);
- if (error) {
- DBG ("Plugin type retrieval error :: %s", error->message);
- g_error_free (error);
- if (self->priv->plugin_type) {
- g_free (self->priv->plugin_type);
- self->priv->plugin_type = NULL;
- }
- }
- }
- g_value_set_string (value, self->priv->plugin_type);
+ g_value_set_string (value,
+ gsignond_dbus_remote_plugin_v1_get_method(self->priv->dbus_plugin_proxy));
break;
}
case PROP_MECHANISMS: {
- if (!self->priv->plugin_mechanisms) {
- GError *error = NULL;
- gsignond_dbus_remote_plugin_call_get_info_sync (
- self->priv->dbus_plugin_proxy, &self->priv->plugin_type,
- &self->priv->plugin_mechanisms, NULL, &error);
- if (error) {
- DBG ("Plugin mechanisms retrieval error :: %s",
- error->message);
- g_error_free (error);
- if (self->priv->plugin_mechanisms) {
- g_strfreev (self->priv->plugin_mechanisms);
- self->priv->plugin_mechanisms = NULL;
- }
- }
- }
- g_value_set_boxed (value, self->priv->plugin_mechanisms);
+ g_value_set_boxed (value,
+ gsignond_dbus_remote_plugin_v1_get_mechanisms(self->priv->dbus_plugin_proxy));
break;
}
default:
}
+static gboolean _check_child_exited(GSignondPluginRemote *self)
+{
+ if (kill (self->priv->cpid, 0) == 0) {
+ WARN ("Plugind has to be killed with SIGKILL");
+ kill (self->priv->cpid, SIGKILL);
+ }
+ return FALSE;
+}
+
static void
gsignond_plugin_remote_dispose (GObject *object)
{
GSignondPluginRemote *self = GSIGNOND_PLUGIN_REMOTE (object);
- self->priv->unref_in_down_cb = FALSE;
-
- if (self->priv->main_loop) {
- if (g_main_loop_is_running (self->priv->main_loop)) {
- g_main_loop_quit (self->priv->main_loop);
- }
- g_main_loop_unref (self->priv->main_loop);
- self->priv->main_loop = NULL;
- }
-
if (self->priv->cpid > 0 && self->priv->is_plugind_up) {
DBG ("Send SIGTERM to Plugind");
kill (self->priv->cpid, SIGTERM);
- _run_main_loop_with_timeout (self, 1000); //1 sec
-
- if (kill (self->priv->cpid, 0) == 0) {
- WARN ("Plugind have to be killed with SIGKILL");
- kill (self->priv->cpid, SIGKILL);
- _run_main_loop_with_timeout (self, 1000); //1 sec
- }
-
- if (self->priv->is_plugind_up) {
- WARN ("Plugind did not exit even after SIGKILL");
- } else {
- DBG ("Plugind DESTROYED");
- }
+ guint check_id = g_timeout_add(1000, (GSourceFunc)_check_child_exited, self);
+ while (self->priv->is_plugind_up)
+ g_main_context_iteration(NULL, TRUE);
+ g_source_remove(check_id);
+ DBG ("Plugind DESTROYED");
}
self->priv->cpid = 0;
self->priv->dbus_plugin_proxy = NULL;
}
- if (self->priv->err_watch_ch) {
- g_io_channel_shutdown (self->priv->err_watch_ch, FALSE, NULL);
- g_io_channel_unref (self->priv->err_watch_ch);
- self->priv->err_watch_ch = NULL;
- if (self->priv->err_watch_id) {
- g_source_remove (self->priv->err_watch_id);
- }
- }
-
G_OBJECT_CLASS (gsignond_plugin_remote_parent_class)->dispose (object);
}
static void
gsignond_plugin_remote_finalize (GObject *object)
{
- GSignondPluginRemote *self = GSIGNOND_PLUGIN_REMOTE (object);
-
- if (self->priv->plugin_type) {
- g_free (self->priv->plugin_type);
- self->priv->plugin_type = NULL;
- }
-
- if (self->priv->plugin_mechanisms) {
- g_strfreev (self->priv->plugin_mechanisms);
- self->priv->plugin_mechanisms = NULL;
- }
+ //GSignondPluginRemote *self = GSIGNOND_PLUGIN_REMOTE (object);
G_OBJECT_CLASS (gsignond_plugin_remote_parent_class)->finalize (object);
}
self->priv->connection = NULL;
self->priv->dbus_plugin_proxy = NULL;
- self->priv->plugin_type = NULL;
- self->priv->plugin_mechanisms = NULL;
self->priv->cpid = 0;
- self->priv->err_watch_ch = NULL;
self->priv->child_watch_id = 0;
- self->priv->main_loop = NULL;
self->priv->is_plugind_up = FALSE;
- self->priv->unref_in_down_cb = FALSE;
}
static void
gpointer user_data)
{
GError *error = NULL;
- GSignondDbusRemotePlugin *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN (object);
+ GSignondDbusRemotePluginV1 *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN_V1 (object);
GSignondPluginRemote *self = GSIGNOND_PLUGIN_REMOTE (user_data);
- gsignond_dbus_remote_plugin_call_cancel_finish (proxy, res, &error);
+ gsignond_dbus_remote_plugin_v1_call_cancel_finish (proxy, res, &error);
if (error) {
gsignond_plugin_error (GSIGNOND_PLUGIN(self), error);
g_error_free (error);
g_return_if_fail (plugin && GSIGNOND_IS_PLUGIN_REMOTE (plugin));
GSignondPluginRemote *self = GSIGNOND_PLUGIN_REMOTE (plugin);
- gsignond_dbus_remote_plugin_call_cancel (
+ gsignond_dbus_remote_plugin_v1_call_cancel (
self->priv->dbus_plugin_proxy, NULL, _cancel_async_cb, self);
}
gpointer user_data)
{
GError *error = NULL;
- GSignondDbusRemotePlugin *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN (object);
+ GSignondDbusRemotePluginV1 *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN_V1 (object);
GSignondPluginRemote *self = GSIGNOND_PLUGIN_REMOTE (user_data);
- gsignond_dbus_remote_plugin_call_request_initial_finish (proxy,
+ gsignond_dbus_remote_plugin_v1_call_request_initial_finish (proxy,
res, &error);
if (error) {
gsignond_plugin_error (GSIGNOND_PLUGIN(self), error);
cache = gsignond_dictionary_to_variant (empty_cache);
gsignond_dictionary_unref(empty_cache);
}
- gsignond_dbus_remote_plugin_call_request_initial (
+ gsignond_dbus_remote_plugin_v1_call_request_initial (
self->priv->dbus_plugin_proxy, data, cache, mechanism, NULL,
_request_initial_async_cb, self);
}
gpointer user_data)
{
GError *error = NULL;
- GSignondDbusRemotePlugin *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN (object);
+ GSignondDbusRemotePluginV1 *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN_V1 (object);
GSignondPluginRemote *self = GSIGNOND_PLUGIN_REMOTE (user_data);
- gsignond_dbus_remote_plugin_call_request_finish (proxy, res, &error);
+ gsignond_dbus_remote_plugin_v1_call_request_finish (proxy, res, &error);
if (error) {
gsignond_plugin_error (GSIGNOND_PLUGIN(self), error);
g_error_free (error);
GSignondPluginRemote *self = GSIGNOND_PLUGIN_REMOTE (plugin);
GVariant *data = gsignond_dictionary_to_variant (session_data);
- gsignond_dbus_remote_plugin_call_request (
+ gsignond_dbus_remote_plugin_v1_call_request (
self->priv->dbus_plugin_proxy, data, NULL, _request_async_cb, self);
}
gpointer user_data)
{
GError *error = NULL;
- GSignondDbusRemotePlugin *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN (object);
+ GSignondDbusRemotePluginV1 *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN_V1 (object);
GSignondPluginRemote *self = GSIGNOND_PLUGIN_REMOTE (user_data);
- gsignond_dbus_remote_plugin_call_user_action_finished_finish (proxy,
+ gsignond_dbus_remote_plugin_v1_call_user_action_finished_finish (proxy,
res, &error);
if (error) {
gsignond_plugin_error (GSIGNOND_PLUGIN(self), error);
GSignondPluginRemote *self = GSIGNOND_PLUGIN_REMOTE (plugin);
GVariant *data = gsignond_dictionary_to_variant (signonui_data);
- gsignond_dbus_remote_plugin_call_user_action_finished (
+ gsignond_dbus_remote_plugin_v1_call_user_action_finished (
self->priv->dbus_plugin_proxy, data, NULL,
_user_action_finished_async_cb, self);
}
gpointer user_data)
{
GError *error = NULL;
- GSignondDbusRemotePlugin *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN (object);
+ GSignondDbusRemotePluginV1 *proxy = GSIGNOND_DBUS_REMOTE_PLUGIN_V1 (object);
GSignondPluginRemote *self = GSIGNOND_PLUGIN_REMOTE (user_data);
- gsignond_dbus_remote_plugin_call_refresh_finish (proxy, res, &error);
+ gsignond_dbus_remote_plugin_v1_call_refresh_finish (proxy, res, &error);
if (error) {
gsignond_plugin_error (GSIGNOND_PLUGIN(self), error);
g_error_free (error);
GSignondPluginRemote *self = GSIGNOND_PLUGIN_REMOTE (plugin);
GVariant *data = gsignond_dictionary_to_variant (signonui_data);
- gsignond_dbus_remote_plugin_call_refresh (
+ gsignond_dbus_remote_plugin_v1_call_refresh (
self->priv->dbus_plugin_proxy, data, NULL, _refresh_async_cb, self);
}
GSignondPluginRemote *
gsignond_plugin_remote_new (
- GSignondConfig *config,
+ const gchar *loader_path,
const gchar *plugin_type)
{
GError *error = NULL;
signal(SIGPIPE, SIG_IGN);
/* Spawn child process */
- argv = g_malloc0 ((3 + 1) * sizeof (gchar *));
- argv[0] = g_build_filename (gsignond_config_get_string (config,
- GSIGNOND_CONFIG_GENERAL_BIN_DIR), GSIGNOND_PLUGIND_NAME, NULL);
- argv[1] = g_module_build_path (gsignond_config_get_string (config,
- GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR), plugin_type);
- argv[2] = g_strdup(plugin_type);
+ argv = g_new0 (gchar *, 2 + 1);
+ argv[0] = g_strdup(loader_path);
+ argv[1] = g_strdup_printf("--load-plugin=%s",plugin_type);
ret = g_spawn_async_with_pipes (NULL, argv, NULL,
G_SPAWN_DO_NOT_REAP_CHILD, NULL,
NULL, &cpid, &cin_fd, &cout_fd, NULL, &error);
plugin->priv->child_watch_id = g_child_watch_add (cpid,
(GChildWatchFunc)_on_child_down_cb, plugin);
plugin->priv->cpid = cpid;
-
- _run_main_loop_with_ready_watch (plugin, cout_fd, 1000);
- if (!plugin->priv->is_plugind_up) {
- DBG ("Plugind (%s) with pid %d process failed to start up", plugin_type,
- cpid);
- /* moved unref'ng into the cb to avoid zombies */
- plugin->priv->unref_in_down_cb = TRUE;
- return NULL;
- }
+ plugin->priv->is_plugind_up = TRUE;
/* Create dbus connection */
stream = gsignond_pipe_stream_new (cout_fd, cin_fd, TRUE);
/* Create dbus proxy */
plugin->priv->dbus_plugin_proxy =
- gsignond_dbus_remote_plugin_proxy_new_sync (
+ gsignond_dbus_remote_plugin_v1_proxy_new_sync (
plugin->priv->connection,
- G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
+ G_DBUS_PROXY_FLAGS_NONE,
NULL,
GSIGNOND_PLUGIN_OBJECTPATH,
NULL,
GSignondPluginRemote *
gsignond_plugin_remote_new (
- GSignondConfig *config,
+ const gchar *loader_path,
const gchar *plugin_type);
G_END_DECLS
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
test-storage-manager.h \
test-storage-manager.c
+libextension_test_la_LDFLAGS = -avoid-version
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
+libextension_test_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libextension_test_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
DEFAULT_INCLUDES =
depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
am__depfiles_maybe = depfiles
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(libextension_test_la_SOURCES)
DIST_SOURCES = $(libextension_test_la_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
extensionsdir = $(pkglibdir)/extensions
-pluginsdir = $(pkglibdir)/plugins
+pluginloadersdir = $(pkglibdir)/pluginloaders
+gpluginsdir = $(pkglibdir)/gplugins
extensions_LTLIBRARIES = libextension-test.la
libextension_test_la_CPPFLAGS = \
-I$(top_builddir) \
test-storage-manager.h \
test-storage-manager.c
+libextension_test_la_LDFLAGS = -avoid-version
all: all-am
.SUFFIXES:
$(am__aclocal_m4_deps):
install-extensionsLTLIBRARIES: $(extensions_LTLIBRARIES)
@$(NORMAL_INSTALL)
+ test -z "$(extensionsdir)" || $(MKDIR_P) "$(DESTDIR)$(extensionsdir)"
@list='$(extensions_LTLIBRARIES)'; test -n "$(extensionsdir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
else :; fi; \
done; \
test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(extensionsdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(extensionsdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(extensionsdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(extensionsdir)"; \
}
rm -f "$${dir}/so_locations"; \
done
libextension-test.la: $(libextension_test_la_OBJECTS) $(libextension_test_la_DEPENDENCIES) $(EXTRA_libextension_test_la_DEPENDENCIES)
- $(AM_V_CCLD)$(LINK) -rpath $(extensionsdir) $(libextension_test_la_OBJECTS) $(libextension_test_la_LIBADD) $(LIBS)
+ $(AM_V_CCLD)$(libextension_test_la_LINK) -rpath $(extensionsdir) $(libextension_test_la_OBJECTS) $(libextension_test_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
tizen-storage-manager.h \
tizen-storage-manager.c
+libextension_tizen_la_LDFLAGS = -avoid-version
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
+libextension_tizen_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libextension_tizen_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
DEFAULT_INCLUDES =
depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
am__depfiles_maybe = depfiles
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(libextension_tizen_la_SOURCES)
DIST_SOURCES = $(libextension_tizen_la_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
extensionsdir = $(pkglibdir)/extensions
-pluginsdir = $(pkglibdir)/plugins
+pluginloadersdir = $(pkglibdir)/pluginloaders
+gpluginsdir = $(pkglibdir)/gplugins
extensions_LTLIBRARIES = libextension-tizen.la
libextension_tizen_la_CPPFLAGS = \
-I$(top_builddir) \
tizen-storage-manager.h \
tizen-storage-manager.c
+libextension_tizen_la_LDFLAGS = -avoid-version
all: all-am
.SUFFIXES:
$(am__aclocal_m4_deps):
install-extensionsLTLIBRARIES: $(extensions_LTLIBRARIES)
@$(NORMAL_INSTALL)
+ test -z "$(extensionsdir)" || $(MKDIR_P) "$(DESTDIR)$(extensionsdir)"
@list='$(extensions_LTLIBRARIES)'; test -n "$(extensionsdir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
else :; fi; \
done; \
test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(extensionsdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(extensionsdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(extensionsdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(extensionsdir)"; \
}
rm -f "$${dir}/so_locations"; \
done
libextension-tizen.la: $(libextension_tizen_la_OBJECTS) $(libextension_tizen_la_DEPENDENCIES) $(EXTRA_libextension_tizen_la_DEPENDENCIES)
- $(AM_V_CCLD)$(LINK) -rpath $(extensionsdir) $(libextension_tizen_la_OBJECTS) $(libextension_tizen_la_LIBADD) $(LIBS)
+ $(AM_V_CCLD)$(libextension_tizen_la_LINK) -rpath $(extensionsdir) $(libextension_tizen_la_OBJECTS) $(libextension_tizen_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
extension_tizen_access_control_manager_security_context_of_keychain (
GSignondAccessControlManager *self)
{
- (void) self;
+ g_return_val_if_fail (self != NULL, NULL);
+
+ const gchar *keychain_sysctx;
+
+ keychain_sysctx = gsignond_config_get_string (
+ self->config,
+ GSIGNOND_CONFIG_GENERAL_KEYCHAIN_SYSCTX);
+ if (!keychain_sysctx)
+# ifdef KEYCHAIN_SYSCTX
+ keychain_sysctx = KEYCHAIN_SYSCTX;
+# else
+ keychain_sysctx = keychainAppId;
+# endif
- return gsignond_security_context_new_from_values (keychainAppId, NULL);
+ return gsignond_security_context_new_from_values (keychain_sysctx, NULL);
}
#include <mntent.h>
#include <ecryptfs.h>
+#include "config.h"
+
#include "tizen-storage-manager.h"
#include "gsignond/gsignond-log.h"
#include "gsignond/gsignond-utils.h"
gchar *user_dir = g_strdup_printf ("gsignond.%s", g_get_user_name ());
const gchar *storage_path = gsignond_config_get_string (
- config,
+ parent->config,
GSIGNOND_CONFIG_GENERAL_STORAGE_PATH);
- if (storage_path)
- parent->location = g_build_filename (storage_path,
- user_dir,
- NULL);
- else
- parent->location = g_build_filename ("/var/db",
- user_dir,
- NULL);
+ if (!storage_path)
+ storage_path = BASE_STORAGE_DIR;
+# ifdef ENABLE_DEBUG
+ const gchar *env_val = g_getenv("SSO_STORAGE_PATH");
+ if (env_val)
+ storage_path = env_val;
+# endif
+ parent->location = g_build_filename (storage_path, user_dir, NULL);
g_free (user_dir);
self->priv->cdir = g_strdup_printf ("%s.efs", parent->location);
DBG ("location %s encryption point %s", parent->location, self->priv->cdir);
+include $(top_srcdir)/common.mk
+
SUBDIRS=
NULL=
-I$(top_srcdir)/src \
-I$(top_srcdir)/include \
-I$(top_builddir)/src \
+ -DGSIGNOND_GPLUGINS_DIR='"$(gpluginsdir)"' \
$(GSIGNOND_CFLAGS)
libgsignond_plugind_daemon_la_LIBADD = \
$(GSIGNOND_LIBS)
libgsignond_plugind_daemon_la_SOURCES = \
+ gsignond-plugin-loader.h \
+ gsignond-plugin-loader.c \
gsignond-plugin-daemon.h \
gsignond-plugin-daemon.c
-bin_PROGRAMS = gsignond-plugind
+pluginloaders_PROGRAMS = gsignond-plugind
gsignond_plugind_SOURCES = \
main.c \
-I$(top_builddir) \
-I$(top_srcdir)/include/ \
-I$(top_srcdir)/src/ \
+ -DGSIGNOND_GPLUGINS_DIR='"$(gpluginsdir)"' \
$(GSIGNOND_CFLAGS) \
$(NULL)
slink:
$(MKDIR_P) $(abs_top_builddir)/src/daemon/.libs
- ln -sf $(abs_top_builddir)/src/daemon/plugins/plugind/.libs/gsignond-plugind $(abs_top_builddir)/src/daemon/.libs/gsignond-plugind
+ ln -sf $(abs_top_builddir)/src/gplugind/.libs/gsignond-plugind $(abs_top_builddir)/src/daemon/.libs/gsignond-plugind
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-bin_PROGRAMS = gsignond-plugind$(EXEEXT)
-subdir = src/daemon/plugins/plugind
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.mk
+pluginloaders_PROGRAMS = gsignond-plugind$(EXEEXT)
+subdir = src/gplugind
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_gnu_make.m4 \
$(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_builddir)/src/daemon/dbus/libgsignond-dbus-glue.la \
$(am__DEPENDENCIES_1)
am_libgsignond_plugind_daemon_la_OBJECTS = \
+ libgsignond_plugind_daemon_la-gsignond-plugin-loader.lo \
libgsignond_plugind_daemon_la-gsignond-plugin-daemon.lo
libgsignond_plugind_daemon_la_OBJECTS = \
$(am_libgsignond_plugind_daemon_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
-am__installdirs = "$(DESTDIR)$(bindir)"
-PROGRAMS = $(bin_PROGRAMS)
+am__installdirs = "$(DESTDIR)$(pluginloadersdir)"
+PROGRAMS = $(pluginloaders_PROGRAMS)
am__objects_1 =
am_gsignond_plugind_OBJECTS = gsignond_plugind-main.$(OBJEXT) \
$(am__objects_1)
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
+extensionsdir = $(pkglibdir)/extensions
+pluginloadersdir = $(pkglibdir)/pluginloaders
+gpluginsdir = $(pkglibdir)/gplugins
SUBDIRS =
NULL =
noinst_LTLIBRARIES = libgsignond-plugind-daemon.la
-I$(top_srcdir)/src \
-I$(top_srcdir)/include \
-I$(top_builddir)/src \
+ -DGSIGNOND_GPLUGINS_DIR='"$(gpluginsdir)"' \
$(GSIGNOND_CFLAGS)
libgsignond_plugind_daemon_la_LIBADD = \
$(GSIGNOND_LIBS)
libgsignond_plugind_daemon_la_SOURCES = \
+ gsignond-plugin-loader.h \
+ gsignond-plugin-loader.c \
gsignond-plugin-daemon.h \
gsignond-plugin-daemon.c
-I$(top_builddir) \
-I$(top_srcdir)/include/ \
-I$(top_srcdir)/src/ \
+ -DGSIGNOND_GPLUGINS_DIR='"$(gpluginsdir)"' \
$(GSIGNOND_CFLAGS) \
$(NULL)
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.mk $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/daemon/plugins/plugind/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/gplugind/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu src/daemon/plugins/plugind/Makefile
+ $(AUTOMAKE) --gnu src/gplugind/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
+$(top_srcdir)/common.mk:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
done
libgsignond-plugind-daemon.la: $(libgsignond_plugind_daemon_la_OBJECTS) $(libgsignond_plugind_daemon_la_DEPENDENCIES) $(EXTRA_libgsignond_plugind_daemon_la_DEPENDENCIES)
$(AM_V_CCLD)$(LINK) $(libgsignond_plugind_daemon_la_OBJECTS) $(libgsignond_plugind_daemon_la_LIBADD) $(LIBS)
-install-binPROGRAMS: $(bin_PROGRAMS)
+install-pluginloadersPROGRAMS: $(pluginloaders_PROGRAMS)
@$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
+ test -z "$(pluginloadersdir)" || $(MKDIR_P) "$(DESTDIR)$(pluginloadersdir)"
+ @list='$(pluginloaders_PROGRAMS)'; test -n "$(pluginloadersdir)" || list=; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p || test -f $$p1; \
while read type dir files; do \
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(pluginloadersdir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(pluginloadersdir)$$dir" || exit $$?; \
} \
; done
-uninstall-binPROGRAMS:
+uninstall-pluginloadersPROGRAMS:
@$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ @list='$(pluginloaders_PROGRAMS)'; test -n "$(pluginloadersdir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-e 's/$$/$(EXEEXT)/' `; \
test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
+ echo " ( cd '$(DESTDIR)$(pluginloadersdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(pluginloadersdir)" && rm -f $$files
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+clean-pluginloadersPROGRAMS:
+ @list='$(pluginloaders_PROGRAMS)'; test -n "$$list" || exit 0; \
echo " rm -f" $$list; \
rm -f $$list || exit $$?; \
test -n "$(EXEEXT)" || exit 0; \
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsignond_plugind-main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_plugind_daemon_la-gsignond-plugin-daemon.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_plugind_daemon_la-gsignond-plugin-loader.Plo@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+libgsignond_plugind_daemon_la-gsignond-plugin-loader.lo: gsignond-plugin-loader.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_plugind_daemon_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_plugind_daemon_la-gsignond-plugin-loader.lo -MD -MP -MF $(DEPDIR)/libgsignond_plugind_daemon_la-gsignond-plugin-loader.Tpo -c -o libgsignond_plugind_daemon_la-gsignond-plugin-loader.lo `test -f 'gsignond-plugin-loader.c' || echo '$(srcdir)/'`gsignond-plugin-loader.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_plugind_daemon_la-gsignond-plugin-loader.Tpo $(DEPDIR)/libgsignond_plugind_daemon_la-gsignond-plugin-loader.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsignond-plugin-loader.c' object='libgsignond_plugind_daemon_la-gsignond-plugin-loader.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_plugind_daemon_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_plugind_daemon_la-gsignond-plugin-loader.lo `test -f 'gsignond-plugin-loader.c' || echo '$(srcdir)/'`gsignond-plugin-loader.c
+
libgsignond_plugind_daemon_la-gsignond-plugin-daemon.lo: gsignond-plugin-daemon.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_plugind_daemon_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_plugind_daemon_la-gsignond-plugin-daemon.lo -MD -MP -MF $(DEPDIR)/libgsignond_plugind_daemon_la-gsignond-plugin-daemon.Tpo -c -o libgsignond_plugind_daemon_la-gsignond-plugin-daemon.lo `test -f 'gsignond-plugin-daemon.c' || echo '$(srcdir)/'`gsignond-plugin-daemon.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_plugind_daemon_la-gsignond-plugin-daemon.Tpo $(DEPDIR)/libgsignond_plugind_daemon_la-gsignond-plugin-daemon.Plo
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) all-local
installdirs: installdirs-recursive
installdirs-am:
- for dir in "$(DESTDIR)$(bindir)"; do \
+ for dir in "$(DESTDIR)$(pluginloadersdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
-clean-am: clean-binPROGRAMS clean-generic clean-libtool \
- clean-noinstLTLIBRARIES mostlyclean-am
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+ clean-pluginloadersPROGRAMS mostlyclean-am
distclean: distclean-recursive
-rm -rf ./$(DEPDIR)
info-am:
-install-data-am:
+install-data-am: install-pluginloadersPROGRAMS
install-dvi: install-dvi-recursive
install-dvi-am:
-install-exec-am: install-binPROGRAMS
+install-exec-am:
install-html: install-html-recursive
ps-am:
-uninstall-am: uninstall-binPROGRAMS
+uninstall-am: uninstall-pluginloadersPROGRAMS
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
- all all-am all-local check check-am clean clean-binPROGRAMS \
- clean-generic clean-libtool clean-noinstLTLIBRARIES ctags \
- ctags-recursive distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs installdirs-am \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
- uninstall-binPROGRAMS
+ all all-am all-local check check-am clean clean-generic \
+ clean-libtool clean-noinstLTLIBRARIES \
+ clean-pluginloadersPROGRAMS ctags ctags-recursive distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-pluginloadersPROGRAMS \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-recursive uninstall uninstall-am \
+ uninstall-pluginloadersPROGRAMS
all-local: slink
slink:
$(MKDIR_P) $(abs_top_builddir)/src/daemon/.libs
- ln -sf $(abs_top_builddir)/src/daemon/plugins/plugind/.libs/gsignond-plugind $(abs_top_builddir)/src/daemon/.libs/gsignond-plugind
+ ln -sf $(abs_top_builddir)/src/gplugind/.libs/gsignond-plugind $(abs_top_builddir)/src/daemon/.libs/gsignond-plugind
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
/*
* This file is part of gsignond
*
- * Copyright (C) 2013 Intel Corporation.
+ * Copyright (C) 2013-2014 Intel Corporation.
*
* Contact: Imran Zaman <imran.zaman@intel.com>
*
#include "gsignond/gsignond-plugin-interface.h"
#include "gsignond/gsignond-log.h"
#include "gsignond/gsignond-error.h"
-#include "common/gsignond-plugin-loader.h"
+#include "gsignond-plugin-loader.h"
#include "common/gsignond-pipe-stream.h"
#include "daemon/dbus/gsignond-dbus-remote-plugin-gen.h"
#include "daemon/dbus/gsignond-dbus.h"
struct _GSignondPluginDaemonPrivate
{
GDBusConnection *connection;
- GSignondDbusRemotePlugin *dbus_remote_plugin;
+ GSignondDbusRemotePluginV1 *dbus_remote_plugin;
GSignondPlugin *plugin;
gchar *plugin_type;
};
{
DBG ("");
g_return_val_if_fail (self && GSIGNOND_IS_PLUGIN_DAEMON (self), FALSE);
- gsignond_dbus_remote_plugin_complete_cancel (self->priv->dbus_remote_plugin,
+ gsignond_dbus_remote_plugin_v1_complete_cancel (self->priv->dbus_remote_plugin,
invocation);
gsignond_plugin_cancel (self->priv->plugin);
DBG ("");
g_return_val_if_fail (self && GSIGNOND_IS_PLUGIN_DAEMON (self), FALSE);
- gsignond_dbus_remote_plugin_complete_request (
+ gsignond_dbus_remote_plugin_v1_complete_request (
self->priv->dbus_remote_plugin, invocation);
GSignondSessionData *data = (GSignondSessionData *)
DBG ("");
g_return_val_if_fail (self && GSIGNOND_IS_PLUGIN_DAEMON (self), FALSE);
- gsignond_dbus_remote_plugin_complete_request_initial (
+ gsignond_dbus_remote_plugin_v1_complete_request_initial (
self->priv->dbus_remote_plugin, invocation);
GSignondSessionData *data = (GSignondSessionData *)
DBG ("");
g_return_val_if_fail (self && GSIGNOND_IS_PLUGIN_DAEMON (self), FALSE);
- gsignond_dbus_remote_plugin_complete_user_action_finished (
+ gsignond_dbus_remote_plugin_v1_complete_user_action_finished (
self->priv->dbus_remote_plugin, invocation);
GSignondSignonuiData *data = (GSignondSignonuiData *)
DBG ("");
g_return_val_if_fail (self && GSIGNOND_IS_PLUGIN_DAEMON (self), FALSE);
- gsignond_dbus_remote_plugin_complete_refresh (
+ gsignond_dbus_remote_plugin_v1_complete_refresh (
self->priv->dbus_remote_plugin, invocation);
GSignondSignonuiData *data = (GSignondSignonuiData *)
return TRUE;
}
-static gboolean
-_handle_get_info_from_dbus (
- GSignondPluginDaemon *self,
- GDBusMethodInvocation *invocation,
- gpointer user_data)
-{
- DBG ("");
- g_return_val_if_fail (self && GSIGNOND_IS_PLUGIN_DAEMON (self), FALSE);
- gchar *type = NULL;
- gchar **mechanisms = NULL;
-
- g_object_get (self->priv->plugin, "type", &type, "mechanisms", &mechanisms,
- NULL);
- gsignond_dbus_remote_plugin_complete_get_info (
- self->priv->dbus_remote_plugin, invocation, (const gchar*)type,
- (const gchar *const *)mechanisms);
- g_free (type);
- g_strfreev (mechanisms);
- return TRUE;
-}
-
static void
_handle_response_from_plugin (
GSignondPluginDaemon *self,
GVariant *data = gsignond_dictionary_to_variant (
(GSignondDictionary *)session_data);
- gsignond_dbus_remote_plugin_emit_response (self->priv->dbus_remote_plugin,
+ gsignond_dbus_remote_plugin_v1_emit_response (self->priv->dbus_remote_plugin,
data);
}
GVariant *data = gsignond_dictionary_to_variant (
(GSignondDictionary *)session_data);
- gsignond_dbus_remote_plugin_emit_response_final (
+ gsignond_dbus_remote_plugin_v1_emit_response_final (
self->priv->dbus_remote_plugin, data);
}
GVariant *data = gsignond_dictionary_to_variant (
(GSignondDictionary *)session_data);
- gsignond_dbus_remote_plugin_emit_store (self->priv->dbus_remote_plugin,
+ gsignond_dbus_remote_plugin_v1_emit_store (self->priv->dbus_remote_plugin,
data);
}
g_return_if_fail (self && GSIGNOND_IS_PLUGIN_DAEMON (self));
GVariant *error = gsignond_error_to_variant (gerror);
- gsignond_dbus_remote_plugin_emit_error (self->priv->dbus_remote_plugin,
+ gsignond_dbus_remote_plugin_v1_emit_error (self->priv->dbus_remote_plugin,
error);
}
g_return_if_fail (self && GSIGNOND_IS_PLUGIN_DAEMON (self));
GVariant *data = gsignond_dictionary_to_variant (ui_data);
- gsignond_dbus_remote_plugin_emit_user_action_required (
+ gsignond_dbus_remote_plugin_v1_emit_user_action_required (
self->priv->dbus_remote_plugin, data);
}
g_return_if_fail (self && GSIGNOND_IS_PLUGIN_DAEMON (self));
GVariant *data = gsignond_dictionary_to_variant (ui_data);
- gsignond_dbus_remote_plugin_emit_refreshed (self->priv->dbus_remote_plugin,
+ gsignond_dbus_remote_plugin_v1_emit_refreshed (self->priv->dbus_remote_plugin,
data);
}
DBG ("");
g_return_if_fail (self && GSIGNOND_IS_PLUGIN_DAEMON (self));
- gsignond_dbus_remote_plugin_emit_status_changed (
+ gsignond_dbus_remote_plugin_v1_emit_status_changed (
self->priv->dbus_remote_plugin, (gint)status,
(const gchar *)message);
}
GSIGNOND_TYPE_PLUGIN_DAEMON, NULL));
/* Load plugin */
- daemon->priv->plugin = gsignond_load_plugin_with_filename (
- (gchar *)plugin_type, (gchar *)filename);
+ daemon->priv->plugin = gsignond_load_plugin_with_filename (plugin_type,
+ filename);
if (!daemon->priv->plugin) {
DBG ("failed to load plugin");
g_object_unref (daemon);
/* Create dbus object */
daemon->priv->dbus_remote_plugin =
- gsignond_dbus_remote_plugin_skeleton_new ();
-
- g_dbus_interface_skeleton_export (
- G_DBUS_INTERFACE_SKELETON(daemon->priv->dbus_remote_plugin),
- daemon->priv->connection, GSIGNOND_PLUGIN_OBJECTPATH, &error);
- if (error) {
- DBG ("failed to register object: %s", error->message);
- g_error_free (error);
- g_object_unref (daemon);
- return NULL;
- }
- DBG("Started plugin daemon '%p' at path '%s' on conneciton '%p'",
- daemon, GSIGNOND_PLUGIN_OBJECTPATH, daemon->priv->connection);
+ gsignond_dbus_remote_plugin_v1_skeleton_new ();
/* Connect dbus remote plugin signals to handlers */
g_signal_connect_swapped (daemon->priv->dbus_remote_plugin,
G_CALLBACK(_handle_user_action_finished_from_dbus), daemon);
g_signal_connect_swapped (daemon->priv->dbus_remote_plugin,
"handle-refresh", G_CALLBACK(_handle_refresh_from_dbus), daemon);
- g_signal_connect_swapped (daemon->priv->dbus_remote_plugin,
- "handle-get-info", G_CALLBACK(_handle_get_info_from_dbus), daemon);
/* Connect plugin signals to handlers */
g_signal_connect_swapped (daemon->priv->plugin, "response",
g_signal_connect (daemon->priv->connection, "closed",
G_CALLBACK(_on_connection_closed), daemon);
+ /* Set DBus properties */
+ gchar* type;
+ gchar** mechanisms;
+
+ g_object_get(daemon->priv->plugin, "type", &type, "mechanisms", &mechanisms, NULL);
+ gsignond_dbus_remote_plugin_v1_set_method(daemon->priv->dbus_remote_plugin, type);
+ gsignond_dbus_remote_plugin_v1_set_mechanisms(daemon->priv->dbus_remote_plugin, (const gchar* const*) mechanisms);
+
+ g_free(type);
+ g_strfreev(mechanisms);
+
+ g_dbus_interface_skeleton_export (
+ G_DBUS_INTERFACE_SKELETON(daemon->priv->dbus_remote_plugin),
+ daemon->priv->connection, GSIGNOND_PLUGIN_OBJECTPATH, &error);
+ if (error) {
+ DBG ("failed to register object: %s", error->message);
+ g_error_free (error);
+ g_object_unref (daemon);
+ return NULL;
+ }
+ DBG("Started plugin daemon '%p' at path '%s' on conneciton '%p'",
+ daemon, GSIGNOND_PLUGIN_OBJECTPATH, daemon->priv->connection);
+
g_dbus_connection_start_message_processing (daemon->priv->connection);
return daemon;
/*
* This file is part of gsignond
*
- * Copyright (C) 2012 Intel Corporation.
+ * Copyright (C) 2012-2014 Intel Corporation.
*
* Contact: Alexander Kanavin <alex.kanavin@gmail.com>
*
#include <gmodule.h>
+#include "config.h"
+
#include "gsignond/gsignond-log.h"
#include "gsignond-plugin-loader.h"
-GSignondPlugin*
-gsignond_load_plugin(
+GSignondPlugin *
+gsignond_load_plugin (
GSignondConfig* config,
- gchar* plugin_type)
+ const gchar *plugin_type)
{
- gchar* plugin_filename = g_module_build_path (
- gsignond_config_get_string (config,
- GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR), plugin_type);
- GSignondPlugin *plugin = gsignond_load_plugin_with_filename (plugin_type,
- plugin_filename);
+ const gchar *plugin_path = GSIGNOND_GPLUGINS_DIR;
+ gchar *plugin_filename;
+ GSignondPlugin *plugin;
+
+# ifdef ENABLE_DEBUG
+ const gchar *env_val = g_getenv("SSO_GPLUGINS_DIR");
+ if (env_val)
+ plugin_path = env_val;
+# endif
+ plugin_filename = g_module_build_path (plugin_path, plugin_type);
+ plugin = gsignond_load_plugin_with_filename (plugin_type,
+ plugin_filename);
g_free(plugin_filename);
return plugin;
}
-GSignondPlugin*
+GSignondPlugin *
gsignond_load_plugin_with_filename(
- gchar *plugin_type,
- gchar *plugin_filename)
+ const gchar *plugin_type,
+ const gchar *plugin_filename)
{
DBG("Loading plugin %s", plugin_filename);
GModule* plugin_module = g_module_open (plugin_filename,
/*
* This file is part of gsignond
*
- * Copyright (C) 2012 Intel Corporation.
+ * Copyright (C) 2012-2014 Intel Corporation.
*
* Contact: Alexander Kanavin <alex.kanavin@gmail.com>
*
G_BEGIN_DECLS
-GSignondPlugin*
-gsignond_load_plugin(
+GSignondPlugin *
+gsignond_load_plugin (
GSignondConfig* config,
- gchar* plugin_type);
+ const gchar *plugin_type);
-GSignondPlugin*
-gsignond_load_plugin_with_filename(
- gchar *plugin_type,
- gchar *plugin_filename);
+GSignondPlugin *
+gsignond_load_plugin_with_filename (
+ const gchar *plugin_type,
+ const gchar *plugin_filename);
G_END_DECLS
/*
* This file is part of gsignond
*
- * Copyright (C) 2013 Intel Corporation.
+ * Copyright (C) 2013-2014 Intel Corporation.
*
* Contact: Imran Zaman <imran.zaman@intel.com>
*
WARN ("failed to set parent death signal");
}
+static void _list_plugins()
+{
+ const gchar *plugin_path = GSIGNOND_GPLUGINS_DIR;
+
+# ifdef ENABLE_DEBUG
+ const gchar *env_val = g_getenv("SSO_GPLUGINS_DIR");
+ if (env_val)
+ plugin_path = env_val;
+# endif
+ GDir* plugin_dir = g_dir_open(plugin_path, 0, NULL);
+ if (plugin_dir == NULL) {
+ return;
+ }
+
+ while (1) {
+ const gchar* plugin_soname = g_dir_read_name(plugin_dir);
+ if (plugin_soname == NULL)
+ break;
+ if (g_str_has_prefix(plugin_soname, "lib") &&
+ g_str_has_suffix(plugin_soname, ".so")) {
+ gchar* plugin_name = g_strndup(plugin_soname+3,
+ strlen(plugin_soname) - 6);
+ g_print("%s\n", plugin_name);
+ g_free(plugin_name);
+ }
+ }
+ g_dir_close(plugin_dir);
+}
+
int main (int argc, char **argv)
{
GError *error = NULL;
GMainLoop *main_loop = NULL;
GOptionContext *opt_context = NULL;
- gchar **plugin_args = NULL;
- gint up_signal = -1;
gint in_fd = 0, out_fd = 1;
- GOptionEntry opt_entries[] = {
- {G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_STRING_ARRAY, &plugin_args,
- "Plugin Args", NULL},
- {NULL}
+
+ gboolean list_plugins = FALSE;
+ gchar* plugin_name = NULL;
+ GOptionEntry main_entries[] =
+ {
+ { "list-plugins", 0, 0, G_OPTION_ARG_NONE, &list_plugins, "List available plugins", NULL},
+ { "load-plugin", 0, 0, G_OPTION_ARG_STRING, &plugin_name, "Load a plugin and start a d-bus connection with it on stdio channel", "name"},
+ { NULL }
};
+ opt_context = g_option_context_new ("gSSO glib plugin loader");
+ g_option_context_add_main_entries (opt_context, main_entries, NULL);
+
+ if (!g_option_context_parse (opt_context, &argc, &argv, &error)) {
+ WARN ("option parsing failed: %s\n", error->message);
+ g_error_free(error);
+ g_option_context_free(opt_context);
+ return -1;
+ }
+ g_option_context_free(opt_context);
+
+ if (list_plugins) {
+ _list_plugins();
+ return 0;
+ }
+
+ if (!plugin_name) {
+ g_print("Use --help to list command line options\n");
+ return -1;
+ }
+
+
/* Duplicates stdin,stdout,stderr descriptors and point the descriptors
* to /dev/null to avoid anyone writing to descriptors before initial
* "plugind-is-ready" notification is sent to gsignond
g_type_init ();
#endif
- opt_context = g_option_context_new ("<plugin_path> <plugin_name>");
- g_option_context_set_summary (opt_context, "gSSO helper plugin daemon");
- g_option_context_add_main_entries (opt_context, opt_entries, NULL);
- g_option_context_set_ignore_unknown_options (opt_context, TRUE);
- g_option_context_parse (opt_context, &argc, &argv, &error);
- g_option_context_free (opt_context);
- if (error) {
- WARN ("Error in arguments parsing: %s", error->message);
- g_error_free (error);
- }
- if (!plugin_args || !plugin_args[0] || !plugin_args[1]) {
- WARN ("plugin path or plugin type missing");
- if (write (out_fd, "0", sizeof(char)) == -1)
- WARN ("Unable to write down notification to stdout");
- if (in_fd != 0) close (in_fd);
- if (out_fd != 1) close (out_fd);
- if (plugin_args) g_strfreev(plugin_args);
- return -1;
- }
+ const gchar *plugin_path = GSIGNOND_GPLUGINS_DIR;
+# ifdef ENABLE_DEBUG
+ const gchar *env_val = g_getenv("SSO_GPLUGINS_DIR");
+ if (env_val)
+ plugin_path = env_val;
+# endif
+ gchar* filename = g_module_build_path (plugin_path, plugin_name);
- _daemon = gsignond_plugin_daemon_new (plugin_args[0], plugin_args[1], in_fd,
+ _daemon = gsignond_plugin_daemon_new (filename, plugin_name, in_fd,
out_fd);
- g_strfreev(plugin_args);
+ g_free(filename);
+ g_free(plugin_name);
if (_daemon == NULL) {
- if (write (out_fd, "0", sizeof(char)) == -1)
- WARN ("Unable to write down notification to stdout");
- if (in_fd != 0) close (in_fd);
- if (out_fd != 1) close (out_fd);
return -1;
}
g_object_weak_ref (G_OBJECT (_daemon), _on_daemon_closed, main_loop);
_install_sighandlers (main_loop);
- /* Notification for gsignond that plugind is up and ready */
- up_signal = write (out_fd, "1", sizeof(char));
-
- if (up_signal == -1) {
- g_main_loop_unref (main_loop);
- g_object_unref (_daemon);
- return -1;
- }
-
DBG ("Entering main event loop");
g_main_loop_run (main_loop);
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
include $(top_srcdir)/common.mk
-plugins_LTLIBRARIES = libdigest.la
+gplugins_LTLIBRARIES = libdigest.la
NULL=
libdigest_la_CPPFLAGS = \
gsignond-digest-plugin.c \
$(NULL)
+libdigest_la_LDFLAGS = -avoid-version
+
all-local: slink
slink:
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
-am__installdirs = "$(DESTDIR)$(pluginsdir)"
-LTLIBRARIES = $(plugins_LTLIBRARIES)
+am__installdirs = "$(DESTDIR)$(gpluginsdir)"
+LTLIBRARIES = $(gplugins_LTLIBRARIES)
am__DEPENDENCIES_1 =
libdigest_la_DEPENDENCIES = \
$(top_builddir)/src/common/libgsignond-common.la \
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
+libdigest_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libdigest_la_LDFLAGS) $(LDFLAGS) -o $@
DEFAULT_INCLUDES =
depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
am__depfiles_maybe = depfiles
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(libdigest_la_SOURCES)
DIST_SOURCES = $(libdigest_la_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
extensionsdir = $(pkglibdir)/extensions
-pluginsdir = $(pkglibdir)/plugins
-plugins_LTLIBRARIES = libdigest.la
+pluginloadersdir = $(pkglibdir)/pluginloaders
+gpluginsdir = $(pkglibdir)/gplugins
+gplugins_LTLIBRARIES = libdigest.la
NULL =
libdigest_la_CPPFLAGS = \
-I$(top_builddir) \
gsignond-digest-plugin.c \
$(NULL)
+libdigest_la_LDFLAGS = -avoid-version
all: all-am
.SUFFIXES:
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
-install-pluginsLTLIBRARIES: $(plugins_LTLIBRARIES)
+install-gpluginsLTLIBRARIES: $(gplugins_LTLIBRARIES)
@$(NORMAL_INSTALL)
- @list='$(plugins_LTLIBRARIES)'; test -n "$(pluginsdir)" || list=; \
+ test -z "$(gpluginsdir)" || $(MKDIR_P) "$(DESTDIR)$(gpluginsdir)"
+ @list='$(gplugins_LTLIBRARIES)'; test -n "$(gpluginsdir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
list2="$$list2 $$p"; \
else :; fi; \
done; \
test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(pluginsdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(pluginsdir)" || exit 1; \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pluginsdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pluginsdir)"; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(gpluginsdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(gpluginsdir)"; \
}
-uninstall-pluginsLTLIBRARIES:
+uninstall-gpluginsLTLIBRARIES:
@$(NORMAL_UNINSTALL)
- @list='$(plugins_LTLIBRARIES)'; test -n "$(pluginsdir)" || list=; \
+ @list='$(gplugins_LTLIBRARIES)'; test -n "$(gpluginsdir)" || list=; \
for p in $$list; do \
$(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pluginsdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pluginsdir)/$$f"; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(gpluginsdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(gpluginsdir)/$$f"; \
done
-clean-pluginsLTLIBRARIES:
- -test -z "$(plugins_LTLIBRARIES)" || rm -f $(plugins_LTLIBRARIES)
- @list='$(plugins_LTLIBRARIES)'; for p in $$list; do \
+clean-gpluginsLTLIBRARIES:
+ -test -z "$(gplugins_LTLIBRARIES)" || rm -f $(gplugins_LTLIBRARIES)
+ @list='$(gplugins_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libdigest.la: $(libdigest_la_OBJECTS) $(libdigest_la_DEPENDENCIES) $(EXTRA_libdigest_la_DEPENDENCIES)
- $(AM_V_CCLD)$(LINK) -rpath $(pluginsdir) $(libdigest_la_OBJECTS) $(libdigest_la_LIBADD) $(LIBS)
+ $(AM_V_CCLD)$(libdigest_la_LINK) -rpath $(gpluginsdir) $(libdigest_la_OBJECTS) $(libdigest_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
check: check-am
all-am: Makefile $(LTLIBRARIES) all-local
installdirs:
- for dir in "$(DESTDIR)$(pluginsdir)"; do \
+ for dir in "$(DESTDIR)$(gpluginsdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-generic clean-libtool clean-pluginsLTLIBRARIES \
+clean-am: clean-generic clean-gpluginsLTLIBRARIES clean-libtool \
mostlyclean-am
distclean: distclean-am
info-am:
-install-data-am: install-pluginsLTLIBRARIES
+install-data-am: install-gpluginsLTLIBRARIES
install-dvi: install-dvi-am
ps-am:
-uninstall-am: uninstall-pluginsLTLIBRARIES
+uninstall-am: uninstall-gpluginsLTLIBRARIES
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
- clean-generic clean-libtool clean-pluginsLTLIBRARIES ctags \
+ clean-generic clean-gpluginsLTLIBRARIES clean-libtool ctags \
distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-pluginsLTLIBRARIES install-ps install-ps-am \
+ install-exec-am install-gpluginsLTLIBRARIES install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags uninstall uninstall-am \
- uninstall-pluginsLTLIBRARIES
+ uninstall-gpluginsLTLIBRARIES
all-local: slink
* the following string items, whose meaning is described in the RFC:
* - username and secret. If they are absent, they are requested from the user
* via gSSO UI.
- * - realm, "Algo", "Nonce", "Method", "DigestUri" - mandatory items.
- * - "NonceCount", "Qop", "HEntity". "NonceCount" must be present if "Qop" is
+ * - realm, allowed realms, "Algo", "Nonce", "Method", "DigestUri" - mandatory items.
+ * - "NonceCount", "Qop", "HEntity". "NonceCount" must be present if "Qop" is
* present, "HEntity" must be present if "Qop" is present and set to "auth-int".
*
* If the plugin has all the data to calculate the digest, it issues
{
}
+/* difference with g_strcmp0() here is that two NULLs don't compare equal */
+static gint
+_compare_realm (gconstpointer a, gconstpointer b, gpointer user_data)
+{
+ const gchar *realm1 = (const gchar *) a;
+ const gchar *realm2 = (const gchar *) b;
+ (void) user_data;
+ if (realm1 == NULL)
+ return -1;
+ if (realm2 == NULL)
+ return 1;
+
+ return g_strcmp0 (realm1, realm2);
+}
+
static void
-_gsignond_digest_plugin_return_digest(GSignondPlugin *plugin,
- const gchar *username,
- const gchar *secret,
- GSignondDictionary *session_data)
+_gsignond_digest_plugin_return_digest (GSignondPlugin *plugin,
+ const gchar *username,
+ const gchar *secret,
+ GSignondDictionary *session_data)
{
g_return_if_fail (plugin != NULL);
g_return_if_fail (GSIGNOND_IS_DIGEST_PLUGIN (plugin));
GSignondSessionData *response = NULL;
+ GSequenceIter *iter;
+ GSequence* allowed_realms =
+ gsignond_session_data_get_allowed_realms (session_data);
const gchar* realm = gsignond_session_data_get_realm (session_data);
const gchar* algo = gsignond_dictionary_get_string (session_data,
"Algo");
"DigestUri");
const gchar* hentity = gsignond_dictionary_get_string (session_data,
"HEntity");
+
+ if (!allowed_realms) {
+ GError* error = g_error_new (GSIGNOND_ERROR,
+ GSIGNOND_ERROR_MISSING_DATA,
+ "Missing realm list");
+ gsignond_plugin_error (plugin, error);
+ g_error_free (error);
+ return;
+ }
+ iter = g_sequence_lookup (allowed_realms,
+ (gpointer) realm,
+ _compare_realm,
+ NULL);
+ g_sequence_free (allowed_realms);
+ if (!iter) {
+ GError* error = g_error_new (GSIGNOND_ERROR,
+ GSIGNOND_ERROR_NOT_AUTHORIZED,
+ "Unauthorized realm");
+ gsignond_plugin_error (plugin, error);
+ g_error_free (error);
+ return;
+ }
+
gchar *cnonce = gsignond_generate_nonce ();
if (!cnonce) {
GError* error = g_error_new (GSIGNOND_ERROR,
- GSIGNOND_ERROR_MISSING_DATA, "Error in generating nonce");
+ GSIGNOND_ERROR_MISSING_DATA,
+ "Error in generating nonce");
gsignond_plugin_error (plugin, error);
g_error_free (error);
return;
return;
}
gchar *digest = _gsignond_digest_plugin_compute_md5_digest(algo,
- username,realm, secret, nonce, nonce_count, cnonce, qop, method,
+ username, realm, secret, nonce, nonce_count, cnonce, qop, method,
digest_uri, hentity);
response = gsignond_dictionary_new();
include $(top_srcdir)/common.mk
-plugins_LTLIBRARIES = libpassword.la
+gplugins_LTLIBRARIES = libpassword.la
NULL=
libpassword_la_CPPFLAGS = \
gsignond-password-plugin.c \
$(NULL)
+libpassword_la_LDFLAGS = -avoid-version
+
all-local: slink
slink:
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
-am__installdirs = "$(DESTDIR)$(pluginsdir)"
-LTLIBRARIES = $(plugins_LTLIBRARIES)
+am__installdirs = "$(DESTDIR)$(gpluginsdir)"
+LTLIBRARIES = $(gplugins_LTLIBRARIES)
am__DEPENDENCIES_1 =
libpassword_la_DEPENDENCIES = \
$(top_builddir)/src/common/libgsignond-common.la \
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
+libpassword_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libpassword_la_LDFLAGS) $(LDFLAGS) -o \
+ $@
DEFAULT_INCLUDES =
depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
am__depfiles_maybe = depfiles
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(libpassword_la_SOURCES)
DIST_SOURCES = $(libpassword_la_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
extensionsdir = $(pkglibdir)/extensions
-pluginsdir = $(pkglibdir)/plugins
-plugins_LTLIBRARIES = libpassword.la
+pluginloadersdir = $(pkglibdir)/pluginloaders
+gpluginsdir = $(pkglibdir)/gplugins
+gplugins_LTLIBRARIES = libpassword.la
NULL =
libpassword_la_CPPFLAGS = \
-I$(top_builddir) \
gsignond-password-plugin.c \
$(NULL)
+libpassword_la_LDFLAGS = -avoid-version
all: all-am
.SUFFIXES:
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
-install-pluginsLTLIBRARIES: $(plugins_LTLIBRARIES)
+install-gpluginsLTLIBRARIES: $(gplugins_LTLIBRARIES)
@$(NORMAL_INSTALL)
- @list='$(plugins_LTLIBRARIES)'; test -n "$(pluginsdir)" || list=; \
+ test -z "$(gpluginsdir)" || $(MKDIR_P) "$(DESTDIR)$(gpluginsdir)"
+ @list='$(gplugins_LTLIBRARIES)'; test -n "$(gpluginsdir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
list2="$$list2 $$p"; \
else :; fi; \
done; \
test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(pluginsdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(pluginsdir)" || exit 1; \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pluginsdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pluginsdir)"; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(gpluginsdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(gpluginsdir)"; \
}
-uninstall-pluginsLTLIBRARIES:
+uninstall-gpluginsLTLIBRARIES:
@$(NORMAL_UNINSTALL)
- @list='$(plugins_LTLIBRARIES)'; test -n "$(pluginsdir)" || list=; \
+ @list='$(gplugins_LTLIBRARIES)'; test -n "$(gpluginsdir)" || list=; \
for p in $$list; do \
$(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pluginsdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pluginsdir)/$$f"; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(gpluginsdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(gpluginsdir)/$$f"; \
done
-clean-pluginsLTLIBRARIES:
- -test -z "$(plugins_LTLIBRARIES)" || rm -f $(plugins_LTLIBRARIES)
- @list='$(plugins_LTLIBRARIES)'; for p in $$list; do \
+clean-gpluginsLTLIBRARIES:
+ -test -z "$(gplugins_LTLIBRARIES)" || rm -f $(gplugins_LTLIBRARIES)
+ @list='$(gplugins_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libpassword.la: $(libpassword_la_OBJECTS) $(libpassword_la_DEPENDENCIES) $(EXTRA_libpassword_la_DEPENDENCIES)
- $(AM_V_CCLD)$(LINK) -rpath $(pluginsdir) $(libpassword_la_OBJECTS) $(libpassword_la_LIBADD) $(LIBS)
+ $(AM_V_CCLD)$(libpassword_la_LINK) -rpath $(gpluginsdir) $(libpassword_la_OBJECTS) $(libpassword_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
check: check-am
all-am: Makefile $(LTLIBRARIES) all-local
installdirs:
- for dir in "$(DESTDIR)$(pluginsdir)"; do \
+ for dir in "$(DESTDIR)$(gpluginsdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-generic clean-libtool clean-pluginsLTLIBRARIES \
+clean-am: clean-generic clean-gpluginsLTLIBRARIES clean-libtool \
mostlyclean-am
distclean: distclean-am
info-am:
-install-data-am: install-pluginsLTLIBRARIES
+install-data-am: install-gpluginsLTLIBRARIES
install-dvi: install-dvi-am
ps-am:
-uninstall-am: uninstall-pluginsLTLIBRARIES
+uninstall-am: uninstall-gpluginsLTLIBRARIES
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
- clean-generic clean-libtool clean-pluginsLTLIBRARIES ctags \
+ clean-generic clean-gpluginsLTLIBRARIES clean-libtool ctags \
distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-pluginsLTLIBRARIES install-ps install-ps-am \
+ install-exec-am install-gpluginsLTLIBRARIES install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags uninstall uninstall-am \
- uninstall-pluginsLTLIBRARIES
+ uninstall-gpluginsLTLIBRARIES
all-local: slink
include $(top_srcdir)/common.mk
-plugins_LTLIBRARIES = libssotest.la
+gplugins_LTLIBRARIES = libssotest.la
NULL=
libssotest_la_CPPFLAGS = \
gsignond-ssotest-plugin.c \
$(NULL)
+libssotest_la_LDFLAGS = -avoid-version
+
all-local: slink
slink:
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
-am__installdirs = "$(DESTDIR)$(pluginsdir)"
-LTLIBRARIES = $(plugins_LTLIBRARIES)
+am__installdirs = "$(DESTDIR)$(gpluginsdir)"
+LTLIBRARIES = $(gplugins_LTLIBRARIES)
am__DEPENDENCIES_1 =
libssotest_la_DEPENDENCIES = \
$(top_builddir)/src/common/libgsignond-common.la \
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
+libssotest_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libssotest_la_LDFLAGS) $(LDFLAGS) -o $@
DEFAULT_INCLUDES =
depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
am__depfiles_maybe = depfiles
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(libssotest_la_SOURCES)
DIST_SOURCES = $(libssotest_la_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
extensionsdir = $(pkglibdir)/extensions
-pluginsdir = $(pkglibdir)/plugins
-plugins_LTLIBRARIES = libssotest.la
+pluginloadersdir = $(pkglibdir)/pluginloaders
+gpluginsdir = $(pkglibdir)/gplugins
+gplugins_LTLIBRARIES = libssotest.la
NULL =
libssotest_la_CPPFLAGS = \
-I$(top_builddir) \
gsignond-ssotest-plugin.c \
$(NULL)
+libssotest_la_LDFLAGS = -avoid-version
all: all-am
.SUFFIXES:
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
-install-pluginsLTLIBRARIES: $(plugins_LTLIBRARIES)
+install-gpluginsLTLIBRARIES: $(gplugins_LTLIBRARIES)
@$(NORMAL_INSTALL)
- @list='$(plugins_LTLIBRARIES)'; test -n "$(pluginsdir)" || list=; \
+ test -z "$(gpluginsdir)" || $(MKDIR_P) "$(DESTDIR)$(gpluginsdir)"
+ @list='$(gplugins_LTLIBRARIES)'; test -n "$(gpluginsdir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
list2="$$list2 $$p"; \
else :; fi; \
done; \
test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(pluginsdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(pluginsdir)" || exit 1; \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pluginsdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pluginsdir)"; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(gpluginsdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(gpluginsdir)"; \
}
-uninstall-pluginsLTLIBRARIES:
+uninstall-gpluginsLTLIBRARIES:
@$(NORMAL_UNINSTALL)
- @list='$(plugins_LTLIBRARIES)'; test -n "$(pluginsdir)" || list=; \
+ @list='$(gplugins_LTLIBRARIES)'; test -n "$(gpluginsdir)" || list=; \
for p in $$list; do \
$(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pluginsdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pluginsdir)/$$f"; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(gpluginsdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(gpluginsdir)/$$f"; \
done
-clean-pluginsLTLIBRARIES:
- -test -z "$(plugins_LTLIBRARIES)" || rm -f $(plugins_LTLIBRARIES)
- @list='$(plugins_LTLIBRARIES)'; for p in $$list; do \
+clean-gpluginsLTLIBRARIES:
+ -test -z "$(gplugins_LTLIBRARIES)" || rm -f $(gplugins_LTLIBRARIES)
+ @list='$(gplugins_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libssotest.la: $(libssotest_la_OBJECTS) $(libssotest_la_DEPENDENCIES) $(EXTRA_libssotest_la_DEPENDENCIES)
- $(AM_V_CCLD)$(LINK) -rpath $(pluginsdir) $(libssotest_la_OBJECTS) $(libssotest_la_LIBADD) $(LIBS)
+ $(AM_V_CCLD)$(libssotest_la_LINK) -rpath $(gpluginsdir) $(libssotest_la_OBJECTS) $(libssotest_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
check: check-am
all-am: Makefile $(LTLIBRARIES) all-local
installdirs:
- for dir in "$(DESTDIR)$(pluginsdir)"; do \
+ for dir in "$(DESTDIR)$(gpluginsdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-generic clean-libtool clean-pluginsLTLIBRARIES \
+clean-am: clean-generic clean-gpluginsLTLIBRARIES clean-libtool \
mostlyclean-am
distclean: distclean-am
info-am:
-install-data-am: install-pluginsLTLIBRARIES
+install-data-am: install-gpluginsLTLIBRARIES
install-dvi: install-dvi-am
ps-am:
-uninstall-am: uninstall-pluginsLTLIBRARIES
+uninstall-am: uninstall-gpluginsLTLIBRARIES
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
- clean-generic clean-libtool clean-pluginsLTLIBRARIES ctags \
+ clean-generic clean-gpluginsLTLIBRARIES clean-libtool ctags \
distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-pluginsLTLIBRARIES install-ps install-ps-am \
+ install-exec-am install-gpluginsLTLIBRARIES install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags uninstall uninstall-am \
- uninstall-pluginsLTLIBRARIES
+ uninstall-gpluginsLTLIBRARIES
all-local: slink
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
TESTS = commontest
-TESTS_ENVIRONMENT= SSO_PLUGINS_DIR=$(top_builddir)/src/plugins/.libs \
+TESTS_ENVIRONMENT= SSO_GPLUGINS_DIR=$(top_builddir)/src/plugins/.libs \
SSO_BIN_DIR=$(top_builddir)/src/daemon/.libs \
SSO_STORAGE_PATH=/tmp/gsignond \
- LD_LIBRARY_PATH="$(top_builddir)/src/daemon/plugins/plugind/.libs:$(top_builddir)/src/common/.libs:$(top_builddir)/src/common/db/.libs:$(top_builddir)/src/daemon/.libs:$(top_builddir)/src/daemon/db/.libs:$(top_builddir)/src/daemon/dbus/.libs:$(top_builddir)/src/daemon/plugins/.libs"
+ LD_LIBRARY_PATH="$(top_builddir)/src/common/.libs:$(top_builddir)/src/common/db/.libs:$(top_builddir)/src/daemon/.libs:$(top_builddir)/src/daemon/db/.libs:$(top_builddir)/src/daemon/dbus/.libs:$(top_builddir)/src/daemon/plugins/.libs"
VALGRIND_TESTS_DISABLE=
$(GSIGNOND_CFLAGS) \
$(CHECK_CFLAGS) \
-I$(top_builddir) \
+ -I$(top_builddir)/src/ \
-I$(top_srcdir)/include/ \
-I$(top_srcdir)/src/
commontest_LDADD = \
$(top_builddir)/src/common/libgsignond-common.la \
+ $(top_builddir)/src/gplugind/libgsignond-plugind-daemon.la \
$(GSIGNOND_LIBS) \
$(CHECK_LIBS)
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
am__DEPENDENCIES_1 =
commontest_DEPENDENCIES = \
$(top_builddir)/src/common/libgsignond-common.la \
+ $(top_builddir)/src/gplugind/libgsignond-plugind-daemon.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(commontest_SOURCES)
DIST_SOURCES = $(commontest_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
ETAGS = etags
CTAGS = ctags
am__tty_colors = \
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-TESTS_ENVIRONMENT = SSO_PLUGINS_DIR=$(top_builddir)/src/plugins/.libs \
+TESTS_ENVIRONMENT = SSO_GPLUGINS_DIR=$(top_builddir)/src/plugins/.libs \
SSO_BIN_DIR=$(top_builddir)/src/daemon/.libs \
SSO_STORAGE_PATH=/tmp/gsignond \
- LD_LIBRARY_PATH="$(top_builddir)/src/daemon/plugins/plugind/.libs:$(top_builddir)/src/common/.libs:$(top_builddir)/src/common/db/.libs:$(top_builddir)/src/daemon/.libs:$(top_builddir)/src/daemon/db/.libs:$(top_builddir)/src/daemon/dbus/.libs:$(top_builddir)/src/daemon/plugins/.libs"
+ LD_LIBRARY_PATH="$(top_builddir)/src/common/.libs:$(top_builddir)/src/common/db/.libs:$(top_builddir)/src/daemon/.libs:$(top_builddir)/src/daemon/db/.libs:$(top_builddir)/src/daemon/dbus/.libs:$(top_builddir)/src/daemon/plugins/.libs"
VALGRIND_TESTS_DISABLE =
SUPPRESSIONS = $(top_srcdir)/test/valgrind.supp
$(GSIGNOND_CFLAGS) \
$(CHECK_CFLAGS) \
-I$(top_builddir) \
+ -I$(top_builddir)/src/ \
-I$(top_srcdir)/include/ \
-I$(top_srcdir)/src/
commontest_LDADD = \
$(top_builddir)/src/common/libgsignond-common.la \
+ $(top_builddir)/src/gplugind/libgsignond-plugind-daemon.la \
$(GSIGNOND_LIBS) \
$(CHECK_LIBS)
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
+#include <glib.h>
#include <glib-unix.h>
#include "gsignond/gsignond-session-data.h"
#include "gsignond/gsignond-error.h"
#include "gsignond/gsignond-log.h"
+#include "gsignond/gsignond-utils.h"
+#include "common/gsignond-identity-info.h"
#include "common/gsignond-pipe-stream.h"
-#include "common/gsignond-plugin-loader.h"
+#include "gplugind/gsignond-plugin-loader.h"
+
+static GSequence*
+_sequence_new (gchar *data)
+{
+ GSequence *value = NULL;
+ value = g_sequence_new (NULL);
+ g_sequence_append (value, (guint8 *)data);
+ return value;
+}
+
+static gboolean
+_compare_sequences (
+ GSequence *one,
+ GSequence *two)
+{
+ GSequenceIter *iter1 = NULL, *iter2 = NULL;
+ gboolean equal = TRUE;
+
+ if (one == NULL && two == NULL)
+ return TRUE;
+
+ if ((one != NULL && two == NULL) ||
+ (one == NULL && two != NULL) ||
+ (g_sequence_get_length (one) != g_sequence_get_length (two)))
+ return FALSE;
+
+ if (one == two)
+ return TRUE;
+
+ iter1 = g_sequence_get_begin_iter (one);
+ while (!g_sequence_iter_is_end (iter1)) {
+ iter2 = g_sequence_get_iter_at_pos (two,
+ g_sequence_iter_get_position (iter1));
+ if (g_strcmp0 (g_sequence_get (iter1), g_sequence_get (iter2)) != 0) {
+ equal = FALSE;
+ break;
+ }
+ iter1 = g_sequence_iter_next (iter1);
+ }
+
+ return equal;
+}
START_TEST (test_pipe_stream)
{
}
END_TEST
+START_TEST (test_identity_info)
+{
+ guint32 id = 125;
+ guint32 type = 456;
+ const gchar *username = "username1";
+ const gchar *secret = "secret1";
+ const gchar *caption = "caption1";
+ GSignondIdentityInfo *identity = NULL;
+ GSignondIdentityInfo *identity2 = NULL;
+ GSignondSecurityContextList *ctx_list = NULL, *list = NULL;
+ GSignondSecurityContext *ctx, *ctx1, *ctx2, *ctx3 ;
+ GHashTable *methods = NULL, *methods2;
+ GSequence *seq1 = NULL, *seq_realms, *seq21, *mechs;
+ GList *list2;
+
+ identity = gsignond_identity_info_new ();
+ fail_if (identity == NULL);
+
+ fail_unless (gsignond_identity_info_get_id (identity) == 0);
+ fail_unless (gsignond_identity_info_get_is_identity_new (identity)== TRUE);
+ fail_unless (gsignond_identity_info_get_username (identity) == NULL);
+ fail_unless (gsignond_identity_info_get_is_username_secret (
+ identity) == FALSE);
+ fail_unless (gsignond_identity_info_get_secret (identity) == NULL);
+ fail_unless (gsignond_identity_info_get_store_secret (identity) == FALSE);
+ fail_unless (gsignond_identity_info_get_caption (identity) == NULL);
+ fail_unless (gsignond_identity_info_get_realms (identity) == NULL);
+ fail_unless (gsignond_identity_info_get_methods (identity) == NULL);
+ fail_unless (gsignond_identity_info_get_mechanisms (
+ identity, "testmech") == NULL);
+ fail_unless (gsignond_identity_info_get_access_control_list (
+ identity) == NULL);
+ fail_unless (gsignond_identity_info_get_owner (identity) == NULL);
+ fail_unless (gsignond_identity_info_get_validated (identity) == FALSE);
+ fail_unless (gsignond_identity_info_get_identity_type (identity) == 0);
+
+ fail_unless (gsignond_identity_info_set_id (identity, id) == TRUE);
+
+ fail_unless (id == gsignond_identity_info_get_id (identity));
+
+ fail_unless (gsignond_identity_info_set_identity_new (identity) == TRUE);
+
+ fail_unless (gsignond_identity_info_get_is_identity_new (
+ identity) == TRUE);
+
+ fail_unless (gsignond_identity_info_set_username (
+ identity, NULL) == TRUE);
+
+ fail_unless (gsignond_identity_info_get_username (identity) == NULL);
+
+ fail_unless (gsignond_identity_info_set_username (
+ identity, username) == TRUE);
+
+ fail_unless (g_strcmp0 (username, gsignond_identity_info_get_username (
+ identity)) == 0);
+
+ fail_unless (gsignond_identity_info_set_username_secret (
+ identity, TRUE) == TRUE);
+
+ fail_unless (gsignond_identity_info_get_is_username_secret (
+ identity) == TRUE);
+
+ fail_unless (gsignond_identity_info_set_secret (identity, NULL) == TRUE);
+
+ fail_unless (gsignond_identity_info_get_secret (identity) == NULL);
+
+ fail_unless (gsignond_identity_info_set_secret (identity, secret) == TRUE);
+
+ fail_unless (g_strcmp0 (secret, gsignond_identity_info_get_secret (
+ identity)) == 0);
+
+ fail_unless (gsignond_identity_info_set_store_secret (
+ identity, TRUE) == TRUE);
+
+ fail_unless (gsignond_identity_info_get_store_secret (
+ identity) == TRUE);
+
+ fail_unless (gsignond_identity_info_set_caption (identity, NULL) == TRUE);
+
+ fail_unless (gsignond_identity_info_get_caption (identity) == NULL);
+
+ fail_unless (gsignond_identity_info_set_caption (
+ identity, caption) == TRUE);
+
+ fail_unless (g_strcmp0 (caption, gsignond_identity_info_get_caption (
+ identity)) == 0);
+
+ /*realms*/
+ seq_realms = _sequence_new("realms1");
+ fail_unless (gsignond_identity_info_set_realms (
+ identity, seq_realms) == TRUE);
+
+ seq1 = gsignond_identity_info_get_realms (identity);
+ fail_if (seq1 == NULL);
+ fail_unless (_compare_sequences (seq1, seq_realms) == TRUE);
+ g_sequence_free (seq1); seq1 = NULL;
+ g_sequence_free (seq_realms);
+
+ /*methods*/
+ methods = g_hash_table_new_full ((GHashFunc)g_str_hash,
+ (GEqualFunc)g_str_equal,
+ (GDestroyNotify)NULL,
+ (GDestroyNotify)g_sequence_free);
+ seq1 = _sequence_new("mech11"); g_sequence_append (seq1, "mech12");
+ fail_unless (gsignond_identity_info_set_methods (
+ identity, methods) == TRUE);
+ g_hash_table_insert (methods, "method1", seq1);
+ g_hash_table_insert (methods, "method2", _sequence_new("mech21"));
+ g_hash_table_insert (methods, "method3", _sequence_new("mech31"));
+ g_hash_table_insert (methods, "method4", _sequence_new("mech41"));
+ fail_unless (gsignond_identity_info_set_methods (
+ identity, methods) == TRUE);
+
+ methods2 = gsignond_identity_info_get_methods (identity);
+ fail_if (methods2 == NULL);
+ seq21 = g_hash_table_lookup (methods, "method1");
+ fail_if (seq21 == NULL);
+ fail_unless (_compare_sequences (seq1, seq21) == TRUE);
+ g_hash_table_unref (methods2);
+ g_hash_table_unref (methods);
+
+ fail_unless (gsignond_identity_info_get_mechanisms (
+ identity, "method20") == NULL);
+
+ mechs = gsignond_identity_info_get_mechanisms (
+ identity, "method1");
+ fail_if (mechs == NULL);
+ g_sequence_free (mechs);
+
+ fail_unless (gsignond_identity_info_remove_method (
+ identity, "method20") == FALSE);
+ fail_unless (gsignond_identity_info_remove_method (
+ identity, "method4") == TRUE);
+
+ /*acl*/
+ ctx1 = gsignond_security_context_new_from_values ("sysctx1", "appctx1");
+ ctx2 = gsignond_security_context_new_from_values ("sysctx2", "appctx2");
+ ctx3 = gsignond_security_context_new_from_values ("sysctx3", "appctx3");
+ ctx_list = g_list_append (ctx_list,ctx1);
+ ctx_list = g_list_append (ctx_list,ctx2);
+ ctx_list = g_list_append (ctx_list,ctx3);
+ fail_unless (gsignond_identity_info_set_access_control_list (
+ identity, ctx_list) == TRUE);
+
+ list = gsignond_identity_info_get_access_control_list (identity);
+ fail_if (list == NULL);
+ list2 = g_list_nth (list, 0);
+ ctx = (GSignondSecurityContext *) list2->data;
+ fail_unless (gsignond_security_context_compare (ctx, ctx1) == 0);
+ list2 = g_list_nth (list, 1);
+ ctx = (GSignondSecurityContext *) list2->data;
+ fail_unless (gsignond_security_context_compare (ctx, ctx2) == 0);
+ list2 = g_list_nth (list, 2);
+ ctx = (GSignondSecurityContext *) list2->data;
+ fail_unless (gsignond_security_context_compare (ctx, ctx3) == 0);
+ gsignond_security_context_list_free (list); list = NULL;
+
+ /*owners*/
+ fail_unless (gsignond_identity_info_set_owner (
+ identity, ctx1) == TRUE);
+ ctx = gsignond_identity_info_get_owner (identity);
+ fail_if (ctx == NULL);
+ fail_unless (gsignond_security_context_compare (ctx, ctx1) == 0);
+ gsignond_security_context_free (ctx); ctx = NULL;
+
+ fail_unless (gsignond_identity_info_set_validated (
+ identity, FALSE) == TRUE);
+
+ fail_unless (gsignond_identity_info_get_validated (identity) == FALSE);
+
+ fail_unless (gsignond_identity_info_set_identity_type (
+ identity, type) == TRUE);
+
+ fail_unless (type == gsignond_identity_info_get_identity_type (identity));
+
+ /*copy*/
+ identity2 = gsignond_identity_info_copy (identity);
+ fail_if (identity2 == NULL);
+ fail_unless (gsignond_identity_info_compare (identity, identity2) == TRUE);
+ gsignond_identity_info_unref (identity2);
+ fail_unless (gsignond_identity_info_compare (identity, identity) == TRUE);
+
+ gsignond_security_context_list_free (ctx_list); ctx_list = NULL;
+
+ gsignond_identity_info_unref (identity);
+}
+END_TEST
+
+START_TEST (test_is_host_in_domain)
+{
+ fail_unless(gsignond_is_host_in_domain("somehost", "") == TRUE);
+ fail_unless(gsignond_is_host_in_domain("", "somedomain") == FALSE);
+ fail_unless(gsignond_is_host_in_domain("", "") == TRUE);
+ fail_unless(gsignond_is_host_in_domain("somehost", "otherdomain") == FALSE);
+ fail_unless(gsignond_is_host_in_domain("somehost", "somehost") == TRUE);
+ fail_unless(gsignond_is_host_in_domain("somehost.com", "otherdomain.com") == FALSE);
+ fail_unless(gsignond_is_host_in_domain("somehost.com", "othersomehost.com") == FALSE);
+ fail_unless(gsignond_is_host_in_domain("somehost.com", "host.com") == FALSE);
+ fail_unless(gsignond_is_host_in_domain("somehost.com", "somehost.com") == TRUE);
+ fail_unless(gsignond_is_host_in_domain("somehost.com", "subhost.somehost.com") == FALSE);
+ fail_unless(gsignond_is_host_in_domain("somehost.somedomain.com", "otherdomain.com") == FALSE);
+ fail_unless(gsignond_is_host_in_domain("somehost.somedomain.com", "somehost.otherdomain.com") == FALSE);
+ fail_unless(gsignond_is_host_in_domain("somehost.somedomain.com", "somedomain.com") == TRUE);
+}
+END_TEST
+
Suite* common_suite (void)
{
Suite *s = suite_create ("Common library");
/* Core test case */
TCase *tc_core = tcase_create ("Tests");
+ tcase_add_test (tc_core, test_identity_info);
tcase_add_test (tc_core, test_pipe_stream);
tcase_add_test (tc_core, test_session_data);
tcase_add_test (tc_core, test_plugin_loader);
+ tcase_add_test (tc_core, test_is_host_in_domain);
suite_add_tcase (s, tc_core);
return s;
}
TESTS = daemontest
-TESTS_ENVIRONMENT= SSO_PLUGINS_DIR=$(top_builddir)/src/plugins/.libs \
+TESTS_ENVIRONMENT= SSO_GPLUGINS_DIR=$(top_builddir)/src/plugins/.libs \
SSO_BIN_DIR=$(top_builddir)/src/daemon/.libs \
- LD_LIBRARY_PATH="$(top_builddir)/src/daemon/plugins/plugind/.libs:$(top_builddir)/src/common/.libs:$(top_builddir)/src/common/db/.libs:$(top_builddir)/src/daemon/.libs:$(top_builddir)/src/daemon/db/.libs:$(top_builddir)/src/daemon/dbus/.libs:$(top_builddir)/src/daemon/plugins/.libs"
+ LD_LIBRARY_PATH="$(top_builddir)/src/common/.libs:$(top_builddir)/src/common/db/.libs:$(top_builddir)/src/daemon/.libs:$(top_builddir)/src/daemon/db/.libs:$(top_builddir)/src/daemon/dbus/.libs:$(top_builddir)/src/daemon/plugins/.libs"
VALGRIND_TESTS_DISABLE=
-U G_LOG_DOMAIN \
-DG_LOG_DOMAIN=\"gsignond-test-server\" \
-I$(top_builddir) \
+ -I$(top_builddir)/src/ \
-I$(top_srcdir)/src/ \
-I$(top_srcdir)/include/
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(daemontest_SOURCES)
DIST_SOURCES = $(daemontest_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
ETAGS = etags
CTAGS = ctags
am__tty_colors = \
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-TESTS_ENVIRONMENT = SSO_PLUGINS_DIR=$(top_builddir)/src/plugins/.libs \
+TESTS_ENVIRONMENT = SSO_GPLUGINS_DIR=$(top_builddir)/src/plugins/.libs \
SSO_BIN_DIR=$(top_builddir)/src/daemon/.libs \
- LD_LIBRARY_PATH="$(top_builddir)/src/daemon/plugins/plugind/.libs:$(top_builddir)/src/common/.libs:$(top_builddir)/src/common/db/.libs:$(top_builddir)/src/daemon/.libs:$(top_builddir)/src/daemon/db/.libs:$(top_builddir)/src/daemon/dbus/.libs:$(top_builddir)/src/daemon/plugins/.libs"
+ LD_LIBRARY_PATH="$(top_builddir)/src/common/.libs:$(top_builddir)/src/common/db/.libs:$(top_builddir)/src/daemon/.libs:$(top_builddir)/src/daemon/db/.libs:$(top_builddir)/src/daemon/dbus/.libs:$(top_builddir)/src/daemon/plugins/.libs"
VALGRIND_TESTS_DISABLE =
SUPPRESSIONS = $(top_srcdir)/test/valgrind.supp
daemontest_SOURCES = daemon-test.c
daemontest_CFLAGS = $(GSIGNOND_CFLAGS) $(CHECK_CFLAGS) -U G_LOG_DOMAIN \
-DG_LOG_DOMAIN=\"gsignond-test-server\" -I$(top_builddir) \
- -I$(top_srcdir)/src/ -I$(top_srcdir)/include/ $(am__append_1)
+ -I$(top_builddir)/src/ -I$(top_srcdir)/src/ \
+ -I$(top_srcdir)/include/ $(am__append_1)
daemontest_LDADD = \
$(top_builddir)/src/common/libgsignond-common.la \
$(top_builddir)/src/daemon/dbus/libgsignond-dbus-glue.la \
gchar* exe_name = _get_executable_name();
fail_if(exe_name == NULL);
- fail_if (g_setenv ("G_MESSAGES_DEBUG", "all", TRUE) == FALSE);
- fail_if (g_setenv ("SSO_IDENTITY_TIMEOUT", "5", TRUE) == FALSE);
- fail_if (g_setenv ("SSO_DAEMON_TIMEOUT", "5", TRUE) == FALSE);
- fail_if (g_setenv ("SSO_AUTH_SESSION_TIMEOUT", "5", TRUE) == FALSE);
+ fail_if (g_setenv ("GSIGNOND_CONFIG", "daemontest.conf", TRUE) == FALSE);
fail_if (g_setenv ("SSO_STORAGE_PATH", "/tmp/gsignond", TRUE) == FALSE);
fail_if (g_setenv ("SSO_KEYCHAIN_SYSCTX", exe_name, TRUE) == FALSE);
- fail_if (g_setenv ("SSO_PLUGIN_TIMEOUT", "5", TRUE) == FALSE);
DBG ("Programe pid %d, name : %s\n", getpid(), exe_name);
free(exe_name);
const gchar *username = 0;
if (!identity_info) return FALSE;
- identity = (GSignondIdentityInfo *)gsignond_dictionary_new_from_variant (identity_info);
+ identity = (GSignondIdentityInfo *)gsignond_identity_info_new_from_variant (identity_info);
if (!identity) return FALSE;
username = gsignond_identity_info_get_username (identity);
- gsignond_dictionary_unref (identity);
-
if (!username || strcmp (username, "test_user")) return FALSE;
+ gsignond_identity_info_unref (identity);
+
return TRUE;
}
identity = _get_identity (auth_service, id, "app_context_A", &v_info, &error);
fail_if (identity == NULL || v_info == NULL, "Failed to load identity for id '%d' : %s", id, error ? error->message : "");
g_object_unref (identity);
- info1 = gsignond_dictionary_new_from_variant (v_info);
+ info1 = gsignond_identity_info_new_from_variant (v_info);
/* created identity2 */
identity = _register_identity (auth_service, "app_context_B", &error);
identity = _get_identity (auth_service, id, "app_context_B", &v_info, &error);
fail_if (identity == NULL || v_info == NULL, "Failed to load identity for id '%d' : %s", id, error ? error->message : "");
g_object_unref (identity);
- info2 = gsignond_dictionary_new_from_variant (v_info);
+ info2 = gsignond_identity_info_new_from_variant (v_info);
/* create identity3 */
identity = _register_identity (auth_service, "app_context_A", &error);
identity = _get_identity (auth_service, id, "app_context_A", &v_info, &error);
fail_if (identity == NULL || v_info == NULL, "Failed to load identity for id '%d' : %s", id, error ? error->message : "");
g_object_unref (identity);
- info3 = gsignond_dictionary_new_from_variant (v_info);
+ info3 = gsignond_identity_info_new_from_variant (v_info);
/* query identities for app-context: app_context_A */
v_identities = NULL;
"Expected no of identities '%d', got '%d'", 2,
g_variant_n_children(v_identities));
/* validated query results */
- tmp_info = gsignond_dictionary_new_from_variant (
+ tmp_info = gsignond_identity_info_new_from_variant (
g_variant_get_child_value (v_identities, 0));
fail_if (gsignond_identity_info_compare (info1, tmp_info) == FALSE);
gsignond_identity_info_unref (tmp_info);
- tmp_info = gsignond_dictionary_new_from_variant (
+ tmp_info = gsignond_identity_info_new_from_variant (
g_variant_get_child_value (v_identities, 1));
fail_if (gsignond_identity_info_compare (info3, tmp_info) == FALSE);
gsignond_identity_info_unref (tmp_info);
fail_if (g_variant_n_children (v_identities) != 1,
"Expected no of identities '%d', got '%d'", 1,
g_variant_n_children(v_identities));
- tmp_info = gsignond_dictionary_new_from_variant (
+ tmp_info = gsignond_identity_info_new_from_variant (
g_variant_get_child_value (v_identities, 0));
fail_if (gsignond_identity_info_compare (info2, tmp_info) == FALSE);
gsignond_identity_info_unref (tmp_info);
fail_if (g_variant_n_children (v_identities) != 1,
"Expected no of identities '%d', got '%d'", 1,
g_variant_n_children(v_identities));
- tmp_info = gsignond_dictionary_new_from_variant (
+ tmp_info = gsignond_identity_info_new_from_variant (
g_variant_get_child_value (v_identities, 0));
fail_if (gsignond_identity_info_compare
(info2, tmp_info) == FALSE);
$(GSIGNOND_CFLAGS) \
$(CHECK_CFLAGS) \
-I$(top_builddir) \
+ -I$(top_builddir)/src/ \
-I$(top_srcdir)/src/ \
-I$(top_srcdir)/include/
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(dbtest_SOURCES)
DIST_SOURCES = $(dbtest_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
ETAGS = etags
CTAGS = ctags
am__tty_colors = \
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
$(GSIGNOND_CFLAGS) \
$(CHECK_CFLAGS) \
-I$(top_builddir) \
+ -I$(top_builddir)/src/ \
-I$(top_srcdir)/src/ \
-I$(top_srcdir)/include/
user_data->status = 0;
}
-static gboolean
-_compare_sequences (
- GSequence *one,
- GSequence *two)
-{
- GSequenceIter *iter1 = NULL, *iter2 = NULL;
- gboolean equal = TRUE;
-
- if (one == NULL && two == NULL)
- return TRUE;
-
- if ((one != NULL && two == NULL) ||
- (one == NULL && two != NULL) ||
- (g_sequence_get_length (one) != g_sequence_get_length (two)))
- return FALSE;
-
- if (one == two)
- return TRUE;
-
- iter1 = g_sequence_get_begin_iter (one);
- while (!g_sequence_iter_is_end (iter1)) {
- iter2 = g_sequence_get_iter_at_pos (two,
- g_sequence_iter_get_position (iter1));
- if (g_strcmp0 (g_sequence_get (iter1), g_sequence_get (iter2)) != 0) {
- equal = FALSE;
- break;
- }
- iter1 = g_sequence_iter_next (iter1);
- }
-
- return equal;
-}
-
static GSignondIdentityInfo *
_get_filled_identity_info_2 (
GSignondIdentityInfo **identity_inp,
TRUE, TRUE, TRUE, TRUE, TRUE);
}
-START_TEST (test_identity_info)
-{
- guint32 id = 125;
- guint32 type = 456;
- const gchar *username = "username1";
- const gchar *secret = "secret1";
- const gchar *caption = "caption1";
- GSignondIdentityInfo *identity = NULL;
- GSignondIdentityInfo *identity2 = NULL;
- GSignondSecurityContextList *ctx_list = NULL, *list = NULL;
- GSignondSecurityContext *ctx, *ctx1, *ctx2, *ctx3 ;
- GHashTable *methods = NULL, *methods2;
- GSequence *seq1 = NULL, *seq_realms, *seq21, *mechs;
- GList *list2;
-
- identity = gsignond_identity_info_new ();
- fail_if (identity == NULL);
-
- fail_unless (gsignond_identity_info_get_id (identity) == 0);
- fail_unless (gsignond_identity_info_get_is_identity_new (identity)== TRUE);
- fail_unless (gsignond_identity_info_get_username (identity) == NULL);
- fail_unless (gsignond_identity_info_get_is_username_secret (
- identity) == FALSE);
- fail_unless (gsignond_identity_info_get_secret (identity) == NULL);
- fail_unless (gsignond_identity_info_get_store_secret (identity) == FALSE);
- fail_unless (gsignond_identity_info_get_caption (identity) == NULL);
- fail_unless (gsignond_identity_info_get_realms (identity) == NULL);
- fail_unless (gsignond_identity_info_get_methods (identity) == NULL);
- fail_unless (gsignond_identity_info_get_mechanisms (
- identity, "testmech") == NULL);
- fail_unless (gsignond_identity_info_get_access_control_list (
- identity) == NULL);
- fail_unless (gsignond_identity_info_get_owner (identity) == NULL);
- fail_unless (gsignond_identity_info_get_validated (identity) == FALSE);
- fail_unless (gsignond_identity_info_get_identity_type (identity) == -1);
-
- fail_unless (gsignond_identity_info_set_id (identity, id) == TRUE);
-
- fail_unless (id == gsignond_identity_info_get_id (identity));
-
- fail_unless (gsignond_identity_info_set_identity_new (identity) == TRUE);
-
- fail_unless (gsignond_identity_info_get_is_identity_new (
- identity) == TRUE);
-
- fail_unless (gsignond_identity_info_set_username (
- identity, NULL) == FALSE);
-
- fail_unless (gsignond_identity_info_get_username (identity) == NULL);
-
- fail_unless (gsignond_identity_info_set_username (
- identity, username) == TRUE);
-
- fail_unless (g_strcmp0 (username, gsignond_identity_info_get_username (
- identity)) == 0);
-
- fail_unless (gsignond_identity_info_set_username_secret (
- identity, TRUE) == TRUE);
-
- fail_unless (gsignond_identity_info_get_is_username_secret (
- identity) == TRUE);
-
- fail_unless (gsignond_identity_info_set_secret (identity, NULL) == FALSE);
-
- fail_unless (gsignond_identity_info_get_secret (identity) == NULL);
-
- fail_unless (gsignond_identity_info_set_secret (identity, secret) == TRUE);
-
- fail_unless (g_strcmp0 (secret, gsignond_identity_info_get_secret (
- identity)) == 0);
-
- fail_unless (gsignond_identity_info_set_store_secret (
- identity, TRUE) == TRUE);
-
- fail_unless (gsignond_identity_info_get_store_secret (
- identity) == TRUE);
-
- fail_unless (gsignond_identity_info_set_caption (identity, NULL) == FALSE);
-
- fail_unless (gsignond_identity_info_get_caption (identity) == NULL);
-
- fail_unless (gsignond_identity_info_set_caption (
- identity, caption) == TRUE);
-
- fail_unless (g_strcmp0 (caption, gsignond_identity_info_get_caption (
- identity)) == 0);
-
- /*realms*/
- seq_realms = _sequence_new("realms1");
- fail_unless (gsignond_identity_info_set_realms (
- identity, seq_realms) == TRUE);
-
- seq1 = gsignond_identity_info_get_realms (identity);
- fail_if (seq1 == NULL);
- fail_unless (_compare_sequences (seq1, seq_realms) == TRUE);
- g_sequence_free (seq1); seq1 = NULL;
- g_sequence_free (seq_realms);
-
- /*methods*/
- methods = g_hash_table_new_full ((GHashFunc)g_str_hash,
- (GEqualFunc)g_str_equal,
- (GDestroyNotify)NULL,
- (GDestroyNotify)g_sequence_free);
- seq1 = _sequence_new("mech11"); g_sequence_append (seq1, "mech12");
- fail_unless (gsignond_identity_info_set_methods (
- identity, methods) == TRUE);
- g_hash_table_insert (methods, "method1", seq1);
- g_hash_table_insert (methods, "method2", _sequence_new("mech21"));
- g_hash_table_insert (methods, "method3", _sequence_new("mech31"));
- g_hash_table_insert (methods, "method4", _sequence_new("mech41"));
- fail_unless (gsignond_identity_info_set_methods (
- identity, methods) == TRUE);
-
- methods2 = gsignond_identity_info_get_methods (identity);
- fail_if (methods2 == NULL);
- seq21 = g_hash_table_lookup (methods, "method1");
- fail_if (seq21 == NULL);
- fail_unless (_compare_sequences (seq1, seq21) == TRUE);
- g_hash_table_unref (methods2);
- g_hash_table_unref (methods);
-
- fail_unless (gsignond_identity_info_get_mechanisms (
- identity, "method20") == NULL);
-
- mechs = gsignond_identity_info_get_mechanisms (
- identity, "method1");
- fail_if (mechs == NULL);
- g_sequence_free (mechs);
-
- fail_unless (gsignond_identity_info_remove_method (
- identity, "method20") == FALSE);
- fail_unless (gsignond_identity_info_remove_method (
- identity, "method4") == TRUE);
-
- /*acl*/
- ctx1 = gsignond_security_context_new_from_values ("sysctx1", "appctx1");
- ctx2 = gsignond_security_context_new_from_values ("sysctx2", "appctx2");
- ctx3 = gsignond_security_context_new_from_values ("sysctx3", "appctx3");
- ctx_list = g_list_append (ctx_list,ctx1);
- ctx_list = g_list_append (ctx_list,ctx2);
- ctx_list = g_list_append (ctx_list,ctx3);
- fail_unless (gsignond_identity_info_set_access_control_list (
- identity, ctx_list) == TRUE);
-
- list = gsignond_identity_info_get_access_control_list (identity);
- fail_if (list == NULL);
- list2 = g_list_nth (list, 0);
- ctx = (GSignondSecurityContext *) list2->data;
- fail_unless (gsignond_security_context_compare (ctx, ctx1) == 0);
- list2 = g_list_nth (list, 1);
- ctx = (GSignondSecurityContext *) list2->data;
- fail_unless (gsignond_security_context_compare (ctx, ctx2) == 0);
- list2 = g_list_nth (list, 2);
- ctx = (GSignondSecurityContext *) list2->data;
- fail_unless (gsignond_security_context_compare (ctx, ctx3) == 0);
- gsignond_security_context_list_free (list); list = NULL;
-
- /*owners*/
- fail_unless (gsignond_identity_info_set_owner (
- identity, ctx1) == TRUE);
- ctx = gsignond_identity_info_get_owner (identity);
- fail_if (ctx == NULL);
- fail_unless (gsignond_security_context_compare (ctx, ctx1) == 0);
- gsignond_security_context_free (ctx); ctx = NULL;
-
- fail_unless (gsignond_identity_info_set_validated (
- identity, FALSE) == TRUE);
-
- fail_unless (gsignond_identity_info_get_validated (identity) == FALSE);
-
- fail_unless (gsignond_identity_info_set_identity_type (
- identity, type) == TRUE);
-
- fail_unless (type == gsignond_identity_info_get_identity_type (identity));
-
- /*copy*/
- identity2 = gsignond_dictionary_copy (identity);
- fail_if (identity2 == NULL);
- fail_unless (gsignond_identity_info_compare (identity, identity2) == TRUE);
- gsignond_identity_info_unref (identity2);
- fail_unless (gsignond_identity_info_compare (identity, identity) == TRUE);
-
- gsignond_security_context_list_free (ctx_list); ctx_list = NULL;
-
- gsignond_identity_info_unref (identity);
-}
-END_TEST
-
static gboolean
_gsignond_query_read_int (
sqlite3_stmt *stmt,
Suite *s = suite_create ("Database");
TCase *tc_core = tcase_create ("Tests");
- tcase_add_test (tc_core, test_identity_info);
tcase_add_test (tc_core, test_sql_database);
tcase_add_test (tc_core, test_secret_storage);
TESTS = digestplugintest passwordplugintest pluginproxytest pluginremotetest
-TESTS_ENVIRONMENT= SSO_PLUGINS_DIR=$(top_builddir)/src/plugins/.libs \
+TESTS_ENVIRONMENT= SSO_GPLUGINS_DIR=$(top_builddir)/src/plugins/.libs \
SSO_BIN_DIR=$(top_builddir)/src/daemon/.libs \
SSO_STORAGE_PATH=/tmp/gsignond \
- LD_LIBRARY_PATH="$(top_builddir)/src/daemon/plugins/plugind/.libs:$(top_builddir)/src/common/.libs:$(top_builddir)/src/common/db/.libs:$(top_builddir)/src/daemon/.libs:$(top_builddir)/src/daemon/db/.libs:$(top_builddir)/src/daemon/dbus/.libs:$(top_builddir)/src/daemon/plugins/.libs"
+ LD_LIBRARY_PATH="$(top_builddir)/src/common/.libs:$(top_builddir)/src/common/db/.libs:$(top_builddir)/src/daemon/.libs:$(top_builddir)/src/daemon/db/.libs:$(top_builddir)/src/daemon/dbus/.libs:$(top_builddir)/src/daemon/plugins/.libs"
VALGRIND_TESTS_DISABLE =
$(GSIGNOND_CFLAGS) \
$(CHECK_CFLAGS) \
-I$(top_builddir) \
+ -I$(top_builddir)/src/ \
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/plugins/digest \
-I$(top_srcdir)/include
$(GSIGNOND_CFLAGS) \
$(CHECK_CFLAGS) \
-I$(top_builddir) \
+ -I$(top_builddir)/src/ \
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/plugins/password \
-I$(top_srcdir)/include/
$(GSIGNOND_CFLAGS) \
$(CHECK_CFLAGS) \
-I$(top_builddir) \
+ -I$(top_builddir)/src/ \
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/daemon/plugins \
-I$(top_srcdir)/include
$(GSIGNOND_CFLAGS) \
$(CHECK_CFLAGS) \
-I$(top_builddir) \
+ -I$(top_builddir)/src/ \
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/daemon/plugins \
- -I$(top_srcdir)/src/daemon/plugins/plugind \
-I$(top_srcdir)/include
pluginremotetest_LDADD = \
$(top_builddir)/src/common/libgsignond-common.la \
$(top_builddir)/src/daemon/plugins/libgsignond-plugins.la \
- $(top_builddir)/src/daemon/plugins/plugind/libgsignond-plugind-daemon.la \
+ $(top_builddir)/src/gplugind/libgsignond-plugind-daemon.la \
$(GSIGNOND_LIBS) \
$(CHECK_LIBS)
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pluginremotetest_DEPENDENCIES = \
$(top_builddir)/src/common/libgsignond-common.la \
$(top_builddir)/src/daemon/plugins/libgsignond-plugins.la \
- $(top_builddir)/src/daemon/plugins/plugind/libgsignond-plugind-daemon.la \
+ $(top_builddir)/src/gplugind/libgsignond-plugind-daemon.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
pluginremotetest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
DIST_SOURCES = $(digestplugintest_SOURCES) \
$(passwordplugintest_SOURCES) $(pluginproxytest_SOURCES) \
$(pluginremotetest_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
ETAGS = etags
CTAGS = ctags
am__tty_colors = \
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BASE_STORAGE_DIR = @BASE_STORAGE_DIR@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
GSIGNOND_CFLAGS = @GSIGNOND_CFLAGS@
GSIGNOND_LIBS = @GSIGNOND_LIBS@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KEYCHAIN_SYSCTX = @KEYCHAIN_SYSCTX@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBECRYPTFS_CFLAGS = @LIBECRYPTFS_CFLAGS@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-TESTS_ENVIRONMENT = SSO_PLUGINS_DIR=$(top_builddir)/src/plugins/.libs \
+TESTS_ENVIRONMENT = SSO_GPLUGINS_DIR=$(top_builddir)/src/plugins/.libs \
SSO_BIN_DIR=$(top_builddir)/src/daemon/.libs \
SSO_STORAGE_PATH=/tmp/gsignond \
- LD_LIBRARY_PATH="$(top_builddir)/src/daemon/plugins/plugind/.libs:$(top_builddir)/src/common/.libs:$(top_builddir)/src/common/db/.libs:$(top_builddir)/src/daemon/.libs:$(top_builddir)/src/daemon/db/.libs:$(top_builddir)/src/daemon/dbus/.libs:$(top_builddir)/src/daemon/plugins/.libs"
+ LD_LIBRARY_PATH="$(top_builddir)/src/common/.libs:$(top_builddir)/src/common/db/.libs:$(top_builddir)/src/daemon/.libs:$(top_builddir)/src/daemon/db/.libs:$(top_builddir)/src/daemon/dbus/.libs:$(top_builddir)/src/daemon/plugins/.libs"
VALGRIND_TESTS_DISABLE =
SUPPRESSIONS = $(top_srcdir)/test/valgrind.supp
$(GSIGNOND_CFLAGS) \
$(CHECK_CFLAGS) \
-I$(top_builddir) \
+ -I$(top_builddir)/src/ \
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/plugins/digest \
-I$(top_srcdir)/include
$(GSIGNOND_CFLAGS) \
$(CHECK_CFLAGS) \
-I$(top_builddir) \
+ -I$(top_builddir)/src/ \
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/plugins/password \
-I$(top_srcdir)/include/
$(GSIGNOND_CFLAGS) \
$(CHECK_CFLAGS) \
-I$(top_builddir) \
+ -I$(top_builddir)/src/ \
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/daemon/plugins \
-I$(top_srcdir)/include
$(GSIGNOND_CFLAGS) \
$(CHECK_CFLAGS) \
-I$(top_builddir) \
+ -I$(top_builddir)/src/ \
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/daemon/plugins \
- -I$(top_srcdir)/src/daemon/plugins/plugind \
-I$(top_srcdir)/include
pluginremotetest_LDADD = \
$(top_builddir)/src/common/libgsignond-common.la \
$(top_builddir)/src/daemon/plugins/libgsignond-plugins.la \
- $(top_builddir)/src/daemon/plugins/plugind/libgsignond-plugind-daemon.la \
+ $(top_builddir)/src/gplugind/libgsignond-plugind-daemon.la \
$(GSIGNOND_LIBS) \
$(CHECK_LIBS)
#include "gsignond/gsignond-error.h"
#include "gsignond/gsignond-log.h"
#include "gsignond/gsignond-config.h"
-#include "common/gsignond-plugin-loader.h"
+#include "gsignond/gsignond-utils.h"
+
+static const gchar *realm_list[] = { "realm1", "realm2", "realm3", NULL };
static void check_plugin(GSignondPlugin* plugin)
{
// set all the required stuff so that no ui-action is required
gsignond_session_data_set_realm(data, "realm1");
+ GSequence *allowed_realms = gsignond_copy_array_to_sequence(realm_list);
+ gsignond_session_data_set_allowed_realms(data, allowed_realms);
+ g_sequence_free(allowed_realms);
gsignond_dictionary_set_string(data, "Algo", "md5-sess");
gsignond_dictionary_set_string(data, "Nonce",
"abg10b1234ee1f0e8b11d0f600bfb0c093");
//correct values
data = gsignond_dictionary_new ();
gsignond_session_data_set_username (data, "user1");
+ gsignond_session_data_set_realm(data, "realm1");
+ GSequence *allowed_realms = gsignond_copy_array_to_sequence(realm_list);
+ gsignond_session_data_set_allowed_realms(data, allowed_realms);
+ g_sequence_free(allowed_realms);
gsignond_session_data_set_realm (data, "realm1");
gsignond_dictionary_set_string (data, "Algo", "md5-sess");
gsignond_dictionary_set_string (data, "Nonce",
#include "gsignond/gsignond-plugin-interface.h"
#include "gsignond/gsignond-error.h"
#include "gsignond/gsignond-config.h"
-#include "common/gsignond-plugin-loader.h"
static void check_plugin(GSignondPlugin* plugin)
#include "gsignond-plugin-remote.h"
#include "gsignond/gsignond-error.h"
#include "gsignond/gsignond-log.h"
-#include "common/gsignond-plugin-loader.h"
static GMainLoop *main_loop = NULL;
}
}
+static GSignondPluginProxy* _make_plugin_proxy(GSignondConfig* config, const gchar* plugin_type)
+{
+ gchar* loader_path = g_build_filename (g_getenv("SSO_BIN_DIR"), "gsignond-plugind", NULL);
+
+ GSignondPluginProxy* proxy = gsignond_plugin_proxy_new(loader_path, plugin_type,
+ gsignond_config_get_integer (config, GSIGNOND_CONFIG_PLUGIN_TIMEOUT));
+ g_free(loader_path);
+ return proxy;
+}
+
START_TEST (test_pluginproxy_create)
{
DBG("test_pluginproxy_create\n");
GSignondConfig* config = gsignond_config_new();
fail_if(config == NULL);
- GSignondPluginProxy* proxy2 = gsignond_plugin_proxy_new(config,
+ GSignondPluginProxy* proxy2 = _make_plugin_proxy(config,
"absentplugin");
fail_if (proxy2 != NULL);
- GSignondPluginProxy* proxy = gsignond_plugin_proxy_new(config, "password");
+ GSignondPluginProxy* proxy = _make_plugin_proxy(config, "password");
fail_if (proxy == NULL);
check_plugin_proxy(proxy, "password", pass_mechs);
GSignondConfig* config = gsignond_config_new();
fail_if(config == NULL);
- GSignondPluginProxy* proxy = gsignond_plugin_proxy_new(config, "password");
+ GSignondPluginProxy* proxy = _make_plugin_proxy(config, "password");
fail_if (proxy == NULL);
GSignondSessionData* data = gsignond_dictionary_new();
GSignondConfig* config = gsignond_config_new();
fail_if(config == NULL);
- GSignondPluginProxy* proxy = gsignond_plugin_proxy_new(config, "ssotest");
+ GSignondPluginProxy* proxy = _make_plugin_proxy(config, "ssotest");
fail_if (proxy == NULL);
GSignondSessionData* data = gsignond_dictionary_new();
GSignondConfig* config = gsignond_config_new();
fail_if(config == NULL);
- GSignondPluginProxy* proxy = gsignond_plugin_proxy_new(config, "password");
+ GSignondPluginProxy* proxy = _make_plugin_proxy(config, "password");
fail_if (proxy == NULL);
GSignondSessionData* data = gsignond_dictionary_new();
GSignondConfig* config = gsignond_config_new();
fail_if(config == NULL);
- GSignondPluginProxy* proxy = gsignond_plugin_proxy_new(config, "ssotest");
+ GSignondPluginProxy* proxy = _make_plugin_proxy(config, "ssotest");
fail_if (proxy == NULL);
GSignondSessionData* data = gsignond_dictionary_new();
}
END_TEST
-START_TEST (test_pluginproxyfactory_add)
-{
- DBG("");
- GSignondConfig* config = gsignond_config_new();
- fail_if(config == NULL);
-
- GSignondPluginProxyFactory* factory = gsignond_plugin_proxy_factory_new(
- config);
- fail_if(factory == NULL);
-
- GSignondPluginProxy* proxy = gsignond_plugin_proxy_new(config, "password");
- fail_if (proxy == NULL);
- fail_if(gsignond_plugin_proxy_factory_add_plugin(factory, proxy) == FALSE);
- fail_if(gsignond_plugin_proxy_factory_add_plugin(factory, proxy) == TRUE);
- fail_if(gsignond_plugin_proxy_factory_get_plugin(factory, "password")
- != proxy);
- g_object_unref(proxy);
-
- g_object_unref(proxy);
- g_object_unref(factory);
- g_object_unref(config);
-}
-END_TEST
-
typedef struct {
GSignondPluginProxyFactory *factory;
GSignondPluginProxy *proxy;
ProxyTimeoutData *data = (ProxyTimeoutData *)userdata;
fail_if (data == NULL);
+ fail_if(g_hash_table_size(data->factory->plugins) != 0);
+
GSignondPluginProxy *proxy = gsignond_plugin_proxy_factory_get_plugin (data->factory, "ssotest");
fail_if (proxy == NULL);
+ fail_if(g_hash_table_size(data->factory->plugins) != 1);
- fail_if (proxy == data->proxy, "expected new proxy object, but got cached object");
+ // This is unreliable: the proxy object may be allocated to the same location
+ // as the old object!
+ //fail_if (proxy == data->proxy, "expected new proxy object, but got cached object");
g_object_unref(proxy);
g_free (userdata);
ProxyTimeoutData *data = (ProxyTimeoutData *)userdata;
fail_if (data == NULL);
+ fail_if(g_hash_table_size(data->factory->plugins) != 1);
GSignondPluginProxy *proxy = gsignond_plugin_proxy_factory_get_plugin (data->factory, "ssotest");
fail_if (proxy == NULL);
+ fail_if(g_hash_table_size(data->factory->plugins) != 1);
fail_unless (proxy == data->proxy, "expected cached proxy object, but got new object");
GSignondConfig *config = NULL;
/* CASE 1: proxy timeout disabled */
- g_setenv ("SSO_PLUGIN_TIMEOUT", "0", TRUE);
-
config = gsignond_config_new();
fail_if(config == NULL);
+ gsignond_config_set_integer (config, GSIGNOND_CONFIG_PLUGIN_TIMEOUT, 0);
- factory = gsignond_plugin_proxy_factory_new ( config);
+ factory = gsignond_plugin_proxy_factory_new (config);
fail_if (factory == NULL);
proxy1 = gsignond_plugin_proxy_factory_get_plugin (factory, "ssotest");
fail_if (proxy1 == NULL);
g_object_unref (proxy1);
+ fail_if(g_hash_table_size(factory->plugins) != 1);
proxy2 = gsignond_plugin_proxy_factory_get_plugin (factory, "ssotest");
fail_if (proxy2 == NULL);
+ fail_if(g_hash_table_size(factory->plugins) != 1);
fail_unless (proxy1 == proxy2, "got new plugin proxy object, "
"where expected cached object(%p,%p)",
g_object_unref (factory);
/* CASE 2: proxy timeout enbled */
- g_setenv ("SSO_PLUGIN_TIMEOUT", "1", TRUE);
-
config = gsignond_config_new();
fail_if(config == NULL);
+ gsignond_config_set_integer (config, GSIGNOND_CONFIG_PLUGIN_TIMEOUT, 1);
factory = gsignond_plugin_proxy_factory_new (config);
fail_if (factory == NULL);
proxy1 = gsignond_plugin_proxy_factory_get_plugin (factory, "ssotest");
fail_if (proxy1 == NULL);
g_object_unref (proxy1);
-
ProxyTimeoutData *data = g_new0(ProxyTimeoutData, 1);
data->factory = factory;
data->proxy = proxy1;
g_object_unref(factory);
/* CASE 3: proxy timeout enable - request recently closed plugin */
- g_setenv ("SSO_PLUGIN_TIMEOUT", "2", TRUE);
config = gsignond_config_new ();
fail_if (config == NULL);
+ gsignond_config_set_integer (config, GSIGNOND_CONFIG_PLUGIN_TIMEOUT, 2);
factory = gsignond_plugin_proxy_factory_new(config);
fail_if (factory == NULL);
tcase_add_test (tc_core, test_pluginproxy_process_queue_cancel);
tcase_add_test (tc_core, test_pluginproxyfactory_methods_and_mechanisms);
tcase_add_test (tc_core, test_pluginproxyfactory_get);
- tcase_add_test (tc_core, test_pluginproxyfactory_add);
tcase_add_test (tc_core, test_pluginproxyfactory_proxy_timeout);
suite_add_tcase (s, tc_core);
#include "daemon/gsignond-types.h"
#include "gsignond-plugin-remote-private.h"
#include "gsignond-plugin-remote.h"
-#include "plugind/gsignond-plugin-daemon.h"
+#include "gplugind/gsignond-plugin-daemon.h"
#include <gsignond/gsignond-plugin-interface.h>
#include <gsignond/gsignond-error.h>
#include <gsignond/gsignond-config.h>
GSignondConfig* config = gsignond_config_new ();
fail_if (config == NULL);
- plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new(config, plugin_type));
+ gchar* loader_path = g_build_filename (g_getenv("SSO_BIN_DIR"), "gsignond-plugind", NULL);
+ plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new(loader_path, plugin_type));
+ g_free(loader_path);
g_object_unref (config);
check_plugin (plugin);
GSignondConfig* config = gsignond_config_new ();
fail_if (config == NULL);
- plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new(config, plugin_type));
+ gchar* loader_path = g_build_filename (g_getenv("SSO_BIN_DIR"), "gsignond-plugind", NULL);
+ plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new(loader_path, plugin_type));
+ g_free(loader_path);
g_object_unref (config);
fail_if (plugin == NULL);
GSignondConfig* config = gsignond_config_new ();
fail_if (config == NULL);
- plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new(config, plugin_type));
+ gchar* loader_path = g_build_filename (g_getenv("SSO_BIN_DIR"), "gsignond-plugind", NULL);
+ plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new(loader_path, plugin_type));
+ g_free(loader_path);
fail_if (plugin == NULL);
priv = (GSignondPluginRemotePrivate *)GSIGNOND_PLUGIN_REMOTE (plugin)->priv;
GSignondConfig* config = gsignond_config_new ();
fail_if (config == NULL);
- plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new(config, plugin_type));
+ gchar* loader_path = g_build_filename (g_getenv("SSO_BIN_DIR"), "gsignond-plugind", NULL);
+ plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new(loader_path, plugin_type));
+ g_free(loader_path);
fail_if (plugin == NULL);
priv = (GSignondPluginRemotePrivate *)GSIGNOND_PLUGIN_REMOTE (plugin)->priv;
GSignondConfig* config = gsignond_config_new ();
fail_if(config == NULL);
- plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new(config, plugin_type));
+ gchar* loader_path = g_build_filename (g_getenv("SSO_BIN_DIR"), "gsignond-plugind", NULL);
+ plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new(loader_path, plugin_type));
+ g_free(loader_path);
fail_if(plugin == NULL);
GSignondSessionData* result = NULL;
GSignondConfig* config = gsignond_config_new ();
fail_if(config == NULL);
- plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new(config, plugin_type));
+ gchar* loader_path = g_build_filename (g_getenv("SSO_BIN_DIR"), "gsignond-plugind", NULL);
+ plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new(loader_path, plugin_type));
+ g_free(loader_path);
fail_if(plugin == NULL);
GSignondSessionData* result = NULL;
GSignondConfig* config = gsignond_config_new ();
fail_if(config == NULL);
- plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new(config, plugin_type));
+ gchar* loader_path = g_build_filename (g_getenv("SSO_BIN_DIR"), "gsignond-plugind", NULL);
+ plugin = GSIGNOND_PLUGIN (gsignond_plugin_remote_new(loader_path, plugin_type));
+ g_free(loader_path);
fail_if(plugin == NULL);
GSignondSessionData* result = NULL;
GSignondPluginDaemon *daemon = NULL;
const gchar *plugin_type = "password";
- GSignondConfig* config = gsignond_config_new ();
- fail_if(config == NULL);
+ const gchar *plugin_dir = g_getenv("SSO_GPLUGINS_DIR");
+ fail_if (plugin_dir == NULL);
- gchar *plugin_path = g_module_build_path (gsignond_config_get_string (
- config, GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR), "nonexisting");
+ gchar *plugin_path = g_module_build_path (plugin_dir, "nonexisting");
fail_if (plugin_path == NULL);
daemon = gsignond_plugin_daemon_new (plugin_path, "nonexisting", 0, 1);
g_free (plugin_path);
fail_if (daemon != NULL);
- plugin_path = g_module_build_path (gsignond_config_get_string (
- config, GSIGNOND_CONFIG_GENERAL_PLUGINS_DIR), plugin_type);
+ plugin_path = g_module_build_path (plugin_dir, plugin_type);
fail_if (plugin_path == NULL);
daemon = gsignond_plugin_daemon_new (plugin_path, plugin_type, 0, 1);
g_free (plugin_path);
fail_if (daemon == NULL);
g_object_unref (daemon);
daemon = NULL;
- g_object_unref(config);
}
END_TEST
<insert_a_suppression_name_here>
Memcheck:Leak
...
+fun:g_type_register_fundamental
+}
+{
+<insert_a_suppression_name_here>
+Memcheck:Leak
+...
+fun:gobject_init_ctor
+}
+{
+<insert_a_suppression_name_here>
+Memcheck:Leak
+...
fun:g_type_class_ref
}
{
mkdir -p $2 && \
cd $2 && \
-git rm -r * && \
+git rm -r *; rm -rf packaging;
tar -xzvf $currdir/$1 -C $2 --strip-components 1 && \
mkdir -p packaging && \
-cd packaging && \
-cp -f ../dists/rpm/gsignond-tizen.spec gsignond.spec && \
-cp -f ../dists/rpm/gsignond-tizen.changes gsignond.changes && \
-cd .. && git add *;
+cp -f dists/rpm/gsignond-tizen.spec packaging/gsignond.spec && \
+cp -f dists/rpm/gsignond-tizen.changes packaging/gsignond.changes && \
+cp -f dists/rpm/gsignond-tizen.manifest packaging/gsignond.manifest && \
+cp $currdir/.gitignore $2/ && \
+git add -f *;
if test $# -ge 1 ; then
if test "$1" == "--with-duma" ; then
with_duma=1
- with_gdb=1
+ with_gdb=0
else
with_duma=0
if test "$1" == "--with-gdb" ; then
export SSO_KEYCHAIN_SYSCTX="$SRC_HOME/test/daemon/.libs/daemontest"
fi
export SSO_BIN_DIR=$SRC_HOME/src/daemon/.libs
-export SSO_PLUGINS_DIR=$SRC_HOME/src/plugins/.libs
+export SSO_GPLUGINS_DIR=$SRC_HOME/src/plugins/.libs
export LD_LIBRARY_PATH="$SRC_HOME/src/daemon/plugins/plugind/.libs:$SRC_HOME/src/daemon/plugins/.libs"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SRC_HOME/src/common/.libs:$SRC_HOME/src/common/db/.libs:$SRC_HOME/src/daemon/.libs:$SRC_HOME/src/daemon/db/.libs:$SRC_HOME/src/daemon/dbus/.libs"
export G_MESSAGES_DEBUG="all"
# Clean db
-rm -rf /tmp/gsignond
+#rm -rf /tmp/gsignond
echo "--------------------------"
echo "with_duma: $with_duma"
export DUMA_PROTECT_FREE=1
export DUMA_PROTECT_BELOW=1
- LD_PRELOAD="libduma.so" $SRC_HOME/src/daemon/.libs/gsignond &
+ LD_PRELOAD="libduma.so" $SRC_HOME/src/daemon/.libs/gsignond
if test $with_gdb -eq 1 ; then
sudo gdb --pid=`pidof gsignond`