Hi everyone,
I was wondering if someone had a working example of using Sophos SAV-DI ICAP protocol to scan a file.
What I have so far is as follows (in C#):
byte[] buffer = new byte[1024]; int iRx; byte[] filestream = ReadFileToArray(@"C:\SophosCLI\testFile.txt"); string retDesc = String.Empty; var soc = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); var remoteEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1344); soc.Connect(remoteEndPoint); if (soc.Connected) { Console.WriteLine("Success connecting"); string cmd = "RESPMOD icap://localhost:1344/AVSCAN?action=SCAN ICAP/1.0\n"; cmd += "Host: localhost:1344\n"; cmd += "Preview: 4\n"; cmd += "Allow: 204\n"; cmd += "Encapsulated: req-hdr=0, res-hdr=83, res-body=130\n"; cmd = cmd + "\n"; cmd += "GET http://localhost/testFile.txt HTTP/1.1\n"; cmd += "Host: localhost\n\n"; cmd += "HTTP/1.1 200 OK\n"; cmd += "Transfer-Encoding: chunked\n"; cmd += String.Format("{0:X2}", filestream.Length); Console.WriteLine(cmd); soc.Send(System.Text.Encoding.ASCII.GetBytes(cmd)); soc.Send(filestream); cmd = "\n"; cmd += "\n"; cmd += "0\n"; cmd += "\n"; Console.WriteLine(cmd); soc.Send(System.Text.Encoding.ASCII.GetBytes(cmd)); while ((soc.Connected) && ((iRx = soc.Receive(buffer)) > 0)) { char[] chars = new char[iRx]; System.Text.Decoder d = System.Text.Encoding.UTF8.GetDecoder(); int charLen = d.GetChars(buffer, 0, iRx, chars, 0); System.String szData = new System.String(chars); retDesc = retDesc + szData; } } Console.WriteLine(retDesc); Console.Read(); Environment.Exit(0);
As you can see, I am positive that I have many errors especially in my request headers.
If I can see a working example I might have something to work with or a starting point but as you can see from my code above I am lost without it so it'll be so helpful to see something that works.
What I want to get: I want to be able to either send a file to the sophos engine and get a response OR send a bite array to the sophos engine. I just cant figure out how to attach either.
Any help will be much appreciated!!!
This thread was automatically locked due to age.