#include "tcp.h"

int tcp_server( char *hname, char *sname )
{
	struct sockaddr_in local;
	int s;
	const int on = 1;

	set_address( hname, sname, &local, "tcp" );
	s = socket( AF_INET, SOCK_STREAM, 0 );
	if ( s <= 0 )
		error( 1, errno, "socket()" );

	if ( setsockopt( s, SOL_SOCKET, SO_REUSEADDR, ( char *)&on, sizeof(on)))
		error( 1, errno, "setsockopt()" );

	if ( bind( s, ( struct sockaddr * ) &local, sizeof(local)))
		error( 1, errno, "bind()" );

	if ( listen( s, NLISTEN ) )
		error( 1, errno, "listen()" );

	return s;
}
