Annotation of embedaddon/miniupnpc/java/JavaBridgeTest.java, revision 1.1.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>