1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.newsclub.net.mysql;
19
20 import java.io.File;
21 import java.io.IOException;
22 import java.net.Socket;
23 import java.net.SocketException;
24 import java.util.Properties;
25
26 import org.newsclub.net.unix.AFUNIXSocket;
27 import org.newsclub.net.unix.AFUNIXSocketAddress;
28
29 import com.kohlschutter.annotations.compiletime.SuppressFBWarnings;
30 import com.mysql.jdbc.SocketFactory;
31
32
33
34
35
36
37
38
39
40
41
42
43 @SuppressWarnings("deprecation")
44 public class AFUNIXDatabaseSocketFactory implements SocketFactory {
45 private Socket socket = null;
46
47
48
49
50 public AFUNIXDatabaseSocketFactory() {
51 }
52
53 @Override
54 @SuppressFBWarnings("EI_EXPOSE_REP")
55 public Socket afterHandshake() throws SocketException, IOException {
56 return socket;
57 }
58
59 @Override
60 @SuppressFBWarnings("EI_EXPOSE_REP")
61 public Socket beforeHandshake() throws SocketException, IOException {
62 return socket;
63 }
64
65 @Override
66 @SuppressFBWarnings({"EI_EXPOSE_REP", "PATH_TRAVERSAL_IN"})
67 public Socket connect(String host, int portNumber, Properties props) throws SocketException,
68 IOException {
69
70
71
72 final File socketFile = new File(props.getProperty("junixsocket.file", "/tmp/mysql.sock"));
73
74 socket = AFUNIXSocket.connectTo(AFUNIXSocketAddress.of(socketFile));
75 return socket;
76 }
77 }