package com.trilead.ssh2.packets; import java.util.HashMap; import java.util.Map; /** * Delivers a signal from client to server. * * See section 6.9 of RFC 4254. * * @author Kohsuke Kawaguchi */ public class PacketSignal { byte[] payload; public int recipientChannelID; public String signalName; public PacketSignal(int recipientChannelID, String signalName) { this.recipientChannelID = recipientChannelID; if (signalName.startsWith("SIG")) signalName=signalName.substring(3); this.signalName = signalName; } public byte[] getPayload() { if (payload == null) { TypesWriter tw = new TypesWriter(); tw.writeByte(Packets.SSH_MSG_CHANNEL_REQUEST); tw.writeUINT32(recipientChannelID); tw.writeString("signal"); tw.writeBoolean(false); tw.writeString(signalName); payload = tw.getBytes(); } return payload; } private static final Map<Integer,String> SIGNALS = new HashMap<Integer, String>(); public static String strsignal(int i) { return SIGNALS.get(i); } static { SIGNALS.put(14,"ALRM"); SIGNALS.put( 1,"HUP"); SIGNALS.put( 2,"INT"); SIGNALS.put( 9,"KILL"); SIGNALS.put(13,"PIPE"); SIGNALS.put(15,"TERM"); SIGNALS.put( 6,"ABRT"); SIGNALS.put( 8,"FPE"); SIGNALS.put( 4,"ILL"); SIGNALS.put( 3,"QUIT"); SIGNALS.put(11,"SEGV"); SIGNALS.put( 5,"TRAP"); } }