summaryrefslogtreecommitdiff
path: root/debian/patches/0023-utils-rpctrace-make-trace_and_forward-payload-aware.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/0023-utils-rpctrace-make-trace_and_forward-payload-aware.patch')
-rw-r--r--debian/patches/0023-utils-rpctrace-make-trace_and_forward-payload-aware.patch65
1 files changed, 0 insertions, 65 deletions
diff --git a/debian/patches/0023-utils-rpctrace-make-trace_and_forward-payload-aware.patch b/debian/patches/0023-utils-rpctrace-make-trace_and_forward-payload-aware.patch
deleted file mode 100644
index 3b7c2458..00000000
--- a/debian/patches/0023-utils-rpctrace-make-trace_and_forward-payload-aware.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 2f8b47d3c7d991f9f030dd688b2bffb2f228d48a Mon Sep 17 00:00:00 2001
-From: Justus Winter <4winter@informatik.uni-hamburg.de>
-Date: Thu, 28 Nov 2013 12:21:49 +0100
-Subject: [PATCH hurd 23/27] utils/rpctrace: make `trace_and_forward'
- payload-aware
-
-As the protected payloads were retrofitted into the Mach message
-format, the local port type is lost.
-
-* utils/rpctrace.c (is_notification): New function
-(trace_and_forward): Recover the original local port type.
----
- utils/rpctrace.c | 29 ++++++++++++++++++++++++++++-
- 1 file changed, 28 insertions(+), 1 deletion(-)
-
-diff --git a/utils/rpctrace.c b/utils/rpctrace.c
-index c954e51..62d3c87 100644
---- a/utils/rpctrace.c
-+++ b/utils/rpctrace.c
-@@ -1195,6 +1195,16 @@ wrap_new_task (mach_msg_header_t *inp, struct req_info *req)
- ports_port_deref (task_wrapper1);
- }
-
-+/* Returns true if the given message is a Mach notification. */
-+static inline int
-+is_notification (const mach_msg_header_t *InHeadP)
-+{
-+ int msgh_id = InHeadP->msgh_id - 64;
-+ if ((msgh_id > 8) || (msgh_id < 0))
-+ return 0;
-+ return 1;
-+}
-+
- int
- trace_and_forward (mach_msg_header_t *inp, mach_msg_header_t *outp)
- {
-@@ -1219,7 +1229,24 @@ trace_and_forward (mach_msg_header_t *inp, mach_msg_header_t *outp)
- /* Look up our record for the receiving port. There is no need to check
- the class, because our port bucket only ever contains one class of
- ports (traced_class). */
-- info = ports_lookup_port (traced_bucket, inp->msgh_local_port, 0);
-+
-+ if (MACH_MSGH_BITS_LOCAL (inp->msgh_bits) == MACH_MSG_TYPE_PROTECTED_PAYLOAD)
-+ {
-+ info = ports_lookup_payload (traced_bucket, inp->msgh_protected_payload,
-+ NULL);
-+ if (info)
-+ {
-+ /* Undo the protected payload optimization. */
-+ inp->msgh_bits = MACH_MSGH_BITS (
-+ MACH_MSGH_BITS_REMOTE (inp->msgh_bits),
-+ is_notification (inp)? MACH_MSG_TYPE_MOVE_SEND_ONCE: info->type)
-+ | MACH_MSGH_BITS_OTHER (inp->msgh_bits);
-+ inp->msgh_local_port = ports_payload_get_name (info);
-+ }
-+ }
-+ else
-+ info = ports_lookup_port (traced_bucket, inp->msgh_local_port, NULL);
-+
- assert (info);
-
- /* A notification message from the kernel appears to have been sent
---
-2.1.3
-