[Xcb] Questions about XCB using domain sockets.
Alan Coopersmith
alan.coopersmith at oracle.com
Mon Feb 26 18:07:08 UTC 2018
On 02/26/18 12:13 AM, xc haze wrote:
> Hi:
> When I look at XCB communication,
> static int _xcb_open_abstract(char *protocol, const char *file, size_t filelen)
> {
> int fd;
> struct sockaddr_un addr = {0};
> socklen_t namelen;
>
> if (protocol && strcmp("unix",protocol))
> return -1;
>
> strcpy(addr.sun_path + 1, file);
> addr.sun_family = AF_UNIX;
> namelen = offsetof(struct sockaddr_un, sun_path) + 1 + filelen;
> 。。。。。。
> }
> Why do we add one to addr->sun_path?
Because abstract sockets have the name field start with a byte of 0,
then the actual name, to distinguish them from filesystem pathnames.
See "Address format" in http://man7.org/linux/man-pages/man7/unix.7.html
--
-Alan Coopersmith- alan.coopersmith at oracle.com
Oracle Solaris Engineering - https://blogs.oracle.com/alanc
More information about the Xcb
mailing list