123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- package de.tudarmstadt.informatik.hostage.protocol;
- import android.content.Context;
- import android.net.DhcpInfo;
- import android.net.wifi.WifiManager;
- import org.alfresco.jlan.app.CifsOnlyXMLServerConfiguration;
- import org.alfresco.jlan.server.SessionListener;
- import org.alfresco.jlan.server.SrvSession;
- import org.alfresco.jlan.server.config.InvalidConfigurationException;
- import org.alfresco.jlan.server.filesys.FileListener;
- import org.alfresco.jlan.server.filesys.FilesystemsConfigSection;
- import org.alfresco.jlan.server.filesys.NetworkFile;
- import org.alfresco.jlan.smb.server.CIFSConfigSection;
- import org.alfresco.jlan.smb.server.SMBServer;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.net.InetAddress;
- import java.util.List;
- import de.tudarmstadt.informatik.hostage.Listener;
- import de.tudarmstadt.informatik.hostage.R;
- import de.tudarmstadt.informatik.hostage.ui.activity.MainActivity;
- import de.tudarmstadt.informatik.hostage.wrapper.Packet;
- public class CIFS implements Protocol, SessionListener, FileListener {
- private Listener mHandler;
- private SMBServer mSmbServer;
- public void initialize(Listener mHandler) {
- this.mHandler = mHandler;
- CifsOnlyXMLServerConfiguration smbConfig = new CifsOnlyXMLServerConfiguration();
- try {
- smbConfig.loadConfiguration(new InputStreamReader(MainActivity.context.getResources().openRawResource(R.raw.jlan_config)));
- CIFSConfigSection cifsConfig = (CIFSConfigSection) smbConfig.getConfigSection(CIFSConfigSection.SectionName);
- cifsConfig.setBroadcastMask(getBroadcastAddress());
- this.mSmbServer = new SMBServer(smbConfig);
- this.mSmbServer.addSessionListener(this);
- this.mSmbServer.addFileListener(this);
- this.mSmbServer.startServer();
- } catch (IOException e) {
- e.printStackTrace();
- } catch (InvalidConfigurationException e) {
- e.printStackTrace();
- }
- }
- @Override
- public int getPort() {
- return 1025;
- }
- @Override
- public boolean isClosed() {
- return false;
- }
- @Override
- public boolean isSecure() {
- return false;
- }
- @Override
- public List<Packet> processMessage(Packet message) {
- return null;
- }
- @Override
- public TALK_FIRST whoTalksFirst() {
- return null;
- }
- public String toString(){
- return "CIFS";
- }
- @Override
- public void sessionClosed(SrvSession srvSession) {
- System.out.println("---------------------- [CIFS] Session closed!");
- }
- @Override
- public void sessionCreated(SrvSession srvSession) {
- System.out.println("---------------------- [CIFS] Session created!");
- }
- @Override
- public void sessionLoggedOn(SrvSession srvSession) {
- System.out.println("---------------------- [CIFS] Session LoggedOn!");
- }
- @Override
- public void fileClosed(SrvSession srvSession, NetworkFile networkFile) {
- System.out.println("---------------------- [CIFS] File closed!");
- }
- @Override
- public void fileOpened(SrvSession srvSession, NetworkFile networkFile) {
- System.out.println("---------------------- [CIFS] File closed!");
- }
- private String getBroadcastAddress() throws IOException {
- WifiManager wifi = (WifiManager) MainActivity.context.getSystemService(Context.WIFI_SERVICE);
- DhcpInfo dhcp = wifi.getDhcpInfo();
- // handle null somehow
- 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);
- }
- }
|