String getLocalIPAddr() { if (localAddr == null) { try { IPAddr localHost = IPAddr.getLocalHost(); localAddr = localHost.getHostAddress(); } catch (UnknownHostException e) { // shouldn't happen log.error("LockssServlet: getLocalHost: " + e.toString()); return "???"; } } return localAddr; }
/** * connect: connect to the master * * @return: true for success and false for failure */ protected boolean connect() { boolean connected = true; try { _sock = new Socket(_serverIP, _serverPort); _out = new PrintWriter(_sock.getOutputStream(), true); _in = new BufferedReader(new InputStreamReader(_sock.getInputStream())); String reply = sendAll(); if (!reply.equals(ProtocolConstants.PACK_STR_CONFIRM_HEAD)) { /* Tokenize */ StringTokenizer st = new StringTokenizer(reply); if (st.nextToken().equals(ProtocolConstants.PACK_STR_ERRMES_HEAD)) { _elog(st.nextToken()); return false; } } _userSock = new Socket(_serverIP, _serverPort); _userOut = new PrintWriter(_userSock.getOutputStream(), true); _userIn = new BufferedReader(new InputStreamReader(_userSock.getInputStream())); String replyUser = sendUserID(); if (!replyUser.equals(ProtocolConstants.PACK_STR_CONFIRM_HEAD)) { throw new Exception("Not confirmed"); } } catch (UnknownHostException e) { if (!_server.noException()) { _elog(e.toString()); } if (_server.debugMode()) { e.printStackTrace(); } connected = false; } catch (IOException e) { if (!_server.noException()) { _elog(e.toString()); } if (_server.debugMode()) { e.printStackTrace(); } connected = false; } catch (Exception e) { if (!_server.noException()) { _elog(e.toString()); } if (_server.debugMode()) { e.printStackTrace(); } connected = false; } if (!connected) { return connected; } if (!connected) { /* Remove the pair of socket */ _sock = null; _in = null; _out = null; _userSock = null; _userOut = null; _userIn = null; } return connected; }