mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-08 20:47:44 +00:00
81 lines
2.6 KiB
C
81 lines
2.6 KiB
C
/*
|
|
** Copyright (C) 1998-1999 Greg Stein. All Rights Reserved.
|
|
**
|
|
** By using this file, you agree to the terms and conditions set forth in
|
|
** the LICENSE.html file which can be found at the top level of the mod_dav
|
|
** distribution or at http://www.webdav.org/mod_dav/license-1.html.
|
|
**
|
|
** Contact information:
|
|
** Greg Stein, PO Box 3151, Redmond, WA, 98073
|
|
** gstein@lyra.org, http://www.webdav.org/mod_dav/
|
|
*/
|
|
|
|
/*
|
|
** DAV opaquelocktoken scheme implementation
|
|
**
|
|
** Written 5/99 by Keith Wannamaker, wannamak@us.ibm.com
|
|
** Adapted from ISO/DCE RPC spec and a former Internet Draft
|
|
** by Leach and Salz:
|
|
** http://www.ics.uci.edu/pub/ietf/webdav/uuid-guid/draft-leach-uuids-guids-01
|
|
**
|
|
** Portions of the code are covered by the following license:
|
|
**
|
|
** Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
|
|
** Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
|
|
** Digital Equipment Corporation, Maynard, Mass.
|
|
** Copyright (c) 1998 Microsoft.
|
|
** To anyone who acknowledges that this file is provided "AS IS"
|
|
** without any express or implied warranty: permission to use, copy,
|
|
** modify, and distribute this file for any purpose is hereby
|
|
** granted without fee, provided that the above copyright notices and
|
|
** this notice appears in all source code copies, and that none of
|
|
** the names of Open Software Foundation, Inc., Hewlett-Packard
|
|
** Company, or Digital Equipment Corporation be used in advertising
|
|
** or publicity pertaining to distribution of the software without
|
|
** specific, written prior permission. Neither Open Software
|
|
** Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital Equipment
|
|
** Corporation makes any representations about the suitability of
|
|
** this software for any purpose.
|
|
*/
|
|
|
|
#ifndef _TOKEN_H_
|
|
#define _TOKEN_H_
|
|
|
|
typedef unsigned long unsigned32;
|
|
typedef unsigned short unsigned16;
|
|
typedef unsigned char unsigned8;
|
|
|
|
typedef struct {
|
|
char nodeID[6];
|
|
} uuid_node_t;
|
|
|
|
#undef uuid_t
|
|
|
|
typedef struct _uuid_t
|
|
{
|
|
unsigned32 time_low;
|
|
unsigned16 time_mid;
|
|
unsigned16 time_hi_and_version;
|
|
unsigned8 clock_seq_hi_and_reserved;
|
|
unsigned8 clock_seq_low;
|
|
unsigned8 node[6];
|
|
} uuid_t;
|
|
|
|
/* data type for UUID generator persistent state */
|
|
|
|
typedef struct {
|
|
uuid_node_t node; /* saved node ID */
|
|
unsigned16 cs; /* saved clock sequence */
|
|
} uuid_state;
|
|
|
|
extern const uuid_t null_locktoken;
|
|
|
|
/* in dav_opaquelock.c */
|
|
int create_token(uuid_state *st, uuid_t *u);
|
|
void create_uuid_state(uuid_state *st);
|
|
void format_token(char *target, const uuid_t *u);
|
|
int compare_token(const uuid_t a, const uuid_t b);
|
|
int parse_token(const char *char_token, uuid_t *bin_token);
|
|
|
|
#endif /* _TOKEN_H_ */
|