1 /*
2 * Copyright 2025 The Netty Project
3 *
4 * The Netty Project licenses this file to you under the Apache License,
5 * version 2.0 (the "License"); you may not use this file except in compliance
6 * with the License. You may obtain a copy of the License at:
7 *
8 * https://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations
14 * under the License.
15 */
16 package io.netty.handler.codec.socksx.v5;
17
18 import io.netty.handler.codec.DecoderResult;
19 import io.netty.util.internal.ObjectUtil;
20 import io.netty.util.internal.StringUtil;
21
22 /**
23 * The default {@link Socks5PrivateAuthResponse} implementation.
24 */
25 public final class DefaultSocks5PrivateAuthResponse extends AbstractSocks5Message
26 implements Socks5PrivateAuthResponse {
27
28 /**
29 * The authentication status.
30 */
31 private final Socks5PrivateAuthStatus status;
32
33 /**
34 * Creates a new instance with the specified status.
35 *
36 * @param authStatus the authentication status
37 */
38 public DefaultSocks5PrivateAuthResponse(final Socks5PrivateAuthStatus authStatus) {
39 this.status = ObjectUtil.checkNotNull(authStatus, "authStatus");
40 }
41
42 @Override
43 public Socks5PrivateAuthStatus status() {
44 return status;
45 }
46
47 @Override
48 public String toString() {
49 StringBuilder buf = new StringBuilder(StringUtil.simpleClassName(this));
50
51 DecoderResult decoderResult = decoderResult();
52 if (!decoderResult.isSuccess()) {
53 buf.append("(decoderResult: ");
54 buf.append(decoderResult);
55 buf.append(", status: ");
56 buf.append(status);
57 buf.append(')');
58 } else {
59 buf.append("(status: ");
60 buf.append(status);
61 buf.append(')');
62 }
63
64 return buf.toString();
65 }
66 }