Commit 7453e4486b1eab856f0ed70ba7612cdbe0b3c006

Authored by Perry Werneck
1 parent e9255e77
Exists in master

Empacotando como serviço, ajustando permissões

.gitignore
... ... @@ -19,4 +19,5 @@ dbus-glue.h
19 19 *.pid
20 20 *.tar
21 21 *.bz2
  22 +*.conf
22 23 rpm
... ...
Makefile.in
... ... @@ -131,6 +131,10 @@ install: \
131 131 @$(MKDIR) $(DESTDIR)/$(unitdir)
132 132 @$(INSTALL_DATA) conf/systemd.service $(DESTDIR)/$(unitdir)/$(PACKAGE_NAME).service
133 133  
  134 + @$(MKDIR) $(DESTDIR)/etc/dbus-1/system.d
  135 + @$(INSTALL_DATA) conf/dbus.conf $(DESTDIR)/etc/dbus-1/system.d/$(PACKAGE_NAME).conf
  136 +
  137 +
134 138 bz2: \
135 139 $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2
136 140  
... ...
conf/dbus.conf.in 0 → 100644
... ... @@ -0,0 +1,18 @@
  1 +<!DOCTYPE busconfig PUBLIC
  2 + "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
  3 + "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
  4 +<busconfig>
  5 +
  6 + <!-- Only root or user avahi can own the Avahi service -->
  7 + <policy user="root">
  8 + <allow own="br.com.bb.pw3270.service"/>
  9 + </policy>
  10 +
  11 + <!-- Allow anyone to invoke methods on server -->
  12 + <policy context="default">
  13 + <allow send_destination="br.com.bb.pw3270.service"/>
  14 + <allow receive_sender="br.com.bb.pw3270.service"/>
  15 + </policy>
  16 +
  17 +</busconfig>
  18 +
... ...
conf/dbus.service.in 0 → 100644
... ... @@ -0,0 +1,5 @@
  1 +[D-BUS Service]
  2 +Name=br.com.bb.pw3270.service
  3 +Exec=/bin/false
  4 +User=root
  5 +SystemdService=@PACKAGE_NAME@.service
... ...
conf/systemd.service.in
... ... @@ -12,4 +12,5 @@ Restart=on-failure
12 12  
13 13 [Install]
14 14 WantedBy=default.target
  15 +Alias=dbus-br.com.bb.pw3270.service
15 16  
... ...
configure.ac
... ... @@ -358,6 +358,8 @@ dnl ---------------------------------------------------------------------------
358 358  
359 359 AC_CONFIG_FILES(Makefile)
360 360 AC_CONFIG_FILES(conf/systemd.service)
  361 +AC_CONFIG_FILES(conf/dbus.service)
  362 +AC_CONFIG_FILES(conf/dbus.conf)
361 363  
362 364 dnl ---------------------------------------------------------------------------
363 365 dnl Output the generated config.status script.
... ...
src/main.c
... ... @@ -141,17 +141,18 @@ static void initialize() {
141 141 connection = dbus_g_bus_get_private(bustype, g_main_context_default(), &error);
142 142  
143 143 if(error) {
144   - g_error("Error \"%s\" getting D-Bus connection",error->message);
  144 + fprintf(stderr,"Error \"%s\" getting D-Bus connection\n",error->message);
145 145 g_error_free(error);
146   - return;
  146 + exit(-1);
147 147 }
148 148  
149 149 proxy = dbus_g_proxy_new_for_name(connection,DBUS_SERVICE_DBUS,DBUS_PATH_DBUS,DBUS_INTERFACE_DBUS);
150 150  
151 151 org_freedesktop_DBus_request_name(proxy, PW3270_SERVICE_DBUS_SERVICE, DBUS_NAME_FLAG_DO_NOT_QUEUE, &result, &error);
152 152 if(error) {
153   - g_error("Error \"%s\" getting D-Bus name",error->message);
154   - return;
  153 + fprintf(stderr,"Error \"%s\" getting D-Bus name\n",error->message);
  154 + g_error_free(error);
  155 + exit(-1);
155 156 }
156 157  
157 158 GType object_type = PW3270_TYPE_DBUS;
... ...