From: Daniel Mack Date: Mon, 20 Oct 2014 12:39:27 +0000 (+0200) Subject: metadata: split KDBUS_ATTACH_COMM in _PID and _TID (ABI break) X-Git-Tag: upstream/0.20141102.012929utc~78 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f92c9ccc1b287b9a8554d48b275a94776496d725;p=platform%2Fcore%2Fsystem%2Fkdbus-bus.git metadata: split KDBUS_ATTACH_COMM in _PID and _TID (ABI break) Allow users to specify KDBUS_ATTACH_COMM_PID and KDBUS_ATTACH_COMM_TID separately. This also makes the attachment maintainance in metdata.c cleaner. Users that use _KDBUS_ATTACH_ALL just need to recompile. Signed-off-by: Daniel Mack --- diff --git a/handle.c b/handle.c index bca0261..25e1cee 100644 --- a/handle.c +++ b/handle.c @@ -135,13 +135,14 @@ static int kdbus_handle_open(struct inode *inode, struct file *file) goto exit_ep_unref; ret = kdbus_meta_append(handle->meta, NULL, 0, - KDBUS_ATTACH_CREDS | - KDBUS_ATTACH_COMM | - KDBUS_ATTACH_EXE | - KDBUS_ATTACH_CMDLINE | - KDBUS_ATTACH_CGROUP | - KDBUS_ATTACH_CAPS | - KDBUS_ATTACH_SECLABEL | + KDBUS_ATTACH_CREDS | + KDBUS_ATTACH_TID_COMM | + KDBUS_ATTACH_PID_COMM | + KDBUS_ATTACH_EXE | + KDBUS_ATTACH_CMDLINE | + KDBUS_ATTACH_CGROUP | + KDBUS_ATTACH_CAPS | + KDBUS_ATTACH_SECLABEL | KDBUS_ATTACH_AUDIT); if (ret < 0) goto exit_meta_free; diff --git a/kdbus.h b/kdbus.h index 453a8d1..e1fa21d 100644 --- a/kdbus.h +++ b/kdbus.h @@ -526,7 +526,8 @@ enum kdbus_hello_flags { * @KDBUS_ATTACH_CREDS: Credentials * @KDBUS_ATTACH_AUXGROUPS: Auxiliary groups * @KDBUS_ATTACH_NAMES: Well-known names - * @KDBUS_ATTACH_COMM: The "comm" process identifier + * @KDBUS_ATTACH_COMM_TID: The "comm" process identifier of the TID + * @KDBUS_ATTACH_COMM_PID: The "comm" process identifier of the PID * @KDBUS_ATTACH_EXE: The path of the executable * @KDBUS_ATTACH_CMDLINE: The process command line * @KDBUS_ATTACH_CGROUP: The croup membership @@ -541,15 +542,16 @@ enum kdbus_attach_flags { KDBUS_ATTACH_CREDS = 1ULL << 1, KDBUS_ATTACH_AUXGROUPS = 1ULL << 2, KDBUS_ATTACH_NAMES = 1ULL << 3, - KDBUS_ATTACH_COMM = 1ULL << 4, - KDBUS_ATTACH_EXE = 1ULL << 5, - KDBUS_ATTACH_CMDLINE = 1ULL << 6, - KDBUS_ATTACH_CGROUP = 1ULL << 7, - KDBUS_ATTACH_CAPS = 1ULL << 8, - KDBUS_ATTACH_SECLABEL = 1ULL << 9, - KDBUS_ATTACH_AUDIT = 1ULL << 10, - KDBUS_ATTACH_CONN_NAME = 1ULL << 11, - _KDBUS_ATTACH_ALL = (1ULL << 12) - 1, + KDBUS_ATTACH_TID_COMM = 1ULL << 4, + KDBUS_ATTACH_PID_COMM = 1ULL << 5, + KDBUS_ATTACH_EXE = 1ULL << 6, + KDBUS_ATTACH_CMDLINE = 1ULL << 7, + KDBUS_ATTACH_CGROUP = 1ULL << 8, + KDBUS_ATTACH_CAPS = 1ULL << 9, + KDBUS_ATTACH_SECLABEL = 1ULL << 10, + KDBUS_ATTACH_AUDIT = 1ULL << 11, + KDBUS_ATTACH_CONN_NAME = 1ULL << 12, + _KDBUS_ATTACH_ALL = (1ULL << 13) - 1, }; /** diff --git a/metadata.c b/metadata.c index 6ca308e..6861899 100644 --- a/metadata.c +++ b/metadata.c @@ -530,7 +530,7 @@ int kdbus_meta_append(struct kdbus_meta *meta, meta->attached |= KDBUS_ATTACH_NAMES; } - if (mask & KDBUS_ATTACH_COMM) { + if (mask & KDBUS_ATTACH_TID_COMM) { char comm[TASK_COMM_LEN]; get_task_comm(comm, current->group_leader); @@ -538,12 +538,18 @@ int kdbus_meta_append(struct kdbus_meta *meta, if (ret < 0) return ret; + meta->attached |= KDBUS_ATTACH_TID_COMM; + } + + if (mask & KDBUS_ATTACH_PID_COMM) { + char comm[TASK_COMM_LEN]; + get_task_comm(comm, current); ret = kdbus_meta_append_str(meta, KDBUS_ITEM_PID_COMM, comm); if (ret < 0) return ret; - meta->attached |= KDBUS_ATTACH_COMM; + meta->attached |= KDBUS_ATTACH_PID_COMM; } if (mask & KDBUS_ATTACH_EXE) {