short port;
unsigned short port;
int BIO_accept(sock,addr)int sock;char **addr;	{	int ret=INVALID_SOCKET;	static struct sockaddr_in from;	unsigned long l;	short port;	int len;	char *p;	memset((char *)&from,0,sizeof(from));	len=sizeof(from);	ret=accept(sock,(struct sockaddr *)&from,&len);	if (ret == INVALID_SOCKET)		{		SYSerr(SYS_F_ACCEPT,get_last_socket_error());		BIOerr(BIO_F_BIO_ACCEPT,BIO_R_ACCEPT_ERROR);		goto end;		}	if (addr == NULL) goto end;	l=ntohl(from.sin_addr.s_addr);	port=ntohs(from.sin_port);	if (*addr == NULL)		{		if ((p=Malloc(24)) == NULL)			{			BIOerr(BIO_F_BIO_ACCEPT,ERR_R_MALLOC_FAILURE);			goto end;			}		*addr=p;		}	sprintf(*addr,"%d.%d.%d.%d:%d",		(unsigned char)(l>>24L)&0xff,		(unsigned char)(l>>16L)&0xff,		(unsigned char)(l>> 8L)&0xff,		(unsigned char)(l     )&0xff,		port);end:	return(ret);	}