From 3160828378e846c7ea37bc816bbcd234f8fda89e Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Sun, 19 Oct 2003 15:09:14 +0000 Subject: Add new files created for random path creation --- .../fancydress/directory/OutgoingMMTPSection.java | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/org/noreply/fancydress/directory/OutgoingMMTPSection.java (limited to 'src/org/noreply/fancydress/directory/OutgoingMMTPSection.java') diff --git a/src/org/noreply/fancydress/directory/OutgoingMMTPSection.java b/src/org/noreply/fancydress/directory/OutgoingMMTPSection.java new file mode 100644 index 0000000..8b9ca9b --- /dev/null +++ b/src/org/noreply/fancydress/directory/OutgoingMMTPSection.java @@ -0,0 +1,74 @@ +/* $Id$ */ +package org.noreply.fancydress.directory; + +import org.bouncycastle.util.encoders.Base64; +import org.noreply.fancydress.directory.parser.*; +import org.noreply.fancydress.misc.Util; +import org.noreply.fancydress.crypto.*; +import org.noreply.fancydress.status.*; +import java.util.*; +import java.text.ParseException; +import java.net.InetAddress; +import java.net.UnknownHostException; + +/* FIXME: parse allow/deny ACLs */ + +/** + * Represent an Outgoing/MMTP section of a server descriptor. + * + * @see ServerDescriptor + */ +public class OutgoingMMTPSection { + /* + * version we understand. + */ + private static final String VERSION = "0.1"; + + private String name; + + /* Required */ + private String version; + private String[] protocols; + + /** + * Construct an Outgoing/MMTP section. + * + * @param section the section to parse. + * @throws Mix3BadServerFormatException if the Section is syntactially invalid. + */ + public OutgoingMMTPSection(DirectorySection section) + throws Mix3BadServerFormatException + { + name = section.getName(); + parseOutgoingMMTPSection(section); + } + + /** + * Parse an Outgoing/MMTP section. + * + * @param section the section to parse. + * @throws Mix3BadServerFormatException if the Section is syntactially invalid. + */ + private void parseOutgoingMMTPSection(DirectorySection section) throws Mix3BadServerFormatException { + /* Check Version */ + DirectoryEntry entryVersion = section.getEntry("Version"); + if (entryVersion == null) + throw new Mix3BadServerFormatException("Version not in " + name + " section"); + version = entryVersion.getValue(); + if (! version.equals(VERSION)) + /* We have to ignore unknown Versions */ + throw new Mix3BadServerUnrecognizedVersionException("Unrecognized " + name + " Version "+version); + + /* mandatory entries */ + DirectoryEntry entryProtocols = section.getEntry("Protocols"); + + /* check if mandatory entries are available */ + if (entryProtocols == null) + throw new Mix3BadServerFormatException("Protocols not in " + name + " section"); + protocols = Util.tokenize(entryProtocols.getValue(), ','); + } + + public String[] getProtocols() { + return protocols; + } +} -- cgit v1.2.3