Red de conocimientos turísticos - Información de alquiler - ¿Alguien conoce el código fuente de la función getpeername?

¿Alguien conoce el código fuente de la función getpeername?

#include

#include

#include

#include

#include

#include

#include

r= ioctl(socket, NWIOGTCPCONF, &tcpconf);

if (r != -1 || errno != ENOTTY)

{

if (r == -1)

{

/* Descriptor de archivo incorrecto*/

return -1;

}

return _tcp_getpeername(socket, dirección, dirección_len,

&tcpconf);

}

#if DEBUG

fprintf(stderr, "getpeername: no implementado para fd %d\n", socket);

#endif

errno= ENOSYS;

return -1;

}

static int _tcp_getpeername(int socket, struct sockaddr *_RESTRICT dirección,

socklen_t *_RESTRICT dirección_len, nwio_tcpconf_t *tcpconfp)

{

socklen_t len;

struct sockaddr_in sin

if (tcpconfp->nwtc_remaddr == 0 ||

tcpconfp->nwtc_remport == 0)

{

errno= ENOTCONN;

Retorno -1;

}

memset(&sin, '\0', sizeof(sin));

sin.sin_family= AFF.sin_family= AFF.sin_family= AFF.sin_family= AFF.sin_family= AFF. sinsin_family= AF_INET;

sin.sin_addr.s_addr=tcpconfp->nwtc_remaddr;

sin .sin_port= tcpconfp->nwtc_remport;

len= * dirección_len;

if (len > tamaño de (sin))

len= tamaño de (sin);

memcpy( dirección, &sin, len);

p>

*address_len= len;

devuelve 0;

}