X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=liblttng-ust-java-agent%2Fjava%2Flttng-ust-agent-common%2Forg%2Flttng%2Fust%2Fagent%2Fclient%2FSessiondEnableEventCommand.java;h=35029c9bd5712067fd0d0f1d122460cc47e59127;hb=c0c0989ab70574e09b2f7e8b48c2da6af664a849;hp=5665a6916baa640954e4f272af0b1f8596253792;hpb=abac44cda88a3b83c2bf98c6bab16ed6a1cc1af1;p=lttng-ust.git diff --git a/liblttng-ust-java-agent/java/lttng-ust-agent-common/org/lttng/ust/agent/client/SessiondEnableEventCommand.java b/liblttng-ust-java-agent/java/lttng-ust-agent-common/org/lttng/ust/agent/client/SessiondEnableEventCommand.java index 5665a691..35029c9b 100644 --- a/liblttng-ust-java-agent/java/lttng-ust-agent-common/org/lttng/ust/agent/client/SessiondEnableEventCommand.java +++ b/liblttng-ust-java-agent/java/lttng-ust-agent-common/org/lttng/ust/agent/client/SessiondEnableEventCommand.java @@ -1,19 +1,9 @@ /* - * Copyright (C) 2015 - EfficiOS Inc., Alexandre Montplaisir - * Copyright (C) 2013 - David Goulet + * SPDX-License-Identifier: LGPL-2.1-only * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License, version 2.1 only, - * as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License - * for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * Copyright (C) 2015 EfficiOS Inc. + * Copyright (C) 2015 Alexandre Montplaisir + * Copyright (C) 2013 David Goulet */ package org.lttng.ust.agent.client; @@ -31,7 +21,7 @@ import org.lttng.ust.agent.session.LogLevelSelector; * @author Alexandre Montplaisir * @author David Goulet */ -class SessiondEnableEventCommand implements ISessiondCommand { +class SessiondEnableEventCommand extends SessiondCommand { /** Fixed event name length. Value defined by the lttng agent protocol. */ private static final int EVENT_NAME_LENGTH = 256; @@ -56,37 +46,13 @@ class SessiondEnableEventCommand implements ISessiondCommand { /* Read the event name */ byte[] eventNameBytes = new byte[EVENT_NAME_LENGTH]; buf.get(eventNameBytes); - eventName = new String(eventNameBytes).trim(); - - /* - * Read the filter string. The buffer contains the length (number of - * bytes), then the bytes themselves. - * - * The length is represented as an unsigned int, but it should never - * be greater than Integer.MAX_VALUE. - */ - int filterStringLength = buf.getInt(); - if (filterStringLength < 0) { - /* - * The (unsigned) length is above what the sessiond should send. The - * command cannot be processed. - */ - filterString = null; - commandIsValid = false; - return; - } - if (filterStringLength == 0) { - /* There is explicitly no filter string */ - filterString = ""; - commandIsValid = true; - return; - } + eventName = new String(eventNameBytes, SESSIOND_PROTOCOL_CHARSET).trim(); - byte[] filterStringBytes = new byte[filterStringLength]; - buf.get(filterStringBytes); - filterString = new String(filterStringBytes).trim(); + /* Read the filter string */ + filterString = readNextString(buf); - commandIsValid = true; + /* The command was invalid if the string could not be read correctly */ + commandIsValid = (filterString != null); } @Override @@ -99,4 +65,13 @@ class SessiondEnableEventCommand implements ISessiondCommand { boolean success = agent.eventEnabled(rule); return (success ? LttngAgentResponse.SUCESS_RESPONSE : LttngAgentResponse.FAILURE_RESPONSE); } + + @Override + public String toString() { + return "SessiondEnableEventCommand[" + + "eventName=" + eventName + + ", logLevel=" + logLevelFilter.toString() + + ", filterString=" + filterString + +"]"; + } }