public void connect(String host, int port) throws Exception { // if (!this.connected.compareAndSet(false, true)) { return; } // if (isVerbose() && LOGGER.isInfoEnabled()) { LOGGER.info("connecting to host: {}, port: {}", host, port); } // this.socket = this.socketFactory.create(host, port); this.os = new TransportOutputStreamImpl(this.socket.getOutputStream()); if (this.level2BufferSize <= 0) { this.is = new TransportInputStreamImpl(this.socket.getInputStream(), this.level1BufferSize); } else { this.is = new TransportInputStreamImpl( new ActiveBufferedInputStream(this.socket.getInputStream(), this.level2BufferSize), this.level1BufferSize); } // final Packet packet = this.is.readPacket(); if (packet.getPacketBody()[0] == ErrorPacket.PACKET_MARKER) { final ErrorPacket error = ErrorPacket.valueOf(packet); LOGGER.info( "failed to connect to host: {}, port: {}, error", new Object[] {host, port, error}); throw new TransportException(error); } else { // final GreetingPacket greeting = GreetingPacket.valueOf(packet); this.context.setServerHost(host); this.context.setServerPort(port); this.context.setServerStatus(greeting.getServerStatus()); this.context.setServerVersion(greeting.getServerVersion().toString()); this.context.setServerCollation(greeting.getServerCollation()); this.context.setServerCapabilities(greeting.getServerCapabilities()); this.context.setThreadId(greeting.getThreadId()); this.context.setProtocolVersion(greeting.getProtocolVersion()); this.context.setScramble( greeting.getScramble1().toString() + greeting.getScramble2().toString()); // if (isVerbose() && LOGGER.isInfoEnabled()) { LOGGER.info( "connected to host: {}, port: {}, context: {}", new Object[] {host, port, this.context}); } } // this.authenticator.login(this); }
public TransportException(ErrorPacket ep) { super(ep.getErrorMessage().toString()); this.errorCode = ep.getErrorCode(); this.sqlState = ep.getSqlState().toString(); this.errorMessage = ep.getErrorMessage().toString(); }