001/* 002 * jPOS Project [http://jpos.org] 003 * Copyright (C) 2000-2026 jPOS Software SRL 004 * 005 * This program is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 017 */ 018 019package org.jpos.log.evt; 020 021import com.fasterxml.jackson.annotation.JsonInclude; 022import org.jpos.log.AuditLogEvent; 023 024/** 025 * Audit log event recording a channel connection attempt. 026 * @param host remote host name or address 027 * @param remotePort remote port number 028 * @param localPort local port number 029 * @param error error message, or {@code null} on success 030 */ 031public record Connect(String host, int remotePort, int localPort, @JsonInclude(JsonInclude.Include.NON_NULL) String error) implements AuditLogEvent { 032 /** 033 * Creates a Connect event. 034 * @param host remote host 035 * @param remotePort remote port 036 * @param localPort local port 037 * @param error error message, or null on success 038 */ 039 public Connect(String host, int remotePort, int localPort, String error) { 040 this.host = host; 041 this.remotePort = remotePort; 042 this.localPort = localPort; 043 this.error = error; 044 } 045 046 /** 047 * Creates a Connect event for a successful connection. 048 * @param host remote host 049 * @param remotePort remote port 050 * @param localPort local port 051 */ 052 public Connect(String host, int remotePort, int localPort) { 053 this(host, remotePort, localPort, null); 054 } 055 056 @Override 057 public String toString() { 058 return "Connect{" + 059 "host='" + host + '\'' + 060 ", remotePort=" + remotePort + 061 ", localPort=" + localPort + 062 (error != null ? ", error='" + error + '\'' : "") + 063 '}'; 064 } 065}