1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 /* 22 * Copyright (c) 1999 by Sun Microsystems, Inc. 23 * All rights reserved. 24 * 25 */ 26 27 // SLPV1SDAAdvert.java: SLPv1 DAAdvert, server side. 28 // Author: James Kempf 29 // Created On: Thu Sep 10 11:00:26 1998 30 // Last Modified By: James Kempf 31 // Last Modified On: Mon Nov 2 15:55:47 1998 32 // Update Count: 27 33 // 34 35 36 package com.sun.slp; 37 38 import java.util.*; 39 import java.io.*; 40 41 42 /** 43 * The SLPV1SDAAdvert class models the SLPv1 DAAdvert message. 44 * 45 * @author James Kempf 46 */ 47 48 class SLPV1SDAAdvert extends SDAAdvert { 49 SLPV1SDAAdvert(SrvLocHeader hdr, short xid, long timestamp, ServiceURL url, Vector scopes, Vector attrs)50 SLPV1SDAAdvert(SrvLocHeader hdr, 51 short xid, 52 long timestamp, 53 ServiceURL url, 54 Vector scopes, 55 Vector attrs) 56 throws ServiceLocationException { 57 58 super(hdr, xid, timestamp, url, scopes, attrs); 59 60 } 61 62 // Initialize the message. 63 initialize(long timestamp, ServiceURL url, Vector scopes, Vector attrs)64 void initialize(long timestamp, 65 ServiceURL url, 66 Vector scopes, 67 Vector attrs) 68 throws ServiceLocationException { 69 70 // By using the incoming header, we are assured of 71 // getting the encoding required by the client. 72 73 SLPHeaderV1 hdr = (SLPHeaderV1)this.hdr; 74 75 int i, n = scopes.size(); 76 77 for (i = 0; i < n; i++) { 78 hdr.validateScope((String)scopes.elementAt(i)); 79 80 } 81 82 // If the only scope we support is default and we are to 83 // support unscoped regs, then advertise us 84 // as an unscoped DA. However, if default is there with others, 85 // we keep it. 86 87 SLPConfig config = SLPConfig.getSLPConfig(); 88 89 if (config.getAcceptSLPv1UnscopedRegs() && 90 scopes.size() <= 1 && 91 scopes.contains(Defaults.DEFAULT_SCOPE)) { 92 scopes.removeAllElements(); 93 94 } 95 96 // Parse out the payload. 97 98 ByteArrayOutputStream baos = new ByteArrayOutputStream(); 99 100 // Parse out the URL. 101 102 hdr.parseServiceURLOut(url, false, baos); 103 104 // Parse out the scope list. Same in V1 and V2. 105 106 hdr.parseCommaSeparatedListOut(scopes, baos); 107 108 hdr.payload = baos.toByteArray(); 109 110 hdr.iNumReplies = 1; 111 112 hdr.constructDescription("DAAdvert", 113 " URL=``" + url + "''\n" + 114 " scopes=``" + scopes + "''\n"); 115 116 } 117 } 118