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

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

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