Annotation of embedaddon/miniupnpc/java/JavaBridgeTest.java, revision 1.1

1.1     ! misho       1: import java.nio.ByteBuffer;
        !             2: import fr.free.miniupnp.*;
        !             3: 
        !             4: /**
        !             5:  *
        !             6:  * @author syuu
        !             7:  */
        !             8: public class JavaBridgeTest {
        !             9:     public static void main(String[] args) {
        !            10:         int UPNP_DELAY = 2000;
        !            11:         MiniupnpcLibrary miniupnpc = MiniupnpcLibrary.INSTANCE;
        !            12:         UPNPDev devlist = null;
        !            13:         UPNPUrls urls = new UPNPUrls();
        !            14:         IGDdatas data = new IGDdatas();
        !            15:         ByteBuffer lanaddr = ByteBuffer.allocate(16);
        !            16:         ByteBuffer intClient = ByteBuffer.allocate(16);
        !            17:         ByteBuffer intPort = ByteBuffer.allocate(6);
        !            18:         ByteBuffer desc = ByteBuffer.allocate(80);
        !            19:         ByteBuffer enabled = ByteBuffer.allocate(4);
        !            20:         ByteBuffer leaseDuration = ByteBuffer.allocate(16);
        !            21:         int ret;
        !            22:         int i;
        !            23: 
        !            24:         if(args.length < 2) {
        !            25:             System.err.println("Usage : java [...] JavaBridgeTest port protocol");
        !            26:             System.out.println("  port is numeric, protocol is TCP or UDP");
        !            27:             return;
        !            28:         }
        !            29: 
        !            30:         devlist = miniupnpc.upnpDiscover(UPNP_DELAY, (String) null, (String) null, 0, null);
        !            31:         if (devlist != null) {
        !            32:             System.out.println("List of UPNP devices found on the network :");
        !            33:             for (UPNPDev device = devlist; device != null; device = device.pNext) {
        !            34:                 System.out.println("desc: " + device.descURL.getString(0) + " st: " + device.st.getString(0));
        !            35:             }
        !            36:             if ((i = miniupnpc.UPNP_GetValidIGD(devlist, urls, data, lanaddr, 16)) != 0) {
        !            37:                 switch (i) {
        !            38:                     case 1:
        !            39:                         System.out.println("Found valid IGD : " + urls.controlURL.getString(0));
        !            40:                         break;
        !            41:                     case 2:
        !            42:                         System.out.println("Found a (not connected?) IGD : " + urls.controlURL.getString(0));
        !            43:                         System.out.println("Trying to continue anyway");
        !            44:                         break;
        !            45:                     case 3:
        !            46:                         System.out.println("UPnP device found. Is it an IGD ? : " + urls.controlURL.getString(0));
        !            47:                         System.out.println("Trying to continue anyway");
        !            48:                         break;
        !            49:                     default:
        !            50:                         System.out.println("Found device (igd ?) : " + urls.controlURL.getString(0));
        !            51:                         System.out.println("Trying to continue anyway");
        !            52: 
        !            53:                 }
        !            54:                 System.out.println("Local LAN ip address : " + new String(lanaddr.array()));
        !            55:                 ByteBuffer externalAddress = ByteBuffer.allocate(16);
        !            56:                 miniupnpc.UPNP_GetExternalIPAddress(urls.controlURL.getString(0),
        !            57:                         new String(data.first.servicetype), externalAddress);
        !            58:                 System.out.println("ExternalIPAddress = " + new String(externalAddress.array()));
        !            59:                 ret = miniupnpc.UPNP_AddPortMapping(
        !            60:                         urls.controlURL.getString(0), // controlURL
        !            61:                         new String(data.first.servicetype), // servicetype
        !            62:                         args[0], // external Port
        !            63:                         args[0], // internal Port
        !            64:                         new String(lanaddr.array()), // internal client
        !            65:                         "added via miniupnpc/JAVA !", // description
        !            66:                         args[1], // protocol UDP or TCP
        !            67:                         null, // remote host (useless)
        !            68:                         "0"); // leaseDuration
        !            69:                 if (ret != MiniupnpcLibrary.UPNPCOMMAND_SUCCESS)
        !            70:                     System.out.println("AddPortMapping() failed with code " + ret);
        !            71:                 ret = miniupnpc.UPNP_GetSpecificPortMappingEntry(
        !            72:                         urls.controlURL.getString(0), new String(data.first.servicetype),
        !            73:                         args[0], args[1], intClient, intPort,
        !            74:                         desc, enabled, leaseDuration);
        !            75:                 if (ret != MiniupnpcLibrary.UPNPCOMMAND_SUCCESS)
        !            76:                     System.out.println("GetSpecificPortMappingEntry() failed with code " + ret);
        !            77:                 System.out.println("InternalIP:Port = " +
        !            78:                         new String(intClient.array()) + ":" + new String(intPort.array()) + 
        !            79:                         " (" + new String(desc.array()) + ")");
        !            80:                 ret = miniupnpc.UPNP_DeletePortMapping(
        !            81:                         urls.controlURL.getString(0),
        !            82:                         new String(data.first.servicetype),
        !            83:                         args[0], args[1], null);
        !            84:                 if (ret != MiniupnpcLibrary.UPNPCOMMAND_SUCCESS)
        !            85:                     System.out.println("DelPortMapping() failed with code " + ret);
        !            86:                 miniupnpc.FreeUPNPUrls(urls);
        !            87:             } else {
        !            88:                 System.out.println("No valid UPNP Internet Gateway Device found.");
        !            89:             }
        !            90:             miniupnpc.freeUPNPDevlist(devlist);
        !            91:         } else {
        !            92:             System.out.println("No IGD UPnP Device found on the network !\n");
        !            93:         }
        !            94:     }
        !            95: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>