-/*\r
- * Copyright (c) 2003 University of Murcia. All rights reserved.\r
- * --------------------------------------------------------------\r
- * For more information, please see <http://www.umu.euro6ix.org/>.\r
- */\r
-\r
-package org.umu.cops.stack;\r
-\r
-import java.io.IOException;\r
-import java.net.Socket;\r
-import java.net.UnknownHostException;\r
-\r
-/**\r
- * COPS IPv6 PDP Address\r
- *\r
- * @version COPSIpv6PdpAddress.java, v 1.00 2003\r
- *\r
- */\r
-abstract public class COPSIpv6PdpAddress extends COPSPdpAddress {\r
-\r
- protected COPSObjHeader _objHdr;\r
- protected COPSIpv6Address _addr;\r
- private short _reserved;\r
- protected short _tcpPort;\r
-\r
- protected COPSIpv6PdpAddress() {\r
- _addr = new COPSIpv6Address();\r
- _objHdr = new COPSObjHeader();\r
- _objHdr.setCType((byte) 2);\r
- // _objHdr.setDataLength((short) _addr.getDataLength() + sizeof(u_int32_t));\r
- _objHdr.setDataLength((short) (_addr.getDataLength() + 4));\r
- }\r
-\r
- protected COPSIpv6PdpAddress(byte[] dataPtr) {\r
- _objHdr = new COPSObjHeader();\r
- _objHdr.parse(dataPtr);\r
- // _objHdr.checkDataLength();\r
-\r
- byte[] buf = new byte[16];\r
- System.arraycopy(dataPtr,2,buf,0,16);\r
- _addr.parse(buf);\r
-\r
- _reserved |= ((short) dataPtr[20]) << 8;\r
- _reserved |= ((short) dataPtr[21]) & 0xFF;\r
- _tcpPort |= ((short) dataPtr[22]) << 8;\r
- _tcpPort |= ((short) dataPtr[23]) & 0xFF;\r
-\r
- // _objHdr.setDataLength(_addr.getDataLength() + sizeof(u_int32_t));\r
- _objHdr.setDataLength((short) (_addr.getDataLength() + 4));\r
- }\r
-\r
- /**\r
- * Method setIpAddress\r
- *\r
- * @param hostName a String\r
- *\r
- * @throws UnknownHostException\r
- *\r
- */\r
- public void setIpAddress(String hostName) throws UnknownHostException {\r
- _addr.setIpAddress(hostName);\r
- }\r
-\r
- /**\r
- * Method setTcpPort\r
- *\r
- * @param port a short\r
- *\r
- */\r
- public void setTcpPort(short port) {\r
- _tcpPort = port;\r
- }\r
-\r
- /**\r
- * Method getIpName\r
- *\r
- * @return a String\r
- *\r
- * @throws UnknownHostException\r
- *\r
- */\r
- public String getIpName() throws UnknownHostException {\r
- return (_addr.getIpName());\r
- }\r
-\r
- /**\r
- * Method getTcpPort\r
- *\r
- * @return a short\r
- *\r
- */\r
- short getTcpPort() {\r
- return _tcpPort;\r
- };\r
-\r
- /**\r
- * Returns size in number of octects, including header\r
- *\r
- * @return a short\r
- *\r
- */\r
- public short getDataLength() {\r
- //Add the size of the header also\r
- return (_objHdr.getDataLength());\r
- }\r
-\r
- /**\r
- * Method isIpv6PdpAddress\r
- *\r
- * @return a boolean\r
- *\r
- */\r
- public boolean isIpv6PdpAddress() {\r
- return true;\r
- }\r
-\r
- /**\r
- * Write data on a given network socket\r
- *\r
- * @param id a Socket\r
- *\r
- * @throws IOException\r
- *\r
- */\r
- public void writeData(Socket id) throws IOException {\r
- //\r
- _objHdr.writeData(id);\r
- _addr.writeData(id);\r
-\r
- byte[] buf = new byte[4];\r
- buf[0] = (byte) (_reserved >> 8);\r
- buf[1] = (byte) _reserved;\r
- buf[2] = (byte) (_tcpPort >> 8);\r
- buf[3] = (byte) _tcpPort ;\r
-\r
- COPSUtil.writeData(id, buf, 4);\r
- }\r
-}\r
-\r
-\r