// $Id$
//
-// Copyright (C) 2006
+// Copyright (C) 2006
// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
// Stefan Bund <stefan.bund@fokus.fraunhofer.de>
void stop()
{
- if (server_pid) {
- kill(server_pid,9);
- wait();
- server_pid = 0;
- }
+ if (server_pid) {
+ kill(server_pid,9);
+ wait();
+ server_pid = 0;
+ }
}
}
if (setsockopt(serv,SOL_SOCKET,SO_REUSEADDR,&v,sizeof(v))<0)
fail("server_v4","setsockopt()");
struct sockaddr_in sin;
- ::memset(&sin,0,sizeof(sin));
+ ::memset(&sin,0,sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_port = htons(12345);
sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
if (setsockopt(serv,SOL_SOCKET,SO_REUSEADDR,&v,sizeof(v))<0)
fail("server_v6","setsockopt()");
struct sockaddr_in6 sin;
- ::memset(&sin,0,sizeof(sin));
+ ::memset(&sin,0,sizeof(sin));
sin.sin6_family = AF_INET6;
sin.sin6_port = htons(12345);
sin.sin6_addr = in6addr_loopback;
}
try {
- alarm(10);
+ alarm(10);
start(server_v4);
senf::TCPv4ClientSocketHandle sock;
BOOST_CHECK_NO_THROW( sock.bind("127.0.0.1:23456") );
BOOST_CHECK_EQUAL( sock.sndbuf(), 2048u );
BOOST_CHECK_NO_THROW( sock.write("TEST-WRITE") );
BOOST_CHECK_EQUAL( sock.read(), "TEST-WRITE" );
- // this fails with ENOFILE ... why ????
- // BOOST_CHECK_NO_THROW( sock.protocol().timestamp() );
BOOST_CHECK( !sock.eof() );
sock.write("QUIT");
sleep(1);
BOOST_CHECK_EQUAL( sock.read(), "" );
BOOST_CHECK( sock.eof() );
BOOST_CHECK( !sock );
- alarm(0);
+ alarm(0);
} catch (...) {
- alarm(0);
- sleep(1);
- stop();
- sleep(1);
- throw;
+ alarm(0);
+ sleep(1);
+ stop();
+ sleep(1);
+ throw;
}
-
+
{
senf::TCPv4ClientSocketHandle sock;
// are at least not sensible ...
// I'll have to move those to a UDPSocket test ... they should
// realy only be in the UDP Protocol implementation
- BOOST_CHECK_NO_THROW( sock.protocol().mcTTL() );
- BOOST_CHECK_THROW( sock.protocol().mcTTL(1), senf::SystemException );
- BOOST_CHECK_NO_THROW( sock.protocol().mcLoop() );
- BOOST_CHECK_NO_THROW( sock.protocol().mcLoop(false) );
- BOOST_CHECK_NO_THROW( sock.protocol().mcAddMembership("224.0.0.1:0") );
- BOOST_CHECK_NO_THROW( sock.protocol().mcAddMembership("224.0.0.1:0","127.0.0.1:0") );
- BOOST_CHECK_NO_THROW( sock.protocol().mcDropMembership("224.0.0.1:0","127.0.0.1:0") );
- BOOST_CHECK_NO_THROW( sock.protocol().mcDropMembership("224.0.0.1:0") );
- BOOST_CHECK_THROW( sock.protocol().mcIface("lo"), senf::SystemException );
-
+// BOOST_CHECK_NO_THROW( sock.protocol().mcTTL() );
+// BOOST_CHECK_THROW( sock.protocol().mcTTL(1), senf::SystemException );
+// BOOST_CHECK_NO_THROW( sock.protocol().mcLoop() );
+// BOOST_CHECK_NO_THROW( sock.protocol().mcLoop(false) );
+// BOOST_CHECK_NO_THROW( sock.protocol().mcAddMembership("224.0.0.1:0") );
+// BOOST_CHECK_NO_THROW( sock.protocol().mcAddMembership("224.0.0.1:0","127.0.0.1:0") );
+// BOOST_CHECK_NO_THROW( sock.protocol().mcDropMembership("224.0.0.1:0","127.0.0.1:0") );
+// BOOST_CHECK_NO_THROW( sock.protocol().mcDropMembership("224.0.0.1:0") );
+// BOOST_CHECK_THROW( sock.protocol().mcIface("lo"), senf::SystemException );
+
// The following setsockopts are hard to REALLY test ...
BOOST_CHECK_NO_THROW( sock.protocol().nodelay(true) );
BOOST_CHECK( sock.protocol().nodelay() );
}
try {
- alarm(10);
+ alarm(10);
start(server_v6);
senf::TCPv6ClientSocketHandle sock;
BOOST_CHECK_NO_THROW( sock.bind("[::1]:23456") );
BOOST_CHECK_EQUAL( sock.read(), "" );
BOOST_CHECK( sock.eof() );
BOOST_CHECK( !sock );
- alarm(0);
+ alarm(0);
} catch (...) {
- alarm(0);
- sleep(1);
- stop();
- sleep(1);
- throw;
+ alarm(0);
+ sleep(1);
+ stop();
+ sleep(1);
+ throw;
}
-
+
{
senf::TCPv6ClientSocketHandle sock;
int sock = socket(PF_INET,SOCK_STREAM,0);
if (sock<0) fail("client_v4","socket()");
struct sockaddr_in sin;
- ::memset(&sin,0,sizeof(sin));
+ ::memset(&sin,0,sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_port = htons(12346);
sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
if (connect(sock,(struct sockaddr *)&sin,sizeof(sin)) < 0)
fail("client_v4","connect()");
-
+
char buffer[1024];
while (1) {
int n = read(sock,buffer,1024);
int sock = socket(PF_INET6,SOCK_STREAM,0);
if (sock<0) fail("client_v6","socket()");
struct sockaddr_in6 sin;
- ::memset(&sin,0,sizeof(sin));
+ ::memset(&sin,0,sizeof(sin));
sin.sin6_family = AF_INET6;
sin.sin6_port = htons(12347);
sin.sin6_addr = in6addr_loopback;
if (connect(sock,(struct sockaddr *)&sin,sizeof(sin)) < 0)
fail("client_v6","connect()");
-
+
char buffer[1024];
while (1) {
int n = read(sock,buffer,1024);
BOOST_AUTO_UNIT_TEST(tcpv4ServerSocketHandle)
{
try {
- alarm(10);
+ alarm(10);
BOOST_CHECKPOINT("Opening server socket");
senf::TCPv4ServerSocketHandle server ("127.0.0.1:12346");
BOOST_CHECKPOINT("Starting client");
BOOST_CHECKPOINT("Stopping client");
sleep(1);
stop();
- alarm(0);
+ alarm(0);
} catch (...) {
- alarm(0);
- sleep(1);
- stop();
- sleep(1);
- throw;
+ alarm(0);
+ sleep(1);
+ stop();
+ sleep(1);
+ throw;
}
}
BOOST_AUTO_UNIT_TEST(tcpv6ServerSocketHandle)
{
try {
- alarm(10);
+ alarm(10);
BOOST_CHECKPOINT("Opening server socket");
senf::TCPv6ServerSocketHandle server ("[::1]:12347");
BOOST_CHECKPOINT("Starting client");
BOOST_CHECKPOINT("Stopping client");
sleep(1);
stop();
- alarm(0);
+ alarm(0);
} catch (...) {
- alarm(0);
- sleep(1);
- stop();
- sleep(1);
- throw;
+ alarm(0);
+ sleep(1);
+ stop();
+ sleep(1);
+ throw;
}
}
\f
// Local Variables:
// mode: c++
+// fill-column: 100
// c-file-style: "senf"
+// indent-tabs-mode: nil
+// ispell-local-dictionary: "american"
// End: