1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-23 09:57:40 +03:00

merge fixes from 3.0

This commit is contained in:
Gerald Carter -
parent 98d9278c81
commit ea75f34eef

View File

@ -29,6 +29,29 @@ int lastport=0;
int smb_read_error = 0;
static char *get_socket_addr(int fd)
{
struct sockaddr sa;
struct sockaddr_in *sockin = (struct sockaddr_in *) (&sa);
int length = sizeof(sa);
static fstring addr_buf;
fstrcpy(addr_buf,"0.0.0.0");
if (fd == -1) {
return addr_buf;
}
if (getsockname(fd, &sa, &length) < 0) {
DEBUG(0,("getpeername failed. Error was %s\n", strerror(errno) ));
return addr_buf;
}
fstrcpy(addr_buf,(char *)inet_ntoa(sockin->sin_addr));
return addr_buf;
}
/****************************************************************************
Determine if a file descriptor is in fact a socket.
****************************************************************************/
@ -552,6 +575,10 @@ BOOL receive_smb_raw(int fd,char *buffer, unsigned int timeout)
smb_read_error = READ_ERROR;
return False;
}
/* not all of samba3 properly checks for packet-termination of strings. This
ensures that we don't run off into empty space. */
SSVAL(buffer+4,len, 0);
}
return True;
@ -954,29 +981,6 @@ char *get_peer_addr(int fd)
return addr_buf;
}
static char *get_socket_addr(int fd)
{
struct sockaddr sa;
struct sockaddr_in *sockin = (struct sockaddr_in *) (&sa);
int length = sizeof(sa);
static fstring addr_buf;
fstrcpy(addr_buf,"0.0.0.0");
if (fd == -1) {
return addr_buf;
}
if (getsockname(fd, &sa, &length) < 0) {
DEBUG(0,("getpeername failed. Error was %s\n", strerror(errno) ));
return addr_buf;
}
fstrcpy(addr_buf,(char *)inet_ntoa(sockin->sin_addr));
return addr_buf;
}
/*******************************************************************
Create protected unix domain socket.