mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-11-01 23:18:21 +00:00
unix sockets: fix address behaviour
This commit is contained in:
+5
-3
@@ -42,7 +42,7 @@ int unsocket_bind(struct _socket_t* sock, sockaddr_un* addr, size_t addrlen){
|
|||||||
|
|
||||||
sockaddr_un unaddr;
|
sockaddr_un unaddr;
|
||||||
|
|
||||||
memcpy(&unaddr, addr, addrlen);
|
memcpy(&unaddr, addr, sizeof(sockaddr_un));
|
||||||
|
|
||||||
if(unaddr.sun_family != AF_UNIX)
|
if(unaddr.sun_family != AF_UNIX)
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
@@ -68,7 +68,7 @@ int unsocket_bind(struct _socket_t* sock, sockaddr_un* addr, size_t addrlen){
|
|||||||
socketnode->objdata = sock;
|
socketnode->objdata = sock;
|
||||||
|
|
||||||
sock->addr_un = unaddr;
|
sock->addr_un = unaddr;
|
||||||
sock->addrlen = addrlen;
|
sock->addrlen = sizeof(sockaddr_un);
|
||||||
sock->state = SOCKET_STATE_BOUND;
|
sock->state = SOCKET_STATE_BOUND;
|
||||||
err = 0;
|
err = 0;
|
||||||
|
|
||||||
@@ -90,7 +90,7 @@ int unsocket_connect(struct _socket_t* sock, void* addr, size_t addrlen){
|
|||||||
return EINVAL;
|
return EINVAL;
|
||||||
|
|
||||||
sockaddr_un addr_un;
|
sockaddr_un addr_un;
|
||||||
memcpy(&addr_un, addr, addrlen);
|
memcpy(&addr_un, addr, sizeof(sockaddr_un));
|
||||||
|
|
||||||
if(addr_un.sun_family != AF_UNIX)
|
if(addr_un.sun_family != AF_UNIX)
|
||||||
return EAFNOSUPPORT;
|
return EAFNOSUPPORT;
|
||||||
@@ -202,6 +202,8 @@ int unsocket_accept(socket_t** peer, socket_t* sock, void* addr, size_t* addrlen
|
|||||||
spinlock_acquire(&sock->lock);
|
spinlock_acquire(&sock->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO put peer name here
|
||||||
|
|
||||||
*peer = socket_popfrombacklog(sock);
|
*peer = socket_popfrombacklog(sock);
|
||||||
|
|
||||||
spinlock_release(&sock->lock);
|
spinlock_release(&sock->lock);
|
||||||
|
|||||||
Reference in New Issue
Block a user