commit 97f2dbbc341c09496c3823604cc73c5d70e42084
Author: Jakub Janco <jjanco@redhat.com>
Date: Tue Dec 18 17:43:18 2018 +0100
remove NamedPipeSocket
diff --git a/src/main/java/org/mariadb/jdbc/internal/io/socket/NamedPipeSocket.java b/src/main/java/org/mariadb/jdbc/internal/io/socket/NamedPipeSocket.java
deleted file mode 100644
index 562bceed..00000000
--- a/src/main/java/org/mariadb/jdbc/internal/io/socket/NamedPipeSocket.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- *
- * MariaDB Client for Java
- *
- * Copyright (c) 2012-2014 Monty Program Ab.
- * Copyright (c) 2015-2017 MariaDB Ab.
- *
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- *
- * 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 Monty Program Ab info@montyprogram.com.
- *
- * This particular MariaDB Client for Java file is work
- * derived from a Drizzle-JDBC. Drizzle-JDBC file which is covered by subject to
- * the following copyright and notice provisions:
- *
- * Copyright (c) 2009-2011, Marcus Eriksson
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice, this list
- * of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice, this
- * list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * Neither the name of the driver nor the names of its contributors may not be
- * used to endorse or promote products derived from this software without specific
- * prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- */
-
-package org.mariadb.jdbc.internal.io.socket;
-
-import com.sun.jna.platform.win32.Kernel32;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.RandomAccessFile;
-import java.net.Socket;
-import java.net.SocketAddress;
-import java.util.concurrent.TimeUnit;
-
-@SuppressWarnings("UnnecessaryInitCause")
-public class NamedPipeSocket extends Socket {
-
- private final String host;
- private final String name;
-
- private RandomAccessFile file;
- private InputStream is;
- private OutputStream os;
-
- public NamedPipeSocket(String host, String name) {
- this.host = host;
- this.name = name;
- }
-
- @Override
- public void close() throws IOException {
- if (file != null) {
- file.close();
- file = null;
- }
- }
-
- @Override
- public void connect(SocketAddress endpoint) throws IOException {
- connect(endpoint, 0);
- }
-
- /**
- * Name pipe connection.
- *
- * @param endpoint endPoint
- * @param timeout timeout in milliseconds
- * @throws IOException exception
- */
- public void connect(SocketAddress endpoint, int timeout) throws IOException {
- String filename;
- if (host == null || host.equals("localhost")) {
- filename = "\\\\.\\pipe\\" + name;
- } else {
- filename = "\\\\" + host + "\\pipe\\" + name;
- }
-
- //use a default timeout of 100ms if no timeout set.
- int usedTimeout = timeout == 0 ? 100 : timeout;
- long initialNano = System.nanoTime();
- do {
- try {
- file = new RandomAccessFile(filename, "rw");
- break;
- } catch (FileNotFoundException fileNotFoundException) {
- try {
- //using JNA if available
- Kernel32.INSTANCE.WaitNamedPipe(filename, timeout);
- //then retry connection
- file = new RandomAccessFile(filename, "rw");
- } catch (Throwable cle) {
- // in case JNA not on classpath, then wait 10ms before next try.
- if (System.nanoTime() - initialNano > TimeUnit.MILLISECONDS.toNanos(usedTimeout)) {
- if (timeout == 0) {
- throw new FileNotFoundException(fileNotFoundException.getMessage()
- + "\nplease consider set connectTimeout option, so connection can retry having access to named pipe. "
- + "\n(Named pipe can throw ERROR_PIPE_BUSY error)");
- }
- throw fileNotFoundException;
- }
- try {
- TimeUnit.MILLISECONDS.sleep(5);
- } catch (InterruptedException interrupted) {
- IOException ioException = new IOException(
- "Interruption during connection to named pipe");
- ioException.initCause(interrupted);
- throw ioException;
- }
- }
- }
- } while (true);
-
- is = new InputStream() {
- @Override
- public int read(byte[] bytes, int off, int len) throws IOException {
- return file.read(bytes, off, len);
- }
-
- @Override
- public int read() throws IOException {
- return file.read();
- }
-
- @Override
- public int read(byte[] bytes) throws IOException {
- return file.read(bytes);
- }
- };
-
- os = new OutputStream() {
- @Override
- public void write(byte[] bytes, int off, int len) throws IOException {
- file.write(bytes, off, len);
- }
-
- @Override
- public void write(int value) throws IOException {
- file.write(value);
- }
-
- @Override
- public void write(byte[] bytes) throws IOException {
- file.write(bytes);
- }
- };
- }
-
- public InputStream getInputStream() {
- return is;
- }
-
- public OutputStream getOutputStream() {
- return os;
- }
-
- public void setTcpNoDelay(boolean bool) {
- //do nothing
- }
-
- public void setKeepAlive(boolean bool) {
- //do nothing
- }
-
- public void setReceiveBufferSize(int size) {
- //do nothing
- }
-
- public void setSendBufferSize(int size) {
- //do nothing
- }
-
- public void setSoLinger(boolean bool, int value) {
- //do nothing
- }
-
- @Override
- public void setSoTimeout(int timeout) {
- //do nothing
- }
-
- public void shutdownInput() {
- //do nothing
- }
-
- public void shutdownOutput() {
- //do nothing
- }
-}
diff --git a/src/main/java/org/mariadb/jdbc/internal/io/socket/SocketUtility.java b/src/main/java/org/mariadb/jdbc/internal/io/socket/SocketUtility.java
index 8a024af9..1b8b498d 100644
--- a/src/main/java/org/mariadb/jdbc/internal/io/socket/SocketUtility.java
+++ b/src/main/java/org/mariadb/jdbc/internal/io/socket/SocketUtility.java
@@ -19,9 +19,7 @@ public class SocketUtility {
Platform.getOSType();
return (urlParser, host) -> {
- if (urlParser.getOptions().pipe != null) {
- return new NamedPipeSocket(host, urlParser.getOptions().pipe);
- } else if (urlParser.getOptions().localSocket != null) {
+ if (urlParser.getOptions().localSocket != null) {
try {
return new UnixDomainSocket(urlParser.getOptions().localSocket);
} catch (RuntimeException re) {