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.netbios.NetworkSettings; import org.alfresco.jlan.server.NetworkServer; import org.alfresco.jlan.smb.server.CIFSConfigSection; import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; 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); WifiManager wifi = (WifiManager) MainActivity.context.getSystemService(Context.WIFI_SERVICE); DhcpInfo dhcp = wifi.getDhcpInfo(); int ip = dhcp.ipAddress; cifsConfigSection.setSMBBindAddress(intToInetAddress(ip)); cifsConfigSection.setNetBIOSBindAddress(intToInetAddress(ip)); NetworkSettings.setBroadcastMask(getBroadcastAddress()); if(cifsConfigSection.hasNetBIOSSMB()){ serverConfiguration.addServer(createNetBIOSServer(serverConfiguration)); } serverConfiguration.addServer(createSMBServer(serverConfiguration)); for(int i=0; i> (k * 8)); return InetAddress.getByAddress(quads).toString().substring(1); } public static InetAddress intToInetAddress(int hostAddress) { byte[] addressBytes = { (byte)(0xff & hostAddress), (byte)(0xff & (hostAddress >> 8)), (byte)(0xff & (hostAddress >> 16)), (byte)(0xff & (hostAddress >> 24)) }; try { return InetAddress.getByAddress(addressBytes); } catch (UnknownHostException e) { throw new AssertionError(); } } }