diff --git a/CASA-auth-token/non-java/client/authtokenclient_msm/authtokenclient_msm.vdproj b/CASA-auth-token/non-java/client/authtokenclient_msm/authtokenclient_msm.vdproj index 40234396..50793d33 100644 --- a/CASA-auth-token/non-java/client/authtokenclient_msm/authtokenclient_msm.vdproj +++ b/CASA-auth-token/non-java/client/authtokenclient_msm/authtokenclient_msm.vdproj @@ -21,26 +21,26 @@ } "Entry" { - "MsmKey" = "8:_1231718055D14020BF756DCF44D2BF22" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { "MsmKey" = "8:_1ED6B3F7C91A4BBE875FC4621FC3CD97" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_2EEDD0C5BE8546CBA62A0852850DB473" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_313DE095D13281AF91A64E3F3D472413" + "OwnerKey" = "8:_F0358243F2B34E40852F2185663C5B71" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_313DE095D13281AF91A64E3F3D472413" - "OwnerKey" = "8:_2EEDD0C5BE8546CBA62A0852850DB473" + "MsmKey" = "8:_35590D5026504A138951C430142FECBA" + "OwnerKey" = "8:_8292EFFD84EF46C6BD2F1F3E20808684" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_3986DA1502244FFBB04A66472E74633B" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -64,18 +64,18 @@ "Entry" { "MsmKey" = "8:_92336612AC7D083F97ED302BB7674A2D" - "OwnerKey" = "8:_EE2A593B866F43FD8D97250E1457988A" + "OwnerKey" = "8:_3986DA1502244FFBB04A66472E74633B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_AFBDE40E9A784962B750ECA4C15ADD85" - "OwnerKey" = "8:_8292EFFD84EF46C6BD2F1F3E20808684" + "MsmKey" = "8:_EDA39B5CAD864AF0821AAFC9783DFF12" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_EE2A593B866F43FD8D97250E1457988A" + "MsmKey" = "8:_F0358243F2B34E40852F2185663C5B71" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } @@ -148,26 +148,6 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_1231718055D14020BF756DCF44D2BF22" - { - "SourcePath" = "8:..\\mechanisms\\krb5\\Krb5Authenticate.conf" - "TargetName" = "8:Krb5Authenticate.conf" - "Tag" = "8:" - "Folder" = "8:_DEA051CA331E4FEA83D99711FB584664" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } "{A582A373-4685-4296-BEFE-614B80A702C3}:_1ED6B3F7C91A4BBE875FC4621FC3CD97" { "SourcePath" = "8:..\\..\\include\\casa_c_authtoken.h" @@ -264,10 +244,30 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } + "{A582A373-4685-4296-BEFE-614B80A702C3}:_EDA39B5CAD864AF0821AAFC9783DFF12" + { + "SourcePath" = "8:..\\mechanisms\\krb5\\windows\\Krb5Authenticate.conf" + "TargetName" = "8:Krb5Authenticate.conf" + "Tag" = "8:" + "Folder" = "8:_DEA051CA331E4FEA83D99711FB584664" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } } "FileType" { @@ -404,7 +404,7 @@ } "MergeModule" { - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_AFBDE40E9A784962B750ECA4C15ADD85" + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_35590D5026504A138951C430142FECBA" { "UseDynamicProperties" = "11:FALSE" "IsDependency" = "11:TRUE" @@ -430,9 +430,9 @@ } "ProjectOutput" { - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_2EEDD0C5BE8546CBA62A0852850DB473" + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_3986DA1502244FFBB04A66472E74633B" { - "SourcePath" = "8:..\\mechanisms\\krb5\\windows\\Release\\krb5mech.dll" + "SourcePath" = "8:..\\mechanisms\\pwd\\windows\\Release\\pwmech.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F5F5F604B81645F8B6463F7A7D6A53AD" @@ -486,9 +486,9 @@ { } } - "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_EE2A593B866F43FD8D97250E1457988A" + "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_F0358243F2B34E40852F2185663C5B71" { - "SourcePath" = "8:..\\mechanisms\\pwd\\windows\\Release\\pwmech.dll" + "SourcePath" = "8:..\\mechanisms\\krb5\\windows\\Release\\krb5mech.dll" "TargetName" = "8:" "Tag" = "8:" "Folder" = "8:_F5F5F604B81645F8B6463F7A7D6A53AD" diff --git a/CASA-auth-token/non-java/client/mechanisms/krb5/Krb5Authenticate.conf b/CASA-auth-token/non-java/client/mechanisms/krb5/windows/Krb5Authenticate.conf similarity index 97% rename from CASA-auth-token/non-java/client/mechanisms/krb5/Krb5Authenticate.conf rename to CASA-auth-token/non-java/client/mechanisms/krb5/windows/Krb5Authenticate.conf index 76cbd200..df843e9f 100644 --- a/CASA-auth-token/non-java/client/mechanisms/krb5/Krb5Authenticate.conf +++ b/CASA-auth-token/non-java/client/mechanisms/krb5/windows/Krb5Authenticate.conf @@ -1,12 +1,12 @@ -####################################################### -# # -# CASA Authentication Token System configuration file # -# for module: # -# # -# Krb5Authenticate # -# # -####################################################### - -LibraryName \Program Files\novell\casa\lib\krb5mech.dll - - +####################################################### +# # +# CASA Authentication Token System configuration file # +# for module: # +# # +# Krb5Authenticate # +# # +####################################################### + +LibraryName \Program Files\novell\casa\lib\krb5mech.dll + + diff --git a/CASA-auth-token/non-java/client/mechanisms/krb5/krb5.vcproj b/CASA-auth-token/non-java/client/mechanisms/krb5/windows/krb5.vcproj similarity index 81% rename from CASA-auth-token/non-java/client/mechanisms/krb5/krb5.vcproj rename to CASA-auth-token/non-java/client/mechanisms/krb5/windows/krb5.vcproj index 082bf892..a3c3d8f8 100644 --- a/CASA-auth-token/non-java/client/mechanisms/krb5/krb5.vcproj +++ b/CASA-auth-token/non-java/client/mechanisms/krb5/windows/krb5.vcproj @@ -20,7 +20,7 @@ Name="VCCLCompilerTool" AdditionalOptions="-DSECURITY_WIN32" Optimization="0" - AdditionalIncludeDirectories="windows;.;"..\..";"C:\Program Files\novell\CASA\include";"..\..\..\include"" + AdditionalIncludeDirectories=""C:\Dev\casa\CASA-auth-token\non-java\client\mechanisms\krb5\windows";"C:\Dev\casa\CASA-auth-token\non-java\client\mechanisms\krb5";"C:\Dev\casa\CASA-auth-token\non-java\client";"C:\Program Files\novell\CASA\include";"C:\Dev\casa\CASA-auth-token\non-java\include"" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" MinimalRebuild="TRUE" BasicRuntimeChecks="3" @@ -80,7 +80,7 @@ copy $(OutDir)\krb5mech.dll \"Program Files"\novell\casa\lib\krb5mech. + RelativePath=".\dllsup.c"> + RelativePath=".\get.c"> + RelativePath="..\interface.c"> + RelativePath=".\krb5mech.def"> + RelativePath=".\platform.c"> + RelativePath="..\util.c"> + RelativePath="..\internal.h"> + RelativePath=".\platform.h"> -#include "casa_c_authtoken.h" +#include "platform.h" -// Globals -char usageString[] = "usage: test -a serverAddress -p serverPort [-s serviceName] [-h]\n"; +// Externals +extern +char *pServerAddress; -char *pServerAddress = NULL; -int serverPort = 0; -BOOLEAN execHttpTest = FALSE; +extern +int serverPort; -char serviceName[] = "testService"; -char *pServiceName = serviceName; +extern +BOOLEAN execHttpTest; +extern +char serviceName[]; -/*********************************************************************** - * - * dtoul() - * - ***********************************************************************/ -int -dtoul( - IN char *cp, - IN int len) -{ - int n = 0; - int i; - - for (i = 0; i < len; i++, cp++) - { - // Verify that we are dealing with a valid digit - if (*cp >= '0' && *cp <= '9') - { - n = 10 * n + (*cp - '0'); - } - else - { - printf("-dtoul- Found invalid digit\n"); - break; - } - } - - return n; -} +extern +char *pServiceName; /*********************************************************************** @@ -166,108 +140,95 @@ void NonHttpTest(void) struct sockaddr_in remoteAddr = {0}; struct linger linger_opt = {1, 15}; struct hostent *pLookupResult; - int winsockStartupResult; - WSADATA winsockData; printf("-NonHttpTest- ObtainAuthToken succedded, tokenlen = %d\n", authTokenLen); // Send the token to the server // - // First initialize winsock - if ((winsockStartupResult = WSAStartup(MAKEWORD(2,2), &winsockData)) == 0) + // Open socket + sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (sock != INVALID_SOCKET) { - // Open socket - sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if (sock != INVALID_SOCKET) + // Setup the local address structure + localAddr.sin_family = AF_INET; + localAddr.sin_addr.s_addr = htonl(INADDR_ANY); + + // Bind socket + if (!bind(sock, (const struct sockaddr*) &localAddr, sizeof(struct sockaddr_in))) { - // Setup the local address structure - localAddr.sin_family = AF_INET; - localAddr.sin_addr.s_addr = htonl(INADDR_ANY); - - // Bind socket - if (!bind(sock, (const struct sockaddr*) &localAddr, sizeof(struct sockaddr_in))) + // Resolve the server address + pLookupResult = gethostbyname(pServerAddress); + if (pLookupResult) { - // Resolve the server address - pLookupResult = gethostbyname(pServerAddress); - if (pLookupResult) + // Validate the address type returned + if (pLookupResult->h_addrtype == AF_INET) { - // Validate the address type returned - if (pLookupResult->h_addrtype == AF_INET) + int numAddressesFound = 0; + + // Determine how many addresses where returned + while (pLookupResult->h_addr_list[numAddressesFound] != NULL) { - int numAddressesFound = 0; + //printf("ServerAddress = %08X\n", *((int*) pLookupResult->h_addr_list[numAddressesFound])); + numAddressesFound ++; + } + //printf("Found %d addresses\n", numAddressesFound); - // Determine how many addresses where returned - while (pLookupResult->h_addr_list[numAddressesFound] != NULL) - { - //printf("ServerAddress = %08X\n", *((int*) pLookupResult->h_addr_list[numAddressesFound])); - numAddressesFound ++; - } - //printf("Found %d addresses\n", numAddressesFound); + // Setup the remote address structure with the lookup results + remoteAddr.sin_family = AF_INET; + remoteAddr.sin_port = serverPort; + remoteAddr.sin_addr.s_addr = *((int*) pLookupResult->h_addr_list[0]); // Short-cut + //printf("ServerAddress = %08X\n", remoteAddr.sin_addr.s_addr); - // Setup the remote address structure with the lookup results - remoteAddr.sin_family = AF_INET; - remoteAddr.sin_port = serverPort; - remoteAddr.sin_addr.s_addr = *((int*) pLookupResult->h_addr_list[0]); // Short-cut - //printf("ServerAddress = %08X\n", remoteAddr.sin_addr.s_addr); - - // Perform connect operation - if (connect(sock, - (struct sockaddr*) &remoteAddr, - sizeof(struct sockaddr_in)) == SOCKET_ERROR) - { - printf("-NonHttpTest- Connection creation failed, error = %d\n", WSAGetLastError()); - } - else - { - // Now the connection is setup, send the credentials to the server as one line. - // using our cheesy protocol followed by a hello string. - // - // Send the token to the server (including NULL terminator) - send(sock, authToken, (int) strlen(authToken) + 1, 0); - - // Send new line - send(sock, "\n", 1, 0); - - // Send "hello" - //send(sock, helloString, strlen(helloString) + 1, MSG_NOSIGNAL); - - // Send new line - //send(sock, "\n", 1, 0); - - // Shutdown the connection - shutdown(sock, 0); - } + // Perform connect operation + if (connect(sock, + (struct sockaddr*) &remoteAddr, + sizeof(struct sockaddr_in)) == SOCKET_ERROR) + { + printf("-NonHttpTest- Connection creation failed, error = %d\n", WSAGetLastError()); } else { - printf("-NonHttpTest- Unsupported address type returned %08X\n", pLookupResult->h_addrtype); + // Now the connection is setup, send the credentials to the server as one line. + // using our cheesy protocol followed by a hello string. + // + // Send the token to the server (including NULL terminator) + send(sock, authToken, (int) strlen(authToken) + 1, 0); + + // Send new line + send(sock, "\n", 1, 0); + + // Send "hello" + //send(sock, helloString, strlen(helloString) + 1, MSG_NOSIGNAL); + + // Send new line + //send(sock, "\n", 1, 0); + + // Shutdown the connection + shutdown(sock, 0); } } else { - printf("-NonHttpTest- Lookup for %s failed\n", pServerAddress); + printf("-NonHttpTest- Unsupported address type returned %08X\n", pLookupResult->h_addrtype); } } else { - printf("-NonHttpTest- Unable to bind socket, error = %d", errno); + printf("-NonHttpTest- Lookup for %s failed\n", pServerAddress); } - - // Close the socket - setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char*) &linger_opt, sizeof(linger_opt)); - closesocket(sock); } else { - printf("-NonHttpTest- Unable to open socket, error = %d\n", errno); + printf("-NonHttpTest- Unable to bind socket, error = %d", errno); } - // Close winsock - WSACleanup(); + // Close the socket + setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char*) &linger_opt, sizeof(linger_opt)); + closesocket(sock); } else { - printf("-NonHttpTest- WSAStartup failed, error = %d\n", winsockStartupResult); + printf("-NonHttpTest- Unable to open socket, error = %d\n", errno); } } } @@ -297,235 +258,125 @@ void HttpTest(void) struct sockaddr_in remoteAddr = {0}; struct linger linger_opt = {1, 15}; struct hostent *pLookupResult; - int winsockStartupResult; - WSADATA winsockData; //printf("ObtainAuthToken succedded, token = %s\n", authToken); printf("-HttpTest- ObtainAuthToken succedded, tokenlen = %d\n", authTokenLen); // Send the token to the server - // - // First initialize winsock - if ((winsockStartupResult = WSAStartup(MAKEWORD(2,2), &winsockData)) == 0) + // Open socket + sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (sock != INVALID_SOCKET) { - // Open socket - sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if (sock != INVALID_SOCKET) + // Setup the local address structure + localAddr.sin_family = AF_INET; + localAddr.sin_addr.s_addr = htonl(INADDR_ANY); + + // Bind socket + if (!bind(sock, (const struct sockaddr*) &localAddr, sizeof(struct sockaddr_in))) { - // Setup the local address structure - localAddr.sin_family = AF_INET; - localAddr.sin_addr.s_addr = htonl(INADDR_ANY); - - // Bind socket - if (!bind(sock, (const struct sockaddr*) &localAddr, sizeof(struct sockaddr_in))) + // Resolve the server address + pLookupResult = gethostbyname(pServerAddress); + if (pLookupResult) { - // Resolve the server address - pLookupResult = gethostbyname(pServerAddress); - if (pLookupResult) + // Validate the address type returned + if (pLookupResult->h_addrtype == AF_INET) { - // Validate the address type returned - if (pLookupResult->h_addrtype == AF_INET) + int numAddressesFound = 0; + + // Determine how many addresses where returned + while (pLookupResult->h_addr_list[numAddressesFound] != NULL) { - int numAddressesFound = 0; - - // Determine how many addresses where returned - while (pLookupResult->h_addr_list[numAddressesFound] != NULL) - { - //printf("ServerAddress = %08X\n", *((int*) pLookupResult->h_addr_list[numAddressesFound])); - numAddressesFound ++; - } - //printf("Found %d addresses\n", numAddressesFound); + //printf("ServerAddress = %08X\n", *((int*) pLookupResult->h_addr_list[numAddressesFound])); + numAddressesFound ++; + } + //printf("Found %d addresses\n", numAddressesFound); - // Setup the remote address structure with the lookup results - remoteAddr.sin_family = AF_INET; - remoteAddr.sin_port = serverPort; - remoteAddr.sin_addr.s_addr = *((int*) pLookupResult->h_addr_list[0]); // Short-cut - //printf("ServerAddress = %08X\n", remoteAddr.sin_addr.s_addr); + // Setup the remote address structure with the lookup results + remoteAddr.sin_family = AF_INET; + remoteAddr.sin_port = serverPort; + remoteAddr.sin_addr.s_addr = *((int*) pLookupResult->h_addr_list[0]); // Short-cut + //printf("ServerAddress = %08X\n", remoteAddr.sin_addr.s_addr); - // Perform connect operation - if (connect(sock, - (struct sockaddr*) &remoteAddr, - sizeof(struct sockaddr_in)) == SOCKET_ERROR) - { - printf("-HttpTest- Connection creation failed, error = %d\n", WSAGetLastError()); - } - else - { - char *pBasicCredentials; - char *pEncodedBasicCredentials; - int encodedLength; - char CasaPrincipal[] = "CasaPrincipal:"; - char HTTPReqPart1[] = "GET /example-info HTTP/1.1\r\\nUser-Agent: CasaTestClient\r\nHost: jcstation.dnsdhcp.provo.novell.com:4096\r\nConnection: Keep-Alive\r\nAuthorization: Basic "; - - // Now the connection is setup, send 1st part of HTTP request to the server. - send(sock, HTTPReqPart1, (int) strlen(HTTPReqPart1), 0); - - // Now setup the HTTP Basic Credentials - pBasicCredentials = (char*) malloc(strlen(CasaPrincipal) + strlen(authToken) + 1); - if (pBasicCredentials) - { - char *pEncodedCredentials; - - memcpy(pBasicCredentials, CasaPrincipal, sizeof(CasaPrincipal)); - strcat(pBasicCredentials, authToken); - - // Now Base64 encode the credentials - if (EncodeData(pBasicCredentials, strlen(pBasicCredentials), &pEncodedBasicCredentials, &encodedLength) == 0) - { - // Send the encoded credentials - send(sock, pEncodedBasicCredentials, encodedLength - 1, 0); - - // Send the rest of the header - send(sock, "\r\n\r\n", 4, 0); - - // Free the buffer holding the encoded credentials - free(pEncodedBasicCredentials); - } - else - { - printf("-HttpTest- Error encoding credentials\n"); - } - - // Free the buffer containing the basic credentials - free(pBasicCredentials); - } - else - { - printf("-HttpTest- Buffer allocation failure\n"); - } - - // Shutdown the connection - shutdown(sock, 0); - } + // Perform connect operation + if (connect(sock, + (struct sockaddr*) &remoteAddr, + sizeof(struct sockaddr_in)) == SOCKET_ERROR) + { + printf("-HttpTest- Connection creation failed, error = %d\n", WSAGetLastError()); } else { - printf("-HttpTest- Unsupported address type returned %08X\n", pLookupResult->h_addrtype); + char *pBasicCredentials; + char *pEncodedBasicCredentials; + int encodedLength; + char CasaPrincipal[] = "CasaPrincipal:"; + char HTTPReqPart1[] = "GET /example-info HTTP/1.1\r\\nUser-Agent: CasaTestClient\r\nHost: jcstation.dnsdhcp.provo.novell.com:4096\r\nConnection: Keep-Alive\r\nAuthorization: Basic "; + + // Now the connection is setup, send 1st part of HTTP request to the server. + send(sock, HTTPReqPart1, (int) strlen(HTTPReqPart1), 0); + + // Now setup the HTTP Basic Credentials + pBasicCredentials = (char*) malloc(strlen(CasaPrincipal) + strlen(authToken) + 1); + if (pBasicCredentials) + { + memcpy(pBasicCredentials, CasaPrincipal, sizeof(CasaPrincipal)); + strcat(pBasicCredentials, authToken); + + // Now Base64 encode the credentials + if (EncodeData((const void*) pBasicCredentials, + (const int32_t) strlen(pBasicCredentials), + &pEncodedBasicCredentials, + (int32_t *) &encodedLength) == 0) + { + // Send the encoded credentials + send(sock, pEncodedBasicCredentials, encodedLength - 1, 0); + + // Send the rest of the header + send(sock, "\r\n\r\n", 4, 0); + + // Free the buffer holding the encoded credentials + free(pEncodedBasicCredentials); + } + else + { + printf("-HttpTest- Error encoding credentials\n"); + } + + // Free the buffer containing the basic credentials + free(pBasicCredentials); + } + else + { + printf("-HttpTest- Buffer allocation failure\n"); + } + + // Shutdown the connection + shutdown(sock, 0); } } else { - printf("-HttpTest- Lookup for %s failed\n", pServerAddress); + printf("-HttpTest- Unsupported address type returned %08X\n", pLookupResult->h_addrtype); } } else { - printf("-HttpTest- Unable to bind socket, error = %d", errno); + printf("-HttpTest- Lookup for %s failed\n", pServerAddress); } - - // Close the socket - setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char*) &linger_opt, sizeof(linger_opt)); - closesocket(sock); } else { - printf("-HttpTest- Unable to open socket, error = %d\n", errno); + printf("-HttpTest- Unable to bind socket, error = %d", errno); } - // Close winsock - WSACleanup(); + // Close the socket + setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char*) &linger_opt, sizeof(linger_opt)); + closesocket(sock); } else { - printf("-HttpTest- WSAStartup failed, error = %d\n", winsockStartupResult); + printf("-HttpTest- Unable to open socket, error = %d\n", errno); } } } - - -/*********************************************************************** - * - * main() - * - ***********************************************************************/ -int main(int argc, char* argv[]) -{ - // Process input parameters - int i = 1; - while(argv[i] != NULL) - { - if (stricmp(argv[i], "-a") == 0) - { - // Server Address option, the next argument should - // contain the address. - i++; - if (argv[i] != NULL) - { - pServerAddress = argv[i]; - } - else - { - printf(usageString); - return -1; - } - } - else if (stricmp(argv[i], "-p") == 0) - { - // Server port option, the next argument should - // contain the port. - i++; - if (argv[i] != NULL) - { - serverPort = htons(dtoul(argv[i], strlen(argv[i]))); - } - else - { - printf(usageString); - return -1; - } - } - else if (stricmp(argv[i], "-s") == 0) - { - // Service name option, the next argument should - // contain the name of the service to be targeted. - i++; - if (argv[i] != NULL) - { - pServiceName = argv[i]; - } - else - { - printf(usageString); - return -1; - } - } - else if (stricmp(argv[i], "-h") == 0) - { - // Perform http test option - execHttpTest = TRUE; - } - - // Advance to the next argument - i++; - } - - // Verify that the server address and port were specified - if (pServerAddress && serverPort != 0) - { - // Repeat the test when indicated - printf("Press 'Enter' to run test or 'n + Enter' to stop.\n"); - while(getchar() != 'n') - { - // Execute the appropriate test - if (execHttpTest) - { - HttpTest(); - } - else - { - NonHttpTest(); - } - printf("Press 'Enter' to run test or 'n + Enter' to stop.\n"); - } - } - else - { - printf(usageString); - return -1; - } - - return 0; -} - - diff --git a/CASA-auth-token/non-java/client/test/windows/main.cpp b/CASA-auth-token/non-java/client/test/windows/main.cpp new file mode 100644 index 00000000..65ab2b6c --- /dev/null +++ b/CASA-auth-token/non-java/client/test/windows/main.cpp @@ -0,0 +1,187 @@ +/*********************************************************************** + * + * Copyright (C) 2006 Novell, Inc. All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; version 2.1 + * of the License. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, Novell, Inc. + * + * To contact Novell about this file by physical or electronic mail, + * you may find current contact information at www.novell.com. + * + * Author: Juan Carlos Luciani + * + ***********************************************************************/ + +#include "platform.h" + +// Extern functions +extern +void NonHttpTest(void); + +extern +void HttpTest(void); + + +// Globals +char usageString[] = "usage: test -a serverAddress -p serverPort [-s serviceName] [-h]\n"; + +char *pServerAddress = NULL; +int serverPort = 0; +BOOLEAN execHttpTest = FALSE; + +char serviceName[] = "testService"; +char *pServiceName = serviceName; + + +/*********************************************************************** + * + * dtoul() + * + ***********************************************************************/ +int +dtoul( + IN char *cp, + IN int len) +{ + int n = 0; + int i; + + for (i = 0; i < len; i++, cp++) + { + // Verify that we are dealing with a valid digit + if (*cp >= '0' && *cp <= '9') + { + n = 10 * n + (*cp - '0'); + } + else + { + printf("-dtoul- Found invalid digit\n"); + break; + } + } + + return n; +} + + + + +/*********************************************************************** + * + * main() + * + ***********************************************************************/ +int main(int argc, char* argv[]) +{ + // Process input parameters + int i = 1; + while(argv[i] != NULL) + { + if (stricmp(argv[i], "-a") == 0) + { + // Server Address option, the next argument should + // contain the address. + i++; + if (argv[i] != NULL) + { + pServerAddress = argv[i]; + } + else + { + printf(usageString); + return -1; + } + } + else if (stricmp(argv[i], "-p") == 0) + { + // Server port option, the next argument should + // contain the port. + i++; + if (argv[i] != NULL) + { + serverPort = htons(dtoul(argv[i], (int) strlen(argv[i]))); + } + else + { + printf(usageString); + return -1; + } + } + else if (stricmp(argv[i], "-s") == 0) + { + // Service name option, the next argument should + // contain the name of the service to be targeted. + i++; + if (argv[i] != NULL) + { + pServiceName = argv[i]; + } + else + { + printf(usageString); + return -1; + } + } + else if (stricmp(argv[i], "-h") == 0) + { + // Perform http test option + execHttpTest = TRUE; + } + + // Advance to the next argument + i++; + } + + // Verify that the server address and port were specified + if (pServerAddress && serverPort != 0) + { + int winsockStartupResult; + WSADATA winsockData; + + // First initialize winsock + if ((winsockStartupResult = WSAStartup(MAKEWORD(2,2), &winsockData)) == 0) + { + // Repeat the test when indicated + printf("Press 'Enter' to run test or 'n + Enter' to stop.\n"); + while(getchar() != 'n') + { + // Execute the appropriate test + if (execHttpTest) + { + HttpTest(); + } + else + { + NonHttpTest(); + } + printf("Press 'Enter' to run test or 'n + Enter' to stop.\n"); + } + + // Close winsock + WSACleanup(); + } + else + { + printf("-main- WSAStartup failed, error = %d\n", winsockStartupResult); + } + } + else + { + printf(usageString); + return -1; + } + + return 0; +} + + diff --git a/CASA-auth-token/non-java/client/test/windows/platform.h b/CASA-auth-token/non-java/client/test/windows/platform.h new file mode 100644 index 00000000..533d36fa --- /dev/null +++ b/CASA-auth-token/non-java/client/test/windows/platform.h @@ -0,0 +1,27 @@ +/*********************************************************************** + * + * Copyright (C) 2006 Novell, Inc. All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; version 2.1 + * of the License. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, Novell, Inc. + * + * To contact Novell about this file by physical or electronic mail, + * you may find current contact information at www.novell.com. + * + * Author: Juan Carlos Luciani + * + ***********************************************************************/ + +#include +#include +#include "casa_c_authtoken.h" diff --git a/CASA-auth-token/non-java/client/test/test.vcproj b/CASA-auth-token/non-java/client/test/windows/test.vcproj similarity index 83% rename from CASA-auth-token/non-java/client/test/test.vcproj rename to CASA-auth-token/non-java/client/test/windows/test.vcproj index b14c9a9f..08a0fc43 100644 --- a/CASA-auth-token/non-java/client/test/test.vcproj +++ b/CASA-auth-token/non-java/client/test/windows/test.vcproj @@ -19,7 +19,7 @@ + RelativePath="..\CASA_Auth.cpp"> + + + + - -