diff --git a/termux-shared/src/main/java/com/termux/shared/net/socket/local/PeerCred.java b/termux-shared/src/main/java/com/termux/shared/net/socket/local/PeerCred.java index 6674eee0f7..74fce0da9f 100644 --- a/termux-shared/src/main/java/com/termux/shared/net/socket/local/PeerCred.java +++ b/termux-shared/src/main/java/com/termux/shared/net/socket/local/PeerCred.java @@ -1,6 +1,7 @@ package com.termux.shared.net.socket.local; import android.content.Context; +import android.util.Pair; import androidx.annotation.Keep; import androidx.annotation.NonNull; @@ -10,6 +11,9 @@ import com.termux.shared.logger.Logger; import com.termux.shared.markdown.MarkdownUtils; +import java.util.ArrayList; +import java.util.List; + /** The {@link PeerCred} of the {@link LocalClientSocket} containing info of client/peer. */ @Keep public class PeerCred { @@ -76,18 +80,39 @@ public static String getPeerCredLogString(final PeerCred peerCred) { return peerCred.getLogString(); } + /** + * Get log variables {@link List < Pair >} for {@link PeerCred}. + * + * @return Returns the log variables in list {@link List< Pair >}. + */ + private List> getLogVariableList() { + List> variableList = new ArrayList>() {{ + add(Pair.create("Process", getProcessString())); + add(Pair.create("User", getUserString())); + add(Pair.create("Group", getGroupString())); + add(Pair.create("Cmdline", cmdline)); + }}; + return variableList; + } + /** Get a log {@link String} for the {@link PeerCred}. */ @NonNull public String getLogString() { StringBuilder logString = new StringBuilder(); logString.append("Peer Cred:"); - logString.append("\n").append(Logger.getSingleLineLogStringEntry("Process", getProcessString(), "-")); - logString.append("\n").append(Logger.getSingleLineLogStringEntry("User", getUserString(), "-")); - logString.append("\n").append(Logger.getSingleLineLogStringEntry("Group", getGroupString(), "-")); - if (cmdline != null) - logString.append("\n").append(Logger.getMultiLineLogStringEntry("Cmdline", cmdline, "-")); + for (Pair logVar: getLogVariableList()) { + String label = logVar.first; + String object = logVar.second; + switch(label) { + case "Cmdline": + if (label != null) logString.append("\n").append(Logger.getMultiLineLogStringEntry(label, object, "-")); + break; + default: + logString.append("\n").append(Logger.getSingleLineLogStringEntry(label, object, "-")); + } + } return logString.toString(); } @@ -109,12 +134,18 @@ public String getMarkdownString() { StringBuilder markdownString = new StringBuilder(); markdownString.append("## ").append("Peer Cred"); - markdownString.append("\n").append(MarkdownUtils.getSingleLineMarkdownStringEntry("Process", getProcessString(), "-")); - markdownString.append("\n").append(MarkdownUtils.getSingleLineMarkdownStringEntry("User", getUserString(), "-")); - markdownString.append("\n").append(MarkdownUtils.getSingleLineMarkdownStringEntry("Group", getGroupString(), "-")); - if (cmdline != null) - markdownString.append("\n").append(MarkdownUtils.getMultiLineMarkdownStringEntry("Cmdline", cmdline, "-")); + for (Pair logVar: getLogVariableList()) { + String label = logVar.first; + String object = logVar.second; + switch(label) { + case "Cmdline": + if (label != null) markdownString.append("\n").append(MarkdownUtils.getMultiLineMarkdownStringEntry(label, object, "-")); + break; + default: + markdownString.append("\n").append(MarkdownUtils.getSingleLineMarkdownStringEntry(label, object, "-")); + } + } return markdownString.toString(); }