Add more net code

This commit is contained in:
Flare Microsystems
2024-11-11 08:46:26 -08:00
parent d8f7a36bc2
commit b328918684
12 changed files with 197 additions and 73 deletions

View File

@@ -1,5 +1,7 @@
package com.flaremicro.crossjeeves.net;
import static com.flaremicro.crossjeeves.net.ErrorCodes.FILE_DOWNLOAD_FAILURE;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
@@ -12,8 +14,9 @@ import com.flaremicro.crossjeeves.net.packet.Packet127KeepAlive;
import com.flaremicro.crossjeeves.net.packet.Packet1Status;
import com.flaremicro.crossjeeves.net.packet.Packet2Script;
import com.flaremicro.crossjeeves.net.packet.Packet3Clone;
import com.flaremicro.crossjeeves.net.packet.Packet5Artifact;
import com.flaremicro.crossjeeves.net.packet.Packet4FileData;
import com.flaremicro.crossjeeves.net.packet.Packet5Artifact;
import com.flaremicro.crossjeeves.net.packet.Packet6Disconnect;
import com.flaremicro.util.Util;
import com.flaremicro.util.ZipUtils;
@@ -26,53 +29,53 @@ public class ClientHandler extends NetworkHandler {
@Override
public void handlePacket(Packet packet) {
// TODO Auto-generated method stub
}
@Override
public void handlePacket(Packet0Identify packet) {
// TODO Auto-generated method stub
}
@Override
public void handlePacket(Packet1Status packet) {
// TODO Auto-generated method stub
}
@Override
public void handlePacket(Packet2Script packet) {
// TODO Auto-generated method stub
}
@Override
public void handlePacket(Packet3Clone packet) {
long fileId = packet.getFileID();
String workspace = System.getenv("WORKSPACE");
if(workspace == null || workspace.trim().length() <= 0)
if (workspace == null || workspace.trim().length() <= 0)
{
//disconnect
}
BufferedInputStream fileStream = null;
try
{
File workspaceZip = File.createTempFile("workspace-"+fileId, ".zip");
File workspaceZip = File.createTempFile("workspace-" + fileId, ".zip");
ZipUtils.zipDirectory(new File(workspace), workspaceZip);
packet = new Packet3Clone(fileId, workspaceZip.length());
enqueue(packet);
fileStream = new BufferedInputStream(new FileInputStream(workspaceZip));
int read;
byte[] buffer = new byte[4096];
while((read = fileStream.read(buffer)) > -1)
while ((read = fileStream.read(buffer)) > -1)
{
if(read == 0)
if (read == 0)
continue;
Packet4FileData dataPacket = new Packet4FileData(fileId, (short)read, buffer);
Packet4FileData dataPacket = new Packet4FileData(fileId, (short) read, buffer);
enqueue(dataPacket);
}
enqueue(new Packet4FileData(fileId, (short)0, new byte[]{}));
enqueue(new Packet4FileData(fileId, (short) 0, new byte[] {}));
}
catch (IOException e)
{
@@ -87,20 +90,33 @@ public class ClientHandler extends NetworkHandler {
@Override
public void handlePacket(Packet4FileData packet) {
// TODO Auto-generated method stub
try
{
this.appendFile(packet.getFileId(), packet.getFileChunk());
}
catch (IOException e)
{
e.printStackTrace();
disconnect(FILE_DOWNLOAD_FAILURE, "Failed to download transferred file");
}
}
@Override
public void handlePacket(Packet5Artifact packet) {
// TODO Auto-generated method stub
}
@Override
public void handlePacket(Packet127KeepAlive packet) {
// TODO Auto-generated method stub
}
@Override
public void handlePacket(Packet6Disconnect packet) {
// TODO Auto-generated method stub
}
}