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.edns;
012
013import java.nio.charset.StandardCharsets;
014
015import org.minidns.edns.Edns.OptionCode;
016import org.minidns.util.Hex;
017
018public class Nsid extends EdnsOption {
019
020    public static final Nsid REQUEST = new Nsid();
021
022    private Nsid() {
023        this(new byte[0]);
024    }
025
026    public Nsid(byte[] payload) {
027        super(payload);
028    }
029
030    @Override
031    public OptionCode getOptionCode() {
032        return OptionCode.NSID;
033    }
034
035    @Override
036    protected CharSequence toStringInternal() {
037        String res = OptionCode.NSID + ": ";
038        res += new String(optionData, StandardCharsets.US_ASCII);
039        return res;
040    }
041
042    @Override
043    protected CharSequence asTerminalOutputInternal() {
044        return Hex.from(optionData);
045    }
046
047}