[CRIU] [PATCH v5 03/11] sk-queue: Allow to dump a skb sender
Pavel Emelyanov
xemul at virtuozzo.com
Mon Jul 4 10:27:19 PDT 2016
On 06/28/2016 04:04 PM, Kirill Tkhai wrote:
>
>
> On 28.06.2016 15:21, Pavel Emelyanov wrote:
>> On 06/16/2016 04:53 PM, Kirill Tkhai wrote:
>>> Add a possibility to dump a packet sender using a method get_sender,
>>> passed by caller.
>>>
>>> v5: Delete USK_EMPTY_Q flag
>>>
>>> Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
>>> ---
>>> criu/include/sk-queue.h | 4 +++-
>>> criu/sk-queue.c | 42 ++++++++++++++++++++++++++++++++++--------
>>> criu/sk-unix.c | 2 +-
>>> 3 files changed, 38 insertions(+), 10 deletions(-)
>>>
>>> diff --git a/criu/include/sk-queue.h b/criu/include/sk-queue.h
>>> index e0a47af..5fd2e01 100644
>>> --- a/criu/include/sk-queue.h
>>> +++ b/criu/include/sk-queue.h
>>> @@ -1,8 +1,10 @@
>>> #ifndef __CR_SK_QUEUE_H__
>>> #define __CR_SK_QUEUE_H__
>>>
>>> +#define SK_NONAME_SENDER (~0ULL)
>>> +
>>> extern struct collect_image_info sk_queues_cinfo;
>>> -extern int dump_sk_queue(int sock_fd, int sock_id);
>>> +extern int dump_sk_queue(int sock_fd, int sock_id, u64 (*get_sender)(const char *, int));
>>> extern int restore_sk_queue(int fd, unsigned int peer_id);
>>>
>>> #endif /* __CR_SK_QUEUE_H__ */
>>> diff --git a/criu/sk-queue.c b/criu/sk-queue.c
>>> index 50854d7..ded9ca9 100644
>>> --- a/criu/sk-queue.c
>>> +++ b/criu/sk-queue.c
>>> @@ -59,12 +59,15 @@ struct collect_image_info sk_queues_cinfo = {
>>> .collect = collect_one_packet,
>>> };
>>>
>>> -int dump_sk_queue(int sock_fd, int sock_id)
>>> +/* Currently known the longest possible sender name thru all socket types */
>>> +#define MAX_MSG_NAME_LEN (sizeof (struct sockaddr_un))
>>> +
>>> +int dump_sk_queue(int sock_fd, int sock_id, u64 (*get_sender)(const char *, int))
>>
>> Any reason why this is a function pointer, rather than bool dump_sender_ino ?
>
> Just to do not export unix_sk_entry etc to sk-queue. I can get rid of that.
> Are you OK with export?
Yup.
>>> {
>>> - SkPacketEntry pe = SK_PACKET_ENTRY__INIT;
>>> int ret, size, orig_peek_off;
>>> - void *data;
>>> + void *data, *mem;
>>> socklen_t tmp;
>>> + u64 next;
>>>
>>> /*
>>> * Save original peek offset.
>>
> .
>
More information about the CRIU
mailing list