summaryrefslogtreecommitdiff
path: root/shared/ossp_uuid/uuid_dce.c
diff options
context:
space:
mode:
Diffstat (limited to 'shared/ossp_uuid/uuid_dce.c')
-rw-r--r--shared/ossp_uuid/uuid_dce.c294
1 files changed, 0 insertions, 294 deletions
diff --git a/shared/ossp_uuid/uuid_dce.c b/shared/ossp_uuid/uuid_dce.c
deleted file mode 100644
index d4a73f48..00000000
--- a/shared/ossp_uuid/uuid_dce.c
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
-** OSSP uuid - Universally Unique Identifier
-** Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
-** Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/>
-**
-** This file is part of OSSP uuid, a library for the generation
-** of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
-**
-** Permission to use, copy, modify, and distribute this software for
-** any purpose with or without fee is hereby granted, provided that
-** the above copyright notice and this permission notice appear in all
-** copies.
-**
-** THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-** IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-** USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-** OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-** SUCH DAMAGE.
-**
-** uuid_dce.c: DCE 1.1 compatibility API implementation
-*/
-
-/* include DCE 1.1 API */
-#define uuid_t uuid_dce_t
-#include "uuid_dce.h"
-#undef uuid_t
-#undef uuid_create
-#undef uuid_create_nil
-#undef uuid_is_nil
-#undef uuid_compare
-#undef uuid_equal
-#undef uuid_from_string
-#undef uuid_to_string
-#undef uuid_hash
-
-/* include regular API */
-#include "uuid.h"
-
-/* helper macro */
-#define LEAVE /*lint -save -e801*/ goto leave /*lint -restore*/
-
-/* create a UUID (v1 only) */
-void uuid_dce_create(uuid_dce_t *uuid_dce, int *status)
-{
- uuid_t *uuid;
- size_t len;
- void *vp;
-
- /* initialize status */
- if (status != NULL)
- *status = uuid_s_error;
-
- /* sanity check argument(s) */
- if (uuid_dce == NULL)
- return;
-
- /* create UUID and export as binary representation */
- if (uuid_create(&uuid) != UUID_RC_OK)
- return;
- if (uuid_make(uuid, UUID_MAKE_V1) != UUID_RC_OK) {
- uuid_destroy(uuid);
- return;
- }
- vp = uuid_dce;
- len = UUID_LEN_BIN;
- if (uuid_export(uuid, UUID_FMT_BIN, &vp, &len) != UUID_RC_OK) {
- uuid_destroy(uuid);
- return;
- }
- uuid_destroy(uuid);
-
- /* return successfully */
- if (status != NULL)
- *status = uuid_s_ok;
- return;
-}
-
-/* create a Nil UUID */
-void uuid_dce_create_nil(uuid_dce_t *uuid_dce, int *status)
-{
- /* initialize status */
- if (status != NULL)
- *status = uuid_s_error;
-
- /* sanity check argument(s) */
- if (uuid_dce == NULL)
- return;
-
- /* short-circuit implementation, because Nil UUID is trivial to
- create, so no need to use regular OSSP uuid API */
- memset(uuid_dce, 0, UUID_LEN_BIN);
-
- /* return successfully */
- if (status != NULL)
- *status = uuid_s_ok;
- return;
-}
-
-/* check whether it is Nil UUID */
-int uuid_dce_is_nil(uuid_dce_t *uuid_dce, int *status)
-{
- int i;
- int result;
- unsigned char *ucp;
-
- /* initialize status */
- if (status != NULL)
- *status = uuid_s_error;
-
- /* sanity check argument(s) */
- if (uuid_dce == NULL)
- return 0;
-
- /* short-circuit implementation, because Nil UUID is trivial to
- check, so no need to use regular OSSP uuid API */
- result = 1;
- ucp = (unsigned char *)uuid_dce;
- for (i = 0; i < UUID_LEN_BIN; i++) {
- if (ucp[i] != '\0') {
- result = 0;
- break;
- }
- }
-
- /* return successfully with result */
- if (status != NULL)
- *status = uuid_s_ok;
- return result;
-}
-
-/* compare two UUIDs */
-int uuid_dce_compare(uuid_dce_t *uuid_dce1, uuid_dce_t *uuid_dce2, int *status)
-{
- uuid_t *uuid1 = NULL;
- uuid_t *uuid2 = NULL;
- int result = 0;
-
- /* initialize status */
- if (status != NULL)
- *status = uuid_s_error;
-
- /* sanity check argument(s) */
- if (uuid_dce1 == NULL || uuid_dce2 == NULL)
- return 0;
-
- /* import both UUID binary representations and compare them */
- if (uuid_create(&uuid1) != UUID_RC_OK)
- LEAVE;
- if (uuid_create(&uuid2) != UUID_RC_OK)
- LEAVE;
- if (uuid_import(uuid1, UUID_FMT_BIN, uuid_dce1, UUID_LEN_BIN) != UUID_RC_OK)
- LEAVE;
- if (uuid_import(uuid2, UUID_FMT_BIN, uuid_dce2, UUID_LEN_BIN) != UUID_RC_OK)
- LEAVE;
- if (uuid_compare(uuid1, uuid2, &result) != UUID_RC_OK)
- LEAVE;
-
- /* indicate successful operation */
- if (status != NULL)
- *status = uuid_s_ok;
-
- /* cleanup and return */
- leave:
- if (uuid1 != NULL)
- uuid_destroy(uuid1);
- if (uuid2 != NULL)
- uuid_destroy(uuid2);
- return result;
-}
-
-/* compare two UUIDs (equality only) */
-int uuid_dce_equal(uuid_dce_t *uuid_dce1, uuid_dce_t *uuid_dce2, int *status)
-{
- /* initialize status */
- if (status != NULL)
- *status = uuid_s_error;
-
- /* sanity check argument(s) */
- if (uuid_dce1 == NULL || uuid_dce2 == NULL)
- return 0;
-
- /* pass through to generic compare function */
- return (uuid_dce_compare(uuid_dce1, uuid_dce2, status) == 0 ? 1 : 0);
-}
-
-/* import UUID from string representation */
-void uuid_dce_from_string(const char *str, uuid_dce_t *uuid_dce, int *status)
-{
- uuid_t *uuid = NULL;
- size_t len;
- void *vp;
-
- /* initialize status */
- if (status != NULL)
- *status = uuid_s_error;
-
- /* sanity check argument(s) */
- if (str == NULL || uuid_dce == NULL)
- return;
-
- /* import string representation and export binary representation */
- if (uuid_create(&uuid) != UUID_RC_OK)
- LEAVE;
- if (uuid_import(uuid, UUID_FMT_STR, str, UUID_LEN_STR) != UUID_RC_OK)
- LEAVE;
- vp = uuid_dce;
- len = UUID_LEN_BIN;
- if (uuid_export(uuid, UUID_FMT_BIN, &vp, &len) != UUID_RC_OK)
- LEAVE;
-
- /* indicate successful operation */
- if (status != NULL)
- *status = uuid_s_ok;
-
- /* cleanup and return */
- leave:
- if (uuid != NULL)
- uuid_destroy(uuid);
- return;
-}
-
-/* export UUID to string representation */
-void uuid_dce_to_string(uuid_dce_t *uuid_dce, char **str, int *status)
-{
- uuid_t *uuid = NULL;
- size_t len;
- void *vp;
-
- /* initialize status */
- if (status != NULL)
- *status = uuid_s_error;
-
- /* sanity check argument(s) */
- if (str == NULL || uuid_dce == NULL)
- return;
-
- /* import binary representation and export string representation */
- if (uuid_create(&uuid) != UUID_RC_OK)
- LEAVE;
- if (uuid_import(uuid, UUID_FMT_BIN, uuid_dce, UUID_LEN_BIN) != UUID_RC_OK)
- LEAVE;
- vp = str;
- len = UUID_LEN_STR;
- if (uuid_export(uuid, UUID_FMT_STR, &vp, &len) != UUID_RC_OK)
- LEAVE;
-
- /* indicate successful operation */
- if (status != NULL)
- *status = uuid_s_ok;
-
- /* cleanup and return */
- leave:
- if (uuid != NULL)
- uuid_destroy(uuid);
- return;
-}
-
-/* export UUID into hash value */
-unsigned int uuid_dce_hash(uuid_dce_t *uuid_dce, int *status)
-{
- int i;
- unsigned char *ucp;
- unsigned int hash;
-
- /* initialize status */
- if (status != NULL)
- *status = uuid_s_error;
-
- /* sanity check argument(s) */
- if (uuid_dce == NULL)
- return 0;
-
- /* generate a hash value
- (DCE 1.1 actually requires 16-bit only) */
- hash = 0;
- ucp = (unsigned char *)uuid_dce;
- for (i = UUID_LEN_BIN-1; i >= 0; i--) {
- hash <<= 8;
- hash |= ucp[i];
- }
-
- /* return successfully */
- if (status != NULL)
- *status = uuid_s_ok;
- return hash;
-}
-
bgstack15