From f3ab456a17af1c89a6e3be4d20c5944853df1cb0 Mon Sep 17 00:00:00 2001 From: "David M. Lee" Date: Mon, 7 Jan 2013 14:24:28 -0600 Subject: Import pjproject-2.0.1 --- pjlib/src/pj/guid_uuid.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 pjlib/src/pj/guid_uuid.c (limited to 'pjlib/src/pj/guid_uuid.c') diff --git a/pjlib/src/pj/guid_uuid.c b/pjlib/src/pj/guid_uuid.c new file mode 100644 index 0000000..b850bed --- /dev/null +++ b/pjlib/src/pj/guid_uuid.c @@ -0,0 +1,53 @@ +/* $Id: guid_uuid.c 3553 2011-05-05 06:14:19Z nanang $ */ +/* + * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) + * Copyright (C) 2003-2008 Benny Prijono + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#include +#include +#include +#include +#include + +#include + +PJ_DEF_DATA(const unsigned) PJ_GUID_STRING_LENGTH=36; + +PJ_DEF(unsigned) pj_GUID_STRING_LENGTH() +{ + return PJ_GUID_STRING_LENGTH; +} + +PJ_DEF(pj_str_t*) pj_generate_unique_string(pj_str_t *str) +{ + enum {GUID_LEN = 36}; + char sguid[GUID_LEN + 1]; + uuid_t uuid = {0}; + + PJ_ASSERT_RETURN(GUID_LEN <= PJ_GUID_STRING_LENGTH, NULL); + PJ_ASSERT_RETURN(str->ptr != NULL, NULL); + PJ_CHECK_STACK(); + + uuid_generate(uuid); + uuid_unparse(uuid, sguid); + + pj_memcpy(str->ptr, sguid, GUID_LEN); + str->slen = GUID_LEN; + + return str; +} + -- cgit v1.2.3