/**
* Closes the socket to the PEP
- * @throws IOException
*/
- public void close() throws IOException {
- if (!_sock.isClosed()) _sock.close();
+ public void close() {
+ if (!_sock.isClosed())
+ try {
+ _sock.close();
+ } catch (IOException e) {
+ logger.error("Error closing socket", e);
+ }
}
/**
/**
* Disconnects a PEP and stops the listener thread
* @param error COPS Error to be reported as a reason
- * @throws COPSException
- * @throws IOException
*/
- public void disconnect(final COPSError error) throws COPSException, IOException {
+ public void disconnect(final COPSError error) {
if (_pdpConn != null) {
sendCloseMessage(_socket, error.getErrCode(), error.getErrSubCode(), "Disconnecting from PDP requested");
_pdpConn.close();
if (_thread != null) _thread.interrupt();
else logger.warn("Unable to locate PDP connection thread. Cannot stop it.");
- if (_socket.isConnected()) _socket.close();
+ if (_socket.isConnected())
+ try {
+ _socket.close();
+ } catch (IOException e) {
+ logger.error("Error closing socket", e);
+ }
+ _socket = null;
_pepId = null;
_pdpConn = null;
_thread = null;
* @throws COPSException
*/
private void sendCloseMessage(final Socket conn, final ErrorTypes errorType, final ErrorTypes errorSubType,
- final String msg)
- throws COPSException {
+ final String msg) {
final COPSClientCloseMsg closeMsg = new COPSClientCloseMsg(_clientType,
new COPSError(errorType, errorSubType), null, null);
try {
+ logger.info("Sending client-close message. Reason: " + msg);
closeMsg.writeData(conn);
} catch (IOException unae) {
logger.error("Exception writing data", unae);
}
-
- throw new COPSException(msg);
}
/**
import org.umu.cops.prpdp.COPSPdpException;
import org.umu.cops.stack.COPSError;
import org.umu.cops.stack.COPSError.ErrorTypes;
-import org.umu.cops.stack.COPSException;
import javax.annotation.concurrent.ThreadSafe;
-import java.io.IOException;
import java.net.InetAddress;
import java.util.Map;
public void disconnect() {
logger.info("CcapClient: disconnect(): {}:{}", ipv4, port);
- try {
- pcmmPdp.disconnect(new COPSError(ErrorTypes.SHUTTING_DOWN, ErrorTypes.NA));
- isConnected = false;
- } catch (COPSException | IOException e) {
- logger.error("CcapClient: disconnect(): {}:{} FAILED: {}", ipv4, port, e.getMessage());
- }
+ pcmmPdp.disconnect(new COPSError(ErrorTypes.SHUTTING_DOWN, ErrorTypes.NA));
+ isConnected = false;
}
// TODO - consider returning a new PCMMGateReq object or a future here instead of setting the ID on the old