1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

Revert "lib/tsocket: sa_socklen is a macro on irix, so better use sasocklen"

This reverts commit 3d4fb698660381e650d7caeb5b7cff12847c0fb8.

This was wrong... The problem was in the caller, sa_len is a macro on irix

metze
This commit is contained in:
Stefan Metzmacher 2010-08-28 08:25:19 +02:00
parent 04f021e692
commit 8494d09b89
3 changed files with 39 additions and 39 deletions

View File

@ -843,7 +843,7 @@ struct sockaddr;
*
* @param[in] sa The sockaddr structure to convert.
*
* @param[in] sasocklen The lenth of the sockaddr sturucte.
* @param[in] sa_socklen The lenth of the sockaddr sturucte.
*
* @param[out] addr The tsocket pointer to allocate and fill.
*
@ -851,17 +851,17 @@ struct sockaddr;
*/
int tsocket_address_bsd_from_sockaddr(TALLOC_CTX *mem_ctx,
struct sockaddr *sa,
size_t sasocklen,
size_t sa_socklen,
struct tsocket_address **addr);
#else
int _tsocket_address_bsd_from_sockaddr(TALLOC_CTX *mem_ctx,
struct sockaddr *sa,
size_t sasocklen,
size_t sa_socklen,
struct tsocket_address **_addr,
const char *location);
#define tsocket_address_bsd_from_sockaddr(mem_ctx, sa, sasocklen, _addr) \
_tsocket_address_bsd_from_sockaddr(mem_ctx, sa, sasocklen, _addr, \
#define tsocket_address_bsd_from_sockaddr(mem_ctx, sa, sa_socklen, _addr) \
_tsocket_address_bsd_from_sockaddr(mem_ctx, sa, sa_socklen, _addr, \
__location__)
#endif
@ -872,10 +872,10 @@ int _tsocket_address_bsd_from_sockaddr(TALLOC_CTX *mem_ctx,
*
* @param[in] sa The bsd sockaddr structure to fill out.
*
* @param[in] sasocklen The length of the bsd sockaddr structure to fill out.
* @param[in] sa_socklen The length of the bsd sockaddr structure to fill out.
*
* @return The actual size of the sockaddr structure, -1 on error
* with errno set. The size could differ from sasocklen.
* with errno set. The size could differ from sa_socklen.
*
* @code
* ssize_t socklen;
@ -891,7 +891,7 @@ int _tsocket_address_bsd_from_sockaddr(TALLOC_CTX *mem_ctx,
*/
ssize_t tsocket_address_bsd_sockaddr(const struct tsocket_address *addr,
struct sockaddr *sa,
size_t sasocklen);
size_t sa_socklen);
#ifdef DOXYGEN
/**

View File

@ -190,7 +190,7 @@ static ssize_t tsocket_bsd_pending(int fd)
static const struct tsocket_address_ops tsocket_address_bsd_ops;
struct tsocket_address_bsd {
socklen_t sasocklen;
socklen_t sa_socklen;
union {
struct sockaddr sa;
struct sockaddr_in in;
@ -204,38 +204,38 @@ struct tsocket_address_bsd {
int _tsocket_address_bsd_from_sockaddr(TALLOC_CTX *mem_ctx,
struct sockaddr *sa,
size_t sasocklen,
size_t sa_socklen,
struct tsocket_address **_addr,
const char *location)
{
struct tsocket_address *addr;
struct tsocket_address_bsd *bsda;
if (sasocklen < sizeof(sa->sa_family)) {
if (sa_socklen < sizeof(sa->sa_family)) {
errno = EINVAL;
return -1;
}
switch (sa->sa_family) {
case AF_UNIX:
if (sasocklen > sizeof(struct sockaddr_un)) {
sasocklen = sizeof(struct sockaddr_un);
if (sa_socklen > sizeof(struct sockaddr_un)) {
sa_socklen = sizeof(struct sockaddr_un);
}
break;
case AF_INET:
if (sasocklen < sizeof(struct sockaddr_in)) {
if (sa_socklen < sizeof(struct sockaddr_in)) {
errno = EINVAL;
return -1;
}
sasocklen = sizeof(struct sockaddr_in);
sa_socklen = sizeof(struct sockaddr_in);
break;
#ifdef HAVE_IPV6
case AF_INET6:
if (sasocklen < sizeof(struct sockaddr_in6)) {
if (sa_socklen < sizeof(struct sockaddr_in6)) {
errno = EINVAL;
return -1;
}
sasocklen = sizeof(struct sockaddr_in6);
sa_socklen = sizeof(struct sockaddr_in6);
break;
#endif
default:
@ -243,7 +243,7 @@ int _tsocket_address_bsd_from_sockaddr(TALLOC_CTX *mem_ctx,
return -1;
}
if (sasocklen > sizeof(struct sockaddr_storage)) {
if (sa_socklen > sizeof(struct sockaddr_storage)) {
errno = EINVAL;
return -1;
}
@ -260,9 +260,9 @@ int _tsocket_address_bsd_from_sockaddr(TALLOC_CTX *mem_ctx,
ZERO_STRUCTP(bsda);
memcpy(&bsda->u.ss, sa, sasocklen);
memcpy(&bsda->u.ss, sa, sa_socklen);
bsda->sasocklen = sasocklen;
bsda->sa_socklen = sa_socklen;
*_addr = addr;
return 0;
@ -270,7 +270,7 @@ int _tsocket_address_bsd_from_sockaddr(TALLOC_CTX *mem_ctx,
ssize_t tsocket_address_bsd_sockaddr(const struct tsocket_address *addr,
struct sockaddr *sa,
size_t sasocklen)
size_t sa_socklen)
{
struct tsocket_address_bsd *bsda = talloc_get_type(addr->private_data,
struct tsocket_address_bsd);
@ -280,18 +280,18 @@ ssize_t tsocket_address_bsd_sockaddr(const struct tsocket_address *addr,
return -1;
}
if (sasocklen < bsda->sasocklen) {
if (sa_socklen < bsda->sa_socklen) {
errno = EINVAL;
return -1;
}
if (sasocklen > bsda->sasocklen) {
memset(sa, 0, sasocklen);
sasocklen = bsda->sasocklen;
if (sa_socklen > bsda->sa_socklen) {
memset(sa, 0, sa_socklen);
sa_socklen = bsda->sa_socklen;
}
memcpy(sa, &bsda->u.ss, sasocklen);
return sasocklen;
memcpy(sa, &bsda->u.ss, sa_socklen);
return sa_socklen;
}
bool tsocket_address_is_inet(const struct tsocket_address *addr, const char *fam)
@ -627,7 +627,7 @@ static struct tsocket_address *tsocket_address_bsd_copy(const struct tsocket_add
ret = _tsocket_address_bsd_from_sockaddr(mem_ctx,
&bsda->u.sa,
bsda->sasocklen,
bsda->sa_socklen,
&copy,
location);
if (ret != 0) {
@ -899,10 +899,10 @@ static void tdgram_bsd_recvfrom_handler(void *private_data)
}
ZERO_STRUCTP(bsda);
bsda->sasocklen = sizeof(bsda->u.ss);
bsda->sa_socklen = sizeof(bsda->u.ss);
ret = recvfrom(bsds->fd, state->buf, state->len, 0,
&bsda->u.sa, &bsda->sasocklen);
&bsda->u.sa, &bsda->sa_socklen);
err = tsocket_bsd_error_from_errno(ret, errno, &retry);
if (retry) {
/* retry later */
@ -1037,7 +1037,7 @@ static void tdgram_bsd_sendto_handler(void *private_data)
struct tdgram_context *dgram = state->dgram;
struct tdgram_bsd *bsds = tdgram_context_data(dgram, struct tdgram_bsd);
struct sockaddr *sa = NULL;
socklen_t sasocklen = 0;
socklen_t sa_socklen = 0;
ssize_t ret;
int err;
bool retry;
@ -1048,10 +1048,10 @@ static void tdgram_bsd_sendto_handler(void *private_data)
struct tsocket_address_bsd);
sa = &bsda->u.sa;
sasocklen = bsda->sasocklen;
sa_socklen = bsda->sa_socklen;
}
ret = sendto(bsds->fd, state->buf, state->len, 0, sa, sasocklen);
ret = sendto(bsds->fd, state->buf, state->len, 0, sa, sa_socklen);
err = tsocket_bsd_error_from_errno(ret, errno, &retry);
if (retry) {
/* retry later */
@ -1302,7 +1302,7 @@ static int tdgram_bsd_dgram_socket(const struct tsocket_address *local,
}
if (do_bind) {
ret = bind(fd, &lbsda->u.sa, lbsda->sasocklen);
ret = bind(fd, &lbsda->u.sa, lbsda->sa_socklen);
if (ret == -1) {
int saved_errno = errno;
talloc_free(dgram);
@ -1318,7 +1318,7 @@ static int tdgram_bsd_dgram_socket(const struct tsocket_address *local,
return -1;
}
ret = connect(fd, &rbsda->u.sa, rbsda->sasocklen);
ret = connect(fd, &rbsda->u.sa, rbsda->sa_socklen);
if (ret == -1) {
int saved_errno = errno;
talloc_free(dgram);
@ -2116,7 +2116,7 @@ static struct tevent_req * tstream_bsd_connect_send(TALLOC_CTX *mem_ctx,
}
if (do_bind) {
ret = bind(state->fd, &lbsda->u.sa, lbsda->sasocklen);
ret = bind(state->fd, &lbsda->u.sa, lbsda->sa_socklen);
if (ret == -1) {
tevent_req_error(req, errno);
goto post;
@ -2128,7 +2128,7 @@ static struct tevent_req * tstream_bsd_connect_send(TALLOC_CTX *mem_ctx,
goto post;
}
ret = connect(state->fd, &rbsda->u.sa, rbsda->sasocklen);
ret = connect(state->fd, &rbsda->u.sa, rbsda->sa_socklen);
err = tsocket_bsd_error_from_errno(ret, errno, &retry);
if (retry) {
/* retry later */

View File

@ -439,7 +439,7 @@ Otherwise it returns 0.
int tsocket_address_bsd_from_sockaddr(TALLOC_CTX *mem_ctx,
struct sockaddr *sa,
socklen_t sasocklen,
socklen_t sa_socklen,
struct tsocket_address **addr);
In some situations it's needed to get a 'struct sockaddr' from a
@ -450,7 +450,7 @@ success, otherwise it returns -1 and sets 'errno'.
ssize_t tsocket_address_bsd_sockaddr(const struct tsocket_address *addr,
struct sockaddr *sa,
socklen_t sasocklen);
socklen_t sa_socklen);
In some situations it's needed to wrap existing file descriptors
into the tstream abstraction. You can use tstream_bsd_existing_socket()