summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authormukesh agrawal <quiche@google.com>2016-04-11 15:52:52 -0700
committermukesh agrawal <quiche@google.com>2016-04-12 15:38:28 -0700
commite31290e1c2eebf70c5ab22091a9520c7a001161e (patch)
tree3d1f33366130537c9327c54e2cd572e0ee58455c /service
parent94e8f71b884e11abb8c46e69467af96f17d6423e (diff)
wifi service: add utility to check printability
When logging data, it's useful to know whether or not the data is plain ASCII. (If so, we can print the data raw. Otherwise, we need to base64 encode the data.) To meet this need: add a utility method to check if a byte buffer contains (only) printable ASCII. BUG=27554392 TEST=unit tests Change-Id: If818bc378c6f146e7517f6ae4bb36b4b5bb8db48
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/util/StringUtil.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/util/StringUtil.java b/service/java/com/android/server/wifi/util/StringUtil.java
new file mode 100644
index 000000000..813b85b95
--- /dev/null
+++ b/service/java/com/android/server/wifi/util/StringUtil.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wifi.util;
+
+/** Basic string utilities */
+public class StringUtil {
+ static final byte ASCII_PRINTABLE_MIN = ' ';
+ static final byte ASCII_PRINTABLE_MAX = '~';
+
+ /** Returns true if-and-only-if |byteArray| can be safely printed as ASCII. */
+ public static boolean isAsciiPrintable(byte[] byteArray) {
+ if (byteArray == null) {
+ return true;
+ }
+
+ for (byte b : byteArray) {
+ switch (b) {
+ // Control characters which actually are printable. Fall-throughs are deliberate.
+ case 0x07: // bell ('\a' not recognized in Java)
+ case '\f': // form feed
+ case '\n': // new line
+ case '\t': // horizontal tab
+ case 0x0b: // vertical tab ('\v' not recognized in Java)
+ continue;
+ }
+
+ if (b < ASCII_PRINTABLE_MIN || b > ASCII_PRINTABLE_MAX) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+}