Codebase list realmd / 93eecbe
Imported Upstream version 0.2 Laurent Bigonville 11 years ago
35 changed file(s) with 1210 addition(s) and 219 deletion(s). Raw diff Collapse all Expand all
00 # Generate automatically. Do not edit.
1
2 commit 3e3bebbf4d0294f71a7f7531c4701c85476b5854
3 Author: Stef Walter <stefw@gnome.org>
4 Date: 2012-06-15
5
6 Release version 0.2
7
8 NEWS | 7 +++++++
9 configure.ac | 2 +-
10 2 files changed, 8 insertions(+), 1 deletion(-)
11
12 commit 1b1284a911b8439d0c73b03eaca98ee2510c4681
13 Author: Stef Walter <stefw@gnome.org>
14 Date: 2012-06-15
15
16 Remove unused ClientSoftware property, accidentally added
17
18 And whitespace cleanup
19
20 dbus/org.freedesktop.realmd.xml | 7 +------
21 1 file changed, 1 insertion(+), 6 deletions(-)
22
23 commit 9c17dd2d2fa8c9c30ebc6114d4a35f4c86a1927c
24 Author: Stef Walter <stefw@gnome.org>
25 Date: 2012-06-15
26
27 Add Name and Version properties to the dbus interface
28
29 Mostly for informational purposes.
30
31 dbus/org.freedesktop.realmd.xml | 10 ++++++++++
32 service/realm-all-provider.c | 3 +++
33 service/realm-provider.c | 3 +++
34 service/realm-samba-provider.c | 3 +++
35 4 files changed, 19 insertions(+)
36
37 commit 6ce7427246dcc75b229cc03493a305583d390c62
38 Author: Stef Walter <stefw@gnome.org>
39 Date: 2012-06-15
40
41 Use SuggestedAdministrator as a default user in realm-enroll
42
43 tools/realm-enroll.c | 8 +++++---
44 1 file changed, 5 insertions(+), 3 deletions(-)
45
46 commit 4570b14cfb37e934fb8547808428c09fc4a7a721
47 Author: Stef Walter <stefw@gnome.org>
48 Date: 2012-06-14
49
50 Clearly print out what DNS records we look at for AD
51
52 service/realm-ad-discover.c | 10 +++++-----
53 1 file changed, 5 insertions(+), 5 deletions(-)
54
55 commit 477a2ad94fcc17d8062a29ca96bd7a83b21b16e7
56 Author: Stef Walter <stefw@gnome.org>
57 Date: 2012-06-14
58
59 Temporarily add info to README about AD discovery
60
61 This will go into fuller docs
62
63 README | 9 +++++++++
64 1 file changed, 9 insertions(+)
65
66 commit 069ccd4a818a681346779bd4382ed9285010aa92
67 Author: Stef Walter <stefw@gnome.org>
68 Date: 2012-06-14
69
70 Add realm-discover tool to identify a domain
71
72 .gitignore | 1 +
73 tools/Makefile.am | 5 +-
74 tools/realm-discover.c | 252 ++++++++++++++++++++++++++++++++++++++++++++++++
75 3 files changed, 256 insertions(+), 2 deletions(-)
76
77 commit 6898e049f9b6f1ca898bbc3088eb0725642de69f
78 Author: Stef Walter <stefw@gnome.org>
79 Date: 2012-06-14
80
81 Add 'Details' property to Kerberos realm interface
82
83 This is for informational data, generally not to be acted on
84 by clients but can display for diagnostic reasons if desired.
85
86 dbus/org.freedesktop.realmd.xml | 10 ++++++++++
87 service/realm-samba.c | 27 ++++++++++++++++++++++++++-
88 2 files changed, 36 insertions(+), 1 deletion(-)
89
90 commit af92a2df67bc2db863561b3302377728e48b1f75
91 Author: Stef Walter <stefw@gnome.org>
92 Date: 2012-06-14
93
94 Add operation_id to most dbus method calls, fix diagnostics
95
96 A client can pass in a unique operation_id. In the future this
97 allows us to add cancellation.
98
99 In the short-term we use this operation_id to provide useful
100 diagnostics from the 'all' provider.
101
102 dbus/org.freedesktop.realmd.xml | 8 ++++
103 service/realm-ad-discover.c | 1 +
104 service/realm-all-provider.c | 101 +++++++++++++++++++++++++++++++++++----
105 service/realm-diagnostics.c | 54 +++++++++++++++------
106 service/realm-diagnostics.h | 6 +++
107 service/realm-kerberos.c | 30 ++++++++++--
108 service/realm-provider.c | 8 ++--
109 tests/change-permitted.py | 4 +-
110 tests/discover-python.py | 10 ++--
111 tests/enroll-machine.py | 12 ++---
112 tools/realm-enroll.c | 19 +++++---
113 11 files changed, 202 insertions(+), 51 deletions(-)
114
115 commit aa5c73828a62b6d63f0f96aec1d3a7679b583fb8
116 Author: Stef Walter <stefw@gnome.org>
117 Date: 2012-06-14
118
119 Add debug messages when loading providers
120
121 And fix REALM_DEBUG_PROVIDER debug flag
122
123 service/realm-all-provider.c | 7 ++++++-
124 service/realm-debug.c | 1 +
125 2 files changed, 7 insertions(+), 1 deletion(-)
126
127 commit 3c4191ac543f50cf6e90ea9922c2184e88e6d1c3
128 Author: Stef Walter <stefw@gnome.org>
129 Date: 2012-06-14
130
131 Fix provider path regression in previous commit
132
133 service/Makefile.am | 2 +-
134 1 file changed, 1 insertion(+), 1 deletion(-)
135
136 commit 28d14efdddf2811183ef9c2c3478a6f64778064a
137 Author: Stef Walter <stefw@gnome.org>
138 Date: 2012-06-14
139
140 Fix compiler warnings, add fortify source
141
142 We only enable fortify source when optimization is enabled
143 otherwise it becomes a source of warnings itself.
144
145 configure.ac | 15 +++++++++++++++
146 service/realm-ad-discover.c | 3 ++-
147 service/realm-all-provider.c | 3 +++
148 service/realm-debug.c | 8 +++++++-
149 service/realm-kerberos.c | 2 +-
150 service/realm-provider.c | 2 +-
151 6 files changed, 29 insertions(+), 4 deletions(-)
152
153 commit c0ec7e29a195ff02301ca36225fba25a60959251
154 Author: Stef Walter <stefw@gnome.org>
155 Date: 2012-06-14
156
157 Add proper dbus service files, and reorganize install
158
159 Choose a less confusing name for private files (those in
160 /usr/lib/realmd). Add dbus service files which were
161 conspicuously missing.
162
163 .gitignore | 1 +
164 Makefile.decl | 34 +++++++++++++++++++++++++
165 configure.ac | 7 +++--
166 dbus/Makefile.am | 19 +++++++++++---
167 dbus/org.freedesktop.realmd.Samba.provider | 4 +++
168 dbus/org.freedesktop.realmd.Samba.service.in | 4 +++
169 dbus/org.freedesktop.realmd.service.in | 4 +++
170 service/Makefile.am | 19 +++++---------
171 service/org.freedesktop.realmd.Samba.provider | 4 ---
172 service/realm-samba-enroll.c | 2 +-
173 service/realm-settings.c | 4 +--
174 tests/Makefile.am | 2 +-
175 12 files changed, 79 insertions(+), 25 deletions(-)
176
177 commit 166e0cf13304663ab500093455924f0e3b0d3266
178 Author: Stef Walter <stefw@gnome.org>
179 Date: 2012-06-13
180
181 Fix use of uninitialized variable
182
183 service/realm-ini-config.c | 1 -
184 1 file changed, 1 deletion(-)
1185
2186 commit 024b6985e54ce5392c4665aa273b223f0e7f3bbe
3187 Author: Stef Walter <stefw@gnome.org>
2424 $(LCOV) --directory . --zerocounters
2525
2626 endif
27
28 V_SED = $(V_SED_$(V))
29 V_SED_ = $(V_SED_$(AM_DEFAULT_VERBOSITY))
30 V_SED_0 = @echo " SED " $@;
31
32 SED_SUBST = sed \
33 -e 's,[@]datadir[@],$(datadir),g' \
34 -e 's,[@]libexecdir[@],$(libexecdir),g' \
35 -e 's,[@]libdir[@],$(libdir),g' \
36 -e 's,[@]includedir[@],$(includedir),g' \
37 -e 's,[@]datarootdir[@],$(datarootdir),g' \
38 -e 's,[@]sysconfdir[@],$(sysconfdir),g' \
39 -e 's,[@]bindir[@],$(bindir),g' \
40 -e 's,[@]exec_prefix[@],$(exec_prefix),g' \
41 -e 's,[@]prefix[@],$(prefix),g' \
42 -e 's,[@]abs_srcdir[@],$(abs_srcdir),g' \
43 -e 's,[@]srcdir[@],$(srcdir),g' \
44 -e 's,[@]privatedir[@],$(privatedir),g' \
45 -e 's,[@]PACKAGE[@],$(PACKAGE),g' \
46 -e 's,[@]VERSION[@],$(VERSION),g' \
47 $(NULL)
48
49 .desktop.in.in.desktop.in:
50 $(V_SED) $(SED_SUBST) $< > $@
51
52 @INTLTOOL_DESKTOP_RULE@
53
54 .service.in.service:
55 $(V_SED) $(SED_SUBST) $< > $@
56
57 .conf.in.conf:
58 $(V_SED) $(SED_SUBST) $< > $@
59
60 SUFFIXES = .conf .conf.in .desktop.in .desktop.in.in .service .service.in
128128 CYGPATH_W = @CYGPATH_W@
129129 DATADIRNAME = @DATADIRNAME@
130130 DBUS_POLICY_DIR = @DBUS_POLICY_DIR@
131 DBUS_SERVICES_DIR = @DBUS_SERVICES_DIR@
131132 DEFS = @DEFS@
132133 DEPDIR = @DEPDIR@
133134 DISTRO = @DISTRO@
197198 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
198199 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
199200 RANLIB = @RANLIB@
200 SERVICE_DIR = @SERVICE_DIR@
201201 SET_MAKE = @SET_MAKE@
202202 SHELL = @SHELL@
203203 STRIP = @STRIP@
239239 oldincludedir = @oldincludedir@
240240 pdfdir = @pdfdir@
241241 prefix = @prefix@
242 privatedir = @privatedir@
242243 program_transform_name = @program_transform_name@
243244 psdir = @psdir@
244245 sbindir = @sbindir@
251252 top_srcdir = @top_srcdir@
252253 NULL =
253254 TEST_SUPPRESSIONS = $(top_builddir)/build/valgrind-suppressions
255 V_SED = $(V_SED_$(V))
256 V_SED_ = $(V_SED_$(AM_DEFAULT_VERBOSITY))
257 V_SED_0 = @echo " SED " $@;
258 SED_SUBST = sed \
259 -e 's,[@]datadir[@],$(datadir),g' \
260 -e 's,[@]libexecdir[@],$(libexecdir),g' \
261 -e 's,[@]libdir[@],$(libdir),g' \
262 -e 's,[@]includedir[@],$(includedir),g' \
263 -e 's,[@]datarootdir[@],$(datarootdir),g' \
264 -e 's,[@]sysconfdir[@],$(sysconfdir),g' \
265 -e 's,[@]bindir[@],$(bindir),g' \
266 -e 's,[@]exec_prefix[@],$(exec_prefix),g' \
267 -e 's,[@]prefix[@],$(prefix),g' \
268 -e 's,[@]abs_srcdir[@],$(abs_srcdir),g' \
269 -e 's,[@]srcdir[@],$(srcdir),g' \
270 -e 's,[@]privatedir[@],$(privatedir),g' \
271 -e 's,[@]PACKAGE[@],$(PACKAGE),g' \
272 -e 's,[@]VERSION[@],$(VERSION),g' \
273 $(NULL)
274
275 SUFFIXES = .conf .conf.in .desktop.in .desktop.in.in .service .service.in
254276 ACLOCAL_AMFLAGS = -I build/m4 ${ACLOCAL_FLAGS}
255277 SUBDIRS = build dbus service tools tests po
256278 DISTCHECK_CONFIGURE_FLAGS = \
263285 $(MAKE) $(AM_MAKEFLAGS) all-recursive
264286
265287 .SUFFIXES:
288 .SUFFIXES: .conf .conf.in .desktop.in .desktop.in.in .service .service.in
266289 am--refresh: Makefile
267290 @:
268291 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.decl $(am__configure_deps)
787810 @WITH_COVERAGE_TRUE@clear-coverage:
788811 @WITH_COVERAGE_TRUE@ $(LCOV) --directory . --zerocounters
789812
813 .desktop.in.in.desktop.in:
814 $(V_SED) $(SED_SUBST) $< > $@
815
816 @INTLTOOL_DESKTOP_RULE@
817
818 .service.in.service:
819 $(V_SED) $(SED_SUBST) $< > $@
820
821 .conf.in.conf:
822 $(V_SED) $(SED_SUBST) $< > $@
823
790824 dist-hook:
791825 @if test -d "$(srcdir)/.git"; \
792826 then \
0 0.2
1 * Add possibility for cancellation to the DBus interface
2 * Add provider Name and Version properties
3 * Clearer diagnostics on discovery
4 * Add realm-discover tool to identify a domain
5 * Add proper DBus service files
6
07 0.1
18 * Initial release
00 DBus service for configuring kerberos and other online identities.
1
2 How Active Directory domains are discovered
3 ============================================
4
5 AD servers are located using the standard DNS kerberos SRV records
6 and the Microsoft standard subzone for the domain. For example:
7
8 * A SRV record: _kerberos._udp.example.com
9 * An MSDCS subzone: _msdcs.example.com
6969 CYGPATH_W = @CYGPATH_W@
7070 DATADIRNAME = @DATADIRNAME@
7171 DBUS_POLICY_DIR = @DBUS_POLICY_DIR@
72 DBUS_SERVICES_DIR = @DBUS_SERVICES_DIR@
7273 DEFS = @DEFS@
7374 DEPDIR = @DEPDIR@
7475 DISTRO = @DISTRO@
138139 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
139140 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
140141 RANLIB = @RANLIB@
141 SERVICE_DIR = @SERVICE_DIR@
142142 SET_MAKE = @SET_MAKE@
143143 SHELL = @SHELL@
144144 STRIP = @STRIP@
180180 oldincludedir = @oldincludedir@
181181 pdfdir = @pdfdir@
182182 prefix = @prefix@
183 privatedir = @privatedir@
183184 program_transform_name = @program_transform_name@
184185 psdir = @psdir@
185186 sbindir = @sbindir@
192193 top_srcdir = @top_srcdir@
193194 NULL =
194195 TEST_SUPPRESSIONS = $(top_builddir)/build/valgrind-suppressions
196 V_SED = $(V_SED_$(V))
197 V_SED_ = $(V_SED_$(AM_DEFAULT_VERBOSITY))
198 V_SED_0 = @echo " SED " $@;
199 SED_SUBST = sed \
200 -e 's,[@]datadir[@],$(datadir),g' \
201 -e 's,[@]libexecdir[@],$(libexecdir),g' \
202 -e 's,[@]libdir[@],$(libdir),g' \
203 -e 's,[@]includedir[@],$(includedir),g' \
204 -e 's,[@]datarootdir[@],$(datarootdir),g' \
205 -e 's,[@]sysconfdir[@],$(sysconfdir),g' \
206 -e 's,[@]bindir[@],$(bindir),g' \
207 -e 's,[@]exec_prefix[@],$(exec_prefix),g' \
208 -e 's,[@]prefix[@],$(prefix),g' \
209 -e 's,[@]abs_srcdir[@],$(abs_srcdir),g' \
210 -e 's,[@]srcdir[@],$(srcdir),g' \
211 -e 's,[@]privatedir[@],$(privatedir),g' \
212 -e 's,[@]PACKAGE[@],$(PACKAGE),g' \
213 -e 's,[@]VERSION[@],$(VERSION),g' \
214 $(NULL)
215
216 SUFFIXES = .conf .conf.in .desktop.in .desktop.in.in .service .service.in
195217 all: all-am
196218
197219 .SUFFIXES:
220 .SUFFIXES: .conf .conf.in .desktop.in .desktop.in.in .service .service.in
198221 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.decl $(am__configure_deps)
199222 @for dep in $?; do \
200223 case '$(am__configure_deps)' in \
397420 @WITH_COVERAGE_TRUE@clear-coverage:
398421 @WITH_COVERAGE_TRUE@ $(LCOV) --directory . --zerocounters
399422
423 .desktop.in.in.desktop.in:
424 $(V_SED) $(SED_SUBST) $< > $@
425
426 @INTLTOOL_DESKTOP_RULE@
427
428 .service.in.service:
429 $(V_SED) $(SED_SUBST) $< > $@
430
431 .conf.in.conf:
432 $(V_SED) $(SED_SUBST) $< > $@
433
400434 # Tell versions [3.59,3.63) of GNU make to not export all variables.
401435 # Otherwise a system limit (for SysV at least) may be exceeded.
402436 .NOEXPORT:
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.68 for realmd 0.1.
2 # Generated by GNU Autoconf 2.68 for realmd 0.2.
33 #
44 # Report bugs to <http://bugs.freedesktop.org/enter_bug.cgi?product=realmd>.
55 #
560560 # Identity of this package.
561561 PACKAGE_NAME='realmd'
562562 PACKAGE_TARNAME='realmd'
563 PACKAGE_VERSION='0.1'
564 PACKAGE_STRING='realmd 0.1'
563 PACKAGE_VERSION='0.2'
564 PACKAGE_STRING='realmd 0.2'
565565 PACKAGE_BUGREPORT='http://bugs.freedesktop.org/enter_bug.cgi?product=realmd'
566566 PACKAGE_URL=''
567567
606606 am__EXEEXT_TRUE
607607 LTLIBOBJS
608608 LIBOBJS
609 SERVICE_DIR
609 privatedir
610610 WITH_COVERAGE_FALSE
611611 WITH_COVERAGE_TRUE
612612 GENHTML
615615 TEST_MODE
616616 POLKIT_ACTION_DIR
617617 DBUS_POLICY_DIR
618 DBUS_SERVICES_DIR
618619 KRB5_LIBS
619620 KRB5_CFLAGS
620621 KRB5_CONFIG
13401341 # Omit some internal or obsolete options to make the list less imposing.
13411342 # This message is too long to be a string in the A/UX 3.1 sh.
13421343 cat <<_ACEOF
1343 \`configure' configures realmd 0.1 to adapt to many kinds of systems.
1344 \`configure' configures realmd 0.2 to adapt to many kinds of systems.
13441345
13451346 Usage: $0 [OPTION]... [VAR=VALUE]...
13461347
14061407
14071408 if test -n "$ac_init_help"; then
14081409 case $ac_init_help in
1409 short | recursive ) echo "Configuration of realmd 0.1:";;
1410 short | recursive ) echo "Configuration of realmd 0.2:";;
14101411 esac
14111412 cat <<\_ACEOF
14121413
15261527 test -n "$ac_init_help" && exit $ac_status
15271528 if $ac_init_version; then
15281529 cat <<\_ACEOF
1529 realmd configure 0.1
1530 realmd configure 0.2
15301531 generated by GNU Autoconf 2.68
15311532
15321533 Copyright (C) 2010 Free Software Foundation, Inc.
18951896 This file contains any messages produced by compilers while
18961897 running configure, to aid debugging if configure makes a mistake.
18971898
1898 It was created by realmd $as_me 0.1, which was
1899 It was created by realmd $as_me 0.2, which was
18991900 generated by GNU Autoconf 2.68. Invocation command line was
19001901
19011902 $ $0 $@
27142715
27152716 # Define the identity of the package.
27162717 PACKAGE='realmd'
2717 VERSION='0.1'
2718 VERSION='0.2'
27182719
27192720
27202721 cat >>confdefs.h <<_ACEOF
74227423 # -------------------------------------------------------------------
74237424 # Directories
74247425
7426 DBUS_SERVICES_DIR="${datadir}/dbus-1/system-services"
7427
7428
74257429 DBUS_POLICY_DIR="${sysconfdir}/dbus-1/system.d"
74267430
74277431
74667470 CFLAGS="$SAVE_CFLAGS"
74677471 fi
74687472 done
7473
7474 # Only add this when optimizing is enabled (default)
7475 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether optimization is enabled" >&5
7476 $as_echo_n "checking whether optimization is enabled... " >&6; }
7477 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7478 /* end confdefs.h. */
7479 #if __OPTIMIZE__ == 0
7480 #error No optimization
7481 #endif
7482
7483 int
7484 main ()
7485 {
7486
7487 ;
7488 return 0;
7489 }
7490 _ACEOF
7491 if ac_fn_c_try_compile "$LINENO"; then :
7492 has_optimization=yes
7493 else
7494 has_optimization=no
7495 fi
7496 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
7497 if test $has_optimization = yes; then
7498 CFLAGS="$CFLAGS -Wp,-D_FORTIFY_SOURCE=2"
7499 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, fortifying source" >&5
7500 $as_echo "yes, fortifying source" >&6; }
7501 else
7502 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, not fortifying source" >&5
7503 $as_echo "no, not fortifying source" >&6; }
7504 fi
74697505 fi
74707506
74717507 # Check whether --enable-strict was given.
77017737 # ------------------------------------------------------------------------------
77027738 # Results
77037739
7704 SERVICE_DIR=$libdir/realmd
7740 privatedir=$libdir/realmd
77057741
77067742
77077743 ac_config_files="$ac_config_files Makefile build/Makefile dbus/Makefile po/Makefile.in po/Makefile service/Makefile tests/Makefile tools/Makefile"
82568292 # report actual input values of CONFIG_FILES etc. instead of their
82578293 # values after options handling.
82588294 ac_log="
8259 This file was extended by realmd $as_me 0.1, which was
8295 This file was extended by realmd $as_me 0.2, which was
82608296 generated by GNU Autoconf 2.68. Invocation command line was
82618297
82628298 CONFIG_FILES = $CONFIG_FILES
83228358 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
83238359 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
83248360 ac_cs_version="\\
8325 realmd config.status 0.1
8361 realmd config.status 0.2
83268362 configured by $0, generated by GNU Autoconf 2.68,
83278363 with options \\"\$ac_cs_config\\"
83288364
00 AC_PREREQ(2.63)
11
2 AC_INIT([realmd], [0.1],
2 AC_INIT([realmd], [0.2],
33 [http://bugs.freedesktop.org/enter_bug.cgi?product=realmd],
44 [realmd])
55
121121
122122 # -------------------------------------------------------------------
123123 # Directories
124
125 DBUS_SERVICES_DIR="${datadir}/dbus-1/system-services"
126 AC_SUBST(DBUS_SERVICES_DIR)
124127
125128 DBUS_POLICY_DIR="${sysconfdir}/dbus-1/system.d"
126129 AC_SUBST(DBUS_POLICY_DIR)
150153 CFLAGS="$SAVE_CFLAGS"
151154 fi
152155 done
156
157 # Only add this when optimizing is enabled (default)
158 AC_MSG_CHECKING([whether optimization is enabled])
159 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#if __OPTIMIZE__ == 0
160 #error No optimization
161 #endif
162 ]], [[]])],
163 [has_optimization=yes],
164 [has_optimization=no])
165 if test $has_optimization = yes; then
166 CFLAGS="$CFLAGS -Wp,-D_FORTIFY_SOURCE=2"
167 AC_MSG_RESULT([yes, fortifying source])
168 else
169 AC_MSG_RESULT([no, not fortifying source])
170 fi
153171 fi
154172
155173 AC_ARG_ENABLE(strict, [
234252 # ------------------------------------------------------------------------------
235253 # Results
236254
237 SERVICE_DIR=$libdir/realmd
238 AC_SUBST(SERVICE_DIR)
255 privatedir=$libdir/realmd
256 AC_SUBST(privatedir)
239257
240258 AC_CONFIG_FILES([
241259 Makefile
00 include $(top_srcdir)/Makefile.decl
1
2 noinst_LIBRARIES = \
3 librealm-dbus.a
41
52 dbusservicedir = $(DBUS_POLICY_DIR)
63 dbusservice_DATA = \
74 org.freedesktop.realmd.conf
5
6 providerdir = $(privatedir)/provider.d
7 provider_DATA = \
8 org.freedesktop.realmd.Samba.provider
9
10 servicedir = $(DBUS_SERVICES_DIR)
11 service_in_files = \
12 org.freedesktop.realmd.service.in \
13 org.freedesktop.realmd.Samba.service.in
14 service_DATA = $(service_in_files:.service.in=.service)
15
16 noinst_LIBRARIES = \
17 librealm-dbus.a
818
919 BUILT_SOURCES = \
1020 realm-dbus-generated.c realm-dbus-generated.h
3444 EXTRA_DIST = \
3545 $(DBUS_XML_DEFINITIONS) \
3646 $(dbusservice_DATA) \
47 $(provider_DATA) \
48 $(service_in_files) \
3749 $(NULL)
3850
3951 CLEANFILES = \
4052 $(BUILT_SOURCES) \
53 $(service_DATA) \
4154 *.gcno \
4255 *.gcda \
4356 $(NULL)
110110 || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
111111 $(am__cd) "$$dir" && rm -f $$files; }; \
112112 }
113 am__installdirs = "$(DESTDIR)$(dbusservicedir)"
114 DATA = $(dbusservice_DATA)
113 am__installdirs = "$(DESTDIR)$(dbusservicedir)" \
114 "$(DESTDIR)$(providerdir)" "$(DESTDIR)$(servicedir)"
115 DATA = $(dbusservice_DATA) $(provider_DATA) $(service_DATA)
115116 ETAGS = etags
116117 CTAGS = ctags
117118 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
133134 CYGPATH_W = @CYGPATH_W@
134135 DATADIRNAME = @DATADIRNAME@
135136 DBUS_POLICY_DIR = @DBUS_POLICY_DIR@
137 DBUS_SERVICES_DIR = @DBUS_SERVICES_DIR@
136138 DEFS = @DEFS@
137139 DEPDIR = @DEPDIR@
138140 DISTRO = @DISTRO@
202204 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
203205 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
204206 RANLIB = @RANLIB@
205 SERVICE_DIR = @SERVICE_DIR@
206207 SET_MAKE = @SET_MAKE@
207208 SHELL = @SHELL@
208209 STRIP = @STRIP@
244245 oldincludedir = @oldincludedir@
245246 pdfdir = @pdfdir@
246247 prefix = @prefix@
248 privatedir = @privatedir@
247249 program_transform_name = @program_transform_name@
248250 psdir = @psdir@
249251 sbindir = @sbindir@
256258 top_srcdir = @top_srcdir@
257259 NULL =
258260 TEST_SUPPRESSIONS = $(top_builddir)/build/valgrind-suppressions
259 noinst_LIBRARIES = \
260 librealm-dbus.a
261
261 V_SED = $(V_SED_$(V))
262 V_SED_ = $(V_SED_$(AM_DEFAULT_VERBOSITY))
263 V_SED_0 = @echo " SED " $@;
264 SED_SUBST = sed \
265 -e 's,[@]datadir[@],$(datadir),g' \
266 -e 's,[@]libexecdir[@],$(libexecdir),g' \
267 -e 's,[@]libdir[@],$(libdir),g' \
268 -e 's,[@]includedir[@],$(includedir),g' \
269 -e 's,[@]datarootdir[@],$(datarootdir),g' \
270 -e 's,[@]sysconfdir[@],$(sysconfdir),g' \
271 -e 's,[@]bindir[@],$(bindir),g' \
272 -e 's,[@]exec_prefix[@],$(exec_prefix),g' \
273 -e 's,[@]prefix[@],$(prefix),g' \
274 -e 's,[@]abs_srcdir[@],$(abs_srcdir),g' \
275 -e 's,[@]srcdir[@],$(srcdir),g' \
276 -e 's,[@]privatedir[@],$(privatedir),g' \
277 -e 's,[@]PACKAGE[@],$(PACKAGE),g' \
278 -e 's,[@]VERSION[@],$(VERSION),g' \
279 $(NULL)
280
281 SUFFIXES = .conf .conf.in .desktop.in .desktop.in.in .service .service.in
262282 dbusservicedir = $(DBUS_POLICY_DIR)
263283 dbusservice_DATA = \
264284 org.freedesktop.realmd.conf
285
286 providerdir = $(privatedir)/provider.d
287 provider_DATA = \
288 org.freedesktop.realmd.Samba.provider
289
290 servicedir = $(DBUS_SERVICES_DIR)
291 service_in_files = \
292 org.freedesktop.realmd.service.in \
293 org.freedesktop.realmd.Samba.service.in
294
295 service_DATA = $(service_in_files:.service.in=.service)
296 noinst_LIBRARIES = \
297 librealm-dbus.a
265298
266299 BUILT_SOURCES = \
267300 realm-dbus-generated.c realm-dbus-generated.h
286319 EXTRA_DIST = \
287320 $(DBUS_XML_DEFINITIONS) \
288321 $(dbusservice_DATA) \
322 $(provider_DATA) \
323 $(service_in_files) \
289324 $(NULL)
290325
291326 CLEANFILES = \
292327 $(BUILT_SOURCES) \
328 $(service_DATA) \
293329 *.gcno \
294330 *.gcda \
295331 $(NULL)
301337 $(MAKE) $(AM_MAKEFLAGS) all-am
302338
303339 .SUFFIXES:
304 .SUFFIXES: .c .o .obj
340 .SUFFIXES: .conf .conf.in .desktop.in .desktop.in.in .service .service.in .c .o .obj
305341 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.decl $(am__configure_deps)
306342 @for dep in $?; do \
307343 case '$(am__configure_deps)' in \
394430 @list='$(dbusservice_DATA)'; test -n "$(dbusservicedir)" || list=; \
395431 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
396432 dir='$(DESTDIR)$(dbusservicedir)'; $(am__uninstall_files_from_dir)
433 install-providerDATA: $(provider_DATA)
434 @$(NORMAL_INSTALL)
435 test -z "$(providerdir)" || $(MKDIR_P) "$(DESTDIR)$(providerdir)"
436 @list='$(provider_DATA)'; test -n "$(providerdir)" || list=; \
437 for p in $$list; do \
438 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
439 echo "$$d$$p"; \
440 done | $(am__base_list) | \
441 while read files; do \
442 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(providerdir)'"; \
443 $(INSTALL_DATA) $$files "$(DESTDIR)$(providerdir)" || exit $$?; \
444 done
445
446 uninstall-providerDATA:
447 @$(NORMAL_UNINSTALL)
448 @list='$(provider_DATA)'; test -n "$(providerdir)" || list=; \
449 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
450 dir='$(DESTDIR)$(providerdir)'; $(am__uninstall_files_from_dir)
451 install-serviceDATA: $(service_DATA)
452 @$(NORMAL_INSTALL)
453 test -z "$(servicedir)" || $(MKDIR_P) "$(DESTDIR)$(servicedir)"
454 @list='$(service_DATA)'; test -n "$(servicedir)" || list=; \
455 for p in $$list; do \
456 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
457 echo "$$d$$p"; \
458 done | $(am__base_list) | \
459 while read files; do \
460 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(servicedir)'"; \
461 $(INSTALL_DATA) $$files "$(DESTDIR)$(servicedir)" || exit $$?; \
462 done
463
464 uninstall-serviceDATA:
465 @$(NORMAL_UNINSTALL)
466 @list='$(service_DATA)'; test -n "$(servicedir)" || list=; \
467 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
468 dir='$(DESTDIR)$(servicedir)'; $(am__uninstall_files_from_dir)
397469
398470 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
399471 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
482554 $(MAKE) $(AM_MAKEFLAGS) check-am
483555 all-am: Makefile $(LIBRARIES) $(DATA)
484556 installdirs:
485 for dir in "$(DESTDIR)$(dbusservicedir)"; do \
557 for dir in "$(DESTDIR)$(dbusservicedir)" "$(DESTDIR)$(providerdir)" "$(DESTDIR)$(servicedir)"; do \
486558 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
487559 done
488560 install: $(BUILT_SOURCES)
541613
542614 info-am:
543615
544 install-data-am: install-dbusserviceDATA
616 install-data-am: install-dbusserviceDATA install-providerDATA \
617 install-serviceDATA
545618
546619 install-dvi: install-dvi-am
547620
586659
587660 ps-am:
588661
589 uninstall-am: uninstall-dbusserviceDATA
662 uninstall-am: uninstall-dbusserviceDATA uninstall-providerDATA \
663 uninstall-serviceDATA
590664
591665 .MAKE: all check install install-am install-strip
592666
597671 install-data-am install-dbusserviceDATA install-dvi \
598672 install-dvi-am install-exec install-exec-am install-html \
599673 install-html-am install-info install-info-am install-man \
600 install-pdf install-pdf-am install-ps install-ps-am \
601 install-strip installcheck installcheck-am installdirs \
602 maintainer-clean maintainer-clean-generic mostlyclean \
603 mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
604 tags uninstall uninstall-am uninstall-dbusserviceDATA
674 install-pdf install-pdf-am install-providerDATA install-ps \
675 install-ps-am install-serviceDATA install-strip installcheck \
676 installcheck-am installdirs maintainer-clean \
677 maintainer-clean-generic mostlyclean mostlyclean-compile \
678 mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
679 uninstall-am uninstall-dbusserviceDATA uninstall-providerDATA \
680 uninstall-serviceDATA
605681
606682
607683 perform-memcheck: $(TEST_PROGS) $(TEST_SUPPRESSIONS)
625701 @WITH_COVERAGE_TRUE@clear-coverage:
626702 @WITH_COVERAGE_TRUE@ $(LCOV) --directory . --zerocounters
627703
704 .desktop.in.in.desktop.in:
705 $(V_SED) $(SED_SUBST) $< > $@
706
707 @INTLTOOL_DESKTOP_RULE@
708
709 .service.in.service:
710 $(V_SED) $(SED_SUBST) $< > $@
711
712 .conf.in.conf:
713 $(V_SED) $(SED_SUBST) $< > $@
714
628715 realm-dbus-generated.c: org.freedesktop.realmd.xml
629716 $(AM_V_GEN) gdbus-codegen --interface-prefix org.freedesktop.realmd. \
630717 --generate-c-code realm-dbus-generated --c-namespace RealmDbus $<
0 [provider]
1 name = org.freedesktop.realmd.Samba
2 type = org.freedesktop.realmd.Kerberos
3 path = /org/freedesktop/realmd/Samba
0 [D-BUS Service]
1 Name=org.freedesktop.realmd.Samba
2 Exec=@privatedir@/realmd
3 User=root
0 [D-BUS Service]
1 Name=org.freedesktop.realmd
2 Exec=@privatedir@/realmd
3 User=root
1111 -->
1212 <interface name="org.freedesktop.realmd.Provider">
1313
14 <!--
14 <!--
15 * The name of the provider
16 -->
17 <property name="Name" type="s" access="read"/>
18
19 <!--
20 * A version number for the provider
21 -->
22 <property name="Version" type="s" access="read"/>
23
24 <!--
1525 * A list of known, enrolled or discovered realms.
1626 * Each realm is a DBus object and is represeted by a:
1727 * s: DBus bus name of the realm
2737 <method name="Discover">
2838 <!-- The input string -->
2939 <arg name="string" type="s" direction="in"/>
40
41 <arg name="operation_id" type="s" direction="in"/>
3042
3143 <!-- Returned match relevance -->
3244 <arg name="relevance" type="i" direction="out"/>
4658 <interface name="org.freedesktop.realmd.Diagnostics">
4759 <signal name="Diagnostics">
4860 <arg name="data" type="s"/>
61 <arg name="operation_id" type="s"/>
4962 </signal>
5063 </interface>
5164
6578 <property name="Domain" type="s" access="read"/>
6679
6780 <!--
81 * The server software, for information only. eg: active-directory
82 -->
83 <property name="Details" type="a{ss}" access="read"/>
84
85 <!--
6886 * The suggested Administrator login name for this realm
6987 -->
7088 <property name="SuggestedAdministrator" type="s" access="read"/>
82100 <arg name="principal" type="s" direction="in"/>
83101 <arg name="password" type="s" direction="in"/>
84102 <arg name="options" type="a{sv}" direction="in"/>
103 <arg name="operation_id" type="s" direction="in"/>
85104 </method>
86105
87106 <!--
94113 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="yup"/>
95114 </arg>
96115 <arg name="options" type="a{sv}" direction="in"/>
116 <arg name="operation_id" type="s" direction="in"/>
97117 </method>
98118
99119 <!--
104124 <arg name="principal" type="s" direction="in"/>
105125 <arg name="password" type="s" direction="in"/>
106126 <arg name="options" type="a{sv}" direction="in"/>
127 <arg name="operation_id" type="s" direction="in"/>
107128 </method>
108129
109130 <!--
116137 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="yup"/>
117138 </arg>
118139 <arg name="options" type="a{sv}" direction="in"/>
140 <arg name="operation_id" type="s" direction="in"/>
119141 </method>
120142
121143 <!--
138160 <method name="ChangePermittedLogins">
139161 <arg name="add" type="as" direction="in"/>
140162 <arg name="remove" type="as" direction="in"/>
163 <arg name="operation_id" type="s" direction="in"/>
141164 </method>
142165
143166 </interface>
00 include $(top_srcdir)/Makefile.decl
11
2 service_PROGRAMS = \
2 private_PROGRAMS = \
33 realmd
44
55 REALMD_CONFIGS = \
66 realmd-defaults.conf \
77 realmd-redhat.conf
88
9 servicedir = $(SERVICE_DIR)
10 service_DATA = \
9 private_DATA = \
1110 net-ads-smb.conf \
1211 realmd-defaults.conf
13
14 providerdir = $(SERVICE_DIR)/provider.d
15 provider_DATA = \
16 org.freedesktop.realmd.Samba.provider
1712
1813 polkit_policydir = $(POLKIT_ACTION_DIR)
1914 polkit_policy_in_files = org.freedesktop.realmd.policy.in
4843 realmd_CFLAGS = \
4944 -I$(top_srcdir)/dbus \
5045 -I$(top_builddir)/dbus \
51 -DSERVICE_DIR="\"$(servicedir)\"" \
46 -DPRIVATE_DIR="\"$(privatedir)\"" \
5247 -DSYSCONF_DIR="\"$(sysconfdir)\"" \
53 -DPROVIDER_DIR="\"$(providerdir)\"" \
48 -DPROVIDER_DIR="\"$(privatedir)/provider.d\"" \
5449 $(PACKAGEKIT_CFLAGS) \
5550 $(POLKIT_CFLAGS) \
5651 $(GLIB_CFLAGS) \
6762
6863 # Install and uninstall the config for this distro
6964 install-data-local:
70 $(INSTALL_PROGRAM) -d $(servicedir)
71 $(INSTALL_DATA) $(srcdir)/realmd-$(DISTRO).conf $(servicedir)/realmd-distro.conf
65 $(INSTALL_PROGRAM) -d $(privatedir)
66 $(INSTALL_DATA) $(srcdir)/realmd-$(DISTRO).conf $(privatedir)/realmd-distro.conf
7267 uninstall-local:
73 rm -f $(servicedir)/realmd-distro.conf
68 rm -f $(privatedir)/realmd-distro.conf
7469
7570 # ------------------------------------------------------------------
7671
7772 EXTRA_DIST = \
7873 $(polkit_policy_in_files) \
7974 $(REALMD_CONFIGS) \
80 $(service_DATA) \
75 $(private_DATA) \
8176 $(provider_DATA) \
8277 $(NULL)
8378
3434 POST_UNINSTALL = :
3535 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
3636 $(top_srcdir)/Makefile.decl
37 service_PROGRAMS = realmd$(EXEEXT)
37 private_PROGRAMS = realmd$(EXEEXT)
3838 subdir = service
3939 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4040 am__aclocal_m4_deps = $(top_srcdir)/build/m4/intltool.m4 \
4545 CONFIG_HEADER = $(top_builddir)/config.h
4646 CONFIG_CLEAN_FILES =
4747 CONFIG_CLEAN_VPATH_FILES =
48 am__installdirs = "$(DESTDIR)$(servicedir)" \
49 "$(DESTDIR)$(polkit_policydir)" "$(DESTDIR)$(providerdir)" \
50 "$(DESTDIR)$(servicedir)"
51 PROGRAMS = $(service_PROGRAMS)
48 am__installdirs = "$(DESTDIR)$(privatedir)" \
49 "$(DESTDIR)$(polkit_policydir)" "$(DESTDIR)$(privatedir)"
50 PROGRAMS = $(private_PROGRAMS)
5251 am__objects_1 =
5352 am_realmd_OBJECTS = realmd-realm-ad-discover.$(OBJEXT) \
5453 realmd-realm-all-provider.$(OBJEXT) \
128127 || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
129128 $(am__cd) "$$dir" && rm -f $$files; }; \
130129 }
131 DATA = $(polkit_policy_DATA) $(provider_DATA) $(service_DATA)
130 DATA = $(polkit_policy_DATA) $(private_DATA)
132131 ETAGS = etags
133132 CTAGS = ctags
134133 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
150149 CYGPATH_W = @CYGPATH_W@
151150 DATADIRNAME = @DATADIRNAME@
152151 DBUS_POLICY_DIR = @DBUS_POLICY_DIR@
152 DBUS_SERVICES_DIR = @DBUS_SERVICES_DIR@
153153 DEFS = @DEFS@
154154 DEPDIR = @DEPDIR@
155155 DISTRO = @DISTRO@
219219 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
220220 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
221221 RANLIB = @RANLIB@
222 SERVICE_DIR = @SERVICE_DIR@
223222 SET_MAKE = @SET_MAKE@
224223 SHELL = @SHELL@
225224 STRIP = @STRIP@
261260 oldincludedir = @oldincludedir@
262261 pdfdir = @pdfdir@
263262 prefix = @prefix@
263 privatedir = @privatedir@
264264 program_transform_name = @program_transform_name@
265265 psdir = @psdir@
266266 sbindir = @sbindir@
273273 top_srcdir = @top_srcdir@
274274 NULL =
275275 TEST_SUPPRESSIONS = $(top_builddir)/build/valgrind-suppressions
276 V_SED = $(V_SED_$(V))
277 V_SED_ = $(V_SED_$(AM_DEFAULT_VERBOSITY))
278 V_SED_0 = @echo " SED " $@;
279 SED_SUBST = sed \
280 -e 's,[@]datadir[@],$(datadir),g' \
281 -e 's,[@]libexecdir[@],$(libexecdir),g' \
282 -e 's,[@]libdir[@],$(libdir),g' \
283 -e 's,[@]includedir[@],$(includedir),g' \
284 -e 's,[@]datarootdir[@],$(datarootdir),g' \
285 -e 's,[@]sysconfdir[@],$(sysconfdir),g' \
286 -e 's,[@]bindir[@],$(bindir),g' \
287 -e 's,[@]exec_prefix[@],$(exec_prefix),g' \
288 -e 's,[@]prefix[@],$(prefix),g' \
289 -e 's,[@]abs_srcdir[@],$(abs_srcdir),g' \
290 -e 's,[@]srcdir[@],$(srcdir),g' \
291 -e 's,[@]privatedir[@],$(privatedir),g' \
292 -e 's,[@]PACKAGE[@],$(PACKAGE),g' \
293 -e 's,[@]VERSION[@],$(VERSION),g' \
294 $(NULL)
295
296 SUFFIXES = .conf .conf.in .desktop.in .desktop.in.in .service .service.in
276297 REALMD_CONFIGS = \
277298 realmd-defaults.conf \
278299 realmd-redhat.conf
279300
280 servicedir = $(SERVICE_DIR)
281 service_DATA = \
301 private_DATA = \
282302 net-ads-smb.conf \
283303 realmd-defaults.conf
284
285 providerdir = $(SERVICE_DIR)/provider.d
286 provider_DATA = \
287 org.freedesktop.realmd.Samba.provider
288304
289305 polkit_policydir = $(POLKIT_ACTION_DIR)
290306 polkit_policy_in_files = org.freedesktop.realmd.policy.in
317333 realmd_CFLAGS = \
318334 -I$(top_srcdir)/dbus \
319335 -I$(top_builddir)/dbus \
320 -DSERVICE_DIR="\"$(servicedir)\"" \
336 -DPRIVATE_DIR="\"$(privatedir)\"" \
321337 -DSYSCONF_DIR="\"$(sysconfdir)\"" \
322 -DPROVIDER_DIR="\"$(providerdir)\"" \
338 -DPROVIDER_DIR="\"$(privatedir)/provider.d\"" \
323339 $(PACKAGEKIT_CFLAGS) \
324340 $(POLKIT_CFLAGS) \
325341 $(GLIB_CFLAGS) \
339355 EXTRA_DIST = \
340356 $(polkit_policy_in_files) \
341357 $(REALMD_CONFIGS) \
342 $(service_DATA) \
358 $(private_DATA) \
343359 $(provider_DATA) \
344360 $(NULL)
345361
356372 all: all-am
357373
358374 .SUFFIXES:
359 .SUFFIXES: .c .o .obj
375 .SUFFIXES: .conf .conf.in .desktop.in .desktop.in.in .service .service.in .c .o .obj
360376 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.decl $(am__configure_deps)
361377 @for dep in $?; do \
362378 case '$(am__configure_deps)' in \
388404 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
389405 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
390406 $(am__aclocal_m4_deps):
391 install-servicePROGRAMS: $(service_PROGRAMS)
407 install-privatePROGRAMS: $(private_PROGRAMS)
392408 @$(NORMAL_INSTALL)
393 test -z "$(servicedir)" || $(MKDIR_P) "$(DESTDIR)$(servicedir)"
394 @list='$(service_PROGRAMS)'; test -n "$(servicedir)" || list=; \
409 test -z "$(privatedir)" || $(MKDIR_P) "$(DESTDIR)$(privatedir)"
410 @list='$(private_PROGRAMS)'; test -n "$(privatedir)" || list=; \
395411 for p in $$list; do echo "$$p $$p"; done | \
396412 sed 's/$(EXEEXT)$$//' | \
397413 while read p p1; do if test -f $$p; \
408424 while read type dir files; do \
409425 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
410426 test -z "$$files" || { \
411 echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(servicedir)$$dir'"; \
412 $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(servicedir)$$dir" || exit $$?; \
427 echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(privatedir)$$dir'"; \
428 $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(privatedir)$$dir" || exit $$?; \
413429 } \
414430 ; done
415431
416 uninstall-servicePROGRAMS:
432 uninstall-privatePROGRAMS:
417433 @$(NORMAL_UNINSTALL)
418 @list='$(service_PROGRAMS)'; test -n "$(servicedir)" || list=; \
434 @list='$(private_PROGRAMS)'; test -n "$(privatedir)" || list=; \
419435 files=`for p in $$list; do echo "$$p"; done | \
420436 sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
421437 -e 's/$$/$(EXEEXT)/' `; \
422438 test -n "$$list" || exit 0; \
423 echo " ( cd '$(DESTDIR)$(servicedir)' && rm -f" $$files ")"; \
424 cd "$(DESTDIR)$(servicedir)" && rm -f $$files
425
426 clean-servicePROGRAMS:
427 -test -z "$(service_PROGRAMS)" || rm -f $(service_PROGRAMS)
439 echo " ( cd '$(DESTDIR)$(privatedir)' && rm -f" $$files ")"; \
440 cd "$(DESTDIR)$(privatedir)" && rm -f $$files
441
442 clean-privatePROGRAMS:
443 -test -z "$(private_PROGRAMS)" || rm -f $(private_PROGRAMS)
428444 realmd$(EXEEXT): $(realmd_OBJECTS) $(realmd_DEPENDENCIES) $(EXTRA_realmd_DEPENDENCIES)
429445 @rm -f realmd$(EXEEXT)
430446 $(AM_V_CCLD)$(realmd_LINK) $(realmd_OBJECTS) $(realmd_LDADD) $(LIBS)
797813 @list='$(polkit_policy_DATA)'; test -n "$(polkit_policydir)" || list=; \
798814 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
799815 dir='$(DESTDIR)$(polkit_policydir)'; $(am__uninstall_files_from_dir)
800 install-providerDATA: $(provider_DATA)
816 install-privateDATA: $(private_DATA)
801817 @$(NORMAL_INSTALL)
802 test -z "$(providerdir)" || $(MKDIR_P) "$(DESTDIR)$(providerdir)"
803 @list='$(provider_DATA)'; test -n "$(providerdir)" || list=; \
818 test -z "$(privatedir)" || $(MKDIR_P) "$(DESTDIR)$(privatedir)"
819 @list='$(private_DATA)'; test -n "$(privatedir)" || list=; \
804820 for p in $$list; do \
805821 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
806822 echo "$$d$$p"; \
807823 done | $(am__base_list) | \
808824 while read files; do \
809 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(providerdir)'"; \
810 $(INSTALL_DATA) $$files "$(DESTDIR)$(providerdir)" || exit $$?; \
825 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(privatedir)'"; \
826 $(INSTALL_DATA) $$files "$(DESTDIR)$(privatedir)" || exit $$?; \
811827 done
812828
813 uninstall-providerDATA:
829 uninstall-privateDATA:
814830 @$(NORMAL_UNINSTALL)
815 @list='$(provider_DATA)'; test -n "$(providerdir)" || list=; \
831 @list='$(private_DATA)'; test -n "$(privatedir)" || list=; \
816832 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
817 dir='$(DESTDIR)$(providerdir)'; $(am__uninstall_files_from_dir)
818 install-serviceDATA: $(service_DATA)
819 @$(NORMAL_INSTALL)
820 test -z "$(servicedir)" || $(MKDIR_P) "$(DESTDIR)$(servicedir)"
821 @list='$(service_DATA)'; test -n "$(servicedir)" || list=; \
822 for p in $$list; do \
823 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
824 echo "$$d$$p"; \
825 done | $(am__base_list) | \
826 while read files; do \
827 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(servicedir)'"; \
828 $(INSTALL_DATA) $$files "$(DESTDIR)$(servicedir)" || exit $$?; \
829 done
830
831 uninstall-serviceDATA:
832 @$(NORMAL_UNINSTALL)
833 @list='$(service_DATA)'; test -n "$(servicedir)" || list=; \
834 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
835 dir='$(DESTDIR)$(servicedir)'; $(am__uninstall_files_from_dir)
833 dir='$(DESTDIR)$(privatedir)'; $(am__uninstall_files_from_dir)
836834
837835 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
838836 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
920918 check: check-am
921919 all-am: Makefile $(PROGRAMS) $(DATA)
922920 installdirs:
923 for dir in "$(DESTDIR)$(servicedir)" "$(DESTDIR)$(polkit_policydir)" "$(DESTDIR)$(providerdir)" "$(DESTDIR)$(servicedir)"; do \
921 for dir in "$(DESTDIR)$(privatedir)" "$(DESTDIR)$(polkit_policydir)" "$(DESTDIR)$(privatedir)"; do \
924922 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
925923 done
926924 install: install-am
957955 @echo "it deletes files that may require special tools to rebuild."
958956 clean: clean-am
959957
960 clean-am: clean-generic clean-servicePROGRAMS mostlyclean-am
958 clean-am: clean-generic clean-privatePROGRAMS mostlyclean-am
961959
962960 distclean: distclean-am
963961 -rm -rf ./$(DEPDIR)
978976 info-am:
979977
980978 install-data-am: install-data-local install-polkit_policyDATA \
981 install-providerDATA install-serviceDATA \
982 install-servicePROGRAMS
979 install-privateDATA install-privatePROGRAMS
983980
984981 install-dvi: install-dvi-am
985982
10251022 ps-am:
10261023
10271024 uninstall-am: uninstall-local uninstall-polkit_policyDATA \
1028 uninstall-providerDATA uninstall-serviceDATA \
1029 uninstall-servicePROGRAMS
1025 uninstall-privateDATA uninstall-privatePROGRAMS
10301026
10311027 .MAKE: install-am install-strip
10321028
10331029 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
1034 clean-servicePROGRAMS ctags distclean distclean-compile \
1030 clean-privatePROGRAMS ctags distclean distclean-compile \
10351031 distclean-generic distclean-tags distdir dvi dvi-am html \
10361032 html-am info info-am install install-am install-data \
10371033 install-data-am install-data-local install-dvi install-dvi-am \
10381034 install-exec install-exec-am install-html install-html-am \
10391035 install-info install-info-am install-man install-pdf \
1040 install-pdf-am install-polkit_policyDATA install-providerDATA \
1041 install-ps install-ps-am install-serviceDATA \
1042 install-servicePROGRAMS install-strip installcheck \
1043 installcheck-am installdirs maintainer-clean \
1036 install-pdf-am install-polkit_policyDATA install-privateDATA \
1037 install-privatePROGRAMS install-ps install-ps-am install-strip \
1038 installcheck installcheck-am installdirs maintainer-clean \
10441039 maintainer-clean-generic mostlyclean mostlyclean-compile \
10451040 mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
10461041 uninstall-am uninstall-local uninstall-polkit_policyDATA \
1047 uninstall-providerDATA uninstall-serviceDATA \
1048 uninstall-servicePROGRAMS
1042 uninstall-privateDATA uninstall-privatePROGRAMS
10491043
10501044
10511045 perform-memcheck: $(TEST_PROGS) $(TEST_SUPPRESSIONS)
10681062
10691063 @WITH_COVERAGE_TRUE@clear-coverage:
10701064 @WITH_COVERAGE_TRUE@ $(LCOV) --directory . --zerocounters
1065
1066 .desktop.in.in.desktop.in:
1067 $(V_SED) $(SED_SUBST) $< > $@
1068
1069 @INTLTOOL_DESKTOP_RULE@
1070
1071 .service.in.service:
1072 $(V_SED) $(SED_SUBST) $< > $@
1073
1074 .conf.in.conf:
1075 $(V_SED) $(SED_SUBST) $< > $@
10711076 @INTLTOOL_POLICY_RULE@
10721077
10731078 # Install and uninstall the config for this distro
10741079 install-data-local:
1075 $(INSTALL_PROGRAM) -d $(servicedir)
1076 $(INSTALL_DATA) $(srcdir)/realmd-$(DISTRO).conf $(servicedir)/realmd-distro.conf
1080 $(INSTALL_PROGRAM) -d $(privatedir)
1081 $(INSTALL_DATA) $(srcdir)/realmd-$(DISTRO).conf $(privatedir)/realmd-distro.conf
10771082 uninstall-local:
1078 rm -f $(servicedir)/realmd-distro.conf
1083 rm -f $(privatedir)/realmd-distro.conf
10791084
10801085 # Tell versions [3.59,3.63) of GNU make to not export all variables.
10811086 # Otherwise a system limit (for SysV at least) may be exceeded.
+0
-4
service/org.freedesktop.realmd.Samba.provider less more
0 [provider]
1 name = org.freedesktop.realmd.Samba
2 type = org.freedesktop.realmd.Kerberos
3 path = /org/freedesktop/realmd/Samba
159159 g_assert (discover->domain != NULL);
160160
161161 realm_diagnostics_info (discover->invocation,
162 "Searching for kerberos SRV records on %s domain",
162 "Searching for kerberos SRV records for domain: _kerberos._udp.%s",
163163 discover->domain);
164164
165165 resolver = g_resolver_get_default ();
166166 g_resolver_lookup_service_async (resolver, "kerberos", "udp", discover->domain, NULL,
167167 on_resolve_kerberos_srv, g_object_ref (res));
168168
169 realm_diagnostics_info (discover->invocation,
170 "Searching for _msdcs zone on %s domain",
171 discover->domain);
172
173169 /* Active Directory DNS zones have this subzone */
174170 msdcs = g_strdup_printf ("_msdcs.%s", discover->domain);
171
172 realm_diagnostics_info (discover->invocation,
173 "Searching for sub zone on domain: %s",
174 msdcs);
175175
176176 g_resolver_lookup_records_async (resolver, msdcs, G_RESOLVER_RECORD_SOA, NULL,
177177 on_resolve_msdcs_soa, g_object_ref (res));
263263 if (!discover->found_kerberos_srv || !discover->found_msdcs_soa)
264264 return NULL;
265265
266 realm = g_ascii_strup (discover->domain, -1);
267
266268 if (discovery) {
267269 *discovery = realm_discovery_new ();
268270
271273 discover->domain);
272274
273275 /* The realm */
274 realm = g_ascii_strup (discover->domain, -1);
275276 realm_discovery_add_string (*discovery, REALM_DBUS_DISCOVERY_REALM, realm);
276277
277278 /* The servers */
283284 "kerberos-ad");
284285 }
285286
287 realm_diagnostics_info (discover->invocation, "Successfully discovered realm: %s", realm);
286288 return realm;
287289 }
1717 #include "realm-daemon.h"
1818 #define DEBUG_FLAG REALM_DEBUG_PROVIDER
1919 #include "realm-debug.h"
20 #include "realm-diagnostics.h"
2021 #include "realm-errors.h"
2122 #include "realm-dbus-constants.h"
2223 #include "realm-dbus-generated.h"
2526 #include <glib/gstdio.h>
2627
2728 #include <errno.h>
29 #include <string.h>
30
31 typedef struct {
32 GDBusProxy *proxy;
33 guint diagnostics_sig;
34 } ProviderProxy;
2835
2936 struct _RealmAllProvider {
3037 RealmProvider parent;
3138 GList *providers;
39 GHashTable *invocations;
3240 };
3341
3442 typedef struct {
3644 } RealmAllProviderClass;
3745
3846 static guint provider_owner_id = 0;
47 static guint operation_unique_id = 0;
3948
4049 static void realm_all_provider_async_initable_iface (GAsyncInitableIface *iface);
4150
4655 static void
4756 realm_all_provider_init (RealmAllProvider *self)
4857 {
49
58 self->invocations = g_hash_table_new_full (g_str_hash, g_str_equal,
59 g_free, g_object_unref);
60
61 /* The dbus Name property of the provider */
62 g_object_set (self, "name", "All", NULL);
5063 }
5164
5265 static gboolean
6073
6174 g_assert (name != NULL);
6275 g_assert (path != NULL);
76
77 *name = NULL;
78 *path = NULL;
6379
6480 key_file = g_key_file_new ();
6581 g_key_file_load_from_file (key_file, filename, G_KEY_FILE_NONE, &error);
122138 update_realms_property (RealmAllProvider *self)
123139 {
124140 GQueue realms = G_QUEUE_INIT;
141 ProviderProxy *prov;
125142 GVariant *variant;
126143 GList *l;
127144
128145 for (l = self->providers; l != NULL; l = g_list_next (l)) {
129 variant = g_dbus_proxy_get_cached_property (l->data, "Realms");
146 prov = l->data;
147 variant = g_dbus_proxy_get_cached_property (prov->proxy, "Realms");
130148 if (variant)
131149 g_queue_push_tail (&realms, variant);
132150 }
154172
155173 typedef struct {
156174 GDBusMethodInvocation *invocation;
175 gchar *operation_id;
157176 gint outstanding;
158177 GQueue failures;
159178 GQueue results;
165184 discover_closure_free (gpointer data)
166185 {
167186 DiscoverClosure *discover = data;
187 g_free (discover->operation_id);
168188 g_object_unref (discover->invocation);
169189 while (!g_queue_is_empty (&discover->results))
170190 g_variant_unref (g_queue_pop_head (&discover->results));
245265 {
246266 GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
247267 DiscoverClosure *discover = g_simple_async_result_get_op_res_gpointer (res);
268 RealmAllProvider *self = REALM_ALL_PROVIDER (g_async_result_get_source_object (user_data));
248269 GError *error = NULL;
249270 GVariant *retval;
250271
259280
260281 /* All done at this point? */
261282 if (discover->outstanding == 0) {
283 g_hash_table_remove (self->invocations, discover->operation_id);
262284 discover_process_results (res, discover);
263285 g_simple_async_result_complete (res);
264286 }
265287
266288 g_object_unref (res);
289 g_object_unref (self);
267290 }
268291
269292 static void
276299 RealmAllProvider *self = REALM_ALL_PROVIDER (provider);
277300 GSimpleAsyncResult *res;
278301 DiscoverClosure *discover;
302 ProviderProxy *prov;
279303 GList *l;
280304
281305 res = g_simple_async_result_new (G_OBJECT (self), callback, user_data,
282306 realm_all_provider_discover_async);
283307 discover = g_slice_new0 (DiscoverClosure);
308 discover->invocation = g_object_ref (invocation);
309 discover->operation_id = g_strdup_printf ("realm-all-provider-%d", operation_unique_id++);
284310 g_simple_async_result_set_op_res_gpointer (res, discover, discover_closure_free);
285311
286312 for (l = self->providers; l != NULL; l = g_list_next (l)) {
287 g_dbus_proxy_call (l->data, "Discover", g_variant_new ("(s)", string),
313 prov = l->data;
314 g_dbus_proxy_call (prov->proxy, "Discover",
315 g_variant_new ("(ss)", string, discover->operation_id),
288316 G_DBUS_CALL_FLAGS_NONE, G_MAXINT, NULL,
289317 on_proxy_discover, g_object_ref (res));
290318 discover->outstanding++;
291319 }
292320
321 /* If no discovery going on then just complete */
293322 if (discover->outstanding == 0) {
294323 discover_process_results (res, discover);
295324 g_simple_async_result_complete_in_idle (res);
296 }
325
326 /* Here we mark down our operation_id so diagnostics work */
327 } else {
328 g_hash_table_insert (self->invocations,
329 g_strdup (discover->operation_id),
330 g_object_ref (invocation));
331 }
332
333 g_object_unref (res);
297334 }
298335
299336 static gint
320357 realm_all_provider_finalize (GObject *obj)
321358 {
322359 RealmAllProvider *self = REALM_ALL_PROVIDER (obj);
323
324 g_list_free_full (self->providers, g_object_unref);
360 ProviderProxy *prov;
361 GList *l;
362
363 for (l = self->providers; l != NULL; l = g_list_next (l)) {
364 prov = l->data;
365 if (prov->diagnostics_sig) {
366 g_dbus_connection_signal_unsubscribe (g_dbus_proxy_get_connection (prov->proxy),
367 prov->diagnostics_sig);
368 }
369 g_object_unref (prov->proxy);
370 g_slice_free (ProviderProxy, prov);
371 }
372 g_list_free (self->providers);
373
374 g_hash_table_destroy (self->invocations);
325375
326376 G_OBJECT_CLASS (realm_all_provider_parent_class)->finalize (obj);
327377 }
350400 }
351401
352402 static void
353 on_provider_proxy (GObject *source,
354 GAsyncResult *result,
355 gpointer user_data)
403 on_provider_proxy_diagnostics (GDBusConnection *connection,
404 const gchar *sender_name,
405 const gchar *object_path,
406 const gchar *interface_name,
407 const gchar *signal_name,
408 GVariant *parameters,
409 gpointer user_data)
410 {
411 RealmAllProvider *self = REALM_ALL_PROVIDER (user_data);
412 GDBusMethodInvocation *invocation;
413 const gchar *operation_id;
414 const gchar *data;
415
416 /* Here we relay diagnostic information from separate providers back to caller */
417 g_return_if_fail (g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(ss)")));
418 g_variant_get (parameters, "(&s&s)", &data, &operation_id);
419 invocation = g_hash_table_lookup (self->invocations, operation_id);
420 if (invocation != NULL)
421 realm_diagnostics_signal (invocation, data);
422 }
423
424 static void
425 on_provider_proxy_created (GObject *source,
426 GAsyncResult *result,
427 gpointer user_data)
356428 {
357429 GSimpleAsyncResult *res = G_SIMPLE_ASYNC_RESULT (user_data);
358430 InitClosure *init = g_simple_async_result_get_op_res_gpointer (res);
359431 RealmAllProvider *self = REALM_ALL_PROVIDER (g_async_result_get_source_object (user_data));
360432 GDBusProxy *proxy;
433 ProviderProxy *prov;
361434 GError *error = NULL;
435 guint sig;
362436
363437 proxy = g_dbus_proxy_new_for_bus_finish (result, &error);
364438 if (error == NULL) {
365439 g_signal_connect (proxy, "g-properties-changed",
366440 G_CALLBACK (on_proxy_properties_changed), self);
367 self->providers = g_list_prepend (self->providers, proxy);
441
442 sig = g_dbus_connection_signal_subscribe (g_dbus_proxy_get_connection (proxy),
443 g_dbus_proxy_get_name (proxy),
444 "org.freedesktop.realmd.Diagnostics",
445 "Diagnostics",
446 g_dbus_proxy_get_object_path (proxy),
447 NULL,
448 G_DBUS_SIGNAL_FLAGS_NONE,
449 on_provider_proxy_diagnostics,
450 self, NULL);
451
452 prov = g_slice_new0 (ProviderProxy);
453 prov->proxy = proxy;
454 prov->diagnostics_sig = sig;
455 self->providers = g_list_prepend (self->providers, prov);
456
368457 } else {
369458 g_warning ("Couldn't load realm provider: %s", error->message);
370459 g_error_free (error);
430519 realm_dbus_provider_interface_info (),
431520 provider_name, provider_path,
432521 REALM_DBUS_PROVIDER_INTERFACE,
433 cancellable, on_provider_proxy,
522 cancellable, on_provider_proxy_created,
434523 g_object_ref (res));
524
525 realm_debug ("Initializing provider: %s", provider_name);
526
435527 g_free (provider_name);
436528 g_free (provider_path);
437529 init->outstanding++;
440532 g_free (filename);
441533 }
442534
443 if (init->outstanding == 0)
535 if (init->outstanding == 0) {
536 realm_debug ("No realm providers found");
444537 g_simple_async_result_complete_in_idle (res);
538 }
445539
446540 g_object_unref (res);
447541 }
4141 { "diagnostics", REALM_DEBUG_DIAGNOSTICS },
4242 { "daemon", REALM_DEBUG_SERVICE },
4343 { "packages", REALM_DEBUG_PACKAGES },
44 { "provider", REALM_DEBUG_PROVIDER },
4445 { 0, }
4546 };
4647
6970 {
7071 GString *gstring;
7172 const gchar *progname;
73 int ret;
7274
7375 gstring = g_string_new (NULL);
7476
7880 log_domain ? log_domain : "", log_domain ? "-" : "",
7981 message ? message : "(NULL) message");
8082
81 write (1, gstring->str, gstring->len);
83 ret = write (1, gstring->str, gstring->len);
84
85 /* Yes this is dumb, but gets around compiler warning */
86 if (ret < 0)
87 g_warning ("couldn't write debug output");
88
8289 g_string_free (gstring, TRUE);
8390 }
8491
2323
2424 static GDBusConnection *the_connection = NULL;
2525 static GString *line_buffer = NULL;
26 static GQuark operation_id_quark = 0;
2627
2728 void
2829 realm_diagnostics_initialize (GDBusConnection *connection)
3536
3637 the_connection = connection;
3738 g_object_add_weak_pointer (G_OBJECT (the_connection), (gpointer *)&the_connection);
39
40 operation_id_quark = g_quark_from_static_string ("realm-diagnostics-operation-id");
41 }
42
43 void
44 realm_diagnostics_mark_operation (GDBusMethodInvocation *invocation,
45 const gchar *operation_id)
46 {
47 g_return_if_fail (G_IS_DBUS_METHOD_INVOCATION (invocation));
48 g_return_if_fail (operation_id != NULL);
49
50 g_object_set_qdata_full (G_OBJECT (invocation), operation_id_quark,
51 g_strdup (operation_id), g_free);
3852 }
3953
4054 static void
7993 gchar *string)
8094 {
8195 static gboolean syslog_initialized = FALSE;
82 GError *error = NULL;
8396
8497 if (!syslog_initialized) {
8598 openlog ("realmd", 0, LOG_AUTH);
88101
89102 log_syslog_and_debug (log_level, string, strlen (string));
90103
91 if (!the_connection || !invocation) {
92 g_free (string);
93 return;
94 }
95
96 g_dbus_connection_emit_signal (the_connection, g_dbus_method_invocation_get_sender (invocation),
97 g_dbus_method_invocation_get_object_path (invocation),
98 REALM_DBUS_DIAGNOSTICS_INTERFACE, REALM_DBUS_DIAGNOSTICS_SIGNAL,
99 g_variant_new ("(s)", string), &error);
100
101 if (error != NULL)
102 g_warning ("couldn't emit the Diagnostics signal: %s", error->message);
103
104 realm_diagnostics_signal (invocation, string);
104105 g_free (string);
105106 }
106107
179180
180181 log_take_diagnostic (invocation, LOG_INFO, info);
181182 }
183
184 void
185 realm_diagnostics_signal (GDBusMethodInvocation *invocation,
186 const gchar *data)
187 {
188 const gchar *operation_id;
189 GError *error = NULL;
190
191 if (!the_connection || !invocation)
192 return;
193
194 operation_id = g_object_get_qdata (G_OBJECT (invocation), operation_id_quark);
195 if (operation_id == NULL) {
196 g_warning ("method invocation not marked with operation_id");
197 operation_id = "";
198 }
199
200 g_dbus_connection_emit_signal (the_connection, g_dbus_method_invocation_get_sender (invocation),
201 g_dbus_method_invocation_get_object_path (invocation),
202 REALM_DBUS_DIAGNOSTICS_INTERFACE, REALM_DBUS_DIAGNOSTICS_SIGNAL,
203 g_variant_new ("(ss)", data, operation_id), &error);
204
205 if (error != NULL)
206 g_warning ("couldn't emit the Diagnostics signal: %s", error->message);
207 }
2222
2323 void realm_diagnostics_initialize (GDBusConnection *connection);
2424
25 void realm_diagnostics_mark_operation (GDBusMethodInvocation *invocation,
26 const gchar *operation_id);
27
2528 void realm_diagnostics_info (GDBusMethodInvocation *invocation,
2629 const gchar *format,
2730 ...) G_GNUC_PRINTF (2, 3);
3538 const gchar *format,
3639 ...) G_GNUC_PRINTF (3, 4);
3740
41 void realm_diagnostics_signal (GDBusMethodInvocation *invocation,
42 const gchar *data);
43
3844 G_END_DECLS
3945
4046 #endif /* __REALM_DIAGNOSTICS_H__ */
775775
776776 g_return_val_if_fail (REALM_IS_INI_CONFIG (self), NULL);
777777 g_return_val_if_fail (section != NULL, NULL);
778 g_return_val_if_fail (name != NULL, NULL);
779778
780779 sect = g_hash_table_lookup (self->sections, section);
781780 if (sect == NULL)
225225 handle_enroll_with_credential_cache (RealmDbusKerberos *realm,
226226 GDBusMethodInvocation *invocation,
227227 GVariant *admin_cache,
228 GVariant *options)
228 GVariant *options,
229 const gchar *operation_id)
229230 {
230231 RealmKerberos *self = REALM_KERBEROS (realm);
231232 GBytes *admin_kerberos_cache;
233234 const guchar *data;
234235 gsize length;
235236
237 /* Make note of the current operation id, for diagnostics */
238 realm_diagnostics_mark_operation (invocation, operation_id);
239
236240 data = g_variant_get_fixed_array (admin_cache, &length, 1);
237241 if (length == 0) {
238242 g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
266270 GDBusMethodInvocation *invocation,
267271 const gchar *principal,
268272 const gchar *password,
269 GVariant *options)
273 GVariant *options,
274 const gchar *operation_id)
270275 {
271276 RealmKerberos *self = REALM_KERBEROS (realm);
272277 GBytes *admin_kerberos_cache;
273278 RealmKerberosClass *klass;
279
280 /* Make note of the current operation id, for diagnostics */
281 realm_diagnostics_mark_operation (invocation, operation_id);
274282
275283 admin_kerberos_cache = kinit_to_kerberos_cache (invocation, principal, password);
276284 if (admin_kerberos_cache == NULL) {
334342 handle_unenroll_with_credential_cache (RealmDbusKerberos *realm,
335343 GDBusMethodInvocation *invocation,
336344 GVariant *admin_cache,
337 GVariant *options)
345 GVariant *options,
346 const gchar *operation_id)
338347 {
339348 RealmKerberos *self = REALM_KERBEROS (realm);
340349 RealmKerberosClass *klass;
342351 const guchar *data;
343352 gsize length;
344353
354 /* Make note of the current operation id, for diagnostics */
355 realm_diagnostics_mark_operation (invocation, operation_id);
356
345357 data = g_variant_get_fixed_array (admin_cache, &length, 1);
346358 if (length == 0) {
347359 g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS,
375387 GDBusMethodInvocation *invocation,
376388 const gchar *principal,
377389 const gchar *password,
378 GVariant *options)
390 GVariant *options,
391 const gchar *operation_id)
379392 {
380393 RealmKerberos *self = REALM_KERBEROS (realm);
381394 RealmKerberosClass *klass;
382395 GBytes *admin_kerberos_cache;
396
397 /* Make note of the current operation id, for diagnostics */
398 realm_diagnostics_mark_operation (invocation, operation_id);
383399
384400 admin_kerberos_cache = kinit_to_kerberos_cache (invocation, principal, password);
385401 if (admin_kerberos_cache == NULL) {
410426 handle_change_permitted_logins (RealmDbusKerberos *realm,
411427 GDBusMethodInvocation *invocation,
412428 const gchar *const *add,
413 const gchar *const *remove)
429 const gchar *const *remove,
430 const gchar *operation_id)
414431 {
415432 RealmKerberos *self = REALM_KERBEROS (realm);
416433 RealmKerberosClass *klass;
417434 GError *error = NULL;
418435 gboolean ret;
436
437 /* Make note of the current operation id, for diagnostics */
438 realm_diagnostics_mark_operation (invocation, operation_id);
419439
420440 if (!realm_daemon_lock_for_action (invocation)) {
421441 g_dbus_method_invocation_return_error (invocation, REALM_ERROR, REALM_ERROR_BUSY,
459479 const gchar *interface = g_dbus_method_invocation_get_interface_name (invocation);
460480 const gchar *method = g_dbus_method_invocation_get_method_name (invocation);
461481 const gchar *action_id = NULL;
462 gboolean ret;
482 gboolean ret = FALSE;
463483
464484 /* Each method has its own polkit authorization */
465485 if (g_str_equal (interface, REALM_DBUS_KERBEROS_REALM_INTERFACE)) {
7575
7676 relevance = (klass->discover_finish) (closure->self, result, &realms, &error);
7777 if (error == NULL) {
78 if (relevance > 0)
79 realm_diagnostics_info (closure->invocation, "Successfully discovered realm(s)");
8078 if (realms == NULL) {
8179 realms = g_variant_new_array (G_VARIANT_TYPE ("(sos)"), NULL, 0);
8280 g_variant_ref_sink (realms);
102100 static gboolean
103101 realm_provider_handle_discover (RealmDbusProvider *provider,
104102 GDBusMethodInvocation *invocation,
105 const gchar *string)
103 const gchar *string,
104 const gchar *operation_id)
106105 {
107106 RealmProvider *self = REALM_PROVIDER (provider);
108107 RealmProviderClass *klass;
108
109 /* Make note of the current operation id, for diagnostics */
110 realm_diagnostics_mark_operation (invocation, operation_id);
109111
110112 klass = REALM_PROVIDER_GET_CLASS (self);
111113 g_return_val_if_fail (klass->discover_async != NULL, FALSE);
124126 const gchar *interface = g_dbus_method_invocation_get_interface_name (invocation);
125127 const gchar *method = g_dbus_method_invocation_get_method_name (invocation);
126128 const gchar *action_id = NULL;
127 gboolean ret;
129 gboolean ret = FALSE;
128130
129131 /* Each method has its own polkit authorization */
130132 if (g_str_equal (interface, REALM_DBUS_PROVIDER_INTERFACE)) {
160162 RealmProviderPrivate);
161163 self->pv->realms = g_hash_table_new_full (g_str_hash, g_str_equal,
162164 g_free, g_object_unref);
165
166 /* The dbus version property of the provider */
167 g_object_set (self, "version", VERSION, NULL);
163168 }
164169
165170 static void
161161 /* Use our custom smb.conf */
162162 g_ptr_array_add (args, (gpointer)realm_settings_path ("net"));
163163 g_ptr_array_add (args, "-s");
164 g_ptr_array_add (args, SERVICE_DIR "/net-ads-smb.conf");
164 g_ptr_array_add (args, PRIVATE_DIR "/net-ads-smb.conf");
165165
166166 va_start (va, user_data);
167167 do {
5454 realm_samba_provider_init (RealmSambaProvider *self)
5555 {
5656 self->config = realm_samba_config_new (NULL);
57
58 /* The dbus Name property of the provider */
59 g_object_set (self, "name", "Samba", NULL);
5760 }
5861
5962 static void
5555 static void
5656 realm_samba_init (RealmSamba *self)
5757 {
58 g_object_set (self, "suggested-administrator", "Administrator", NULL);
58 GPtrArray *entries;
59 GVariant *entry;
60 GVariant *details;
61
62 entries = g_ptr_array_new ();
63
64 entry = g_variant_new_dict_entry (g_variant_new_string ("server-software"),
65 g_variant_new_string ("active-directory"));
66 g_ptr_array_add (entries, entry);
67
68 entry = g_variant_new_dict_entry (g_variant_new_string ("client-software"),
69 g_variant_new_string ("samba-winbind"));
70 g_ptr_array_add (entries, entry);
71
72 details = g_variant_new_array (G_VARIANT_TYPE ("{ss}"),
73 (GVariant * const *)entries->pdata,
74 entries->len);
75 g_variant_ref_sink (details);
76
77 g_object_set (self,
78 "details", details,
79 "suggested-administrator", "Administrator",
80 NULL);
81
82 g_variant_unref (details);
83 g_ptr_array_free (entries, TRUE);
5984 }
6085
6186 static gchar *
8383 void
8484 realm_settings_init (void)
8585 {
86 const gchar *default_conf = SERVICE_DIR "/realmd-defaults.conf";
87 const gchar *distro_conf = SERVICE_DIR "/realmd-distro.conf";
86 const gchar *default_conf = PRIVATE_DIR "/realmd-defaults.conf";
87 const gchar *distro_conf = PRIVATE_DIR "/realmd-distro.conf";
8888 const gchar *admin_conf = SYSCONF_DIR "/realmd.conf";
8989 GError *error = NULL;
9090
33 -I$(top_srcdir) \
44 -DTESTFILE_DIR="\"@abs_srcdir@/files\"" \
55 -DSYSCONF_DIR="\"/tmp/realmd-etc\"" \
6 -DSERVICE_DIR="\"@abs_srcdir@/files\"" \
6 -DPRIVATE_DIR="\"@abs_srcdir@/files\"" \
77 $(NULL)
88
99 AM_CFLAGS = \
109109 CYGPATH_W = @CYGPATH_W@
110110 DATADIRNAME = @DATADIRNAME@
111111 DBUS_POLICY_DIR = @DBUS_POLICY_DIR@
112 DBUS_SERVICES_DIR = @DBUS_SERVICES_DIR@
112113 DEFS = @DEFS@
113114 DEPDIR = @DEPDIR@
114115 DISTRO = @DISTRO@
178179 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
179180 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
180181 RANLIB = @RANLIB@
181 SERVICE_DIR = @SERVICE_DIR@
182182 SET_MAKE = @SET_MAKE@
183183 SHELL = @SHELL@
184184 STRIP = @STRIP@
220220 oldincludedir = @oldincludedir@
221221 pdfdir = @pdfdir@
222222 prefix = @prefix@
223 privatedir = @privatedir@
223224 program_transform_name = @program_transform_name@
224225 psdir = @psdir@
225226 sbindir = @sbindir@
232233 top_srcdir = @top_srcdir@
233234 NULL =
234235 TEST_SUPPRESSIONS = $(top_builddir)/build/valgrind-suppressions
236 V_SED = $(V_SED_$(V))
237 V_SED_ = $(V_SED_$(AM_DEFAULT_VERBOSITY))
238 V_SED_0 = @echo " SED " $@;
239 SED_SUBST = sed \
240 -e 's,[@]datadir[@],$(datadir),g' \
241 -e 's,[@]libexecdir[@],$(libexecdir),g' \
242 -e 's,[@]libdir[@],$(libdir),g' \
243 -e 's,[@]includedir[@],$(includedir),g' \
244 -e 's,[@]datarootdir[@],$(datarootdir),g' \
245 -e 's,[@]sysconfdir[@],$(sysconfdir),g' \
246 -e 's,[@]bindir[@],$(bindir),g' \
247 -e 's,[@]exec_prefix[@],$(exec_prefix),g' \
248 -e 's,[@]prefix[@],$(prefix),g' \
249 -e 's,[@]abs_srcdir[@],$(abs_srcdir),g' \
250 -e 's,[@]srcdir[@],$(srcdir),g' \
251 -e 's,[@]privatedir[@],$(privatedir),g' \
252 -e 's,[@]PACKAGE[@],$(PACKAGE),g' \
253 -e 's,[@]VERSION[@],$(VERSION),g' \
254 $(NULL)
255
256 SUFFIXES = .conf .conf.in .desktop.in .desktop.in.in .service .service.in
235257 INCLUDES = \
236258 -I$(top_srcdir) \
237259 -DTESTFILE_DIR="\"@abs_srcdir@/files\"" \
238260 -DSYSCONF_DIR="\"/tmp/realmd-etc\"" \
239 -DSERVICE_DIR="\"@abs_srcdir@/files\"" \
261 -DPRIVATE_DIR="\"@abs_srcdir@/files\"" \
240262 $(NULL)
241263
242264 AM_CFLAGS = \
284306 all: all-am
285307
286308 .SUFFIXES:
287 .SUFFIXES: .c .o .obj
309 .SUFFIXES: .conf .conf.in .desktop.in .desktop.in.in .service .service.in .c .o .obj
288310 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.decl $(am__configure_deps)
289311 @for dep in $?; do \
290312 case '$(am__configure_deps)' in \
637659 @WITH_COVERAGE_TRUE@clear-coverage:
638660 @WITH_COVERAGE_TRUE@ $(LCOV) --directory . --zerocounters
639661
662 .desktop.in.in.desktop.in:
663 $(V_SED) $(SED_SUBST) $< > $@
664
665 @INTLTOOL_DESKTOP_RULE@
666
667 .service.in.service:
668 $(V_SED) $(SED_SUBST) $< > $@
669
670 .conf.in.conf:
671 $(V_SED) $(SED_SUBST) $< > $@
672
640673 test-c: $(TEST_PROGS)
641674 @gtester --verbose -m $(TEST_MODE) --g-fatal-warnings $(TEST_PROGS)
642675
00 include $(top_srcdir)/Makefile.decl
11
22 bin_PROGRAMS = \
3 realm-discover \
34 realm-enroll
45
56 realm_enroll_SOURCES = \
67 realm-enroll.c \
78 $(NULL)
89
9 realm_enroll_CFLAGS = \
10 AM_CFLAGS = \
1011 -I$(top_srcdir)/dbus \
1112 -I$(top_builddir)/dbus \
1213 $(GLIB_CFLAGS) \
1314 $(KRB5_CFLAGS) \
1415 $(NULL)
1516
16 realm_enroll_LDADD = \
17 LDADD = \
1718 $(top_builddir)/dbus/librealm-dbus.a \
1819 $(GLIB_LIBS) \
1920 $(KRB5_LIBS) \
3333 POST_UNINSTALL = :
3434 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
3535 $(top_srcdir)/Makefile.decl
36 bin_PROGRAMS = realm-enroll$(EXEEXT)
36 bin_PROGRAMS = realm-discover$(EXEEXT) realm-enroll$(EXEEXT)
3737 subdir = tools
3838 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
3939 am__aclocal_m4_deps = $(top_srcdir)/build/m4/intltool.m4 \
4646 CONFIG_CLEAN_VPATH_FILES =
4747 am__installdirs = "$(DESTDIR)$(bindir)"
4848 PROGRAMS = $(bin_PROGRAMS)
49 realm_discover_SOURCES = realm-discover.c
50 realm_discover_OBJECTS = realm-discover.$(OBJEXT)
51 realm_discover_LDADD = $(LDADD)
52 am__DEPENDENCIES_1 =
53 realm_discover_DEPENDENCIES = $(top_builddir)/dbus/librealm-dbus.a \
54 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
55 $(am__DEPENDENCIES_1)
4956 am__objects_1 =
50 am_realm_enroll_OBJECTS = realm_enroll-realm-enroll.$(OBJEXT) \
51 $(am__objects_1)
57 am_realm_enroll_OBJECTS = realm-enroll.$(OBJEXT) $(am__objects_1)
5258 realm_enroll_OBJECTS = $(am_realm_enroll_OBJECTS)
53 am__DEPENDENCIES_1 =
59 realm_enroll_LDADD = $(LDADD)
5460 realm_enroll_DEPENDENCIES = $(top_builddir)/dbus/librealm-dbus.a \
5561 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
5662 $(am__DEPENDENCIES_1)
57 realm_enroll_LINK = $(CCLD) $(realm_enroll_CFLAGS) $(CFLAGS) \
58 $(AM_LDFLAGS) $(LDFLAGS) -o $@
5963 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
6064 depcomp = $(SHELL) $(top_srcdir)/depcomp
6165 am__depfiles_maybe = depfiles
6266 am__mv = mv -f
63 AM_V_lt = $(am__v_lt_@AM_V@)
64 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
65 am__v_lt_0 = --silent
6667 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
6768 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
6869 AM_V_CC = $(am__v_CC_@AM_V@)
7980 AM_V_GEN = $(am__v_GEN_@AM_V@)
8081 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
8182 am__v_GEN_0 = @echo " GEN " $@;
82 SOURCES = $(realm_enroll_SOURCES)
83 DIST_SOURCES = $(realm_enroll_SOURCES)
83 SOURCES = realm-discover.c $(realm_enroll_SOURCES)
84 DIST_SOURCES = realm-discover.c $(realm_enroll_SOURCES)
8485 ETAGS = etags
8586 CTAGS = ctags
8687 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
102103 CYGPATH_W = @CYGPATH_W@
103104 DATADIRNAME = @DATADIRNAME@
104105 DBUS_POLICY_DIR = @DBUS_POLICY_DIR@
106 DBUS_SERVICES_DIR = @DBUS_SERVICES_DIR@
105107 DEFS = @DEFS@
106108 DEPDIR = @DEPDIR@
107109 DISTRO = @DISTRO@
171173 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
172174 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
173175 RANLIB = @RANLIB@
174 SERVICE_DIR = @SERVICE_DIR@
175176 SET_MAKE = @SET_MAKE@
176177 SHELL = @SHELL@
177178 STRIP = @STRIP@
213214 oldincludedir = @oldincludedir@
214215 pdfdir = @pdfdir@
215216 prefix = @prefix@
217 privatedir = @privatedir@
216218 program_transform_name = @program_transform_name@
217219 psdir = @psdir@
218220 sbindir = @sbindir@
225227 top_srcdir = @top_srcdir@
226228 NULL =
227229 TEST_SUPPRESSIONS = $(top_builddir)/build/valgrind-suppressions
230 V_SED = $(V_SED_$(V))
231 V_SED_ = $(V_SED_$(AM_DEFAULT_VERBOSITY))
232 V_SED_0 = @echo " SED " $@;
233 SED_SUBST = sed \
234 -e 's,[@]datadir[@],$(datadir),g' \
235 -e 's,[@]libexecdir[@],$(libexecdir),g' \
236 -e 's,[@]libdir[@],$(libdir),g' \
237 -e 's,[@]includedir[@],$(includedir),g' \
238 -e 's,[@]datarootdir[@],$(datarootdir),g' \
239 -e 's,[@]sysconfdir[@],$(sysconfdir),g' \
240 -e 's,[@]bindir[@],$(bindir),g' \
241 -e 's,[@]exec_prefix[@],$(exec_prefix),g' \
242 -e 's,[@]prefix[@],$(prefix),g' \
243 -e 's,[@]abs_srcdir[@],$(abs_srcdir),g' \
244 -e 's,[@]srcdir[@],$(srcdir),g' \
245 -e 's,[@]privatedir[@],$(privatedir),g' \
246 -e 's,[@]PACKAGE[@],$(PACKAGE),g' \
247 -e 's,[@]VERSION[@],$(VERSION),g' \
248 $(NULL)
249
250 SUFFIXES = .conf .conf.in .desktop.in .desktop.in.in .service .service.in
228251 realm_enroll_SOURCES = \
229252 realm-enroll.c \
230253 $(NULL)
231254
232 realm_enroll_CFLAGS = \
255 AM_CFLAGS = \
233256 -I$(top_srcdir)/dbus \
234257 -I$(top_builddir)/dbus \
235258 $(GLIB_CFLAGS) \
236259 $(KRB5_CFLAGS) \
237260 $(NULL)
238261
239 realm_enroll_LDADD = \
262 LDADD = \
240263 $(top_builddir)/dbus/librealm-dbus.a \
241264 $(GLIB_LIBS) \
242265 $(KRB5_LIBS) \
245268 all: all-am
246269
247270 .SUFFIXES:
248 .SUFFIXES: .c .o .obj
271 .SUFFIXES: .conf .conf.in .desktop.in .desktop.in.in .service .service.in .c .o .obj
249272 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.decl $(am__configure_deps)
250273 @for dep in $?; do \
251274 case '$(am__configure_deps)' in \
314337
315338 clean-binPROGRAMS:
316339 -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
340 realm-discover$(EXEEXT): $(realm_discover_OBJECTS) $(realm_discover_DEPENDENCIES) $(EXTRA_realm_discover_DEPENDENCIES)
341 @rm -f realm-discover$(EXEEXT)
342 $(AM_V_CCLD)$(LINK) $(realm_discover_OBJECTS) $(realm_discover_LDADD) $(LIBS)
317343 realm-enroll$(EXEEXT): $(realm_enroll_OBJECTS) $(realm_enroll_DEPENDENCIES) $(EXTRA_realm_enroll_DEPENDENCIES)
318344 @rm -f realm-enroll$(EXEEXT)
319 $(AM_V_CCLD)$(realm_enroll_LINK) $(realm_enroll_OBJECTS) $(realm_enroll_LDADD) $(LIBS)
345 $(AM_V_CCLD)$(LINK) $(realm_enroll_OBJECTS) $(realm_enroll_LDADD) $(LIBS)
320346
321347 mostlyclean-compile:
322348 -rm -f *.$(OBJEXT)
324350 distclean-compile:
325351 -rm -f *.tab.c
326352
327 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/realm_enroll-realm-enroll.Po@am__quote@
353 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/realm-discover.Po@am__quote@
354 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/realm-enroll.Po@am__quote@
328355
329356 .c.o:
330357 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
339366 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
340367 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
341368 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
342
343 realm_enroll-realm-enroll.o: realm-enroll.c
344 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(realm_enroll_CFLAGS) $(CFLAGS) -MT realm_enroll-realm-enroll.o -MD -MP -MF $(DEPDIR)/realm_enroll-realm-enroll.Tpo -c -o realm_enroll-realm-enroll.o `test -f 'realm-enroll.c' || echo '$(srcdir)/'`realm-enroll.c
345 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/realm_enroll-realm-enroll.Tpo $(DEPDIR)/realm_enroll-realm-enroll.Po
346 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='realm-enroll.c' object='realm_enroll-realm-enroll.o' libtool=no @AMDEPBACKSLASH@
347 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
348 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(realm_enroll_CFLAGS) $(CFLAGS) -c -o realm_enroll-realm-enroll.o `test -f 'realm-enroll.c' || echo '$(srcdir)/'`realm-enroll.c
349
350 realm_enroll-realm-enroll.obj: realm-enroll.c
351 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(realm_enroll_CFLAGS) $(CFLAGS) -MT realm_enroll-realm-enroll.obj -MD -MP -MF $(DEPDIR)/realm_enroll-realm-enroll.Tpo -c -o realm_enroll-realm-enroll.obj `if test -f 'realm-enroll.c'; then $(CYGPATH_W) 'realm-enroll.c'; else $(CYGPATH_W) '$(srcdir)/realm-enroll.c'; fi`
352 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/realm_enroll-realm-enroll.Tpo $(DEPDIR)/realm_enroll-realm-enroll.Po
353 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='realm-enroll.c' object='realm_enroll-realm-enroll.obj' libtool=no @AMDEPBACKSLASH@
354 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
355 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(realm_enroll_CFLAGS) $(CFLAGS) -c -o realm_enroll-realm-enroll.obj `if test -f 'realm-enroll.c'; then $(CYGPATH_W) 'realm-enroll.c'; else $(CYGPATH_W) '$(srcdir)/realm-enroll.c'; fi`
356369
357370 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
358371 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
579592 @WITH_COVERAGE_TRUE@clear-coverage:
580593 @WITH_COVERAGE_TRUE@ $(LCOV) --directory . --zerocounters
581594
595 .desktop.in.in.desktop.in:
596 $(V_SED) $(SED_SUBST) $< > $@
597
598 @INTLTOOL_DESKTOP_RULE@
599
600 .service.in.service:
601 $(V_SED) $(SED_SUBST) $< > $@
602
603 .conf.in.conf:
604 $(V_SED) $(SED_SUBST) $< > $@
605
582606 # Tell versions [3.59,3.63) of GNU make to not export all variables.
583607 # Otherwise a system limit (for SysV at least) may be exceeded.
584608 .NOEXPORT:
0 /* realmd -- Realm configuration service
1 *
2 * Copyright 2012 Red Hat Inc
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published
6 * by the Free Software Foundation; either version 2 of the licence or (at
7 * your option) any later version.
8 *
9 * See the included COPYING file for more information.
10 *
11 * Author: Stef Walter <stefw@gnome.org>
12 */
13
14 #include "config.h"
15
16 #include "realm-dbus-constants.h"
17 #include "realm-dbus-generated.h"
18
19 #include <krb5/krb5.h>
20
21 #include <glib.h>
22 #include <glib/gstdio.h>
23
24 #include <sys/types.h>
25 #include <sys/stat.h>
26 #include <errno.h>
27 #include <fcntl.h>
28
29 static void
30 handle_error (GError *error,
31 const gchar *format,
32 ...)
33 {
34 GString *message;
35 va_list va;
36
37 message = g_string_new ("");
38 g_string_append_printf (message, "%s: ", g_get_prgname ());
39
40 va_start (va, format);
41 g_string_append_vprintf (message, format, va);
42 va_end (va);
43
44 if (error) {
45 g_string_append (message, ": ");
46 g_string_append (message, error->message);
47 g_error_free (error);
48 }
49
50 g_printerr ("%s\n", message->str);
51 g_string_free (message, TRUE);
52 }
53
54 static void
55 print_details_for_realm_info (GVariant *realm_info)
56 {
57 RealmDbusKerberos *realm = NULL;
58 const gchar *bus_name;
59 const gchar *object_path;
60 const gchar *interface_name;
61 GError *error = NULL;
62 GVariantIter iter;
63 GVariant *details;
64 const gchar *name;
65 const gchar *value;
66
67 g_variant_get (realm_info, "(&s&o&s)", &bus_name, &object_path, &interface_name);
68
69 if (!g_str_equal (interface_name, REALM_DBUS_KERBEROS_REALM_INTERFACE))
70 return;
71
72 realm = realm_dbus_kerberos_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
73 G_DBUS_PROXY_FLAGS_NONE,
74 bus_name, object_path,
75 NULL, &error);
76
77 if (error != NULL) {
78 g_warning ("couldn't use realm service: %s", error->message);
79 g_error_free (error);
80 return;
81 }
82
83 g_print ("%s\n", realm_dbus_kerberos_get_name (realm));
84 g_print ("domain: %s\n", realm_dbus_kerberos_get_domain (realm));
85
86 details = realm_dbus_kerberos_get_details (realm);
87 if (details) {
88 g_variant_iter_init (&iter, details);
89 while (g_variant_iter_loop (&iter, "{&s&s}", &name, &value))
90 g_print ("%s: %s\n", name, value);
91 }
92
93 g_object_unref (realm);
94 }
95
96 static void
97 on_diagnostics_signal (GDBusConnection *connection,
98 const gchar *sender_name,
99 const gchar *object_path,
100 const gchar *interface_name,
101 const gchar *signal_name,
102 GVariant *parameters,
103 gpointer user_data)
104 {
105 const gchar *data;
106 const gchar *unused;
107 g_variant_get (parameters, "(&s&s)", &data, &unused);
108 g_printerr ("%s", data);
109 }
110
111 static void
112 connect_to_diagnostics (GDBusProxy *proxy)
113 {
114 GDBusConnection *connection;
115 const gchar *bus_name;
116 const gchar *object_path;
117
118 connection = g_dbus_proxy_get_connection (proxy);
119 bus_name = g_dbus_proxy_get_name (proxy);
120 object_path = g_dbus_proxy_get_object_path (proxy);
121
122 g_dbus_connection_signal_subscribe (connection, bus_name,
123 REALM_DBUS_DIAGNOSTICS_INTERFACE,
124 REALM_DBUS_DIAGNOSTICS_SIGNAL,
125 object_path, NULL, G_DBUS_SIGNAL_FLAGS_NONE,
126 on_diagnostics_signal, NULL, NULL);
127 }
128
129 typedef struct {
130 GAsyncResult *result;
131 GMainLoop *loop;
132 } SyncClosure;
133
134 static void
135 on_complete_get_result (GObject *source,
136 GAsyncResult *result,
137 gpointer user_data)
138 {
139 SyncClosure *sync = user_data;
140 sync->result = g_object_ref (result);
141 g_main_loop_quit (sync->loop);
142 }
143
144 static int
145 realm_discover (const gchar *string,
146 gboolean verbose)
147 {
148 RealmDbusProvider *provider;
149 GVariant *realm_info;
150 gboolean found = FALSE;
151 GError *error = NULL;
152 GVariantIter iter;
153 SyncClosure sync;
154 GVariant *realms;
155 gint relevance;
156
157 provider = realm_dbus_provider_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
158 G_DBUS_PROXY_FLAGS_NONE,
159 REALM_DBUS_ALL_PROVIDER_NAME,
160 REALM_DBUS_ALL_PROVIDER_PATH,
161 NULL, &error);
162 if (error != NULL) {
163 handle_error (error, "couldn't connect to realm service");
164 return 2;
165 }
166
167 /* Setup diagnostics */
168 if (verbose)
169 connect_to_diagnostics (G_DBUS_PROXY (provider));
170
171 sync.result = NULL;
172 sync.loop = g_main_loop_new (NULL, FALSE);
173
174 g_dbus_proxy_set_default_timeout (G_DBUS_PROXY (provider), G_MAXINT);
175 realm_dbus_provider_call_discover (provider, string, "unused-operation-id",
176 NULL, on_complete_get_result, &sync);
177
178 /* This mainloop is quit by on_complete_get_result */
179 g_main_loop_run (sync.loop);
180
181 realm_dbus_provider_call_discover_finish (provider, &relevance, &realms,
182 sync.result, &error);
183
184 g_object_unref (sync.result);
185 g_main_loop_unref (sync.loop);
186
187 if (error != NULL) {
188 handle_error (error, "couldn't discover realm");
189 return 2;
190 }
191
192 g_variant_iter_init (&iter, realms);
193 while ((realm_info = g_variant_iter_next_value (&iter)) != NULL) {
194 print_details_for_realm_info (realm_info);
195 g_variant_unref (realm_info);
196 found = TRUE;
197 }
198
199 g_variant_unref (realms);
200
201 if (!found) {
202 handle_error (NULL, "no such realm found: %s", string);
203 return 1;
204 }
205
206 return 0;
207 }
208
209 int
210 main (int argc,
211 char *argv[])
212 {
213 GOptionContext *context;
214 gboolean arg_verbose = FALSE;
215 GError *error = NULL;
216 gint result = 0;
217 gint ret;
218 gint i;
219
220 GOptionEntry option_entries[] = {
221 { "verbose", 'v', 0, G_OPTION_ARG_NONE, &arg_verbose, "Verbose output", NULL },
222 { NULL, }
223 };
224
225 g_type_init ();
226
227 context = g_option_context_new ("realm-or-domain");
228 g_option_context_add_main_entries (context, option_entries, NULL);
229
230 if (!g_option_context_parse (context, &argc, &argv, &error)) {
231 g_printerr ("%s: %s\n", g_get_prgname (), error->message);
232 g_error_free (error);
233 ret = 2;
234 }
235
236 /* The default realm? */
237 if (argc == 1) {
238 ret = realm_discover ("", arg_verbose);
239
240 /* Specific realms */
241 } else {
242 for (i = 1; i < argc; i++) {
243 ret = realm_discover (argv[i], arg_verbose);
244 if (ret != 0)
245 result = ret;
246 }
247 }
248
249 g_option_context_free (context);
250 return result;
251 }
2626 #include <errno.h>
2727 #include <fcntl.h>
2828
29 /* Only one operation at a time per process, so fine to do this */
30 static const gchar *operation_id = "realm-enroll";
31
2932 static void
3033 handle_error (GError *error,
3134 const gchar *format,
141144 }
142145
143146 g_dbus_proxy_set_default_timeout (G_DBUS_PROXY (provider), G_MAXINT);
144 realm_dbus_provider_call_discover_sync (provider, string, &relevance,
145 &realms, NULL, &error);
147 realm_dbus_provider_call_discover_sync (provider, string, operation_id,
148 &relevance, &realms, NULL, &error);
146149
147150 g_object_unref (provider);
148151
271274 GVariant *parameters,
272275 gpointer user_data)
273276 {
277 const gchar *operation_id;
274278 const gchar *data;
275 g_variant_get (parameters, "(&s)", &data);
279
280 g_variant_get (parameters, "(&s&s)", &data, &operation_id);
276281 g_printerr ("%s", data);
277282 }
278283
323328 SyncClosure sync;
324329 gchar *principal;
325330
326 if (user_name == NULL)
327 user_name = g_get_user_name ();
328
329331 /* Discover the realm */
330332 realm = discover_realm_for_string (string);
331333 if (realm == NULL)
332334 return 1;
335
336 if (user_name == NULL)
337 user_name = realm_dbus_kerberos_get_suggested_administrator (realm);
338 if (user_name == NULL)
339 user_name = g_get_user_name ();
333340
334341 /* Do a kinit for the given realm */
335342 realm_name = realm_dbus_kerberos_get_name (realm);
355362 g_dbus_proxy_set_default_timeout (G_DBUS_PROXY (realm), G_MAXINT);
356363 if (join)
357364 realm_dbus_kerberos_call_enroll_with_credential_cache (realm, kerberos_cache, options,
358 NULL, on_complete_get_result,
359 &sync);
365 operation_id, NULL,
366 on_complete_get_result, &sync);
360367 else
361368 realm_dbus_kerberos_call_unenroll_with_credential_cache (realm, kerberos_cache, options,
362 NULL, on_complete_get_result,
363 &sync);
369 operation_id, NULL,
370 on_complete_get_result, &sync);
364371
365372 g_variant_unref (options);
366373 g_variant_unref (kerberos_cache);