001/*
002 * Copyright 2015-2024 the original author or authors
003 *
004 * This software is licensed under the Apache License, Version 2.0,
005 * the GNU Lesser General Public License version 2 or later ("LGPL")
006 * and the WTFPL.
007 * You may choose either license to govern your use of this software only
008 * upon the condition that you accept all of the terms of either
009 * the Apache License 2.0, the LGPL 2.1+ or the WTFPL.
010 */
011package org.minidns.hla.srv;
012
013import org.minidns.dnslabel.DnsLabel;
014
015public enum SrvService {
016
017    // @formatter:off
018    xmpp_client,
019    xmpp_server,
020
021    /**
022     * XMPP client-to-server (c2s) connections using implicit TLS (also known as "Direct TLS").
023     *
024     * @see <a href="https://xmpp.org/extensions/xep-0368.html">XEP-0368: SRV records for XMPP over TLS</a>
025     */
026    xmpps_client,
027
028    /**
029     * XMPP server-to-server (s2s) connections using implicit TLS (also known as "Direct TLS").
030     *
031     * @see <a href="https://xmpp.org/extensions/xep-0368.html">XEP-0368: SRV records for XMPP over TLS</a>
032     */
033    xmpps_server,
034    ;
035    // @formatter:on
036
037    @SuppressWarnings("ImmutableEnumChecker")
038    public final DnsLabel dnsLabel;
039
040    SrvService() {
041        String enumName = name().replaceAll("_", "-");
042        dnsLabel = DnsLabel.from('_' + enumName);
043    }
044}