/* Internal helper. Must be called with the cgmanager dbus socket open */ static bool lxc_cgmanager_chmod(const char *controller, const char *cgroup_path, const char *file, int mode) { if (cgmanager_chmod_sync(NULL, cgroup_manager, controller, cgroup_path, file, mode) != 0) { NihError *nerr; nerr = nih_error_get(); ERROR("call to cgmanager_chmod_sync failed: %s", nerr->message); nih_free(nerr); return false; } return true; }
bool cgm_chmod_file(const char *controller, const char *file, mode_t mode) { if (!cgm_dbus_connect()) { return false; } if ( cgmanager_chmod_sync(NULL, cgroup_manager, controller, file, "", mode) != 0) { NihError *nerr; nerr = nih_error_get(); fprintf(stderr, "call to chmod (%s:%s, %d) failed: %s\n", controller, file, mode, nerr->message); nih_free(nerr); cgm_dbus_disconnect(); return false; } cgm_dbus_disconnect(); return true; }