[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87k3wzalux.fsf@xmission.com>
Date: Wed, 15 Aug 2012 14:25:42 -0700
From: ebiederm@...ssion.com (Eric W. Biederman)
To: "H. Peter Anvin" <hpa@...or.com>
Cc: Stanislav Kinsbursky <skinsbursky@...allels.com>,
tglx@...utronix.de, mingo@...hat.com, davem@...emloft.net,
thierry.reding@...onic-design.de, bfields@...hat.com,
eric.dumazet@...il.com, xemul@...allels.com, neilb@...e.de,
netdev@...r.kernel.org, x86@...nel.org,
linux-kernel@...r.kernel.org, paul.gortmaker@...driver.com,
viro@...iv.linux.org.uk, gorcunov@...nvz.org,
akpm@...ux-foundation.org, tim.c.chen@...ux.intel.com,
devel@...nvz.org
Subject: Re: [RFC PATCH 0/5] net: socket bind to file descriptor introduced
"H. Peter Anvin" <hpa@...or.com> writes:
> On 08/15/2012 12:49 PM, Eric W. Biederman wrote:
>>
>> There is also the trick of getting a shorter directory name using
>> /proc/self/fd if you are threaded and can't change the directory.
>>
>> The obvious choices at this point are
>> - Teach bind and connect and af_unix sockets to take longer AF_UNIX
>> socket path names.
>>
>> - introduce sockaddr_fd that can be applied to AF_UNIX sockets,
>> and teach unix_bind and unix_connect how to deal with a second type of sockaddr.
>> struct sockaddr_fd { short fd_family; short pad; int fd; };
>>
>> - introduce sockaddr_unix_at that takes a directory file descriptor
>> as well as a unix path, and teach unix_bind and unix_connect to deal with a
>> second sockaddr type.
>> struct sockaddr_unix_at { short family; short pad; int dfd; char path[102]; }
>> AF_UNIX_AT
>>
>> I don't know what the implications of for breaking connect up into 3
>> system calls and changing the semantics are and I would really rather
>> not have to think about it.
>>
>> But it certainly does not look to me like you introduce new systems
>> calls to do what you want.
>>
>
> How would you distinguish the new sockaddr types from the traditional
> one? New AF_?
Yeah. AF_FD or AF_UNIX_AT is what I was thinking. The way the code
falls out that should be compartively simple to implement.
recvmsg etc would give you sockaddr_un sockets when they come from the
kernel.
Eric
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists