Move to kernel style SPDX license identifiers
[lttng-ust.git] / liblttng-ust-java-agent / java / lttng-ust-agent-common / org / lttng / ust / agent / client / SessiondEnableEventCommand.java
index c9183d19d9736d2f2cf3f0fab85239c3b6d3d2dd..35029c9bd5712067fd0d0f1d122460cc47e59127 100644 (file)
@@ -1,19 +1,9 @@
 /*
- * Copyright (C) 2015 - EfficiOS Inc., Alexandre Montplaisir <alexmonthy@efficios.com>
- * Copyright (C) 2013 - David Goulet <dgoulet@efficios.com>
+ * 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 <alexmonthy@efficios.com>
+ * Copyright (C) 2013 David Goulet <dgoulet@efficios.com>
  */
 
 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;
@@ -48,7 +38,7 @@ class SessiondEnableEventCommand implements ISessiondCommand {
                        throw new IllegalArgumentException();
                }
                ByteBuffer buf = ByteBuffer.wrap(data);
-               buf.order(ByteOrder.LITTLE_ENDIAN);
+               buf.order(ByteOrder.BIG_ENDIAN);
                int logLevel = buf.getInt();
                int logLevelType = buf.getInt();
                logLevelFilter = new LogLevelSelector(logLevel, logLevelType);
@@ -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
+                               +"]";
+       }
 }
This page took 0.024795 seconds and 4 git commands to generate.