diff options
author | John Sonnenschein <johns@joyent.com> | 2012-05-17 18:26:57 +0000 |
---|---|---|
committer | John Sonnenschein <johns@joyent.com> | 2012-05-17 18:26:57 +0000 |
commit | 04b244dd661c24b510ac22936decfc0972d202d3 (patch) | |
tree | 3ebfef98afc303fddf3415d6fba64e8682f495e8 /usr/src/lib/libkmsagent/common/KMSAgentStringUtilities.cpp | |
parent | eac250589e41f1b705e1b7427b02b3379aac9f9e (diff) | |
parent | a69187741b83640a90dd8586195456dd50c016a8 (diff) | |
download | illumos-joyent-20120517.tar.gz |
Merge git.joyent.com:illumos-joyent20120517
Diffstat (limited to 'usr/src/lib/libkmsagent/common/KMSAgentStringUtilities.cpp')
-rw-r--r-- | usr/src/lib/libkmsagent/common/KMSAgentStringUtilities.cpp | 235 |
1 files changed, 0 insertions, 235 deletions
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentStringUtilities.cpp b/usr/src/lib/libkmsagent/common/KMSAgentStringUtilities.cpp deleted file mode 100644 index c47e6848e8..0000000000 --- a/usr/src/lib/libkmsagent/common/KMSAgentStringUtilities.cpp +++ /dev/null @@ -1,235 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ - -/* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef WIN32 -#include <ctype.h> - - #ifndef METAWARE - #include <wctype.h> - #endif - -#endif - -#ifndef METAWARE - #include <sys/timeb.h> -#endif - -#include "KMSAgentStringUtilities.h" - -#ifdef WIN32 -#include <stdlib.h> -#include <time.h> -#define gmtime_r(clock,result) ( *(result) = *gmtime(clock), result ) -#endif - -// Find header in KMSAgentStringUtilities.h -int64 UTF8ToInt64( const char* i_sNumber ) -{ - FATAL_ASSERT( i_sNumber ); - -#ifdef WIN32 - return _atoi64( i_sNumber ); -#else - return atoll( i_sNumber ); -#endif -} - -void Int64ToUTF8(char* const o_psUTF8, - int64 i_iNumber, - int i_bPad, - int i_bHex ) -{ - //string sFormat; - char sFormat[10]; - - if ( i_bPad && i_bHex ) - { -#ifdef WIN32 - strcpy(sFormat,"%016I64X"); -#else - strcpy(sFormat,"%016llX"); -#endif - } - else if ( i_bPad && !i_bHex ) - { -#ifdef WIN32 - strcpy(sFormat, "%019I64d"); -#else - strcpy(sFormat, "%019lld"); -#endif - } - else if ( !i_bPad && i_bHex ) - { -#ifdef WIN32 - strcpy(sFormat, "%I64X"); -#else - strcpy(sFormat, "%llX"); -#endif - } - else //( !i_bPad && !i_bHex ) - { -#ifdef WIN32 - strcpy(sFormat, "%I64d"); -#else - strcpy(sFormat, "%lld"); -#endif - } - -#ifndef METAWARE - int iReturn = sprintf( o_psUTF8, sFormat, i_iNumber); - - //int iReturn = K_snprintf(o_psUTF8, iBufferSize, sFormat, i_iNumber); -#else - int iReturn = sprintf( o_psUTF8, sFormat, i_iNumber); -#endif - if ( iReturn < 0 ) - { - // Our buffer wasn't big enough. Shouldn't happen. - FATAL_ASSERT(0); - } - - return; - -} - -// Find header in KMSAgentStringUtilities.h -int ConvertUTF8HexStringToBinary( - const char* i_sHexString, - unsigned char* o_pBinaryBuffer) -{ - int iHexLen = i_sHexString ? strlen(i_sHexString) : 0; - FATAL_ASSERT( (iHexLen % 2) == 0 ); // to be valid, the hex string must have an even number of characters - - if ( !o_pBinaryBuffer ) - { - return ( iHexLen / 2 ); - } - - if ( iHexLen <= 0 ) - { - return 0; - } - - int iDigitValue = 0; - - for ( int i = 0; i < iHexLen; i++) - { - if (i_sHexString[i] >= '0' && i_sHexString[i] <= '9') - { - iDigitValue = i_sHexString[i] - '0'; - } - else if (i_sHexString[i] >= 'A' && i_sHexString[i] <= 'F') - { - iDigitValue = i_sHexString[i] - 'A' + 10; - } - else if (i_sHexString[i] >= 'a' && i_sHexString[i] <= 'f') - { - iDigitValue = i_sHexString[i] - 'a' + 10; - } - else - { - iDigitValue = 0; - } - - if (i % 2 == 0) - { - o_pBinaryBuffer[i/2] = (char)(iDigitValue << 4); - } - else - { - o_pBinaryBuffer[i/2] |= (char)iDigitValue; - } - } - - return ( iHexLen / 2 ); -} - -// Find header in KMSAgentStringUtilities.h -void ConvertBinaryToUTF8HexString( - char* const o_sHexString, - const unsigned char* const i_pBinaryBuffer, - int i_iBinaryBufferSize ) -{ - const char HEXCHARS[] = "0123456789ABCDEF"; - - FATAL_ASSERT( o_sHexString ); - - if ( (i_pBinaryBuffer == 0) || (i_iBinaryBufferSize == 0) ) - { - strcpy(o_sHexString, ""); - return; - } - - FATAL_ASSERT( i_pBinaryBuffer ); - - for ( int i = 0; i < (2 * i_iBinaryBufferSize); i++ ) - { - unsigned char ucFourBits = i_pBinaryBuffer[i / 2]; - if ( (i % 2) == 0 ) // high four bits of the current byte - ucFourBits = (ucFourBits >> 4) & 0xF; // shift down and blank out upper bits - else // low four bits of the current byte - ucFourBits = ucFourBits & 0xF; // blank out upper bits - - o_sHexString[i] = HEXCHARS[ucFourBits]; - } - - o_sHexString[i_iBinaryBufferSize * 2] = '\0'; - - return; -} - - -// Find header in StringUtilities.h -void GetCurrentDateTimeISO8601UTC(char* const o_psDateTimeISO8601UTC, - int i_iLength) -{ - -#ifndef METAWARE - timeb stTime; - ftime(&stTime); - - FATAL_ASSERT( o_psDateTimeISO8601UTC ); - - struct tm* pstTime = gmtime( &(stTime.time) ); - - K_snprintf( - o_psDateTimeISO8601UTC, - i_iLength, - "%04d-%02d-%02d %02d:%02d:%02d.%03dZ", - pstTime->tm_year+1900, - pstTime->tm_mon+1, - pstTime->tm_mday, - pstTime->tm_hour, - pstTime->tm_min, - pstTime->tm_sec, - stTime.millitm); - -#else - // no time functions for the metaware environment - strcpy( o_psDateTimeISO8601UTC, "" ); -#endif - return; -} - |