Re: Questions about XCB using domain sockets.
Alan Coopersmith <[email protected]>
| Newsgroups | gmane.comp.freedesktop.xcb |
|---|---|
| Message-ID | <[email protected]> |
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- [email protected]
Oracle Solaris Engineering - https://blogs.oracle.com/alanc
_______________________________________________
Xcb mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/xcb