123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package de.tudarmstadt.informatik.hostage.protocol.cifs;
- import android.content.Context;
- import android.net.DhcpInfo;
- import android.net.wifi.WifiManager;
- import org.alfresco.jlan.app.JLANCifsServer;
- import org.alfresco.jlan.app.XMLServerConfiguration;
- import org.alfresco.jlan.server.NetworkServer;
- import org.alfresco.jlan.smb.server.CIFSConfigSection;
- import java.io.IOException;
- import java.net.InetAddress;
- import de.tudarmstadt.informatik.hostage.ui.activity.MainActivity;
- /**
- * HostageV3
- * ================
- * Created by abrakowski on 19.03.15.
- */
- public class CifsServer extends JLANCifsServer {
- private final XMLServerConfiguration serverConfiguration;
- public CifsServer(XMLServerConfiguration serverConfiguration){
- super();
- this.serverConfiguration = serverConfiguration;
- }
- public void run() throws Exception {
- CIFSConfigSection cifsConfigSection = (CIFSConfigSection) serverConfiguration.getConfigSection(CIFSConfigSection.SectionName);
- cifsConfigSection.setBroadcastMask(getBroadcastAddress());
- cifsConfigSection.setHostAnnouncer(true);
- cifsConfigSection.setDisableNIOCode(true);
- if(cifsConfigSection.hasNetBIOSSMB()){
- serverConfiguration.addServer(createNetBIOSServer(serverConfiguration));
- }
- serverConfiguration.addServer(createSMBServer(serverConfiguration));
- for(int i=0; i<serverConfiguration.numberOfServers(); i++){
- NetworkServer server = serverConfiguration.getServer(i);
- server.startServer();
- }
- }
- public void stop(){
- for(int i=0; i<serverConfiguration.numberOfServers(); i++){
- NetworkServer server = serverConfiguration.getServer(i);
- server.shutdownServer(true);
- }
- }
- private String getBroadcastAddress() throws IOException {
- WifiManager wifi = (WifiManager) MainActivity.context.getSystemService(Context.WIFI_SERVICE);
- DhcpInfo dhcp = wifi.getDhcpInfo();
- // handle null somehow
- System.out.println("DEBUG:::::IP::::"+dhcp.ipAddress);
- int broadcast = (dhcp.ipAddress & dhcp.netmask) | ~dhcp.netmask;
- byte[] quads = new byte[4];
- for (int k = 0; k < 4; k++)
- quads[k] = (byte) (broadcast >> (k * 8));
- return InetAddress.getByAddress(quads).toString().substring(1);
- }
- }
|