/* * Copyright (c) 2003 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. * * @APPLE_LICENSE_HEADER_END@ */ /* * mslpd_store.h : SA Store Definitions * * The SAStore for the SLP v2 minimal implementation maintains * all service information advertised by the mslpd. * * Version: 1.5 * Date: 10/05/99 * * Licensee will, at its expense, defend and indemnify Sun Microsystems, * Inc. ("Sun") and its licensors from and against any third party * claims, including costs and reasonable attorneys' fees, and be wholly * responsible for any liabilities arising out of or related to the * Licensee's use of the Software or Modifications. The Software is not * designed or intended for use in on-line control of aircraft, air * traffic, aircraft navigation, or aircraft communications; or in the * design, construction, operation or maintenance of any nuclear facility * and Sun disclaims any express or implied warranty of fitness for such * uses. THE SOFTWARE IS PROVIDED TO LICENSEE "AS IS" AND ALL EXPRESS OR * IMPLIED CONDITION AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF * MERCHANTABILITY, FITNESS FOR WARRANTIES, INCLUDING ANY IMPLIED * WARRANTY OF MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE OR NON- * INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT WILL SUN BE LIABLE HEREUNDER * FOR ANY DIRECT DAMAGES OR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL * OR CONSEQUENTIAL DAMAGES OF ANY KIND. * * (c) Sun Microsystems, 1998, All Rights Reserved. * Author: Erik Guttman */ /* Portions Copyright (c) 2002 Apple Computer, Inc. All rights reserved. */ /* * v_i is used to represent booleans and integers. It is also used * to store the length of strings and opaques, if the val is interpreted * this way. * v_pc is used to point to buffers representing strings and opaques * these buffers are null terminated. */ typedef union { int v_i; /* bools will only be 1 = true, 0 = false, or int val */ char *v_pc; /* opaques must be interpreted literally (not case folded) */ } Val; typedef struct Values { unsigned char type; int numvals; Val *pval; /* NULL terminated array of Vals */ } Values; /* * The store will have N entries. Term N in the array is NULL. */ typedef struct store { int size; char **srvtype; /* srvtype per entry, including the NA (use URL if it is not supplied explicitly) */ char **scope; /* scopes per entry (comma delimited scope list) */ char **lang; /* language per entry */ int *life; /* service lifetime */ char **url; /* url per entry */ char ***tag; /* array of tags per entry */ Values **values; /* for each tag, its values */ char **attrlist; /* the original attrlist for forwarding the reg */ } SAStore; #define TYPE_BOOL 1 #define TYPE_INT 2 #define TYPE_STR 3 #define TYPE_OPAQUE 4 #define TYPE_KEYWORD 5 #define TYPE_UNKNOWN 255 /* * visible within mslpd, implemented in mslpd_reader.c */ SLPInternalError fill_value(Values *pv, int i, const char *ppc, int *piOffset);