Fix API to always include socket name length.

This commit is contained in:
Kristian Høgsberg 2008-12-07 15:22:22 -05:00
parent cb70316105
commit dc0f355f0a
9 changed files with 22 additions and 21 deletions

View file

@ -83,11 +83,11 @@ connection_update(struct wl_connection *connection,
}
WL_EXPORT struct wl_display *
wl_display_create(const char *address)
wl_display_create(const char *name, size_t name_size)
{
struct wl_display *display;
struct wl_global *global;
struct sockaddr_un name;
struct sockaddr_un addr;
socklen_t size;
char buffer[256];
uint32_t id, length, count, i;
@ -103,12 +103,12 @@ wl_display_create(const char *address)
return NULL;
}
name.sun_family = AF_LOCAL;
memcpy(name.sun_path, address, strlen(address + 1) + 2);
addr.sun_family = AF_LOCAL;
memcpy(addr.sun_path, name, name_size);
size = offsetof (struct sockaddr_un, sun_path) + sizeof socket_name;
size = offsetof (struct sockaddr_un, sun_path) + name_size;
if (connect(display->fd, (struct sockaddr *) &name, size) < 0) {
if (connect(display->fd, (struct sockaddr *) &addr, size) < 0) {
close(display->fd);
free(display);
return NULL;