Changeset 5665:10c164fd8e04 in roaraudio
- Timestamp:
- 09/23/12 11:35:35 (12 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
ChangeLog
r5664 r5665 3 3 * Avoid warning about failed memlock on win32 (Closes: #329) 4 4 * Changed plugin ABI version number for roard. 5 * Added support for v3 and v5 UUIDs. 5 6 6 7 v. 1.0beta6 - Fri Sep 21 2012 18:03 CEST -
include/libroar/uuid.h
r5589 r5665 55 55 int roar_uuid2str(char * str, const roar_uuid_t uuid, ssize_t len); 56 56 int roar_str2uuid(roar_uuid_t uuid, const char * str); 57 int roar_uuid_gen(roar_uuid_t uuid, enum roar_uuid_type type, roar_uuid_t ns,void * argp, ssize_t arglen);57 int roar_uuid_gen(roar_uuid_t uuid, enum roar_uuid_type type, const roar_uuid_t ns, const void * argp, ssize_t arglen); 58 58 #define roar_uuid_gen_null(uuid) roar_uuid_gen(uuid, ROAR_UUID_TYPE_NULL, NULL, NULL, -1) 59 59 #define roar_uuid_gen_time(uuid) roar_uuid_gen(uuid, ROAR_UUID_TYPE_TIME, NULL, NULL, -1) -
libroar/uuid.c
r5589 r5665 84 84 return 0; 85 85 } 86 int roar_uuid_gen(roar_uuid_t uuid, enum roar_uuid_type type, roar_uuid_t ns, void * argp, ssize_t arglen) { 86 87 int roar_uuid_gen(roar_uuid_t uuid, enum roar_uuid_type type, const roar_uuid_t ns, const void * argp, ssize_t arglen) { 88 unsigned char digest[20]; 89 87 90 if ( uuid == NULL ) { 88 91 roar_err_set(ROAR_ERROR_FAULT); … … 101 104 return 0; 102 105 break; 103 case ROAR_UUID_TYPE_DCE_SECURITY:104 106 case ROAR_UUID_TYPE_MD5: 105 107 case ROAR_UUID_TYPE_SHA1: 108 if ( ns == NULL || argp == NULL ) { 109 roar_err_set(ROAR_ERROR_FAULT); 110 return -1; 111 } 112 113 if ( arglen < 1 ) { 114 roar_err_set(ROAR_ERROR_INVAL); 115 return -1; 116 } 117 118 if ( roar_hash_salted_buffer(digest, ns, sizeof(roar_uuid_t), 119 type == ROAR_UUID_TYPE_MD5 ? ROAR_HT_MD5 : ROAR_HT_SHA1, 120 argp, arglen) == -1 ) 121 return -1; 122 123 memcpy(uuid, digest, sizeof(roar_uuid_t)); 124 uuid[6] = (uuid[8] & 0x0F) | (type << 4); // Version 125 uuid[8] = (uuid[8] & 0x3F) | 0x80; // Variant 126 127 return 0; 128 break; 129 case ROAR_UUID_TYPE_DCE_SECURITY: 130 case ROAR_UUID_TYPE_TIME: 106 131 roar_err_set(ROAR_ERROR_NOTSUP); 107 132 return -1;
Note: See TracChangeset
for help on using the changeset viewer.