make dist
authorSam Hartman <hartmans@painless-security.com>
Mon, 4 Jul 2011 10:53:18 +0000 (06:53 -0400)
committerSam Hartman <hartmans@painless-security.com>
Mon, 4 Jul 2011 10:53:18 +0000 (06:53 -0400)
Makefile.in
po/moonshot.pot
src/dbus-client.c
src/moonshot-identity-request.c
src/moonshot-server.c [new file with mode: 0644]
src/moonshot-window.c

index d9cedb5..4ec055a 100644 (file)
@@ -16,7 +16,6 @@
 @SET_MAKE@
 
 
-
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
@@ -44,32 +43,27 @@ bin_PROGRAMS = src/moonshot$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2)
 @IPC_MSRPC_TRUE@       --define=IPC_MSRPC
 
 @IPC_MSRPC_TRUE@am__append_4 = \
-@IPC_MSRPC_TRUE@        src/moonshot-msrpc-server.vala \
-@IPC_MSRPC_TRUE@        src/moonshot-msrpc_s.c \
 @IPC_MSRPC_TRUE@        src/moonshot-msrpc.vapi
 
 @IPC_MSRPC_TRUE@am__append_5 = src/msrpc-client
-@IPC_MSRPC_FALSE@am__append_6 = \
-@IPC_MSRPC_FALSE@      --pkg dbus-glib-1 \
-@IPC_MSRPC_FALSE@      --define=IPC_DBUS
+@IPC_DBUS_TRUE@am__append_6 = \
+@IPC_DBUS_TRUE@        --pkg dbus-glib-1 \
+@IPC_DBUS_TRUE@        --define=IPC_DBUS
 
-@IPC_MSRPC_FALSE@am__append_7 = src/moonshot-dbus-server.vala
-@IPC_MSRPC_FALSE@am__append_8 = src/dbus-client
+@IPC_DBUS_TRUE@am__append_7 = src/dbus-client
 subdir = .
-DIST_COMMON = $(am__configure_deps) $(am__noinst_HEADERS_DIST) \
-       $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       $(srcdir)/config.h.in $(top_srcdir)/configure ABOUT-NLS \
-       ChangeLog build-aux/compile build-aux/config.guess \
-       build-aux/config.rpath build-aux/config.sub build-aux/depcomp \
-       build-aux/install-sh build-aux/missing src/dbus-client.c \
-       src/moonshot-add-dialog.c src/moonshot-custom-vbox.c \
-       src/moonshot-dbus-server.c src/moonshot-id.c \
+DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+       $(top_srcdir)/configure ABOUT-NLS ChangeLog build-aux/compile \
+       build-aux/config.guess build-aux/config.rpath \
+       build-aux/config.sub build-aux/depcomp build-aux/install-sh \
+       build-aux/missing src/dbus-client.c src/moonshot-add-dialog.c \
+       src/moonshot-custom-vbox.c src/moonshot-id.c \
        src/moonshot-idcard-widget.c src/moonshot-identities-manager.c \
-       src/moonshot-identity-request.c src/moonshot-msrpc-server.c \
-       src/moonshot-password-dialog.c src/moonshot-utils.c \
-       src/moonshot-window.c src/msrpc-client.c \
-       src_dbus_client_vala.stamp src_moonshot_vala.stamp \
-       src_msrpc_client_vala.stamp
+       src/moonshot-identity-request.c src/moonshot-password-dialog.c \
+       src/moonshot-server.c src/moonshot-utils.c \
+       src/moonshot-window.c src_dbus_client_vala.stamp \
+       src_moonshot_vala.stamp src_msrpc_client_vala.stamp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
@@ -87,47 +81,44 @@ CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 @IPC_MSRPC_TRUE@am__EXEEXT_1 = src/msrpc-client$(EXEEXT)
-@IPC_MSRPC_FALSE@am__EXEEXT_2 = src/dbus-client$(EXEEXT)
+@IPC_DBUS_TRUE@am__EXEEXT_2 = src/dbus-client$(EXEEXT)
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(dbusservicedir)"
 PROGRAMS = $(bin_PROGRAMS)
 am__src_dbus_client_SOURCES_DIST = src/dbus-client.vala
 am__dirstamp = $(am__leading_dot)dirstamp
-@IPC_MSRPC_FALSE@am_src_dbus_client_OBJECTS =  \
-@IPC_MSRPC_FALSE@      src/dbus-client.$(OBJEXT)
+@IPC_DBUS_TRUE@am_src_dbus_client_OBJECTS = src/dbus-client.$(OBJEXT)
 src_dbus_client_OBJECTS = $(am_src_dbus_client_OBJECTS)
 am__DEPENDENCIES_1 =
-@IPC_MSRPC_FALSE@src_dbus_client_DEPENDENCIES = $(am__DEPENDENCIES_1)
+@IPC_DBUS_TRUE@src_dbus_client_DEPENDENCIES = $(am__DEPENDENCIES_1)
 am__src_moonshot_SOURCES_DIST = src/moonshot-id.vala \
        src/moonshot-add-dialog.vala src/moonshot-idcard-widget.vala \
        src/moonshot-custom-vbox.vala \
        src/moonshot-identities-manager.vala \
-       src/moonshot-identity-request.vala src/moonshot-window.vala \
-       src/moonshot-password-dialog.vala src/moonshot-utils.vala \
-       src/moonshot-msrpc-server.vala src/moonshot-msrpc_s.c \
-       src/moonshot-msrpc.vapi src/moonshot-dbus-server.vala
-@IPC_MSRPC_TRUE@am__objects_1 = src/src_moonshot-moonshot-msrpc-server.$(OBJEXT) \
-@IPC_MSRPC_TRUE@       src/src_moonshot-moonshot-msrpc_s.$(OBJEXT)
-@IPC_MSRPC_FALSE@am__objects_2 = src/src_moonshot-moonshot-dbus-server.$(OBJEXT)
+       src/moonshot-identity-request.vala src/moonshot-server.vala \
+       src/moonshot-window.vala src/moonshot-password-dialog.vala \
+       src/moonshot-utils.vala src/moonshot-msrpc.vapi
+am__objects_1 =
 am_src_moonshot_OBJECTS = src/src_moonshot-moonshot-id.$(OBJEXT) \
        src/src_moonshot-moonshot-add-dialog.$(OBJEXT) \
        src/src_moonshot-moonshot-idcard-widget.$(OBJEXT) \
        src/src_moonshot-moonshot-custom-vbox.$(OBJEXT) \
        src/src_moonshot-moonshot-identities-manager.$(OBJEXT) \
        src/src_moonshot-moonshot-identity-request.$(OBJEXT) \
+       src/src_moonshot-moonshot-server.$(OBJEXT) \
        src/src_moonshot-moonshot-window.$(OBJEXT) \
        src/src_moonshot-moonshot-password-dialog.$(OBJEXT) \
-       src/src_moonshot-moonshot-utils.$(OBJEXT) $(am__objects_1) \
-       $(am__objects_2)
-src_moonshot_OBJECTS = $(am_src_moonshot_OBJECTS)
+       src/src_moonshot-moonshot-utils.$(OBJEXT) $(am__objects_1)
+@IPC_MSRPC_TRUE@nodist_src_moonshot_OBJECTS =  \
+@IPC_MSRPC_TRUE@       src/src_moonshot-moonshot-msrpc_s.$(OBJEXT)
+src_moonshot_OBJECTS = $(am_src_moonshot_OBJECTS) \
+       $(nodist_src_moonshot_OBJECTS)
 src_moonshot_DEPENDENCIES = $(am__DEPENDENCIES_1)
 src_moonshot_LINK = $(CCLD) $(src_moonshot_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-am__src_msrpc_client_SOURCES_DIST = src/msrpc-client.vala \
-       src/moonshot-msrpc_c.c src/moonshot-msrpc.vapi
-@IPC_MSRPC_TRUE@am_src_msrpc_client_OBJECTS =  \
+@IPC_MSRPC_TRUE@nodist_src_msrpc_client_OBJECTS =  \
 @IPC_MSRPC_TRUE@       src/msrpc-client.$(OBJEXT) \
 @IPC_MSRPC_TRUE@       src/moonshot-msrpc_c.$(OBJEXT)
-src_msrpc_client_OBJECTS = $(am_src_msrpc_client_OBJECTS)
+src_msrpc_client_OBJECTS = $(nodist_src_msrpc_client_OBJECTS)
 @IPC_MSRPC_TRUE@src_msrpc_client_DEPENDENCIES = $(am__DEPENDENCIES_1)
 DEFAULT_INCLUDES = -I.@am__isrc@
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
@@ -157,10 +148,10 @@ AM_V_GEN = $(am__v_GEN_$(V))
 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(src_dbus_client_SOURCES) $(src_moonshot_SOURCES) \
-       $(src_msrpc_client_SOURCES)
+       $(nodist_src_moonshot_SOURCES) \
+       $(nodist_src_msrpc_client_SOURCES)
 DIST_SOURCES = $(am__src_dbus_client_SOURCES_DIST) \
-       $(am__src_moonshot_SOURCES_DIST) \
-       $(am__src_msrpc_client_SOURCES_DIST)
+       $(am__src_moonshot_SOURCES_DIST)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        html-recursive info-recursive install-data-recursive \
        install-dvi-recursive install-exec-recursive \
@@ -190,8 +181,6 @@ am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 DATA = $(dbusservice_DATA)
-am__noinst_HEADERS_DIST = src/moonshot-msrpc.h
-HEADERS = $(noinst_HEADERS)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -374,18 +363,20 @@ src_moonshot_SOURCES = src/moonshot-id.vala \
        src/moonshot-add-dialog.vala src/moonshot-idcard-widget.vala \
        src/moonshot-custom-vbox.vala \
        src/moonshot-identities-manager.vala \
-       src/moonshot-identity-request.vala src/moonshot-window.vala \
-       src/moonshot-password-dialog.vala src/moonshot-utils.vala \
-       $(am__append_4) $(am__append_7)
+       src/moonshot-identity-request.vala src/moonshot-server.vala \
+       src/moonshot-window.vala src/moonshot-password-dialog.vala \
+       src/moonshot-utils.vala $(am__append_4)
 src_moonshot_LDADD = \
         $(moonshot_LIBS)
 
 @OS_WIN32_TRUE@src_moonshot_CFLAGS = -mwindows
-@IPC_MSRPC_TRUE@noinst_HEADERS = src/moonshot-msrpc.h
-@IPC_MSRPC_TRUE@src_msrpc_client_SOURCES = \
+@IPC_MSRPC_TRUE@nodist_src_moonshot_SOURCES = \
+@IPC_MSRPC_TRUE@        src/moonshot-msrpc_s.c
+
+@IPC_MSRPC_TRUE@nodist_src_msrpc_client_SOURCES = \
 @IPC_MSRPC_TRUE@        src/msrpc-client.vala \
-@IPC_MSRPC_TRUE@        src/moonshot-msrpc_c.c \
-@IPC_MSRPC_TRUE@        src/moonshot-msrpc.vapi
+@IPC_MSRPC_TRUE@        src/moonshot-msrpc.vapi \
+@IPC_MSRPC_TRUE@        src/moonshot-msrpc_c.c
 
 @IPC_MSRPC_TRUE@src_msrpc_client_LDADD = \
 @IPC_MSRPC_TRUE@        $(moonshot_LIBS)
@@ -393,20 +384,18 @@ src_moonshot_LDADD = \
 @IPC_MSRPC_TRUE@BUILT_SOURCES = src/moonshot-msrpc.h src/moonshot-msrpc_s.c src/moonshot-msrpc_c.c
 @IPC_MSRPC_TRUE@DISTCLEANFILES = ${BUILT_SOURCES}
 
-# IPC_DBUS
-
 # DBus service file
-@IPC_MSRPC_FALSE@dbusservicedir = $(datadir)/dbus-1/services
-@IPC_MSRPC_FALSE@dbusservice_in_files = org.janet.Moonshot.service.in
-@IPC_MSRPC_FALSE@dbusservice_DATA = $(dbusservice_in_files:.service.in=.service)
-@IPC_MSRPC_FALSE@src_dbus_client_SOURCES = \
-@IPC_MSRPC_FALSE@        src/dbus-client.vala
+@IPC_DBUS_TRUE@dbusservicedir = $(datadir)/dbus-1/services
+@IPC_DBUS_TRUE@dbusservice_in_files = org.janet.Moonshot.service.in
+@IPC_DBUS_TRUE@dbusservice_DATA = $(dbusservice_in_files:.service.in=.service)
+@IPC_DBUS_TRUE@src_dbus_client_SOURCES = \
+@IPC_DBUS_TRUE@        src/dbus-client.vala
 
-@IPC_MSRPC_FALSE@src_dbus_client_LDADD = \
-@IPC_MSRPC_FALSE@        $(moonshot_LIBS)
+@IPC_DBUS_TRUE@src_dbus_client_LDADD = \
+@IPC_DBUS_TRUE@        $(moonshot_LIBS)
 
-@IPC_MSRPC_FALSE@CLEANFILES = $(dbusservice_DATA)
-@IPC_MSRPC_FALSE@EXTRA_DIST = $(dbusservice_in_files)
+@IPC_DBUS_TRUE@CLEANFILES = $(dbusservice_DATA)
+@IPC_DBUS_TRUE@EXTRA_DIST = $(dbusservice_in_files)
 all: $(BUILT_SOURCES) config.h
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
@@ -523,18 +512,16 @@ src/src_moonshot-moonshot-identities-manager.$(OBJEXT):  \
        src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot-moonshot-identity-request.$(OBJEXT):  \
        src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+src/src_moonshot-moonshot-server.$(OBJEXT): src/$(am__dirstamp) \
+       src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot-moonshot-window.$(OBJEXT): src/$(am__dirstamp) \
        src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot-moonshot-password-dialog.$(OBJEXT):  \
        src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot-moonshot-utils.$(OBJEXT): src/$(am__dirstamp) \
        src/$(DEPDIR)/$(am__dirstamp)
-src/src_moonshot-moonshot-msrpc-server.$(OBJEXT): src/$(am__dirstamp) \
-       src/$(DEPDIR)/$(am__dirstamp)
 src/src_moonshot-moonshot-msrpc_s.$(OBJEXT): src/$(am__dirstamp) \
        src/$(DEPDIR)/$(am__dirstamp)
-src/src_moonshot-moonshot-dbus-server.$(OBJEXT): src/$(am__dirstamp) \
-       src/$(DEPDIR)/$(am__dirstamp)
 src/moonshot$(EXEEXT): $(src_moonshot_OBJECTS) $(src_moonshot_DEPENDENCIES) src/$(am__dirstamp)
        @rm -f src/moonshot$(EXEEXT)
        $(AM_V_CCLD)$(src_moonshot_LINK) $(src_moonshot_OBJECTS) $(src_moonshot_LDADD) $(LIBS)
@@ -553,14 +540,13 @@ mostlyclean-compile:
        -rm -f src/msrpc-client.$(OBJEXT)
        -rm -f src/src_moonshot-moonshot-add-dialog.$(OBJEXT)
        -rm -f src/src_moonshot-moonshot-custom-vbox.$(OBJEXT)
-       -rm -f src/src_moonshot-moonshot-dbus-server.$(OBJEXT)
        -rm -f src/src_moonshot-moonshot-id.$(OBJEXT)
        -rm -f src/src_moonshot-moonshot-idcard-widget.$(OBJEXT)
        -rm -f src/src_moonshot-moonshot-identities-manager.$(OBJEXT)
        -rm -f src/src_moonshot-moonshot-identity-request.$(OBJEXT)
-       -rm -f src/src_moonshot-moonshot-msrpc-server.$(OBJEXT)
        -rm -f src/src_moonshot-moonshot-msrpc_s.$(OBJEXT)
        -rm -f src/src_moonshot-moonshot-password-dialog.$(OBJEXT)
+       -rm -f src/src_moonshot-moonshot-server.$(OBJEXT)
        -rm -f src/src_moonshot-moonshot-utils.$(OBJEXT)
        -rm -f src/src_moonshot-moonshot-window.$(OBJEXT)
 
@@ -572,14 +558,13 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/msrpc-client.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-add-dialog.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-custom-vbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-dbus-server.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-id.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-idcard-widget.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-identities-manager.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-identity-request.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-msrpc-server.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-msrpc_s.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-password-dialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-server.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-utils.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_moonshot-moonshot-window.Po@am__quote@
 
@@ -697,6 +682,22 @@ src/src_moonshot-moonshot-identity-request.obj: src/moonshot-identity-request.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-identity-request.obj `if test -f 'src/moonshot-identity-request.c'; then $(CYGPATH_W) 'src/moonshot-identity-request.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-identity-request.c'; fi`
 
+src/src_moonshot-moonshot-server.o: src/moonshot-server.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-server.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-server.Tpo -c -o src/src_moonshot-moonshot-server.o `test -f 'src/moonshot-server.c' || echo '$(srcdir)/'`src/moonshot-server.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-server.Tpo src/$(DEPDIR)/src_moonshot-moonshot-server.Po
+@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='src/moonshot-server.c' object='src/src_moonshot-moonshot-server.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-server.o `test -f 'src/moonshot-server.c' || echo '$(srcdir)/'`src/moonshot-server.c
+
+src/src_moonshot-moonshot-server.obj: src/moonshot-server.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-server.obj -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-server.Tpo -c -o src/src_moonshot-moonshot-server.obj `if test -f 'src/moonshot-server.c'; then $(CYGPATH_W) 'src/moonshot-server.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-server.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-server.Tpo src/$(DEPDIR)/src_moonshot-moonshot-server.Po
+@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='src/moonshot-server.c' object='src/src_moonshot-moonshot-server.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-server.obj `if test -f 'src/moonshot-server.c'; then $(CYGPATH_W) 'src/moonshot-server.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-server.c'; fi`
+
 src/src_moonshot-moonshot-window.o: src/moonshot-window.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-window.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-window.Tpo -c -o src/src_moonshot-moonshot-window.o `test -f 'src/moonshot-window.c' || echo '$(srcdir)/'`src/moonshot-window.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-window.Tpo src/$(DEPDIR)/src_moonshot-moonshot-window.Po
@@ -745,22 +746,6 @@ src/src_moonshot-moonshot-utils.obj: src/moonshot-utils.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-utils.obj `if test -f 'src/moonshot-utils.c'; then $(CYGPATH_W) 'src/moonshot-utils.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-utils.c'; fi`
 
-src/src_moonshot-moonshot-msrpc-server.o: src/moonshot-msrpc-server.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-msrpc-server.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-msrpc-server.Tpo -c -o src/src_moonshot-moonshot-msrpc-server.o `test -f 'src/moonshot-msrpc-server.c' || echo '$(srcdir)/'`src/moonshot-msrpc-server.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-msrpc-server.Tpo src/$(DEPDIR)/src_moonshot-moonshot-msrpc-server.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='src/moonshot-msrpc-server.c' object='src/src_moonshot-moonshot-msrpc-server.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-msrpc-server.o `test -f 'src/moonshot-msrpc-server.c' || echo '$(srcdir)/'`src/moonshot-msrpc-server.c
-
-src/src_moonshot-moonshot-msrpc-server.obj: src/moonshot-msrpc-server.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-msrpc-server.obj -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-msrpc-server.Tpo -c -o src/src_moonshot-moonshot-msrpc-server.obj `if test -f 'src/moonshot-msrpc-server.c'; then $(CYGPATH_W) 'src/moonshot-msrpc-server.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-msrpc-server.c'; fi`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-msrpc-server.Tpo src/$(DEPDIR)/src_moonshot-moonshot-msrpc-server.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='src/moonshot-msrpc-server.c' object='src/src_moonshot-moonshot-msrpc-server.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-msrpc-server.obj `if test -f 'src/moonshot-msrpc-server.c'; then $(CYGPATH_W) 'src/moonshot-msrpc-server.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-msrpc-server.c'; fi`
-
 src/src_moonshot-moonshot-msrpc_s.o: src/moonshot-msrpc_s.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-msrpc_s.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-msrpc_s.Tpo -c -o src/src_moonshot-moonshot-msrpc_s.o `test -f 'src/moonshot-msrpc_s.c' || echo '$(srcdir)/'`src/moonshot-msrpc_s.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-msrpc_s.Tpo src/$(DEPDIR)/src_moonshot-moonshot-msrpc_s.Po
@@ -776,27 +761,6 @@ src/src_moonshot-moonshot-msrpc_s.obj: src/moonshot-msrpc_s.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      source='src/moonshot-msrpc_s.c' object='src/src_moonshot-moonshot-msrpc_s.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-msrpc_s.obj `if test -f 'src/moonshot-msrpc_s.c'; then $(CYGPATH_W) 'src/moonshot-msrpc_s.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-msrpc_s.c'; fi`
-
-src/src_moonshot-moonshot-dbus-server.o: src/moonshot-dbus-server.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-dbus-server.o -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-dbus-server.Tpo -c -o src/src_moonshot-moonshot-dbus-server.o `test -f 'src/moonshot-dbus-server.c' || echo '$(srcdir)/'`src/moonshot-dbus-server.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-dbus-server.Tpo src/$(DEPDIR)/src_moonshot-moonshot-dbus-server.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='src/moonshot-dbus-server.c' object='src/src_moonshot-moonshot-dbus-server.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-dbus-server.o `test -f 'src/moonshot-dbus-server.c' || echo '$(srcdir)/'`src/moonshot-dbus-server.c
-
-src/src_moonshot-moonshot-dbus-server.obj: src/moonshot-dbus-server.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -MT src/src_moonshot-moonshot-dbus-server.obj -MD -MP -MF src/$(DEPDIR)/src_moonshot-moonshot-dbus-server.Tpo -c -o src/src_moonshot-moonshot-dbus-server.obj `if test -f 'src/moonshot-dbus-server.c'; then $(CYGPATH_W) 'src/moonshot-dbus-server.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-dbus-server.c'; fi`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_moonshot-moonshot-dbus-server.Tpo src/$(DEPDIR)/src_moonshot-moonshot-dbus-server.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='src/moonshot-dbus-server.c' object='src/src_moonshot-moonshot-dbus-server.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_moonshot_CFLAGS) $(CFLAGS) -c -o src/src_moonshot-moonshot-dbus-server.obj `if test -f 'src/moonshot-dbus-server.c'; then $(CYGPATH_W) 'src/moonshot-dbus-server.c'; else $(CYGPATH_W) '$(srcdir)/src/moonshot-dbus-server.c'; fi`
-$(srcdir)/src/msrpc-client.c: $(srcdir)/src_msrpc_client_vala.stamp
-       @if test -f $@; then :; else \
-         rm -f $(srcdir)/src_msrpc_client_vala.stamp; \
-         $(am__cd) $(srcdir) && $(MAKE) $(AM_MAKEFLAGS) src_msrpc_client_vala.stamp; \
-       fi
 src_msrpc_client_vala.stamp: $(src_msrpc_client_SOURCES)
        $(AM_V_VALAC)$(VALAC) $(AM_VALAFLAGS) $(VALAFLAGS) -C $(src_msrpc_client_SOURCES)
        $(AM_V_at)touch $@
@@ -830,27 +794,22 @@ $(srcdir)/src/moonshot-identity-request.c: $(srcdir)/src_moonshot_vala.stamp
          rm -f $(srcdir)/src_moonshot_vala.stamp; \
          $(am__cd) $(srcdir) && $(MAKE) $(AM_MAKEFLAGS) src_moonshot_vala.stamp; \
        fi
-$(srcdir)/src/moonshot-window.c: $(srcdir)/src_moonshot_vala.stamp
+$(srcdir)/src/moonshot-server.c: $(srcdir)/src_moonshot_vala.stamp
        @if test -f $@; then :; else \
          rm -f $(srcdir)/src_moonshot_vala.stamp; \
          $(am__cd) $(srcdir) && $(MAKE) $(AM_MAKEFLAGS) src_moonshot_vala.stamp; \
        fi
-$(srcdir)/src/moonshot-password-dialog.c: $(srcdir)/src_moonshot_vala.stamp
-       @if test -f $@; then :; else \
-         rm -f $(srcdir)/src_moonshot_vala.stamp; \
-         $(am__cd) $(srcdir) && $(MAKE) $(AM_MAKEFLAGS) src_moonshot_vala.stamp; \
-       fi
-$(srcdir)/src/moonshot-utils.c: $(srcdir)/src_moonshot_vala.stamp
+$(srcdir)/src/moonshot-window.c: $(srcdir)/src_moonshot_vala.stamp
        @if test -f $@; then :; else \
          rm -f $(srcdir)/src_moonshot_vala.stamp; \
          $(am__cd) $(srcdir) && $(MAKE) $(AM_MAKEFLAGS) src_moonshot_vala.stamp; \
        fi
-$(srcdir)/src/moonshot-msrpc-server.c: $(srcdir)/src_moonshot_vala.stamp
+$(srcdir)/src/moonshot-password-dialog.c: $(srcdir)/src_moonshot_vala.stamp
        @if test -f $@; then :; else \
          rm -f $(srcdir)/src_moonshot_vala.stamp; \
          $(am__cd) $(srcdir) && $(MAKE) $(AM_MAKEFLAGS) src_moonshot_vala.stamp; \
        fi
-$(srcdir)/src/moonshot-dbus-server.c: $(srcdir)/src_moonshot_vala.stamp
+$(srcdir)/src/moonshot-utils.c: $(srcdir)/src_moonshot_vala.stamp
        @if test -f $@; then :; else \
          rm -f $(srcdir)/src_moonshot_vala.stamp; \
          $(am__cd) $(srcdir) && $(MAKE) $(AM_MAKEFLAGS) src_moonshot_vala.stamp; \
@@ -1199,7 +1158,7 @@ distcleancheck: distclean
 check-am: all-am
 check: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) check-recursive
-all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS) config.h
+all-am: Makefile $(PROGRAMS) $(DATA) config.h
 installdirs: installdirs-recursive
 installdirs-am:
        for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(dbusservicedir)"; do \
@@ -1238,13 +1197,12 @@ maintainer-clean-generic:
        -rm -f src/dbus-client.c
        -rm -f src/moonshot-add-dialog.c
        -rm -f src/moonshot-custom-vbox.c
-       -rm -f src/moonshot-dbus-server.c
        -rm -f src/moonshot-id.c
        -rm -f src/moonshot-idcard-widget.c
        -rm -f src/moonshot-identities-manager.c
        -rm -f src/moonshot-identity-request.c
-       -rm -f src/moonshot-msrpc-server.c
        -rm -f src/moonshot-password-dialog.c
+       -rm -f src/moonshot-server.c
        -rm -f src/moonshot-utils.c
        -rm -f src/moonshot-window.c
        -rm -f src/msrpc-client.c
@@ -1353,8 +1311,8 @@ uninstall-am: uninstall-binPROGRAMS uninstall-dbusserviceDATA
 @IPC_MSRPC_TRUE@src/moonshot-msrpc_s.c: src/moonshot-msrpc.h
 
 # Rule to make the service file with bindir expanded
-@IPC_MSRPC_FALSE@$(dbusservice_DATA): $(dbusservice_in_files) Makefile
-@IPC_MSRPC_FALSE@      @sed -e "s|\@bindir\@|$(bindir)|" $< > $@
+@IPC_DBUS_TRUE@$(dbusservice_DATA): $(dbusservice_in_files) Makefile
+@IPC_DBUS_TRUE@        @sed -e "s|\@bindir\@|$(bindir)|" $< > $@
 
 @OS_WIN32_TRUE@icons:
 @OS_WIN32_TRUE@        mkdir -p share/icons
index e4976e3..7687b5b 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: moonshot 0.0.1\n"
 "Report-Msgid-Bugs-To: BUG-REPORT-ADDRESS\n"
-"POT-Creation-Date: 2011-05-05 19:38+0000\n"
+"POT-Creation-Date: 2011-07-04 06:52-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,59 +17,87 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/moonshot-window.vala:311
+#: src/moonshot-window.vala:334
 #, c-format
 msgid "Are you sure you want to delete %s ID Card?"
 msgstr ""
 
-#: src/moonshot-window.vala:341
-msgid "Search entry"
+#: src/moonshot-window.vala:494
+msgid "Moonshot project UI"
 msgstr ""
 
-#: src/moonshot-window.vala:341
-msgid "Search for a specific ID Card"
+#: src/moonshot-window.vala:498
+msgid "Visit the Moonshot project web site"
 msgstr ""
 
-#: src/moonshot-window.vala:346
-msgid "Search identity or service"
+#: src/moonshot-window.vala:500
+msgid "translator-credits"
 msgstr ""
 
-#: src/moonshot-window.vala:352
-msgid "Clear the current search"
+#: src/moonshot-window.vala:510
+msgid "_File"
+msgstr ""
+
+#: src/moonshot-window.vala:519
+msgid "Add ID Card"
+msgstr ""
+
+#: src/moonshot-window.vala:521
+msgid "Add a new ID Card"
+msgstr ""
+
+#: src/moonshot-window.vala:530
+msgid "Quit"
+msgstr ""
+
+#: src/moonshot-window.vala:532
+msgid "Quit the application"
+msgstr ""
+
+#: src/moonshot-window.vala:538
+msgid "_Help"
+msgstr ""
+
+#: src/moonshot-window.vala:547
+msgid "About"
+msgstr ""
+
+#: src/moonshot-window.vala:549
+msgid "About this application"
+msgstr ""
+
+#: src/moonshot-window.vala:579
+msgid "Search entry"
 msgstr ""
 
-#: src/moonshot-window.vala:371
-msgid "Add"
+#: src/moonshot-window.vala:579
+msgid "Search for a specific ID Card"
 msgstr ""
 
-#: src/moonshot-window.vala:371
-msgid "Add new ID Card"
+#: src/moonshot-window.vala:583
+msgid "Search identity or service"
 msgstr ""
 
-#: src/moonshot-window.vala:382
+#: src/moonshot-window.vala:589
+msgid "Clear the current search"
+msgstr ""
+
+#: src/moonshot-window.vala:613
 msgid "Login: "
 msgstr ""
 
-#: src/moonshot-window.vala:385
+#: src/moonshot-window.vala:616
 msgid "Username:"
 msgstr ""
 
-#: src/moonshot-window.vala:388
+#: src/moonshot-window.vala:619
 msgid "Password:"
 msgstr ""
 
-#: src/moonshot-window.vala:393
+#: src/moonshot-window.vala:624
 msgid "Remember password"
 msgstr ""
 
-#: src/moonshot-window.vala:409
+#: src/moonshot-window.vala:640
 msgid "Services:"
 msgstr ""
-
-#: src/moonshot-window.vala:412
-msgid "Email"
-msgstr ""
-
-#: src/moonshot-window.vala:418
-msgid "IM"
-msgstr ""
index 418b96b..d83b7e4 100644 (file)
@@ -29,7 +29,8 @@ typedef DBusGProxyClass MoonshotDBusProxyClass;
 
 struct _MoonshotIface {
        GTypeInterface parent_iface;
-       gboolean (*get_identity) (Moonshot* self, const char* nai, const char* password, const char* service, char** nai_out, char** password_out, char** certificate_out, GError** error);
+       gboolean (*get_identity) (Moonshot* self, const char* nai, const char* password, const char* service, char** nai_out, char** password_out, char** server_certificate_hash, char** ca_certificate, char** subject_name_constraint, char** subject_alt_name_constraint, GError** error);
+       gboolean (*get_default_identity) (Moonshot* self, char** nai_out, char** password_out, GError** error);
 };
 
 struct _DBusObjectVTable {
@@ -45,7 +46,8 @@ struct _MoonshotDBusProxy {
 
 Moonshot* moonshot_dbus_proxy_new (DBusGConnection* connection, const char* name, const char* path);
 GType moonshot_get_type (void) G_GNUC_CONST;
-gboolean moonshot_get_identity (Moonshot* self, const char* nai, const char* password, const char* service, char** nai_out, char** password_out, char** certificate_out, GError** error);
+gboolean moonshot_get_identity (Moonshot* self, const char* nai, const char* password, const char* service, char** nai_out, char** password_out, char** server_certificate_hash, char** ca_certificate, char** subject_name_constraint, char** subject_alt_name_constraint, GError** error);
+gboolean moonshot_get_default_identity (Moonshot* self, char** nai_out, char** password_out, GError** error);
 static void _vala_dbus_register_object (DBusConnection* connection, const char* path, void* object);
 static void _vala_dbus_unregister_object (gpointer connection, GObject* object);
 void moonshot_dbus_register_object (DBusConnection* connection, const char* path, void* object);
@@ -54,12 +56,14 @@ DBusHandlerResult moonshot_dbus_message (DBusConnection* connection, DBusMessage
 static DBusHandlerResult _dbus_moonshot_introspect (Moonshot* self, DBusConnection* connection, DBusMessage* message);
 static DBusHandlerResult _dbus_moonshot_property_get_all (Moonshot* self, DBusConnection* connection, DBusMessage* message);
 static DBusHandlerResult _dbus_moonshot_get_identity (Moonshot* self, DBusConnection* connection, DBusMessage* message);
+static DBusHandlerResult _dbus_moonshot_get_default_identity (Moonshot* self, DBusConnection* connection, DBusMessage* message);
 GType moonshot_dbus_proxy_get_type (void) G_GNUC_CONST;
 DBusHandlerResult moonshot_dbus_proxy_filter (DBusConnection* connection, DBusMessage* message, void* user_data);
 enum  {
        MOONSHOT_DBUS_PROXY_DUMMY_PROPERTY
 };
-static gboolean moonshot_dbus_proxy_get_identity (Moonshot* self, const char* nai, const char* password, const char* service, char** nai_out, char** password_out, char** certificate_out, GError** error);
+static gboolean moonshot_dbus_proxy_get_identity (Moonshot* self, const char* nai, const char* password, const char* service, char** nai_out, char** password_out, char** server_certificate_hash, char** ca_certificate, char** subject_name_constraint, char** subject_alt_name_constraint, GError** error);
+static gboolean moonshot_dbus_proxy_get_default_identity (Moonshot* self, char** nai_out, char** password_out, GError** error);
 static void moonshot_dbus_proxy_moonshot__interface_init (MoonshotIface* iface);
 static void moonshot_dbus_proxy_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
 static void moonshot_dbus_proxy_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
@@ -69,8 +73,13 @@ static const DBusObjectPathVTable _moonshot_dbus_path_vtable = {_moonshot_dbus_u
 static const _DBusObjectVTable _moonshot_dbus_vtable = {moonshot_dbus_register_object};
 
 
-gboolean moonshot_get_identity (Moonshot* self, const char* nai, const char* password, const char* service, char** nai_out, char** password_out, char** certificate_out, GError** error) {
-       return MOONSHOT_GET_INTERFACE (self)->get_identity (self, nai, password, service, nai_out, password_out, certificate_out, error);
+gboolean moonshot_get_identity (Moonshot* self, const char* nai, const char* password, const char* service, char** nai_out, char** password_out, char** server_certificate_hash, char** ca_certificate, char** subject_name_constraint, char** subject_alt_name_constraint, GError** error) {
+       return MOONSHOT_GET_INTERFACE (self)->get_identity (self, nai, password, service, nai_out, password_out, server_certificate_hash, ca_certificate, subject_name_constraint, subject_alt_name_constraint, error);
+}
+
+
+gboolean moonshot_get_default_identity (Moonshot* self, char** nai_out, char** password_out, GError** error) {
+       return MOONSHOT_GET_INTERFACE (self)->get_default_identity (self, nai_out, password_out, error);
 }
 
 
@@ -106,7 +115,7 @@ static DBusHandlerResult _dbus_moonshot_introspect (Moonshot* self, DBusConnecti
        reply = dbus_message_new_method_return (message);
        dbus_message_iter_init_append (reply, &iter);
        xml_data = g_string_new ("<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN\" \"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n");
-       g_string_append (xml_data, "<node>\n<interface name=\"org.freedesktop.DBus.Introspectable\">\n  <method name=\"Introspect\">\n    <arg name=\"data\" direction=\"out\" type=\"s\"/>\n  </method>\n</interface>\n<interface name=\"org.freedesktop.DBus.Properties\">\n  <method name=\"Get\">\n    <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n    <arg name=\"propname\" direction=\"in\" type=\"s\"/>\n    <arg name=\"value\" direction=\"out\" type=\"v\"/>\n  </method>\n  <method name=\"Set\">\n    <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n    <arg name=\"propname\" direction=\"in\" type=\"s\"/>\n    <arg name=\"value\" direction=\"in\" type=\"v\"/>\n  </method>\n  <method name=\"GetAll\">\n    <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n    <arg name=\"props\" direction=\"out\" type=\"a{sv}\"/>\n  </method>\n</interface>\n<interface name=\"org.janet.Moonshot\">\n  <method name=\"GetIdentity\">\n    <arg name=\"nai\" type=\"s\" direction=\"in\"/>\n    <arg name=\"password\" type=\"s\" direction=\"in\"/>\n    <arg name=\"service\" type=\"s\" direction=\"in\"/>\n    <arg name=\"nai_out\" type=\"s\" direction=\"out\"/>\n    <arg name=\"password_out\" type=\"s\" direction=\"out\"/>\n    <arg name=\"certificate_out\" type=\"s\" direction=\"out\"/>\n    <arg name=\"result\" type=\"b\" direction=\"out\"/>\n  </method>\n</interface>\n");
+       g_string_append (xml_data, "<node>\n<interface name=\"org.freedesktop.DBus.Introspectable\">\n  <method name=\"Introspect\">\n    <arg name=\"data\" direction=\"out\" type=\"s\"/>\n  </method>\n</interface>\n<interface name=\"org.freedesktop.DBus.Properties\">\n  <method name=\"Get\">\n    <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n    <arg name=\"propname\" direction=\"in\" type=\"s\"/>\n    <arg name=\"value\" direction=\"out\" type=\"v\"/>\n  </method>\n  <method name=\"Set\">\n    <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n    <arg name=\"propname\" direction=\"in\" type=\"s\"/>\n    <arg name=\"value\" direction=\"in\" type=\"v\"/>\n  </method>\n  <method name=\"GetAll\">\n    <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n    <arg name=\"props\" direction=\"out\" type=\"a{sv}\"/>\n  </method>\n</interface>\n<interface name=\"org.janet.Moonshot\">\n  <method name=\"GetIdentity\">\n    <arg name=\"nai\" type=\"s\" direction=\"in\"/>\n    <arg name=\"password\" type=\"s\" direction=\"in\"/>\n    <arg name=\"service\" type=\"s\" direction=\"in\"/>\n    <arg name=\"nai_out\" type=\"s\" direction=\"out\"/>\n    <arg name=\"password_out\" type=\"s\" direction=\"out\"/>\n    <arg name=\"server_certificate_hash\" type=\"s\" direction=\"out\"/>\n    <arg name=\"ca_certificate\" type=\"s\" direction=\"out\"/>\n    <arg name=\"subject_name_constraint\" type=\"s\" direction=\"out\"/>\n    <arg name=\"subject_alt_name_constraint\" type=\"s\" direction=\"out\"/>\n    <arg name=\"result\" type=\"b\" direction=\"out\"/>\n  </method>\n  <method name=\"GetDefaultIdentity\">\n    <arg name=\"nai_out\" type=\"s\" direction=\"out\"/>\n    <arg name=\"password_out\" type=\"s\" direction=\"out\"/>\n    <arg name=\"result\" type=\"b\" direction=\"out\"/>\n  </method>\n</interface>\n");
        dbus_connection_list_registered (connection, g_object_get_data ((GObject *) self, "dbus_object_path"), &children);
        for (i = 0; children[i]; i++) {
                g_string_append_printf (xml_data, "<node name=\"%s\"/>\n", children[i]);
@@ -168,13 +177,19 @@ static DBusHandlerResult _dbus_moonshot_get_identity (Moonshot* self, DBusConnec
        const char* _tmp3_;
        char* nai_out = NULL;
        char* password_out = NULL;
-       char* certificate_out = NULL;
+       char* server_certificate_hash = NULL;
+       char* ca_certificate = NULL;
+       char* subject_name_constraint = NULL;
+       char* subject_alt_name_constraint = NULL;
        gboolean result;
        DBusMessage* reply;
        const char* _tmp4_;
        const char* _tmp5_;
        const char* _tmp6_;
-       dbus_bool_t _tmp7_;
+       const char* _tmp7_;
+       const char* _tmp8_;
+       const char* _tmp9_;
+       dbus_bool_t _tmp10_;
        error = NULL;
        if (strcmp (dbus_message_get_signature (message), "sss")) {
                return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
@@ -189,7 +204,7 @@ static DBusHandlerResult _dbus_moonshot_get_identity (Moonshot* self, DBusConnec
        dbus_message_iter_get_basic (&iter, &_tmp3_);
        dbus_message_iter_next (&iter);
        service = g_strdup (_tmp3_);
-       result = moonshot_get_identity (self, nai, password, service, &nai_out, &password_out, &certificate_out, &error);
+       result = moonshot_get_identity (self, nai, password, service, &nai_out, &password_out, &server_certificate_hash, &ca_certificate, &subject_name_constraint, &subject_alt_name_constraint, &error);
        if (error) {
                if (error->domain == DBUS_GERROR) {
                        switch (error->code) {
@@ -309,11 +324,164 @@ static DBusHandlerResult _dbus_moonshot_get_identity (Moonshot* self, DBusConnec
        _tmp5_ = password_out;
        dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp5_);
        _g_free0 (password_out);
-       _tmp6_ = certificate_out;
+       _tmp6_ = server_certificate_hash;
        dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp6_);
-       _g_free0 (certificate_out);
-       _tmp7_ = result;
-       dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &_tmp7_);
+       _g_free0 (server_certificate_hash);
+       _tmp7_ = ca_certificate;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp7_);
+       _g_free0 (ca_certificate);
+       _tmp8_ = subject_name_constraint;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp8_);
+       _g_free0 (subject_name_constraint);
+       _tmp9_ = subject_alt_name_constraint;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp9_);
+       _g_free0 (subject_alt_name_constraint);
+       _tmp10_ = result;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &_tmp10_);
+       if (reply) {
+               dbus_connection_send (connection, reply, NULL);
+               dbus_message_unref (reply);
+               return DBUS_HANDLER_RESULT_HANDLED;
+       } else {
+               return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+       }
+}
+
+
+static DBusHandlerResult _dbus_moonshot_get_default_identity (Moonshot* self, DBusConnection* connection, DBusMessage* message) {
+       DBusMessageIter iter;
+       GError* error;
+       char* nai_out = NULL;
+       char* password_out = NULL;
+       gboolean result;
+       DBusMessage* reply;
+       const char* _tmp11_;
+       const char* _tmp12_;
+       dbus_bool_t _tmp13_;
+       error = NULL;
+       if (strcmp (dbus_message_get_signature (message), "")) {
+               return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+       }
+       dbus_message_iter_init (message, &iter);
+       result = moonshot_get_default_identity (self, &nai_out, &password_out, &error);
+       if (error) {
+               if (error->domain == DBUS_GERROR) {
+                       switch (error->code) {
+                               case DBUS_GERROR_FAILED:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Failed", error->message);
+                               break;
+                               case DBUS_GERROR_NO_MEMORY:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.NoMemory", error->message);
+                               break;
+                               case DBUS_GERROR_SERVICE_UNKNOWN:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.ServiceUnknown", error->message);
+                               break;
+                               case DBUS_GERROR_NAME_HAS_NO_OWNER:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.NameHasNoOwner", error->message);
+                               break;
+                               case DBUS_GERROR_NO_REPLY:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.NoReply", error->message);
+                               break;
+                               case DBUS_GERROR_IO_ERROR:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.IOError", error->message);
+                               break;
+                               case DBUS_GERROR_BAD_ADDRESS:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.BadAddress", error->message);
+                               break;
+                               case DBUS_GERROR_NOT_SUPPORTED:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.NotSupported", error->message);
+                               break;
+                               case DBUS_GERROR_LIMITS_EXCEEDED:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.LimitsExceeded", error->message);
+                               break;
+                               case DBUS_GERROR_ACCESS_DENIED:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.AccessDenied", error->message);
+                               break;
+                               case DBUS_GERROR_AUTH_FAILED:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.AuthFailed", error->message);
+                               break;
+                               case DBUS_GERROR_NO_SERVER:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.NoServer", error->message);
+                               break;
+                               case DBUS_GERROR_TIMEOUT:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Timeout", error->message);
+                               break;
+                               case DBUS_GERROR_NO_NETWORK:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.NoNetwork", error->message);
+                               break;
+                               case DBUS_GERROR_ADDRESS_IN_USE:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.AddressInUse", error->message);
+                               break;
+                               case DBUS_GERROR_DISCONNECTED:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Disconnected", error->message);
+                               break;
+                               case DBUS_GERROR_INVALID_ARGS:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.InvalidArgs", error->message);
+                               break;
+                               case DBUS_GERROR_FILE_NOT_FOUND:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.FileNotFound", error->message);
+                               break;
+                               case DBUS_GERROR_FILE_EXISTS:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.FileExists", error->message);
+                               break;
+                               case DBUS_GERROR_UNKNOWN_METHOD:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.UnknownMethod", error->message);
+                               break;
+                               case DBUS_GERROR_TIMED_OUT:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.TimedOut", error->message);
+                               break;
+                               case DBUS_GERROR_MATCH_RULE_NOT_FOUND:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.MatchRuleNotFound", error->message);
+                               break;
+                               case DBUS_GERROR_MATCH_RULE_INVALID:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.MatchRuleInvalid", error->message);
+                               break;
+                               case DBUS_GERROR_SPAWN_EXEC_FAILED:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Spawn.ExecFailed", error->message);
+                               break;
+                               case DBUS_GERROR_SPAWN_FORK_FAILED:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Spawn.ForkFailed", error->message);
+                               break;
+                               case DBUS_GERROR_SPAWN_CHILD_EXITED:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Spawn.ChildExited", error->message);
+                               break;
+                               case DBUS_GERROR_SPAWN_CHILD_SIGNALED:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Spawn.ChildSignaled", error->message);
+                               break;
+                               case DBUS_GERROR_SPAWN_FAILED:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Spawn.Failed", error->message);
+                               break;
+                               case DBUS_GERROR_UNIX_PROCESS_ID_UNKNOWN:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.UnixProcessIdUnknown", error->message);
+                               break;
+                               case DBUS_GERROR_INVALID_SIGNATURE:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.InvalidSignature", error->message);
+                               break;
+                               case DBUS_GERROR_INVALID_FILE_CONTENT:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.InvalidFileContent", error->message);
+                               break;
+                               case DBUS_GERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.SELinuxSecurityContextUnknown", error->message);
+                               break;
+                               case DBUS_GERROR_REMOTE_EXCEPTION:
+                               reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.RemoteException", error->message);
+                               break;
+                       }
+               }
+               dbus_connection_send (connection, reply, NULL);
+               dbus_message_unref (reply);
+               return DBUS_HANDLER_RESULT_HANDLED;
+       }
+       reply = dbus_message_new_method_return (message);
+       dbus_message_iter_init_append (reply, &iter);
+       _tmp11_ = nai_out;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp11_);
+       _g_free0 (nai_out);
+       _tmp12_ = password_out;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp12_);
+       _g_free0 (password_out);
+       _tmp13_ = result;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &_tmp13_);
        if (reply) {
                dbus_connection_send (connection, reply, NULL);
                dbus_message_unref (reply);
@@ -333,6 +501,8 @@ DBusHandlerResult moonshot_dbus_message (DBusConnection* connection, DBusMessage
                result = _dbus_moonshot_property_get_all (object, connection, message);
        } else if (dbus_message_is_method_call (message, "org.janet.Moonshot", "GetIdentity")) {
                result = _dbus_moonshot_get_identity (object, connection, message);
+       } else if (dbus_message_is_method_call (message, "org.janet.Moonshot", "GetDefaultIdentity")) {
+               result = _dbus_moonshot_get_default_identity (object, connection, message);
        }
        if (result == DBUS_HANDLER_RESULT_HANDLED) {
                return result;
@@ -431,7 +601,7 @@ static void moonshot_dbus_proxy_init (MoonshotDBusProxy* self) {
 }
 
 
-static gboolean moonshot_dbus_proxy_get_identity (Moonshot* self, const char* nai, const char* password, const char* service, char** nai_out, char** password_out, char** certificate_out, GError** error) {
+static gboolean moonshot_dbus_proxy_get_identity (Moonshot* self, const char* nai, const char* password, const char* service, char** nai_out, char** password_out, char** server_certificate_hash, char** ca_certificate, char** subject_name_constraint, char** subject_alt_name_constraint, GError** error) {
        DBusError _dbus_error;
        DBusGConnection *_connection;
        DBusMessage *_message, *_reply;
@@ -443,10 +613,16 @@ static gboolean moonshot_dbus_proxy_get_identity (Moonshot* self, const char* na
        const char* _tmp3_;
        char* _password_out;
        const char* _tmp4_;
-       char* _certificate_out;
+       char* _server_certificate_hash;
        const char* _tmp5_;
+       char* _ca_certificate;
+       const char* _tmp6_;
+       char* _subject_name_constraint;
+       const char* _tmp7_;
+       char* _subject_alt_name_constraint;
+       const char* _tmp8_;
        gboolean _result;
-       dbus_bool_t _tmp6_;
+       dbus_bool_t _tmp9_;
        if (((MoonshotDBusProxy*) self)->disposed) {
                g_set_error (error, DBUS_GERROR, DBUS_GERROR_DISCONNECTED, "%s", "Connection is closed");
                return FALSE;
@@ -468,74 +644,74 @@ static gboolean moonshot_dbus_proxy_get_identity (Moonshot* self, const char* na
                GQuark _edomain = 0;
                gint _ecode = 0;
                if (strstr (_dbus_error.name, "org.freedesktop.DBus.Error") == _dbus_error.name) {
-                       const char* _tmp7_;
+                       const char* _tmp10_;
                        _edomain = DBUS_GERROR;
-                       _tmp7_ = _dbus_error.name + 27;
-                       if (strcmp (_tmp7_, "Failed") == 0) {
+                       _tmp10_ = _dbus_error.name + 27;
+                       if (strcmp (_tmp10_, "Failed") == 0) {
                                _ecode = DBUS_GERROR_FAILED;
-                       } else if (strcmp (_tmp7_, "NoMemory") == 0) {
+                       } else if (strcmp (_tmp10_, "NoMemory") == 0) {
                                _ecode = DBUS_GERROR_NO_MEMORY;
-                       } else if (strcmp (_tmp7_, "ServiceUnknown") == 0) {
+                       } else if (strcmp (_tmp10_, "ServiceUnknown") == 0) {
                                _ecode = DBUS_GERROR_SERVICE_UNKNOWN;
-                       } else if (strcmp (_tmp7_, "NameHasNoOwner") == 0) {
+                       } else if (strcmp (_tmp10_, "NameHasNoOwner") == 0) {
                                _ecode = DBUS_GERROR_NAME_HAS_NO_OWNER;
-                       } else if (strcmp (_tmp7_, "NoReply") == 0) {
+                       } else if (strcmp (_tmp10_, "NoReply") == 0) {
                                _ecode = DBUS_GERROR_NO_REPLY;
-                       } else if (strcmp (_tmp7_, "IOError") == 0) {
+                       } else if (strcmp (_tmp10_, "IOError") == 0) {
                                _ecode = DBUS_GERROR_IO_ERROR;
-                       } else if (strcmp (_tmp7_, "BadAddress") == 0) {
+                       } else if (strcmp (_tmp10_, "BadAddress") == 0) {
                                _ecode = DBUS_GERROR_BAD_ADDRESS;
-                       } else if (strcmp (_tmp7_, "NotSupported") == 0) {
+                       } else if (strcmp (_tmp10_, "NotSupported") == 0) {
                                _ecode = DBUS_GERROR_NOT_SUPPORTED;
-                       } else if (strcmp (_tmp7_, "LimitsExceeded") == 0) {
+                       } else if (strcmp (_tmp10_, "LimitsExceeded") == 0) {
                                _ecode = DBUS_GERROR_LIMITS_EXCEEDED;
-                       } else if (strcmp (_tmp7_, "AccessDenied") == 0) {
+                       } else if (strcmp (_tmp10_, "AccessDenied") == 0) {
                                _ecode = DBUS_GERROR_ACCESS_DENIED;
-                       } else if (strcmp (_tmp7_, "AuthFailed") == 0) {
+                       } else if (strcmp (_tmp10_, "AuthFailed") == 0) {
                                _ecode = DBUS_GERROR_AUTH_FAILED;
-                       } else if (strcmp (_tmp7_, "NoServer") == 0) {
+                       } else if (strcmp (_tmp10_, "NoServer") == 0) {
                                _ecode = DBUS_GERROR_NO_SERVER;
-                       } else if (strcmp (_tmp7_, "Timeout") == 0) {
+                       } else if (strcmp (_tmp10_, "Timeout") == 0) {
                                _ecode = DBUS_GERROR_TIMEOUT;
-                       } else if (strcmp (_tmp7_, "NoNetwork") == 0) {
+                       } else if (strcmp (_tmp10_, "NoNetwork") == 0) {
                                _ecode = DBUS_GERROR_NO_NETWORK;
-                       } else if (strcmp (_tmp7_, "AddressInUse") == 0) {
+                       } else if (strcmp (_tmp10_, "AddressInUse") == 0) {
                                _ecode = DBUS_GERROR_ADDRESS_IN_USE;
-                       } else if (strcmp (_tmp7_, "Disconnected") == 0) {
+                       } else if (strcmp (_tmp10_, "Disconnected") == 0) {
                                _ecode = DBUS_GERROR_DISCONNECTED;
-                       } else if (strcmp (_tmp7_, "InvalidArgs") == 0) {
+                       } else if (strcmp (_tmp10_, "InvalidArgs") == 0) {
                                _ecode = DBUS_GERROR_INVALID_ARGS;
-                       } else if (strcmp (_tmp7_, "FileNotFound") == 0) {
+                       } else if (strcmp (_tmp10_, "FileNotFound") == 0) {
                                _ecode = DBUS_GERROR_FILE_NOT_FOUND;
-                       } else if (strcmp (_tmp7_, "FileExists") == 0) {
+                       } else if (strcmp (_tmp10_, "FileExists") == 0) {
                                _ecode = DBUS_GERROR_FILE_EXISTS;
-                       } else if (strcmp (_tmp7_, "UnknownMethod") == 0) {
+                       } else if (strcmp (_tmp10_, "UnknownMethod") == 0) {
                                _ecode = DBUS_GERROR_UNKNOWN_METHOD;
-                       } else if (strcmp (_tmp7_, "TimedOut") == 0) {
+                       } else if (strcmp (_tmp10_, "TimedOut") == 0) {
                                _ecode = DBUS_GERROR_TIMED_OUT;
-                       } else if (strcmp (_tmp7_, "MatchRuleNotFound") == 0) {
+                       } else if (strcmp (_tmp10_, "MatchRuleNotFound") == 0) {
                                _ecode = DBUS_GERROR_MATCH_RULE_NOT_FOUND;
-                       } else if (strcmp (_tmp7_, "MatchRuleInvalid") == 0) {
+                       } else if (strcmp (_tmp10_, "MatchRuleInvalid") == 0) {
                                _ecode = DBUS_GERROR_MATCH_RULE_INVALID;
-                       } else if (strcmp (_tmp7_, "Spawn.ExecFailed") == 0) {
+                       } else if (strcmp (_tmp10_, "Spawn.ExecFailed") == 0) {
                                _ecode = DBUS_GERROR_SPAWN_EXEC_FAILED;
-                       } else if (strcmp (_tmp7_, "Spawn.ForkFailed") == 0) {
+                       } else if (strcmp (_tmp10_, "Spawn.ForkFailed") == 0) {
                                _ecode = DBUS_GERROR_SPAWN_FORK_FAILED;
-                       } else if (strcmp (_tmp7_, "Spawn.ChildExited") == 0) {
+                       } else if (strcmp (_tmp10_, "Spawn.ChildExited") == 0) {
                                _ecode = DBUS_GERROR_SPAWN_CHILD_EXITED;
-                       } else if (strcmp (_tmp7_, "Spawn.ChildSignaled") == 0) {
+                       } else if (strcmp (_tmp10_, "Spawn.ChildSignaled") == 0) {
                                _ecode = DBUS_GERROR_SPAWN_CHILD_SIGNALED;
-                       } else if (strcmp (_tmp7_, "Spawn.Failed") == 0) {
+                       } else if (strcmp (_tmp10_, "Spawn.Failed") == 0) {
                                _ecode = DBUS_GERROR_SPAWN_FAILED;
-                       } else if (strcmp (_tmp7_, "UnixProcessIdUnknown") == 0) {
+                       } else if (strcmp (_tmp10_, "UnixProcessIdUnknown") == 0) {
                                _ecode = DBUS_GERROR_UNIX_PROCESS_ID_UNKNOWN;
-                       } else if (strcmp (_tmp7_, "InvalidSignature") == 0) {
+                       } else if (strcmp (_tmp10_, "InvalidSignature") == 0) {
                                _ecode = DBUS_GERROR_INVALID_SIGNATURE;
-                       } else if (strcmp (_tmp7_, "InvalidFileContent") == 0) {
+                       } else if (strcmp (_tmp10_, "InvalidFileContent") == 0) {
                                _ecode = DBUS_GERROR_INVALID_FILE_CONTENT;
-                       } else if (strcmp (_tmp7_, "SELinuxSecurityContextUnknown") == 0) {
+                       } else if (strcmp (_tmp10_, "SELinuxSecurityContextUnknown") == 0) {
                                _ecode = DBUS_GERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN;
-                       } else if (strcmp (_tmp7_, "RemoteException") == 0) {
+                       } else if (strcmp (_tmp10_, "RemoteException") == 0) {
                                _ecode = DBUS_GERROR_REMOTE_EXCEPTION;
                        }
                }
@@ -543,8 +719,8 @@ static gboolean moonshot_dbus_proxy_get_identity (Moonshot* self, const char* na
                dbus_error_free (&_dbus_error);
                return FALSE;
        }
-       if (strcmp (dbus_message_get_signature (_reply), "sssb")) {
-               g_set_error (error, DBUS_GERROR, DBUS_GERROR_INVALID_SIGNATURE, "Invalid signature, expected \"%s\", got \"%s\"", "sssb", dbus_message_get_signature (_reply));
+       if (strcmp (dbus_message_get_signature (_reply), "ssssssb")) {
+               g_set_error (error, DBUS_GERROR, DBUS_GERROR_INVALID_SIGNATURE, "Invalid signature, expected \"%s\", got \"%s\"", "ssssssb", dbus_message_get_signature (_reply));
                dbus_message_unref (_reply);
                return FALSE;
        }
@@ -559,11 +735,146 @@ static gboolean moonshot_dbus_proxy_get_identity (Moonshot* self, const char* na
        *password_out = _password_out;
        dbus_message_iter_get_basic (&_iter, &_tmp5_);
        dbus_message_iter_next (&_iter);
-       _certificate_out = g_strdup (_tmp5_);
-       *certificate_out = _certificate_out;
+       _server_certificate_hash = g_strdup (_tmp5_);
+       *server_certificate_hash = _server_certificate_hash;
        dbus_message_iter_get_basic (&_iter, &_tmp6_);
        dbus_message_iter_next (&_iter);
-       _result = _tmp6_;
+       _ca_certificate = g_strdup (_tmp6_);
+       *ca_certificate = _ca_certificate;
+       dbus_message_iter_get_basic (&_iter, &_tmp7_);
+       dbus_message_iter_next (&_iter);
+       _subject_name_constraint = g_strdup (_tmp7_);
+       *subject_name_constraint = _subject_name_constraint;
+       dbus_message_iter_get_basic (&_iter, &_tmp8_);
+       dbus_message_iter_next (&_iter);
+       _subject_alt_name_constraint = g_strdup (_tmp8_);
+       *subject_alt_name_constraint = _subject_alt_name_constraint;
+       dbus_message_iter_get_basic (&_iter, &_tmp9_);
+       dbus_message_iter_next (&_iter);
+       _result = _tmp9_;
+       dbus_message_unref (_reply);
+       return _result;
+}
+
+
+static gboolean moonshot_dbus_proxy_get_default_identity (Moonshot* self, char** nai_out, char** password_out, GError** error) {
+       DBusError _dbus_error;
+       DBusGConnection *_connection;
+       DBusMessage *_message, *_reply;
+       DBusMessageIter _iter;
+       char* _nai_out;
+       const char* _tmp11_;
+       char* _password_out;
+       const char* _tmp12_;
+       gboolean _result;
+       dbus_bool_t _tmp13_;
+       if (((MoonshotDBusProxy*) self)->disposed) {
+               g_set_error (error, DBUS_GERROR, DBUS_GERROR_DISCONNECTED, "%s", "Connection is closed");
+               return FALSE;
+       }
+       _message = dbus_message_new_method_call (dbus_g_proxy_get_bus_name ((DBusGProxy*) self), dbus_g_proxy_get_path ((DBusGProxy*) self), "org.janet.Moonshot", "GetDefaultIdentity");
+       dbus_message_iter_init_append (_message, &_iter);
+       g_object_get (self, "connection", &_connection, NULL);
+       dbus_error_init (&_dbus_error);
+       _reply = dbus_connection_send_with_reply_and_block (dbus_g_connection_get_connection (_connection), _message, -1, &_dbus_error);
+       dbus_g_connection_unref (_connection);
+       dbus_message_unref (_message);
+       if (dbus_error_is_set (&_dbus_error)) {
+               GQuark _edomain = 0;
+               gint _ecode = 0;
+               if (strstr (_dbus_error.name, "org.freedesktop.DBus.Error") == _dbus_error.name) {
+                       const char* _tmp14_;
+                       _edomain = DBUS_GERROR;
+                       _tmp14_ = _dbus_error.name + 27;
+                       if (strcmp (_tmp14_, "Failed") == 0) {
+                               _ecode = DBUS_GERROR_FAILED;
+                       } else if (strcmp (_tmp14_, "NoMemory") == 0) {
+                               _ecode = DBUS_GERROR_NO_MEMORY;
+                       } else if (strcmp (_tmp14_, "ServiceUnknown") == 0) {
+                               _ecode = DBUS_GERROR_SERVICE_UNKNOWN;
+                       } else if (strcmp (_tmp14_, "NameHasNoOwner") == 0) {
+                               _ecode = DBUS_GERROR_NAME_HAS_NO_OWNER;
+                       } else if (strcmp (_tmp14_, "NoReply") == 0) {
+                               _ecode = DBUS_GERROR_NO_REPLY;
+                       } else if (strcmp (_tmp14_, "IOError") == 0) {
+                               _ecode = DBUS_GERROR_IO_ERROR;
+                       } else if (strcmp (_tmp14_, "BadAddress") == 0) {
+                               _ecode = DBUS_GERROR_BAD_ADDRESS;
+                       } else if (strcmp (_tmp14_, "NotSupported") == 0) {
+                               _ecode = DBUS_GERROR_NOT_SUPPORTED;
+                       } else if (strcmp (_tmp14_, "LimitsExceeded") == 0) {
+                               _ecode = DBUS_GERROR_LIMITS_EXCEEDED;
+                       } else if (strcmp (_tmp14_, "AccessDenied") == 0) {
+                               _ecode = DBUS_GERROR_ACCESS_DENIED;
+                       } else if (strcmp (_tmp14_, "AuthFailed") == 0) {
+                               _ecode = DBUS_GERROR_AUTH_FAILED;
+                       } else if (strcmp (_tmp14_, "NoServer") == 0) {
+                               _ecode = DBUS_GERROR_NO_SERVER;
+                       } else if (strcmp (_tmp14_, "Timeout") == 0) {
+                               _ecode = DBUS_GERROR_TIMEOUT;
+                       } else if (strcmp (_tmp14_, "NoNetwork") == 0) {
+                               _ecode = DBUS_GERROR_NO_NETWORK;
+                       } else if (strcmp (_tmp14_, "AddressInUse") == 0) {
+                               _ecode = DBUS_GERROR_ADDRESS_IN_USE;
+                       } else if (strcmp (_tmp14_, "Disconnected") == 0) {
+                               _ecode = DBUS_GERROR_DISCONNECTED;
+                       } else if (strcmp (_tmp14_, "InvalidArgs") == 0) {
+                               _ecode = DBUS_GERROR_INVALID_ARGS;
+                       } else if (strcmp (_tmp14_, "FileNotFound") == 0) {
+                               _ecode = DBUS_GERROR_FILE_NOT_FOUND;
+                       } else if (strcmp (_tmp14_, "FileExists") == 0) {
+                               _ecode = DBUS_GERROR_FILE_EXISTS;
+                       } else if (strcmp (_tmp14_, "UnknownMethod") == 0) {
+                               _ecode = DBUS_GERROR_UNKNOWN_METHOD;
+                       } else if (strcmp (_tmp14_, "TimedOut") == 0) {
+                               _ecode = DBUS_GERROR_TIMED_OUT;
+                       } else if (strcmp (_tmp14_, "MatchRuleNotFound") == 0) {
+                               _ecode = DBUS_GERROR_MATCH_RULE_NOT_FOUND;
+                       } else if (strcmp (_tmp14_, "MatchRuleInvalid") == 0) {
+                               _ecode = DBUS_GERROR_MATCH_RULE_INVALID;
+                       } else if (strcmp (_tmp14_, "Spawn.ExecFailed") == 0) {
+                               _ecode = DBUS_GERROR_SPAWN_EXEC_FAILED;
+                       } else if (strcmp (_tmp14_, "Spawn.ForkFailed") == 0) {
+                               _ecode = DBUS_GERROR_SPAWN_FORK_FAILED;
+                       } else if (strcmp (_tmp14_, "Spawn.ChildExited") == 0) {
+                               _ecode = DBUS_GERROR_SPAWN_CHILD_EXITED;
+                       } else if (strcmp (_tmp14_, "Spawn.ChildSignaled") == 0) {
+                               _ecode = DBUS_GERROR_SPAWN_CHILD_SIGNALED;
+                       } else if (strcmp (_tmp14_, "Spawn.Failed") == 0) {
+                               _ecode = DBUS_GERROR_SPAWN_FAILED;
+                       } else if (strcmp (_tmp14_, "UnixProcessIdUnknown") == 0) {
+                               _ecode = DBUS_GERROR_UNIX_PROCESS_ID_UNKNOWN;
+                       } else if (strcmp (_tmp14_, "InvalidSignature") == 0) {
+                               _ecode = DBUS_GERROR_INVALID_SIGNATURE;
+                       } else if (strcmp (_tmp14_, "InvalidFileContent") == 0) {
+                               _ecode = DBUS_GERROR_INVALID_FILE_CONTENT;
+                       } else if (strcmp (_tmp14_, "SELinuxSecurityContextUnknown") == 0) {
+                               _ecode = DBUS_GERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN;
+                       } else if (strcmp (_tmp14_, "RemoteException") == 0) {
+                               _ecode = DBUS_GERROR_REMOTE_EXCEPTION;
+                       }
+               }
+               g_set_error (error, _edomain, _ecode, "%s", _dbus_error.message);
+               dbus_error_free (&_dbus_error);
+               return FALSE;
+       }
+       if (strcmp (dbus_message_get_signature (_reply), "ssb")) {
+               g_set_error (error, DBUS_GERROR, DBUS_GERROR_INVALID_SIGNATURE, "Invalid signature, expected \"%s\", got \"%s\"", "ssb", dbus_message_get_signature (_reply));
+               dbus_message_unref (_reply);
+               return FALSE;
+       }
+       dbus_message_iter_init (_reply, &_iter);
+       dbus_message_iter_get_basic (&_iter, &_tmp11_);
+       dbus_message_iter_next (&_iter);
+       _nai_out = g_strdup (_tmp11_);
+       *nai_out = _nai_out;
+       dbus_message_iter_get_basic (&_iter, &_tmp12_);
+       dbus_message_iter_next (&_iter);
+       _password_out = g_strdup (_tmp12_);
+       *password_out = _password_out;
+       dbus_message_iter_get_basic (&_iter, &_tmp13_);
+       dbus_message_iter_next (&_iter);
+       _result = _tmp13_;
        dbus_message_unref (_reply);
        return _result;
 }
@@ -571,6 +882,7 @@ static gboolean moonshot_dbus_proxy_get_identity (Moonshot* self, const char* na
 
 static void moonshot_dbus_proxy_moonshot__interface_init (MoonshotIface* iface) {
        iface->get_identity = moonshot_dbus_proxy_get_identity;
+       iface->get_default_identity = moonshot_dbus_proxy_get_default_identity;
 }
 
 
@@ -588,6 +900,9 @@ void _vala_main (void) {
                char* nai_out;
                char* password_out;
                char* certificate_out;
+               char* a;
+               char* b;
+               char* c;
                DBusGConnection* conn;
                Moonshot* demo;
                char* _tmp0_ = NULL;
@@ -596,21 +911,46 @@ void _vala_main (void) {
                char* _tmp3_ = NULL;
                gboolean _tmp4_;
                char* _tmp5_;
-               char* _tmp6_ = NULL;
-               gboolean _tmp7_;
-               char* _tmp8_;
-               gboolean _tmp9_;
+               gboolean _tmp6_;
+               char* _tmp7_ = NULL;
+               gboolean _tmp8_;
+               char* _tmp9_;
+               char* _tmp10_ = NULL;
+               gboolean _tmp11_;
+               char* _tmp12_;
+               char* _tmp13_ = NULL;
+               gboolean _tmp14_;
+               char* _tmp15_;
+               char* _tmp16_ = NULL;
+               gboolean _tmp17_;
+               char* _tmp18_;
+               char* _tmp19_ = NULL;
+               gboolean _tmp20_;
+               char* _tmp21_;
+               char* _tmp22_ = NULL;
+               gboolean _tmp23_;
+               char* _tmp24_;
+               gboolean _tmp25_;
                nai_out = NULL;
                password_out = NULL;
                certificate_out = NULL;
+               a = NULL;
+               b = NULL;
+               c = NULL;
                conn = dbus_g_bus_get (DBUS_BUS_SESSION, &_inner_error_);
                if (_inner_error_ != NULL) {
+                       _g_free0 (c);
+                       _g_free0 (b);
+                       _g_free0 (a);
                        _g_free0 (certificate_out);
                        _g_free0 (password_out);
                        _g_free0 (nai_out);
                        if (_inner_error_->domain == DBUS_GERROR) {
                                goto __catch0_dbus_gerror;
                        }
+                       _g_free0 (c);
+                       _g_free0 (b);
+                       _g_free0 (a);
                        _g_free0 (certificate_out);
                        _g_free0 (password_out);
                        _g_free0 (nai_out);
@@ -619,10 +959,43 @@ void _vala_main (void) {
                        return;
                }
                demo = moonshot_dbus_proxy_new (conn, "org.janet.Moonshot", "/org/janet/moonshot");
-               _tmp9_ = (_tmp7_ = (_tmp4_ = (_tmp1_ = moonshot_get_identity (demo, "username@issuer", "pass", "service", &_tmp0_, &_tmp3_, &_tmp6_, &_inner_error_), nai_out = (_tmp2_ = _tmp0_, _g_free0 (nai_out), _tmp2_), _tmp1_), password_out = (_tmp5_ = _tmp3_, _g_free0 (password_out), _tmp5_), _tmp4_), certificate_out = (_tmp8_ = _tmp6_, _g_free0 (certificate_out), _tmp8_), _tmp7_);
+               _tmp6_ = (_tmp4_ = (_tmp1_ = moonshot_get_default_identity (demo, &_tmp0_, &_tmp3_, &_inner_error_), nai_out = (_tmp2_ = _tmp0_, _g_free0 (nai_out), _tmp2_), _tmp1_), password_out = (_tmp5_ = _tmp3_, _g_free0 (password_out), _tmp5_), _tmp4_);
+               if (_inner_error_ != NULL) {
+                       _g_object_unref0 (demo);
+                       _dbus_g_connection_unref0 (conn);
+                       _g_free0 (c);
+                       _g_free0 (b);
+                       _g_free0 (a);
+                       _g_free0 (certificate_out);
+                       _g_free0 (password_out);
+                       _g_free0 (nai_out);
+                       if (_inner_error_->domain == DBUS_GERROR) {
+                               goto __catch0_dbus_gerror;
+                       }
+                       _g_object_unref0 (demo);
+                       _dbus_g_connection_unref0 (conn);
+                       _g_free0 (c);
+                       _g_free0 (b);
+                       _g_free0 (a);
+                       _g_free0 (certificate_out);
+                       _g_free0 (password_out);
+                       _g_free0 (nai_out);
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+                       g_clear_error (&_inner_error_);
+                       return;
+               }
+               if (_tmp6_) {
+                       fprintf (stdout, "default identity: %s %s\n", nai_out, password_out);
+               } else {
+                       fprintf (stdout, "Unable to get default identity.\n");
+               }
+               _tmp25_ = (_tmp23_ = (_tmp20_ = (_tmp17_ = (_tmp14_ = (_tmp11_ = (_tmp8_ = moonshot_get_identity (demo, "username@issuer", "pass", "", &_tmp7_, &_tmp10_, &_tmp13_, &_tmp16_, &_tmp19_, &_tmp22_, &_inner_error_), nai_out = (_tmp9_ = _tmp7_, _g_free0 (nai_out), _tmp9_), _tmp8_), password_out = (_tmp12_ = _tmp10_, _g_free0 (password_out), _tmp12_), _tmp11_), certificate_out = (_tmp15_ = _tmp13_, _g_free0 (certificate_out), _tmp15_), _tmp14_), a = (_tmp18_ = _tmp16_, _g_free0 (a), _tmp18_), _tmp17_), b = (_tmp21_ = _tmp19_, _g_free0 (b), _tmp21_), _tmp20_), c = (_tmp24_ = _tmp22_, _g_free0 (c), _tmp24_), _tmp23_);
                if (_inner_error_ != NULL) {
                        _g_object_unref0 (demo);
                        _dbus_g_connection_unref0 (conn);
+                       _g_free0 (c);
+                       _g_free0 (b);
+                       _g_free0 (a);
                        _g_free0 (certificate_out);
                        _g_free0 (password_out);
                        _g_free0 (nai_out);
@@ -631,6 +1004,9 @@ void _vala_main (void) {
                        }
                        _g_object_unref0 (demo);
                        _dbus_g_connection_unref0 (conn);
+                       _g_free0 (c);
+                       _g_free0 (b);
+                       _g_free0 (a);
                        _g_free0 (certificate_out);
                        _g_free0 (password_out);
                        _g_free0 (nai_out);
@@ -638,13 +1014,16 @@ void _vala_main (void) {
                        g_clear_error (&_inner_error_);
                        return;
                }
-               if (_tmp9_) {
+               if (_tmp25_) {
                        fprintf (stdout, "%s %s %s\n", nai_out, password_out, certificate_out);
                } else {
                        fprintf (stdout, "The nai, password or service doesnt match the selected id_card\n");
                }
                _g_object_unref0 (demo);
                _dbus_g_connection_unref0 (conn);
+               _g_free0 (c);
+               _g_free0 (b);
+               _g_free0 (a);
                _g_free0 (certificate_out);
                _g_free0 (password_out);
                _g_free0 (nai_out);
index 39b2d51..855aa91 100644 (file)
@@ -49,6 +49,7 @@ struct _IdentityRequest {
        IdentityRequestPrivate * priv;
        IdCard* id_card;
        gboolean complete;
+       gboolean select_default;
 };
 
 struct _IdentityRequestClass {
@@ -85,6 +86,8 @@ enum  {
 };
 IdentityRequest* identity_request_new (MainWindow* main_window, const char* nai, const char* password, const char* certificate);
 IdentityRequest* identity_request_construct (GType object_type, MainWindow* main_window, const char* nai, const char* password, const char* certificate);
+IdentityRequest* identity_request_new_default (MainWindow* main_window);
+IdentityRequest* identity_request_construct_default (GType object_type, MainWindow* main_window);
 void identity_request_set_callback (IdentityRequest* self, ReturnIdentityCallback cb, void* cb_target, GDestroyNotify cb_target_destroy_notify);
 static void _lambda0_ (IdentityRequest* IdCard, Block1Data* _data1_);
 static void __lambda0__return_identity_callback (IdentityRequest* request, gpointer self);
@@ -126,6 +129,22 @@ IdentityRequest* identity_request_new (MainWindow* main_window, const char* nai,
 }
 
 
+IdentityRequest* identity_request_construct_default (GType object_type, MainWindow* main_window) {
+       IdentityRequest * self = NULL;
+       MainWindow* _tmp0_;
+       g_return_val_if_fail (main_window != NULL, NULL);
+       self = (IdentityRequest*) g_object_new (object_type, NULL);
+       self->priv->main_window = (_tmp0_ = _g_object_ref0 (main_window), _g_object_unref0 (self->priv->main_window), _tmp0_);
+       self->select_default = TRUE;
+       return self;
+}
+
+
+IdentityRequest* identity_request_new_default (MainWindow* main_window) {
+       return identity_request_construct_default (TYPE_IDENTITY_REQUEST, main_window);
+}
+
+
 static void _lambda0_ (IdentityRequest* IdCard, Block1Data* _data1_) {
        IdentityRequest * self;
        self = _data1_->self;
@@ -202,6 +221,7 @@ static void identity_request_instance_init (IdentityRequest * self) {
        self->priv = IDENTITY_REQUEST_GET_PRIVATE (self);
        self->id_card = NULL;
        self->complete = FALSE;
+       self->select_default = FALSE;
        self->priv->callback = NULL;
 }
 
diff --git a/src/moonshot-server.c b/src/moonshot-server.c
new file mode 100644 (file)
index 0000000..bd95de6
--- /dev/null
@@ -0,0 +1,831 @@
+/* moonshot-server.c generated by valac 0.10.4, the Vala compiler
+ * generated from moonshot-server.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <dbus/dbus.h>
+#include <dbus/dbus-glib.h>
+#include <dbus/dbus-glib-lowlevel.h>
+
+
+#define TYPE_MOONSHOT_SERVER (moonshot_server_get_type ())
+#define MOONSHOT_SERVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_SERVER, MoonshotServer))
+#define MOONSHOT_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_SERVER, MoonshotServerClass))
+#define IS_MOONSHOT_SERVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_SERVER))
+#define IS_MOONSHOT_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_SERVER))
+#define MOONSHOT_SERVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_SERVER, MoonshotServerClass))
+
+typedef struct _MoonshotServer MoonshotServer;
+typedef struct _MoonshotServerClass MoonshotServerClass;
+typedef struct _MoonshotServerPrivate MoonshotServerPrivate;
+
+#define TYPE_MAIN_WINDOW (main_window_get_type ())
+#define MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MAIN_WINDOW, MainWindow))
+#define MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MAIN_WINDOW, MainWindowClass))
+#define IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MAIN_WINDOW))
+#define IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MAIN_WINDOW))
+#define MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MAIN_WINDOW, MainWindowClass))
+
+typedef struct _MainWindow MainWindow;
+typedef struct _MainWindowClass MainWindowClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_IDENTITY_REQUEST (identity_request_get_type ())
+#define IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_REQUEST, IdentityRequest))
+#define IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
+#define IS_IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_REQUEST))
+#define IS_IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_REQUEST))
+#define IDENTITY_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
+
+typedef struct _IdentityRequest IdentityRequest;
+typedef struct _IdentityRequestClass IdentityRequestClass;
+typedef struct _IdentityRequestPrivate IdentityRequestPrivate;
+
+#define TYPE_ID_CARD (id_card_get_type ())
+#define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
+#define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
+#define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
+#define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
+#define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
+
+typedef struct _IdCard IdCard;
+typedef struct _IdCardClass IdCardClass;
+typedef struct _Block2Data Block2Data;
+typedef struct _MoonshotServerGetIdentityData MoonshotServerGetIdentityData;
+typedef struct _Block3Data Block3Data;
+typedef struct _MoonshotServerGetDefaultIdentityData MoonshotServerGetDefaultIdentityData;
+typedef struct _DBusObjectVTable _DBusObjectVTable;
+
+struct _MoonshotServer {
+       GObject parent_instance;
+       MoonshotServerPrivate * priv;
+};
+
+struct _MoonshotServerClass {
+       GObjectClass parent_class;
+};
+
+struct _MoonshotServerPrivate {
+       MainWindow* main_window;
+};
+
+typedef void (*ReturnIdentityCallback) (IdentityRequest* request, void* user_data);
+struct _IdentityRequest {
+       GObject parent_instance;
+       IdentityRequestPrivate * priv;
+       IdCard* id_card;
+       gboolean complete;
+       gboolean select_default;
+};
+
+struct _IdentityRequestClass {
+       GObjectClass parent_class;
+};
+
+struct _Block2Data {
+       int _ref_count_;
+       MoonshotServer * self;
+       gpointer _async_data_;
+};
+
+struct _MoonshotServerGetIdentityData {
+       int _state_;
+       GAsyncResult* _res_;
+       GSimpleAsyncResult* _async_result;
+       MoonshotServer* self;
+       char* nai;
+       char* password;
+       char* service;
+       char* nai_out;
+       char* password_out;
+       char* server_certificate_hash;
+       char* ca_certificate;
+       char* subject_name_constraint;
+       char* subject_alt_name_constraint;
+       gboolean result;
+       IdentityRequest* request;
+       char* _tmp0_;
+       char* _tmp1_;
+       char* _tmp2_;
+       char* _tmp3_;
+       char* _tmp4_;
+       char* _tmp5_;
+       IdCard* id_card;
+       char* _tmp6_;
+       char* _tmp7_;
+       char* _tmp8_;
+       Block2Data* _data2_;
+};
+
+struct _Block3Data {
+       int _ref_count_;
+       MoonshotServer * self;
+       gpointer _async_data_;
+};
+
+struct _MoonshotServerGetDefaultIdentityData {
+       int _state_;
+       GAsyncResult* _res_;
+       GSimpleAsyncResult* _async_result;
+       MoonshotServer* self;
+       char* nai_out;
+       char* password_out;
+       gboolean result;
+       IdentityRequest* request;
+       char* _tmp0_;
+       char* _tmp1_;
+       char* _tmp2_;
+       char* _tmp3_;
+       Block3Data* _data3_;
+};
+
+struct _DBusObjectVTable {
+       void (*register_object) (DBusConnection*, const char*, void*);
+};
+
+
+static gpointer moonshot_server_parent_class = NULL;
+
+GType moonshot_server_get_type (void) G_GNUC_CONST;
+GType main_window_get_type (void) G_GNUC_CONST;
+#define MOONSHOT_SERVER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MOONSHOT_SERVER, MoonshotServerPrivate))
+enum  {
+       MOONSHOT_SERVER_DUMMY_PROPERTY
+};
+MoonshotServer* moonshot_server_new (GtkWindow* window);
+MoonshotServer* moonshot_server_construct (GType object_type, GtkWindow* window);
+static void moonshot_server_get_identity_data_free (gpointer _data);
+static void moonshot_server_get_identity_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
+void moonshot_server_get_identity (MoonshotServer* self, const char* nai, const char* password, const char* service, GAsyncReadyCallback _callback_, gpointer _user_data_);
+gboolean moonshot_server_get_identity_finish (MoonshotServer* self, GAsyncResult* _res_, char** nai_out, char** password_out, char** server_certificate_hash, char** ca_certificate, char** subject_name_constraint, char** subject_alt_name_constraint);
+static gboolean moonshot_server_get_identity_co (MoonshotServerGetIdentityData* data);
+IdentityRequest* identity_request_new (MainWindow* main_window, const char* nai, const char* password, const char* certificate);
+IdentityRequest* identity_request_construct (GType object_type, MainWindow* main_window, const char* nai, const char* password, const char* certificate);
+GType identity_request_get_type (void) G_GNUC_CONST;
+void identity_request_set_callback (IdentityRequest* self, ReturnIdentityCallback cb, void* cb_target, GDestroyNotify cb_target_destroy_notify);
+static void _lambda1_ (IdentityRequest* IdentityRequest, Block2Data* _data2_);
+static void __lambda1__return_identity_callback (IdentityRequest* request, gpointer self);
+gboolean identity_request_execute (IdentityRequest* self);
+GType id_card_get_type (void) G_GNUC_CONST;
+const char* id_card_get_nai (IdCard* self);
+const char* id_card_get_password (IdCard* self);
+static Block2Data* block2_data_ref (Block2Data* _data2_);
+static void block2_data_unref (Block2Data* _data2_);
+static void moonshot_server_get_default_identity_data_free (gpointer _data);
+static void moonshot_server_get_default_identity_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
+void moonshot_server_get_default_identity (MoonshotServer* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
+gboolean moonshot_server_get_default_identity_finish (MoonshotServer* self, GAsyncResult* _res_, char** nai_out, char** password_out);
+static gboolean moonshot_server_get_default_identity_co (MoonshotServerGetDefaultIdentityData* data);
+IdentityRequest* identity_request_new_default (MainWindow* main_window);
+IdentityRequest* identity_request_construct_default (GType object_type, MainWindow* main_window);
+static void _lambda3_ (IdentityRequest* IdentityRequest, Block3Data* _data3_);
+static void __lambda3__return_identity_callback (IdentityRequest* request, gpointer self);
+static Block3Data* block3_data_ref (Block3Data* _data3_);
+static void block3_data_unref (Block3Data* _data3_);
+static void _vala_dbus_register_object (DBusConnection* connection, const char* path, void* object);
+static void _vala_dbus_unregister_object (gpointer connection, GObject* object);
+void moonshot_server_dbus_register_object (DBusConnection* connection, const char* path, void* object);
+void _moonshot_server_dbus_unregister (DBusConnection* connection, void* _user_data_);
+DBusHandlerResult moonshot_server_dbus_message (DBusConnection* connection, DBusMessage* message, void* object);
+static DBusHandlerResult _dbus_moonshot_server_introspect (MoonshotServer* self, DBusConnection* connection, DBusMessage* message);
+static DBusHandlerResult _dbus_moonshot_server_property_get_all (MoonshotServer* self, DBusConnection* connection, DBusMessage* message);
+static DBusHandlerResult _dbus_moonshot_server_get_identity (MoonshotServer* self, DBusConnection* connection, DBusMessage* message);
+static void _dbus_moonshot_server_get_identity_ready (GObject * source_object, GAsyncResult * _res_, gpointer * _user_data_);
+static DBusHandlerResult _dbus_moonshot_server_get_default_identity (MoonshotServer* self, DBusConnection* connection, DBusMessage* message);
+static void _dbus_moonshot_server_get_default_identity_ready (GObject * source_object, GAsyncResult * _res_, gpointer * _user_data_);
+static void moonshot_server_finalize (GObject* obj);
+
+static const DBusObjectPathVTable _moonshot_server_dbus_path_vtable = {_moonshot_server_dbus_unregister, moonshot_server_dbus_message};
+static const _DBusObjectVTable _moonshot_server_dbus_vtable = {moonshot_server_dbus_register_object};
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+MoonshotServer* moonshot_server_construct (GType object_type, GtkWindow* window) {
+       MoonshotServer * self = NULL;
+       MainWindow* _tmp0_;
+       g_return_val_if_fail (window != NULL, NULL);
+       self = (MoonshotServer*) g_object_new (object_type, NULL);
+       self->priv->main_window = (_tmp0_ = _g_object_ref0 (MAIN_WINDOW (window)), _g_object_unref0 (self->priv->main_window), _tmp0_);
+       return self;
+}
+
+
+MoonshotServer* moonshot_server_new (GtkWindow* window) {
+       return moonshot_server_construct (TYPE_MOONSHOT_SERVER, window);
+}
+
+
+static void moonshot_server_get_identity_data_free (gpointer _data) {
+       MoonshotServerGetIdentityData* data;
+       data = _data;
+       _g_free0 (data->nai);
+       _g_free0 (data->password);
+       _g_free0 (data->service);
+       g_object_unref (data->self);
+       g_slice_free (MoonshotServerGetIdentityData, data);
+}
+
+
+void moonshot_server_get_identity (MoonshotServer* self, const char* nai, const char* password, const char* service, GAsyncReadyCallback _callback_, gpointer _user_data_) {
+       MoonshotServerGetIdentityData* _data_;
+       _data_ = g_slice_new0 (MoonshotServerGetIdentityData);
+       _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, moonshot_server_get_identity);
+       g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, moonshot_server_get_identity_data_free);
+       _data_->self = g_object_ref (self);
+       _data_->nai = g_strdup (nai);
+       _data_->password = g_strdup (password);
+       _data_->service = g_strdup (service);
+       moonshot_server_get_identity_co (_data_);
+}
+
+
+gboolean moonshot_server_get_identity_finish (MoonshotServer* self, GAsyncResult* _res_, char** nai_out, char** password_out, char** server_certificate_hash, char** ca_certificate, char** subject_name_constraint, char** subject_alt_name_constraint) {
+       gboolean result;
+       MoonshotServerGetIdentityData* _data_;
+       _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
+       *nai_out = _data_->nai_out;
+       _data_->nai_out = NULL;
+       *password_out = _data_->password_out;
+       _data_->password_out = NULL;
+       *server_certificate_hash = _data_->server_certificate_hash;
+       _data_->server_certificate_hash = NULL;
+       *ca_certificate = _data_->ca_certificate;
+       _data_->ca_certificate = NULL;
+       *subject_name_constraint = _data_->subject_name_constraint;
+       _data_->subject_name_constraint = NULL;
+       *subject_alt_name_constraint = _data_->subject_alt_name_constraint;
+       _data_->subject_alt_name_constraint = NULL;
+       result = _data_->result;
+       return result;
+}
+
+
+static void moonshot_server_get_identity_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
+       MoonshotServerGetIdentityData* data;
+       data = _user_data_;
+       data->_res_ = _res_;
+       moonshot_server_get_identity_co (data);
+}
+
+
+/**
+     * This is the function used by the GSS mechanism to get the NAI,
+     * password and certificate of the ID card for the specificated service.
+     *
+     * The function will block until the user choose the ID card.
+     *
+     * There are two types of trust anchor that may be returned. If
+     * server_certificate_hash is non-empty, the remaining parameters
+     * will be empty. Otherwise, the ca_certificate paramater and the
+     * subject name constraints will be returned.
+     *
+     * @param nai NAI of the ID Card (optional)
+     * @param password Password of the ID Card (optional)
+     * @param service Service application request an ID Card for (optional)
+     * @param nai_out NAI stored in the ID Card
+     * @param password_out Password stored in the ID Card
+     * @param server_certificate_hash Hash of the identity server's certificate
+     * @param ca_certificate Base64-encoded CA certificate
+     * @param subject_name_constraint Subject name constraint
+     * @param subject_alt_name_constraint Subject alternative name constraint
+     *
+     * @return true if the user choose a correct ID card for that service,
+     *         false otherwise.
+     */
+static void _lambda1_ (IdentityRequest* IdentityRequest, Block2Data* _data2_) {
+       MoonshotServer * self;
+       self = _data2_->self;
+       g_return_if_fail (IdentityRequest != NULL);
+       moonshot_server_get_identity_co (_data2_->_async_data_);
+}
+
+
+static void __lambda1__return_identity_callback (IdentityRequest* request, gpointer self) {
+       _lambda1_ (request, self);
+}
+
+
+static Block2Data* block2_data_ref (Block2Data* _data2_) {
+       g_atomic_int_inc (&_data2_->_ref_count_);
+       return _data2_;
+}
+
+
+static void block2_data_unref (Block2Data* _data2_) {
+       if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) {
+               _g_object_unref0 (_data2_->self);
+               g_slice_free (Block2Data, _data2_);
+       }
+}
+
+
+static gboolean moonshot_server_get_identity_co (MoonshotServerGetIdentityData* data) {
+       switch (data->_state_) {
+               case 0:
+               goto _state_0;
+               default:
+               g_assert_not_reached ();
+               case 1:
+               goto _state_1;
+       }
+       _state_0:
+       data->_data2_ = g_slice_new0 (Block2Data);
+       data->_data2_->_ref_count_ = 1;
+       data->_data2_->self = g_object_ref (data->self);
+       data->_data2_->_async_data_ = data;
+       data->request = identity_request_new (data->self->priv->main_window, data->nai, data->password, data->service);
+       identity_request_set_callback (data->request, __lambda1__return_identity_callback, block2_data_ref (data->_data2_), block2_data_unref);
+       identity_request_execute (data->request);
+       data->_state_ = 1;
+       return FALSE;
+       _state_1:
+       ;
+       data->nai_out = (data->_tmp0_ = g_strdup (""), _g_free0 (data->nai_out), data->_tmp0_);
+       data->password_out = (data->_tmp1_ = g_strdup (""), _g_free0 (data->password_out), data->_tmp1_);
+       data->server_certificate_hash = (data->_tmp2_ = g_strdup (""), _g_free0 (data->server_certificate_hash), data->_tmp2_);
+       data->ca_certificate = (data->_tmp3_ = g_strdup (""), _g_free0 (data->ca_certificate), data->_tmp3_);
+       data->subject_name_constraint = (data->_tmp4_ = g_strdup (""), _g_free0 (data->subject_name_constraint), data->_tmp4_);
+       data->subject_alt_name_constraint = (data->_tmp5_ = g_strdup (""), _g_free0 (data->subject_alt_name_constraint), data->_tmp5_);
+       data->id_card = _g_object_ref0 (data->request->id_card);
+       if (data->id_card != NULL) {
+               data->nai_out = (data->_tmp6_ = g_strdup (id_card_get_nai (data->id_card)), _g_free0 (data->nai_out), data->_tmp6_);
+               data->password_out = (data->_tmp7_ = g_strdup (id_card_get_password (data->id_card)), _g_free0 (data->password_out), data->_tmp7_);
+               data->server_certificate_hash = (data->_tmp8_ = g_strdup ("certificate"), _g_free0 (data->server_certificate_hash), data->_tmp8_);
+               g_return_if_fail (data->nai_out != NULL);
+               g_return_if_fail (data->password_out != NULL);
+               data->result = TRUE;
+               _g_object_unref0 (data->id_card);
+               _g_object_unref0 (data->request);
+               block2_data_unref (data->_data2_);
+               {
+                       if (data->_state_ == 0) {
+                               g_simple_async_result_complete_in_idle (data->_async_result);
+                       } else {
+                               g_simple_async_result_complete (data->_async_result);
+                       }
+                       g_object_unref (data->_async_result);
+                       return FALSE;
+               }
+       }
+       data->result = FALSE;
+       _g_object_unref0 (data->id_card);
+       _g_object_unref0 (data->request);
+       block2_data_unref (data->_data2_);
+       {
+               if (data->_state_ == 0) {
+                       g_simple_async_result_complete_in_idle (data->_async_result);
+               } else {
+                       g_simple_async_result_complete (data->_async_result);
+               }
+               g_object_unref (data->_async_result);
+               return FALSE;
+       }
+       _g_object_unref0 (data->id_card);
+       _g_object_unref0 (data->request);
+       block2_data_unref (data->_data2_);
+       {
+               if (data->_state_ == 0) {
+                       g_simple_async_result_complete_in_idle (data->_async_result);
+               } else {
+                       g_simple_async_result_complete (data->_async_result);
+               }
+               g_object_unref (data->_async_result);
+               return FALSE;
+       }
+}
+
+
+static void moonshot_server_get_default_identity_data_free (gpointer _data) {
+       MoonshotServerGetDefaultIdentityData* data;
+       data = _data;
+       g_object_unref (data->self);
+       g_slice_free (MoonshotServerGetDefaultIdentityData, data);
+}
+
+
+void moonshot_server_get_default_identity (MoonshotServer* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
+       MoonshotServerGetDefaultIdentityData* _data_;
+       _data_ = g_slice_new0 (MoonshotServerGetDefaultIdentityData);
+       _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, moonshot_server_get_default_identity);
+       g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, moonshot_server_get_default_identity_data_free);
+       _data_->self = g_object_ref (self);
+       moonshot_server_get_default_identity_co (_data_);
+}
+
+
+gboolean moonshot_server_get_default_identity_finish (MoonshotServer* self, GAsyncResult* _res_, char** nai_out, char** password_out) {
+       gboolean result;
+       MoonshotServerGetDefaultIdentityData* _data_;
+       _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
+       *nai_out = _data_->nai_out;
+       _data_->nai_out = NULL;
+       *password_out = _data_->password_out;
+       _data_->password_out = NULL;
+       result = _data_->result;
+       return result;
+}
+
+
+static void moonshot_server_get_default_identity_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
+       MoonshotServerGetDefaultIdentityData* data;
+       data = _user_data_;
+       data->_res_ = _res_;
+       moonshot_server_get_default_identity_co (data);
+}
+
+
+/**
+     * Returns the default identity - most recently used.
+     *
+     * @param nai_out NAI stored in the ID card
+     * @param password_out Password stored in the ID card
+     *
+     * @return true on success, false if no identities are stored
+     */
+static void _lambda3_ (IdentityRequest* IdentityRequest, Block3Data* _data3_) {
+       MoonshotServer * self;
+       self = _data3_->self;
+       g_return_if_fail (IdentityRequest != NULL);
+       moonshot_server_get_default_identity_co (_data3_->_async_data_);
+}
+
+
+static void __lambda3__return_identity_callback (IdentityRequest* request, gpointer self) {
+       _lambda3_ (request, self);
+}
+
+
+static Block3Data* block3_data_ref (Block3Data* _data3_) {
+       g_atomic_int_inc (&_data3_->_ref_count_);
+       return _data3_;
+}
+
+
+static void block3_data_unref (Block3Data* _data3_) {
+       if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
+               _g_object_unref0 (_data3_->self);
+               g_slice_free (Block3Data, _data3_);
+       }
+}
+
+
+static gboolean moonshot_server_get_default_identity_co (MoonshotServerGetDefaultIdentityData* data) {
+       switch (data->_state_) {
+               case 0:
+               goto _state_0;
+               default:
+               g_assert_not_reached ();
+               case 2:
+               goto _state_2;
+       }
+       _state_0:
+       data->_data3_ = g_slice_new0 (Block3Data);
+       data->_data3_->_ref_count_ = 1;
+       data->_data3_->self = g_object_ref (data->self);
+       data->_data3_->_async_data_ = data;
+       data->request = identity_request_new_default (data->self->priv->main_window);
+       identity_request_set_callback (data->request, __lambda3__return_identity_callback, block3_data_ref (data->_data3_), block3_data_unref);
+       identity_request_execute (data->request);
+       data->_state_ = 2;
+       return FALSE;
+       _state_2:
+       ;
+       data->nai_out = (data->_tmp0_ = g_strdup (""), _g_free0 (data->nai_out), data->_tmp0_);
+       data->password_out = (data->_tmp1_ = g_strdup (""), _g_free0 (data->password_out), data->_tmp1_);
+       if (data->request->id_card != NULL) {
+               data->nai_out = (data->_tmp2_ = g_strdup (id_card_get_nai (data->request->id_card)), _g_free0 (data->nai_out), data->_tmp2_);
+               data->password_out = (data->_tmp3_ = g_strdup (id_card_get_password (data->request->id_card)), _g_free0 (data->password_out), data->_tmp3_);
+               g_return_val_if_fail (data->nai_out != NULL, FALSE);
+               g_return_val_if_fail (data->password_out != NULL, FALSE);
+               data->result = TRUE;
+               _g_object_unref0 (data->request);
+               block3_data_unref (data->_data3_);
+               {
+                       if (data->_state_ == 0) {
+                               g_simple_async_result_complete_in_idle (data->_async_result);
+                       } else {
+                               g_simple_async_result_complete (data->_async_result);
+                       }
+                       g_object_unref (data->_async_result);
+                       return FALSE;
+               }
+       }
+       data->result = FALSE;
+       _g_object_unref0 (data->request);
+       block3_data_unref (data->_data3_);
+       {
+               if (data->_state_ == 0) {
+                       g_simple_async_result_complete_in_idle (data->_async_result);
+               } else {
+                       g_simple_async_result_complete (data->_async_result);
+               }
+               g_object_unref (data->_async_result);
+               return FALSE;
+       }
+       _g_object_unref0 (data->request);
+       block3_data_unref (data->_data3_);
+       {
+               if (data->_state_ == 0) {
+                       g_simple_async_result_complete_in_idle (data->_async_result);
+               } else {
+                       g_simple_async_result_complete (data->_async_result);
+               }
+               g_object_unref (data->_async_result);
+               return FALSE;
+       }
+}
+
+
+static void _vala_dbus_register_object (DBusConnection* connection, const char* path, void* object) {
+       const _DBusObjectVTable * vtable;
+       vtable = g_type_get_qdata (G_TYPE_FROM_INSTANCE (object), g_quark_from_static_string ("DBusObjectVTable"));
+       if (vtable) {
+               vtable->register_object (connection, path, object);
+       } else {
+               g_warning ("Object does not implement any D-Bus interface");
+       }
+}
+
+
+static void _vala_dbus_unregister_object (gpointer connection, GObject* object) {
+       char* path;
+       path = g_object_steal_data ((GObject*) object, "dbus_object_path");
+       dbus_connection_unregister_object_path (connection, path);
+       g_free (path);
+}
+
+
+void _moonshot_server_dbus_unregister (DBusConnection* connection, void* _user_data_) {
+}
+
+
+static DBusHandlerResult _dbus_moonshot_server_introspect (MoonshotServer* self, DBusConnection* connection, DBusMessage* message) {
+       DBusMessage* reply;
+       DBusMessageIter iter;
+       GString* xml_data;
+       char** children;
+       int i;
+       reply = dbus_message_new_method_return (message);
+       dbus_message_iter_init_append (reply, &iter);
+       xml_data = g_string_new ("<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN\" \"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n");
+       g_string_append (xml_data, "<node>\n<interface name=\"org.freedesktop.DBus.Introspectable\">\n  <method name=\"Introspect\">\n    <arg name=\"data\" direction=\"out\" type=\"s\"/>\n  </method>\n</interface>\n<interface name=\"org.freedesktop.DBus.Properties\">\n  <method name=\"Get\">\n    <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n    <arg name=\"propname\" direction=\"in\" type=\"s\"/>\n    <arg name=\"value\" direction=\"out\" type=\"v\"/>\n  </method>\n  <method name=\"Set\">\n    <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n    <arg name=\"propname\" direction=\"in\" type=\"s\"/>\n    <arg name=\"value\" direction=\"in\" type=\"v\"/>\n  </method>\n  <method name=\"GetAll\">\n    <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n    <arg name=\"props\" direction=\"out\" type=\"a{sv}\"/>\n  </method>\n</interface>\n<interface name=\"org.janet.Moonshot\">\n  <method name=\"GetIdentity\">\n    <arg name=\"nai\" type=\"s\" direction=\"in\"/>\n    <arg name=\"password\" type=\"s\" direction=\"in\"/>\n    <arg name=\"service\" type=\"s\" direction=\"in\"/>\n    <arg name=\"nai_out\" type=\"s\" direction=\"out\"/>\n    <arg name=\"password_out\" type=\"s\" direction=\"out\"/>\n    <arg name=\"server_certificate_hash\" type=\"s\" direction=\"out\"/>\n    <arg name=\"ca_certificate\" type=\"s\" direction=\"out\"/>\n    <arg name=\"subject_name_constraint\" type=\"s\" direction=\"out\"/>\n    <arg name=\"subject_alt_name_constraint\" type=\"s\" direction=\"out\"/>\n    <arg name=\"result\" type=\"b\" direction=\"out\"/>\n  </method>\n  <method name=\"GetDefaultIdentity\">\n    <arg name=\"nai_out\" type=\"s\" direction=\"out\"/>\n    <arg name=\"password_out\" type=\"s\" direction=\"out\"/>\n    <arg name=\"result\" type=\"b\" direction=\"out\"/>\n  </method>\n</interface>\n");
+       dbus_connection_list_registered (connection, g_object_get_data ((GObject *) self, "dbus_object_path"), &children);
+       for (i = 0; children[i]; i++) {
+               g_string_append_printf (xml_data, "<node name=\"%s\"/>\n", children[i]);
+       }
+       dbus_free_string_array (children);
+       g_string_append (xml_data, "</node>\n");
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &xml_data->str);
+       g_string_free (xml_data, TRUE);
+       if (reply) {
+               dbus_connection_send (connection, reply, NULL);
+               dbus_message_unref (reply);
+               return DBUS_HANDLER_RESULT_HANDLED;
+       } else {
+               return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+       }
+}
+
+
+static DBusHandlerResult _dbus_moonshot_server_property_get_all (MoonshotServer* self, DBusConnection* connection, DBusMessage* message) {
+       DBusMessage* reply;
+       DBusMessageIter iter, reply_iter, subiter;
+       char* interface_name;
+       const char* _tmp0_;
+       if (strcmp (dbus_message_get_signature (message), "s")) {
+               return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+       }
+       dbus_message_iter_init (message, &iter);
+       reply = dbus_message_new_method_return (message);
+       dbus_message_iter_init_append (reply, &reply_iter);
+       dbus_message_iter_get_basic (&iter, &_tmp0_);
+       dbus_message_iter_next (&iter);
+       interface_name = g_strdup (_tmp0_);
+       if (strcmp (interface_name, "org.janet.Moonshot") == 0) {
+               dbus_message_iter_open_container (&reply_iter, DBUS_TYPE_ARRAY, "{sv}", &subiter);
+               dbus_message_iter_close_container (&reply_iter, &subiter);
+       } else {
+               dbus_message_unref (reply);
+               reply = NULL;
+       }
+       g_free (interface_name);
+       if (reply) {
+               dbus_connection_send (connection, reply, NULL);
+               dbus_message_unref (reply);
+               return DBUS_HANDLER_RESULT_HANDLED;
+       } else {
+               return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+       }
+}
+
+
+static DBusHandlerResult _dbus_moonshot_server_get_identity (MoonshotServer* self, DBusConnection* connection, DBusMessage* message) {
+       DBusMessageIter iter;
+       char* nai = NULL;
+       const char* _tmp1_;
+       char* password = NULL;
+       const char* _tmp2_;
+       char* service = NULL;
+       const char* _tmp3_;
+       gpointer * _user_data_;
+       if (strcmp (dbus_message_get_signature (message), "sss")) {
+               return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+       }
+       dbus_message_iter_init (message, &iter);
+       dbus_message_iter_get_basic (&iter, &_tmp1_);
+       dbus_message_iter_next (&iter);
+       nai = g_strdup (_tmp1_);
+       dbus_message_iter_get_basic (&iter, &_tmp2_);
+       dbus_message_iter_next (&iter);
+       password = g_strdup (_tmp2_);
+       dbus_message_iter_get_basic (&iter, &_tmp3_);
+       dbus_message_iter_next (&iter);
+       service = g_strdup (_tmp3_);
+       _user_data_ = g_new0 (gpointer, 2);
+       _user_data_[0] = dbus_connection_ref (connection);
+       _user_data_[1] = dbus_message_ref (message);
+       moonshot_server_get_identity (self, nai, password, service, (GAsyncReadyCallback) _dbus_moonshot_server_get_identity_ready, _user_data_);
+       _g_free0 (nai);
+       _g_free0 (password);
+       _g_free0 (service);
+       return DBUS_HANDLER_RESULT_HANDLED;
+}
+
+
+static void _dbus_moonshot_server_get_identity_ready (GObject * source_object, GAsyncResult * _res_, gpointer * _user_data_) {
+       DBusConnection * connection;
+       DBusMessage * message;
+       DBusMessageIter iter;
+       GError* error;
+       char* nai_out = NULL;
+       char* password_out = NULL;
+       char* server_certificate_hash = NULL;
+       char* ca_certificate = NULL;
+       char* subject_name_constraint = NULL;
+       char* subject_alt_name_constraint = NULL;
+       gboolean result;
+       DBusMessage* reply;
+       const char* _tmp4_;
+       const char* _tmp5_;
+       const char* _tmp6_;
+       const char* _tmp7_;
+       const char* _tmp8_;
+       const char* _tmp9_;
+       dbus_bool_t _tmp10_;
+       connection = _user_data_[0];
+       message = _user_data_[1];
+       error = NULL;
+       result = moonshot_server_get_identity_finish ((MoonshotServer*) source_object, _res_, &nai_out, &password_out, &server_certificate_hash, &ca_certificate, &subject_name_constraint, &subject_alt_name_constraint);
+       reply = dbus_message_new_method_return (message);
+       dbus_message_iter_init_append (reply, &iter);
+       _tmp4_ = nai_out;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp4_);
+       _g_free0 (nai_out);
+       _tmp5_ = password_out;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp5_);
+       _g_free0 (password_out);
+       _tmp6_ = server_certificate_hash;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp6_);
+       _g_free0 (server_certificate_hash);
+       _tmp7_ = ca_certificate;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp7_);
+       _g_free0 (ca_certificate);
+       _tmp8_ = subject_name_constraint;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp8_);
+       _g_free0 (subject_name_constraint);
+       _tmp9_ = subject_alt_name_constraint;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp9_);
+       _g_free0 (subject_alt_name_constraint);
+       _tmp10_ = result;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &_tmp10_);
+       dbus_connection_send (connection, reply, NULL);
+       dbus_message_unref (reply);
+       dbus_connection_unref (connection);
+       dbus_message_unref (message);
+       g_free (_user_data_);
+}
+
+
+static DBusHandlerResult _dbus_moonshot_server_get_default_identity (MoonshotServer* self, DBusConnection* connection, DBusMessage* message) {
+       DBusMessageIter iter;
+       gpointer * _user_data_;
+       if (strcmp (dbus_message_get_signature (message), "")) {
+               return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+       }
+       dbus_message_iter_init (message, &iter);
+       _user_data_ = g_new0 (gpointer, 2);
+       _user_data_[0] = dbus_connection_ref (connection);
+       _user_data_[1] = dbus_message_ref (message);
+       moonshot_server_get_default_identity (self, (GAsyncReadyCallback) _dbus_moonshot_server_get_default_identity_ready, _user_data_);
+       return DBUS_HANDLER_RESULT_HANDLED;
+}
+
+
+static void _dbus_moonshot_server_get_default_identity_ready (GObject * source_object, GAsyncResult * _res_, gpointer * _user_data_) {
+       DBusConnection * connection;
+       DBusMessage * message;
+       DBusMessageIter iter;
+       GError* error;
+       char* nai_out = NULL;
+       char* password_out = NULL;
+       gboolean result;
+       DBusMessage* reply;
+       const char* _tmp11_;
+       const char* _tmp12_;
+       dbus_bool_t _tmp13_;
+       connection = _user_data_[0];
+       message = _user_data_[1];
+       error = NULL;
+       result = moonshot_server_get_default_identity_finish ((MoonshotServer*) source_object, _res_, &nai_out, &password_out);
+       reply = dbus_message_new_method_return (message);
+       dbus_message_iter_init_append (reply, &iter);
+       _tmp11_ = nai_out;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp11_);
+       _g_free0 (nai_out);
+       _tmp12_ = password_out;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp12_);
+       _g_free0 (password_out);
+       _tmp13_ = result;
+       dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &_tmp13_);
+       dbus_connection_send (connection, reply, NULL);
+       dbus_message_unref (reply);
+       dbus_connection_unref (connection);
+       dbus_message_unref (message);
+       g_free (_user_data_);
+}
+
+
+DBusHandlerResult moonshot_server_dbus_message (DBusConnection* connection, DBusMessage* message, void* object) {
+       DBusHandlerResult result;
+       result = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+       if (dbus_message_is_method_call (message, "org.freedesktop.DBus.Introspectable", "Introspect")) {
+               result = _dbus_moonshot_server_introspect (object, connection, message);
+       } else if (dbus_message_is_method_call (message, "org.freedesktop.DBus.Properties", "GetAll")) {
+               result = _dbus_moonshot_server_property_get_all (object, connection, message);
+       } else if (dbus_message_is_method_call (message, "org.janet.Moonshot", "GetIdentity")) {
+               result = _dbus_moonshot_server_get_identity (object, connection, message);
+       } else if (dbus_message_is_method_call (message, "org.janet.Moonshot", "GetDefaultIdentity")) {
+               result = _dbus_moonshot_server_get_default_identity (object, connection, message);
+       }
+       if (result == DBUS_HANDLER_RESULT_HANDLED) {
+               return result;
+       } else {
+               return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+       }
+}
+
+
+void moonshot_server_dbus_register_object (DBusConnection* connection, const char* path, void* object) {
+       if (!g_object_get_data (object, "dbus_object_path")) {
+               g_object_set_data (object, "dbus_object_path", g_strdup (path));
+               dbus_connection_register_object_path (connection, path, &_moonshot_server_dbus_path_vtable, object);
+               g_object_weak_ref (object, _vala_dbus_unregister_object, connection);
+       }
+}
+
+
+static void moonshot_server_class_init (MoonshotServerClass * klass) {
+       moonshot_server_parent_class = g_type_class_peek_parent (klass);
+       g_type_class_add_private (klass, sizeof (MoonshotServerPrivate));
+       G_OBJECT_CLASS (klass)->finalize = moonshot_server_finalize;
+       g_type_set_qdata (TYPE_MOONSHOT_SERVER, g_quark_from_static_string ("DBusObjectVTable"), (void*) (&_moonshot_server_dbus_vtable));
+}
+
+
+static void moonshot_server_instance_init (MoonshotServer * self) {
+       self->priv = MOONSHOT_SERVER_GET_PRIVATE (self);
+}
+
+
+static void moonshot_server_finalize (GObject* obj) {
+       MoonshotServer * self;
+       self = MOONSHOT_SERVER (obj);
+       _g_object_unref0 (self->priv->main_window);
+       G_OBJECT_CLASS (moonshot_server_parent_class)->finalize (obj);
+}
+
+
+GType moonshot_server_get_type (void) {
+       static volatile gsize moonshot_server_type_id__volatile = 0;
+       if (g_once_init_enter (&moonshot_server_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (MoonshotServerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) moonshot_server_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MoonshotServer), 0, (GInstanceInitFunc) moonshot_server_instance_init, NULL };
+               GType moonshot_server_type_id;
+               moonshot_server_type_id = g_type_register_static (G_TYPE_OBJECT, "MoonshotServer", &g_define_type_info, 0);
+               g_once_init_leave (&moonshot_server_type_id__volatile, moonshot_server_type_id);
+       }
+       return moonshot_server_type_id__volatile;
+}
+
+
+
+
index 3d462a5..c17d5ad 100644 (file)
@@ -32,16 +32,6 @@ typedef struct _MainWindow MainWindow;
 typedef struct _MainWindowClass MainWindowClass;
 typedef struct _MainWindowPrivate MainWindowPrivate;
 
-#define TYPE_ID_CARD_WIDGET (id_card_widget_get_type ())
-#define ID_CARD_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD_WIDGET, IdCardWidget))
-#define ID_CARD_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD_WIDGET, IdCardWidgetClass))
-#define IS_ID_CARD_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD_WIDGET))
-#define IS_ID_CARD_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD_WIDGET))
-#define ID_CARD_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD_WIDGET, IdCardWidgetClass))
-
-typedef struct _IdCardWidget IdCardWidget;
-typedef struct _IdCardWidgetClass IdCardWidgetClass;
-
 #define TYPE_CUSTOM_VBOX (custom_vbox_get_type ())
 #define CUSTOM_VBOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CUSTOM_VBOX, CustomVBox))
 #define CUSTOM_VBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CUSTOM_VBOX, CustomVBoxClass))
@@ -72,6 +62,16 @@ typedef struct _IdentitiesManagerClass IdentitiesManagerClass;
 typedef struct _MoonshotServer MoonshotServer;
 typedef struct _MoonshotServerClass MoonshotServerClass;
 
+#define TYPE_ID_CARD (id_card_get_type ())
+#define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
+#define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
+#define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
+#define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
+#define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
+
+typedef struct _IdCard IdCard;
+typedef struct _IdCardClass IdCardClass;
+
 #define TYPE_IDENTITY_REQUEST (identity_request_get_type ())
 #define IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_REQUEST, IdentityRequest))
 #define IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
@@ -86,17 +86,17 @@ typedef struct _IdentityRequestClass IdentityRequestClass;
 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 #define _g_queue_free0(var) ((var == NULL) ? NULL : (var = (g_queue_free (var), NULL)))
 #define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _IdentitiesManagerPrivate IdentitiesManagerPrivate;
 
-#define TYPE_ID_CARD (id_card_get_type ())
-#define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
-#define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
-#define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
-#define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
-#define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
+#define TYPE_ID_CARD_WIDGET (id_card_widget_get_type ())
+#define ID_CARD_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD_WIDGET, IdCardWidget))
+#define ID_CARD_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD_WIDGET, IdCardWidgetClass))
+#define IS_ID_CARD_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD_WIDGET))
+#define IS_ID_CARD_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD_WIDGET))
+#define ID_CARD_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD_WIDGET, IdCardWidgetClass))
 
-typedef struct _IdCard IdCard;
-typedef struct _IdCardClass IdCardClass;
-typedef struct _IdentitiesManagerPrivate IdentitiesManagerPrivate;
+typedef struct _IdCardWidget IdCardWidget;
+typedef struct _IdCardWidgetClass IdCardWidgetClass;
 #define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
 
 #define TYPE_ADD_IDENTITY_DIALOG (add_identity_dialog_get_type ())
@@ -108,6 +108,8 @@ typedef struct _IdentitiesManagerPrivate IdentitiesManagerPrivate;
 
 typedef struct _AddIdentityDialog AddIdentityDialog;
 typedef struct _AddIdentityDialogClass AddIdentityDialogClass;
+typedef struct _IdentityRequestPrivate IdentityRequestPrivate;
+typedef struct _Block4Data Block4Data;
 
 #define TYPE_ADD_PASSWORD_DIALOG (add_password_dialog_get_type ())
 #define ADD_PASSWORD_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_PASSWORD_DIALOG, AddPasswordDialog))
@@ -126,7 +128,6 @@ typedef struct _DBusObjectVTable _DBusObjectVTable;
 struct _MainWindow {
        GtkWindow parent_instance;
        MainWindowPrivate * priv;
-       IdCardWidget* selected_id_card_widget;
 };
 
 struct _MainWindowClass {
@@ -136,7 +137,7 @@ struct _MainWindowClass {
 struct _MainWindowPrivate {
        GtkUIManager* ui_manager;
        GtkEntry* search_entry;
-       GtkVBox* vbox_rigth;
+       GtkVBox* vbox_right;
        CustomVBox* custom_vbox;
        GtkVBox* services_internal_vbox;
        GtkEntry* username_entry;
@@ -145,6 +146,7 @@ struct _MainWindowPrivate {
        GtkTreeModelFilter* filter;
        IdentitiesManager* identities_manager;
        MoonshotServer* ipc_server;
+       IdCard* default_id_card;
        GQueue* request_queue;
 };
 
@@ -167,6 +169,24 @@ struct _IdentitiesManagerClass {
        GObjectClass parent_class;
 };
 
+struct _IdentityRequest {
+       GObject parent_instance;
+       IdentityRequestPrivate * priv;
+       IdCard* id_card;
+       gboolean complete;
+       gboolean select_default;
+};
+
+struct _IdentityRequestClass {
+       GObjectClass parent_class;
+};
+
+struct _Block4Data {
+       int _ref_count_;
+       MainWindow * self;
+       IdCard* identity;
+};
+
 struct _DBusObjectVTable {
        void (*register_object) (DBusConnection*, const char*, void*);
 };
@@ -175,10 +195,10 @@ struct _DBusObjectVTable {
 static gpointer main_window_parent_class = NULL;
 
 GType main_window_get_type (void) G_GNUC_CONST;
-GType id_card_widget_get_type (void) G_GNUC_CONST;
 GType custom_vbox_get_type (void) G_GNUC_CONST;
 GType identities_manager_get_type (void) G_GNUC_CONST;
 GType moonshot_server_get_type (void) G_GNUC_CONST;
+GType id_card_get_type (void) G_GNUC_CONST;
 GType identity_request_get_type (void) G_GNUC_CONST;
 #define MAIN_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MAIN_WINDOW, MainWindowPrivate))
 enum  {
@@ -207,7 +227,6 @@ static void main_window_load_gss_eap_id_file (MainWindow* self);
 static void main_window_connect_signals (MainWindow* self);
 static void main_window_init_ipc_server (MainWindow* self);
 static gboolean main_window_visible_func (MainWindow* self, GtkTreeModel* model, GtkTreeIter* iter);
-GType id_card_get_type (void) G_GNUC_CONST;
 static gboolean _main_window_visible_func_gtk_tree_model_filter_visible_func (GtkTreeModel* model, GtkTreeIter* iter, gpointer self);
 static void main_window_search_entry_icon_press_cb (MainWindow* self, GtkEntryIconPosition pos, GdkEvent* event);
 static void main_window_search_entry_text_changed_cb (MainWindow* self);
@@ -219,6 +238,7 @@ IdCard* identities_manager_load_gss_eap_id_file (IdentitiesManager* self);
 static void main_window_add_id_card_data (MainWindow* self, IdCard* id_card);
 static void main_window_add_id_card_widget (MainWindow* self, IdCard* id_card);
 static void main_window_load_id_cards (MainWindow* self);
+GType id_card_widget_get_type (void) G_GNUC_CONST;
 static void main_window_fill_details (MainWindow* self, IdCardWidget* id_card_widget);
 IdCard* id_card_widget_get_id_card (IdCardWidget* self);
 const char* id_card_get_username (IdCard* self);
@@ -249,8 +269,9 @@ void custom_vbox_add_id_card_widget (CustomVBox* self, IdCardWidget* id_card_wid
 static void _main_window_details_identity_cb_id_card_widget_details_id (IdCardWidget* _sender, gpointer self);
 static void main_window_remove_identity_cb (MainWindow* self, IdCardWidget* id_card_widget);
 static void _main_window_remove_identity_cb_id_card_widget_remove_id (IdCardWidget* _sender, gpointer self);
-void main_window_send_identity_cb (MainWindow* self, IdCardWidget* id_card_widget);
-static void _main_window_send_identity_cb_id_card_widget_send_id (IdCardWidget* _sender, gpointer self);
+static void _lambda4_ (IdCardWidget* w, MainWindow* self);
+void main_window_send_identity_cb (MainWindow* self, IdCard* identity);
+static void __lambda4__id_card_widget_send_id (IdCardWidget* _sender, gpointer self);
 void custom_vbox_receive_expanded_event (CustomVBox* self, IdCardWidget* id_card_widget);
 static void _custom_vbox_receive_expanded_event_id_card_widget_expanded (IdCardWidget* _sender, gpointer self);
 static void _main_window_fill_details_id_card_widget_expanded (IdCardWidget* _sender, gpointer self);
@@ -264,6 +285,10 @@ static void main_window_remove_id_card_widget (MainWindow* self, IdCardWidget* i
 void custom_vbox_remove_id_card_widget (CustomVBox* self, IdCardWidget* id_card_widget);
 static void main_window_remove_identity (MainWindow* self, IdCardWidget* id_card_widget);
 void main_window_select_identity (MainWindow* self, IdentityRequest* request);
+static gboolean _lambda2_ (Block4Data* _data4_);
+static gboolean __lambda2__gsource_func (gpointer self);
+static Block4Data* block4_data_ref (Block4Data* _data4_);
+static void block4_data_unref (Block4Data* _data4_);
 AddPasswordDialog* add_password_dialog_new (void);
 AddPasswordDialog* add_password_dialog_construct (GType object_type);
 GType add_password_dialog_get_type (void) G_GNUC_CONST;
@@ -433,7 +458,7 @@ static void main_window_search_entry_text_changed_cb (MainWindow* self) {
        has_text = gtk_entry_get_text_length (self->priv->search_entry) > 0;
        gtk_entry_set_icon_sensitive (self->priv->search_entry, GTK_ENTRY_ICON_PRIMARY, has_text);
        gtk_entry_set_icon_sensitive (self->priv->search_entry, GTK_ENTRY_ICON_SECONDARY, has_text);
-       gtk_widget_set_visible ((GtkWidget*) self->priv->vbox_rigth, FALSE);
+       gtk_widget_set_visible ((GtkWidget*) self->priv->vbox_right, FALSE);
        gtk_window_resize ((GtkWindow*) self, MAIN_WINDOW_WINDOW_WIDTH, MAIN_WINDOW_WINDOW_HEIGHT);
 }
 
@@ -449,10 +474,16 @@ static gboolean main_window_search_entry_key_press_event_cb (MainWindow* self, G
 }
 
 
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
 static void main_window_load_gss_eap_id_file (MainWindow* self) {
        IdCard* id_card;
        IdentitiesManager* _tmp0_;
        IdCard* _tmp1_;
+       IdCard* _tmp2_;
        g_return_if_fail (self != NULL);
        id_card = NULL;
        self->priv->identities_manager = (_tmp0_ = identities_manager_new (), _g_object_unref0 (self->priv->identities_manager), _tmp0_);
@@ -461,17 +492,14 @@ static void main_window_load_gss_eap_id_file (MainWindow* self) {
                main_window_add_id_card_data (self, id_card);
                main_window_add_id_card_widget (self, id_card);
        }
+       self->priv->default_id_card = (_tmp2_ = _g_object_ref0 (id_card), _g_object_unref0 (self->priv->default_id_card), _tmp2_);
        _g_object_unref0 (id_card);
 }
 
 
-static gpointer _g_object_ref0 (gpointer self) {
-       return self ? g_object_ref (self) : NULL;
-}
-
-
 static void main_window_load_id_cards (MainWindow* self) {
        IdentitiesManager* _tmp0_;
+       IdCard* _tmp1_;
        g_return_if_fail (self != NULL);
        self->priv->identities_manager = (_tmp0_ = identities_manager_new (), _g_object_unref0 (self->priv->identities_manager), _tmp0_);
        {
@@ -488,6 +516,7 @@ static void main_window_load_id_cards (MainWindow* self) {
                        }
                }
        }
+       self->priv->default_id_card = (_tmp1_ = _g_object_ref0 ((IdCard*) self->priv->identities_manager->id_card_list->data), _g_object_unref0 (self->priv->default_id_card), _tmp1_);
 }
 
 
@@ -528,8 +557,8 @@ static void main_window_fill_details (MainWindow* self, IdCardWidget* id_card_wi
 static void main_window_show_details (MainWindow* self, IdCard* id_card) {
        g_return_if_fail (self != NULL);
        g_return_if_fail (id_card != NULL);
-       gtk_widget_set_visible ((GtkWidget*) self->priv->vbox_rigth, !gtk_widget_get_visible ((GtkWidget*) self->priv->vbox_rigth));
-       if (gtk_widget_get_visible ((GtkWidget*) self->priv->vbox_rigth) == FALSE) {
+       gtk_widget_set_visible ((GtkWidget*) self->priv->vbox_right, !gtk_widget_get_visible ((GtkWidget*) self->priv->vbox_right));
+       if (gtk_widget_get_visible ((GtkWidget*) self->priv->vbox_right) == FALSE) {
                gtk_window_resize ((GtkWindow*) self, MAIN_WINDOW_WINDOW_WIDTH, MAIN_WINDOW_WINDOW_HEIGHT);
        }
 }
@@ -623,8 +652,14 @@ static void _main_window_remove_identity_cb_id_card_widget_remove_id (IdCardWidg
 }
 
 
-static void _main_window_send_identity_cb_id_card_widget_send_id (IdCardWidget* _sender, gpointer self) {
-       main_window_send_identity_cb (self, _sender);
+static void _lambda4_ (IdCardWidget* w, MainWindow* self) {
+       g_return_if_fail (w != NULL);
+       main_window_send_identity_cb (self, id_card_widget_get_id_card (w));
+}
+
+
+static void __lambda4__id_card_widget_send_id (IdCardWidget* _sender, gpointer self) {
+       _lambda4_ (_sender, self);
 }
 
 
@@ -646,7 +681,7 @@ static void main_window_add_id_card_widget (MainWindow* self, IdCard* id_card) {
        custom_vbox_add_id_card_widget (self->priv->custom_vbox, id_card_widget);
        g_signal_connect_object (id_card_widget, "details-id", (GCallback) _main_window_details_identity_cb_id_card_widget_details_id, self, 0);
        g_signal_connect_object (id_card_widget, "remove-id", (GCallback) _main_window_remove_identity_cb_id_card_widget_remove_id, self, 0);
-       g_signal_connect_object (id_card_widget, "send-id", (GCallback) _main_window_send_identity_cb_id_card_widget_send_id, self, 0);
+       g_signal_connect_object (id_card_widget, "send-id", (GCallback) __lambda4__id_card_widget_send_id, self, 0);
        g_signal_connect_object (id_card_widget, "expanded", (GCallback) _custom_vbox_receive_expanded_event_id_card_widget_expanded, self->priv->custom_vbox, 0);
        g_signal_connect_object (id_card_widget, "expanded", (GCallback) _main_window_fill_details_id_card_widget_expanded, self, 0);
        _g_object_unref0 (id_card_widget);
@@ -776,25 +811,69 @@ static void main_window_remove_identity_cb (MainWindow* self, IdCardWidget* id_c
 }
 
 
+static gboolean _lambda2_ (Block4Data* _data4_) {
+       MainWindow * self;
+       gboolean result = FALSE;
+       self = _data4_->self;
+       main_window_send_identity_cb (self, _data4_->identity);
+       result = FALSE;
+       return result;
+}
+
+
+static gboolean __lambda2__gsource_func (gpointer self) {
+       gboolean result;
+       result = _lambda2_ (self);
+       return result;
+}
+
+
+static Block4Data* block4_data_ref (Block4Data* _data4_) {
+       g_atomic_int_inc (&_data4_->_ref_count_);
+       return _data4_;
+}
+
+
+static void block4_data_unref (Block4Data* _data4_) {
+       if (g_atomic_int_dec_and_test (&_data4_->_ref_count_)) {
+               _g_object_unref0 (_data4_->self);
+               _g_object_unref0 (_data4_->identity);
+               g_slice_free (Block4Data, _data4_);
+       }
+}
+
+
 void main_window_select_identity (MainWindow* self, IdentityRequest* request) {
+       Block4Data* _data4_;
        g_return_if_fail (self != NULL);
        g_return_if_fail (request != NULL);
+       _data4_ = g_slice_new0 (Block4Data);
+       _data4_->_ref_count_ = 1;
+       _data4_->self = g_object_ref (self);
+       _data4_->identity = NULL;
        g_queue_push_tail (self->priv->request_queue, _g_object_ref0 (request));
-       gtk_widget_show ((GtkWidget*) self);
+       if (request->select_default) {
+               IdCard* _tmp0_;
+               _data4_->identity = (_tmp0_ = _g_object_ref0 (self->priv->default_id_card), _g_object_unref0 (_data4_->identity), _tmp0_);
+       }
+       if (_data4_->identity == NULL) {
+               gtk_widget_show ((GtkWidget*) self);
+       } else {
+               g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, __lambda2__gsource_func, block4_data_ref (_data4_), block4_data_unref);
+               block4_data_unref (_data4_);
+               return;
+       }
+       block4_data_unref (_data4_);
 }
 
 
-void main_window_send_identity_cb (MainWindow* self, IdCardWidget* id_card_widget) {
-       IdCardWidget* _tmp0_;
+void main_window_send_identity_cb (MainWindow* self, IdCard* identity) {
        IdentityRequest* request;
-       IdCard* identity;
        gboolean reset_password;
        g_return_if_fail (self != NULL);
-       g_return_if_fail (id_card_widget != NULL);
+       g_return_if_fail (identity != NULL);
        g_return_if_fail (self->priv->request_queue->length > 0);
-       self->selected_id_card_widget = (_tmp0_ = _g_object_ref0 (id_card_widget), _g_object_unref0 (self->selected_id_card_widget), _tmp0_);
        request = (IdentityRequest*) g_queue_pop_head (self->priv->request_queue);
-       identity = _g_object_ref0 (id_card_widget_get_id_card (id_card_widget));
        reset_password = FALSE;
        if (id_card_get_password (identity) == NULL) {
                AddPasswordDialog* dialog;
@@ -810,8 +889,7 @@ void main_window_send_identity_cb (MainWindow* self, IdCardWidget* id_card_widge
                        }
                        default:
                        {
-                               IdCard* _tmp1_;
-                               identity = (_tmp1_ = NULL, _g_object_unref0 (identity), _tmp1_);
+                               identity = NULL;
                                break;
                        }
                }
@@ -821,11 +899,14 @@ void main_window_send_identity_cb (MainWindow* self, IdCardWidget* id_card_widge
        if (g_queue_is_empty (self->priv->request_queue)) {
                gtk_widget_hide ((GtkWidget*) self);
        }
+       if (identity != NULL) {
+               IdCard* _tmp0_;
+               self->priv->default_id_card = (_tmp0_ = _g_object_ref0 (identity), _g_object_unref0 (self->priv->default_id_card), _tmp0_);
+       }
        identity_request_return_identity (request, identity);
        if (reset_password) {
                id_card_set_password (identity, NULL);
        }
-       _g_object_unref0 (identity);
        _g_object_unref0 (request);
 }
 
@@ -1187,12 +1268,12 @@ static void main_window_build_ui (MainWindow* self) {
        services_vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6));
        gtk_box_pack_start ((GtkBox*) services_vbox, (GtkWidget*) services_vbox_title, FALSE, TRUE, (guint) 0);
        gtk_box_pack_start ((GtkBox*) services_vbox, (GtkWidget*) services_vbox_alignment, FALSE, TRUE, (guint) 0);
-       self->priv->vbox_rigth = (_tmp7_ = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 18)), _g_object_unref0 (self->priv->vbox_rigth), _tmp7_);
-       gtk_box_pack_start ((GtkBox*) self->priv->vbox_rigth, (GtkWidget*) login_vbox, FALSE, TRUE, (guint) 0);
-       gtk_box_pack_start ((GtkBox*) self->priv->vbox_rigth, (GtkWidget*) services_vbox, FALSE, TRUE, (guint) 0);
+       self->priv->vbox_right = (_tmp7_ = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 18)), _g_object_unref0 (self->priv->vbox_right), _tmp7_);
+       gtk_box_pack_start ((GtkBox*) self->priv->vbox_right, (GtkWidget*) login_vbox, FALSE, TRUE, (guint) 0);
+       gtk_box_pack_start ((GtkBox*) self->priv->vbox_right, (GtkWidget*) services_vbox, FALSE, TRUE, (guint) 0);
        hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 12));
        gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) vbox_left, FALSE, FALSE, (guint) 0);
-       gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) self->priv->vbox_rigth, FALSE, FALSE, (guint) 0);
+       gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) self->priv->vbox_right, FALSE, FALSE, (guint) 0);
        main_vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0));
        gtk_container_set_border_width ((GtkContainer*) main_vbox, (guint) 12);
        menubar = _g_object_ref0 (gtk_ui_manager_get_widget (self->priv->ui_manager, "/MenuBar"));
@@ -1200,7 +1281,7 @@ static void main_window_build_ui (MainWindow* self) {
        gtk_box_pack_start ((GtkBox*) main_vbox, (GtkWidget*) hbox, TRUE, TRUE, (guint) 0);
        gtk_container_add ((GtkContainer*) self, (GtkWidget*) main_vbox);
        gtk_widget_show_all ((GtkWidget*) main_vbox);
-       gtk_widget_hide ((GtkWidget*) self->priv->vbox_rigth);
+       gtk_widget_hide ((GtkWidget*) self->priv->vbox_right);
        _g_object_unref0 (menubar);
        _g_object_unref0 (main_vbox);
        _g_object_unref0 (hbox);
@@ -1366,7 +1447,7 @@ static void main_window_finalize (GObject* obj) {
        self = MAIN_WINDOW (obj);
        _g_object_unref0 (self->priv->ui_manager);
        _g_object_unref0 (self->priv->search_entry);
-       _g_object_unref0 (self->priv->vbox_rigth);
+       _g_object_unref0 (self->priv->vbox_right);
        _g_object_unref0 (self->priv->custom_vbox);
        _g_object_unref0 (self->priv->services_internal_vbox);
        _g_object_unref0 (self->priv->username_entry);
@@ -1375,7 +1456,7 @@ static void main_window_finalize (GObject* obj) {
        _g_object_unref0 (self->priv->filter);
        _g_object_unref0 (self->priv->identities_manager);
        _g_object_unref0 (self->priv->ipc_server);
-       _g_object_unref0 (self->selected_id_card_widget);
+       _g_object_unref0 (self->priv->default_id_card);
        _g_queue_free0 (self->priv->request_queue);
        G_OBJECT_CLASS (main_window_parent_class)->finalize (obj);
 }