Esempio n. 1
0
int UdpSocketWindows::SetParameter(string ip, short port, unsigned long timeOut)
{
	CloseUDPSocket();

	this->ip = ip;
	this->port = port;
	this->timeOut = timeOut;

	return OpenUDPSocket();
}
Esempio n. 2
0
int main(int argc, char **argv)
{
  int server_sock, session_sock;
  
  if (argc > 1) TestInit(0);

  server_sock = OpenUDPSocket( 1701 );
  session_sock = OpenPPPoL2TPSocket();

  /* Try sending packets first to see if that helps */
  // SendRawPacket( server_sock, 1701, control_packet, sizeof( control_packet ) );
  // SendRawPacket( server_sock, 1701, data_packet,    sizeof( data_packet    ) );

  fcntl( server_sock, F_SETFL, O_NONBLOCK );
  fcntl( session_sock, F_SETFL, O_NONBLOCK );
  
  CheckPipe( server_sock );
  
  ConnectSock( session_sock, server_sock, 1701, 1, 2, 3, 4 );

  system( "./subtest-proc" );
  
  SendRawPacket( server_sock, 1701, control_packet, sizeof( control_packet ) );
  SendRawPacket( server_sock, 1701, data_packet,    sizeof( data_packet    ) );

  system( "./subtest-proc" );

  CheckPipe( server_sock );
  CheckPipe( session_sock );

  system( "./subtest-proc" );
  
  /* Close session socket first, because other way round breaks right now */  
  TestPrintf( "Closing session socket\n" );  
  close( session_sock );
  TestPrintf( "Closing server socket\n" );  
  close( server_sock );
  
  return 0;
}
Esempio n. 3
0
int main(int argc, char **argv)
{
  int server_sock1, session_sock1;
  int server_sock2, session_sock2;
  
  if (argc > 1) TestInit(0);

  server_sock1 = OpenUDPSocket( 1701 );
  session_sock1 = OpenPPPoL2TPSocket();

  server_sock2 = OpenUDPSocket( 1702 );
  session_sock2 = OpenPPPoL2TPSocket();

#if 0
  /* Try sending packets first to see if that helps */
  SendTestPacket( server_sock1, 1702 );
  SendTestPacket( server_sock2, 1701 );
#endif

  fcntl( server_sock1,  F_SETFL, O_NONBLOCK );
  fcntl( session_sock1, F_SETFL, O_NONBLOCK );
  fcntl( server_sock2,  F_SETFL, O_NONBLOCK );
  fcntl( session_sock2, F_SETFL, O_NONBLOCK );

  fcntl( server_sock1,  F_SETFD, FD_CLOEXEC );
  fcntl( session_sock1, F_SETFD, FD_CLOEXEC );
  fcntl( server_sock2,  F_SETFD, FD_CLOEXEC );
  fcntl( session_sock2, F_SETFD, FD_CLOEXEC );

  CheckPipe( server_sock1 );
  CheckPipe( server_sock2 );
    
  ConnectSock( session_sock1, server_sock1, 1702, 1, 2, 3, 4 );
  ConnectSock( session_sock2, server_sock2, 1701, 3, 4, 1, 2 );

  system( "./subtest-proc" );
  
  SendTestPacket( session_sock1, 1702 );
  SendTestPacket( session_sock2, 1701 );

  system( "./subtest-proc" );

  CheckPipe( server_sock1 );
  CheckPipe( session_sock1 );
  CheckPipe( server_sock2 );
  CheckPipe( session_sock2 );
  
  if (argc == 0)
  {
    StartLoopingFunction( session_sock1, 0, 0 );
    StartLoopingFunction( session_sock2, 0, 0 );
    StartLoopingFunction( server_sock1, 1702, 0 );
    StartLoopingFunction( server_sock2, 1701, 0 );
  }
  else
  {
    StartLoopingFunction( session_sock1, 0, 1000 );
    StartLoopingFunction( session_sock2, 0, 2000 );
    StartLoopingFunction( server_sock1, 1702, 3000 );
    StartLoopingFunction( server_sock2, 1701, 4000 );
  }

  if (argc == 0) 
  {
    char buf[16];
    fprintf( stdout, "Press any key to continue\n" );
    fgets( buf, 10, stdin );
  } 
  else 
  {
    fprintf(stdout, "Waiting 60 seconds...\n");
    sleep(60);
  }

  system( "./subtest-proc" );

  TestPrintf( "Closing server2 socket\n" );  
  close( server_sock2 );
  TestPrintf( "Closing session2 socket\n" );  
  close( session_sock2 );
  TestPrintf( "Closing session1 socket\n" );  
  close( session_sock1 );
  TestPrintf( "Closing server1 socket\n" );  
  close( server_sock1 );
  
  return 0;
}