From: Bartlomiej Grzelewski Date: Fri, 31 Mar 2017 14:54:16 +0000 (+0200) Subject: Update systemd configuration X-Git-Tag: submit/tizen/20170405.143506~28 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bf01ba3b3905671237d01c565787340d23b810cd;p=platform%2Fcore%2Fsecurity%2Faskuser.git Update systemd configuration Change-Id: I8f20ce296a0086f912b3d0d19427a6607447005c --- diff --git a/packaging/askuser-notification.spec b/packaging/askuser-notification.spec index 46137d5..4afff5c 100644 --- a/packaging/askuser-notification.spec +++ b/packaging/askuser-notification.spec @@ -62,9 +62,10 @@ rm -rf %{buildroot} %if %{with_systemd_daemon} mkdir -p %{buildroot}/%{_unitdir_user}/default.target.wants -mkdir -p %{buildroot}/%{_unitdir_user}/socket.target.wants +mkdir -p %{buildroot}/%{_unitdir_user}/sockets.target.wants ln -s ../askuser-notification.service %{buildroot}/%{_unitdir_user}/default.target.wants/askuser-notification.service -ln -s ../askuser-notification.socket %{buildroot}/%{_unitdir_user}/socket.target.wants/askuser-notification.socket +ln -s ../askuser-notification-stream.socket %{buildroot}/%{_unitdir_user}/sockets.target.wants/askuser-notification-stream.socket +ln -s ../askuser-notification-datagram.socket %{buildroot}/%{_unitdir_user}/sockets.target.wants/askuser-notification-datagram.socket %endif %post @@ -82,8 +83,9 @@ systemctl daemon-reload %attr(755,root,root) /usr/bin/askuser-notification %if %{with_systemd_daemon} %{_unitdir_user}/askuser-notification.service -%{_unitdir_user}/askuser-notification.socket +%{_unitdir_user}/askuser-notification-stream.socket +%{_unitdir_user}/askuser-notification-datagram.socket %{_unitdir_user}/default.target.wants/* -%{_unitdir_user}/socket.target.wants/* +%{_unitdir_user}/sockets.target.wants/* %endif /usr/share/askuser-notification/res/* diff --git a/src/common/protocol/ask-user-client.cpp b/src/common/protocol/ask-user-client.cpp index b30f45c..f29ad1a 100644 --- a/src/common/protocol/ask-user-client.cpp +++ b/src/common/protocol/ask-user-client.cpp @@ -41,9 +41,8 @@ int popup_launch(const std::string &pkgName, int &result) { try { - std::string path = SOCKET_STREAM_PATH + "." + std::to_string(uid); Sock s(Sock::CLI_STREAM); - if (0 > s.connect(path)) + if (0 > s.connect(getStreamSocketPath(uid))) return -1; std::stringstream ss; @@ -89,9 +88,8 @@ int toast_deny(const std::string &pkgName, const std::string &privilege) { try { - std::string path = SOCKET_DGRAM_PATH + "." + std::to_string(uid); Sock s(Sock::CLI_DGRAM); - if (0 > s.connect(path)) + if (0 > s.connect(getDatagramSocketPath(uid))) return -1; std::string str = std::to_string(MSGID_TOAST1) + " " + pkgName + " " + appName + " " + std::to_string(uid) + " " + privilege; @@ -104,9 +102,8 @@ int toast_deny(const std::string &pkgName, int toast_fail_launch(const std::string &pkgName, const std::string &appName, uid_t uid) { try { - std::string path = SOCKET_DGRAM_PATH + "." + std::to_string(uid); Sock s(Sock::CLI_DGRAM); - if (0 > s.connect(path)) + if (0 > s.connect(getDatagramSocketPath(uid))) return -1; std::string str = std::to_string(MSGID_TOAST2) + " " + pkgName + " " + appName + " " + std::to_string(uid); diff --git a/src/common/protocol/ask-user-config.cpp b/src/common/protocol/ask-user-config.cpp index 415f1a5..a7ab80d 100644 --- a/src/common/protocol/ask-user-config.cpp +++ b/src/common/protocol/ask-user-config.cpp @@ -20,10 +20,17 @@ */ #include -const std::string SOCKET_STREAM_PATH("/tmp/ask-user-stream"); -const std::string SOCKET_DGRAM_PATH("/tmp/ask-user-dgram"); +namespace { +const std::string USER_EXT_PATH("/run/user_ext/"); +const std::string SOCKET_STREAM_NAME("/askuser-notification-stream.socket"); +const std::string SOCKET_DGRAM_NAME("/askuser-notification-datagram.socket"); +} // namespace anonymous + +std::string getDatagramSocketPath(uid_t uid) { + return USER_EXT_PATH + std::to_string(uid) + SOCKET_STREAM_NAME; +} + +std::string getStreamSocketPath(uid_t uid) { + return USER_EXT_PATH + std::to_string(uid) + SOCKET_DGRAM_NAME; +} -//const int MSGID_POPUP = 1; -//const int MSGID_TOUST1 = 2; -//const int MSGID_TOUST2 = 3; -// diff --git a/src/common/protocol/ask-user-config.h b/src/common/protocol/ask-user-config.h index 0205bb3..7b77be4 100644 --- a/src/common/protocol/ask-user-config.h +++ b/src/common/protocol/ask-user-config.h @@ -21,12 +21,13 @@ #pragma once #include - -extern const std::string SOCKET_STREAM_PATH; -extern const std::string SOCKET_DGRAM_PATH; +#include // We want to use it constat expressions (this is the reason why it's not in cpp file const int MSGID_POPUP = 1; const int MSGID_TOAST1 = 2; const int MSGID_TOAST2 = 3; +std::string getDatagramSocketPath(uid_t uid); +std::string getStreamSocketPath(uid_t uid); + diff --git a/src/common/protocol/channel.cpp b/src/common/protocol/channel.cpp index 657252c..d320e38 100644 --- a/src/common/protocol/channel.cpp +++ b/src/common/protocol/channel.cpp @@ -34,11 +34,8 @@ void Channel::init() { Sock stream(Sock::SRV_STREAM); Sock datagram(Sock::SRV_DGRAM); - uid_t uid = getuid(); - std::string path = SOCKET_STREAM_PATH + "." + std::to_string(uid); - stream.connect(path); - path = SOCKET_DGRAM_PATH + "." + std::to_string(uid); - datagram.connect(path); + stream.connect(getStreamSocketPath(getuid())); + datagram.connect(getDatagramSocketPath(getuid())); int fd1 = stream.getFd(); int fd2 = datagram.getFd(); diff --git a/systemd/CMakeLists.txt b/systemd/CMakeLists.txt index 13e8559..334c3c7 100644 --- a/systemd/CMakeLists.txt +++ b/systemd/CMakeLists.txt @@ -27,7 +27,8 @@ ENDIF (BUILD_ASKUSER) IF (BUILD_ASKUSER_NOTIFICATION) INSTALL(FILES ${CMAKE_SOURCE_DIR}/systemd/askuser-notification.service - ${CMAKE_SOURCE_DIR}/systemd/askuser-notification.socket + ${CMAKE_SOURCE_DIR}/systemd/askuser-notification-stream.socket + ${CMAKE_SOURCE_DIR}/systemd/askuser-notification-datagram.socket DESTINATION lib/systemd/user ) diff --git a/systemd/askuser-notification-datagram.socket b/systemd/askuser-notification-datagram.socket new file mode 100644 index 0000000..bef0569 --- /dev/null +++ b/systemd/askuser-notification-datagram.socket @@ -0,0 +1,8 @@ +[Socket] +ListenDatagram=/run/user_ext/%U/askuser-notification-datagram.socket +SocketMode=0770 + +Service=askuser-notification.service + +[Install] +WantedBy=sockets.target diff --git a/systemd/askuser-notification-stream.socket b/systemd/askuser-notification-stream.socket new file mode 100644 index 0000000..263a64a --- /dev/null +++ b/systemd/askuser-notification-stream.socket @@ -0,0 +1,8 @@ +[Socket] +ListenStream=/run/user_ext/%U/askuser-notification-stream.socket +SocketMode=0770 + +Service=askuser-notification.service + +[Install] +WantedBy=sockets.target diff --git a/systemd/askuser-notification.socket b/systemd/askuser-notification.socket deleted file mode 100644 index 194ab60..0000000 --- a/systemd/askuser-notification.socket +++ /dev/null @@ -1,9 +0,0 @@ -[Socket] -ListenStream=/run/user_ext/%U/askuser-notification.socket -SocketMode=0770 - -Service=askuser-notification.service -ExecStartPost=/usr/bin/chmod 0666 /run/user_ext/%U/askuser-notification.socket - -[Install] -WantedBy=sockets.target