Example #1
0
void dynsockets_final(void)
{
	if(hWinsock32) {
		_WSACleanup();
		FreeLibrary( hWinsock32 );
		hWinsock32 = 0;
	}
	_WSAStartup = 0;
	_WSACleanup = 0;
	_gethostname = 0;
	_inet_ntoa = 0;
	_gethostbyname = 0;
	_send = 0;
	_sendto = 0;
	_recv = 0;
	_recvfrom = 0;
	_listen = 0;
	_accept = 0;
	_socket = 0;
	_bind = 0;
	_WSAAsyncSelect = 0;
	_closesocket = 0;
	_getsockname = 0;
	_WSARecvFrom = 0;
	_WSAGetLastError = 0;
	_WSAConnect = 0;
	_setsockopt = 0;
	_WSAEventSelect = 0;
	_WSACreateEvent = 0;
	_WSACloseEvent = 0;
	_WSAResetEvent = 0;
	_WSAEnumNetworkEvents = 0;
	_shutdown = 0;
	_WSASend = 0;
	_WSARecv = 0;
	_inet_addr = 0;
}
Example #2
0
int main(int argc, char **argv)
{
	int rc;

	/* parse arguments */
	while ((rc = getopt(argc, argv, "csvumpU:h:b:P:q:l:")) != -1) {
		switch (rc) {
		case 'u':
			ud_test = 1;
			eps = MAX_EP_COUNT / 2;
			break;
		case 'm':
			multi_eps = 1;
			break;
		case 'c':
			server = 0;
			break;
		case 's':
			server = 1;
			break;
		case 'p':
			counters = 1;
			break;
		case 'h':
			remote_host = 1;
			strcpy(hostname, optarg);
			break;
		case 'b':
			buf_size = atoi(optarg);
			break;
		case 'U':
			ud_test = 1;
			eps = MIN(atoi(optarg), MAX_EP_COUNT);
			break;
		case 'P':
			strcpy(provider, optarg);
			break;
		case 'v':
			verbose = 1;
			break;
		case 'q':
			/* map UCM qpn into AF_INET6 sin6_flowinfo */
			remote.sin6_family = AF_INET6;
			remote.sin6_flowinfo = htonl(strtol(optarg,NULL,0));
			ucm = 1;
			server = 0;
			break;
		case 'l':
			/* map UCM lid into AF_INET6 sin6_port */
			remote.sin6_family = AF_INET6;
			remote.sin6_port = htons(strtol(optarg,NULL,0));
			ucm = 1;
			server = 0;
			break;
		default:
			print_usage();
			exit(-12);
		}
	}

#if defined(_WIN32) || defined(_WIN64)
	{
		WSADATA wsaData;
		int i;

		i = WSAStartup(MAKEWORD(2, 2), &wsaData);
		if (i != 0) {
			printf("%s WSAStartup(2.2) fail? (0x%x)\n", argv[0], i);
			fflush(stdout);
			exit(1);
		}
	}
#endif
	/* for non UD tests, -h is always client */
	if (remote_host && !ud_test)
		server = 0;

	if (!server) {
		printf("\nRunning as Client - %s %s %d endpoint(s)\n",
		       provider, ud_test ? "UD test" : "", eps);
	} else {
		printf("\nRunning as Server - %s %s %d endpoint(s)\n",
		       provider, ud_test ? "UD test" : "", eps);
	}

	/*
	 * connect
	 */
	if (connect_ep(hostname)) {
		_WSACleanup();
		exit(1);
	}
	if (ud_test)
		goto bail;

	if (do_immediate()) {
		_WSACleanup();
		exit(1);
	}
	if (do_cmp_swap()) {
		_WSACleanup();
		exit(1);
	}
	if (do_fetch_add()) {
		_WSACleanup();
		exit(1);
	}
      bail:
	rc = disconnect_ep();
	_WSACleanup();

	if (!rc)
		printf("\n IB extension test - %s test PASSED\n\n",
		       ud_test ? "UD" : "immed/atomic");
	return rc;
}