using System;
using System.Runtime.Remoting;
using System.Xml.Serialization;
using System.Web.Services;
namespace NSConfig {
public class ClientService : NSConfigService
{
private static string cookie = null;
/* override the getWebRequest to send cookie */
protected override System.Net.WebRequest GetWebRequest(Uri uri)
{
System.Net.HttpWebRequest req = (System.Net.HttpWebRequest) base.GetWebRequest(uri);
if (cookie != null)
{
req.Headers.Add("Set-Cookie", cookie);
}
return req;
}
/* override the getWebResponse to get the cookie */
protected override System.Net.WebResponse GetWebResponse(System.Net.WebRequest req)
{
System.Net.HttpWebResponse rep = (System.Net.HttpWebResponse) base.GetWebResponse(req);
if (rep.Headers["Set-Cookie"] != null)
{
cookie = rep.Headers["Set-Cookie"];
}
return rep;
}
public ClientService()
{
this.Url = "http:;
}
public ClientService(string servername)
{
this.Url = "http:+servername+"/soap";;
}
}
class IC_70_config
{
static ClientService client=null;
[STAThread]
static void Main(string[] args)
{
if ( args.Length < 3)
{
Console.WriteLine("Usage: getConfig <NS IP> username password");
return;
}
string serverip = args[0];
string username = args[1];
string password = args[2];
try {
Console.WriteLine("\nConnecting to server "+serverip+" ............\n");
client = new ClientService(serverip);
client.CookieContainer = new System.Net.CookieContainer();
simpleResult result = client.login(username,password) ;
Console.WriteLine("login : "+result.message);
result = client.enablensfeature(featureEnum.IC);
Console.WriteLine("enablensfeature IC : " + result.message);
result = client.setcacheparameter_verifyusing(verifyusingEnum.DNS);
Console.WriteLine("setcacheparameter_verifyusing DNS : " + result.message);
result = client.adddnsnameserver("10.102.1.15",null);
Console.WriteLine("adddnsnameserver 10.102.1.15 : " + result.message);
result = client.addpolicyexpression("host_request1","REQ.HTTP.HEADER HOST == www.test.com");
Console.WriteLine("addpolicyexpression host_request1 : " + result.message);
result = client.addcachecontentgroup("test_group1",0xFFFFFFFF,yesnoEnum.VALNOTSET,yesnoEnum.VALNOTSET,null,null);
Console.WriteLine("addcachecontentgroup test_group1 : " + result.message);
result = client.setcachecontentgroup_lazydnsresolve("test_group1",yesnoEnum.NO);
Console.WriteLine("setcachecontentgroup_lazydnsresolve test_group1 : " + result.message);
result = client.addcachepolicy("host_cache_policy1","host_request1",cachedirectiveEnum.CACHE,"test_group1",null,null);
Console.WriteLine("addcachepolicy host_cache_policy1 : " + result.message);
result = client.bindcacheglobal_policy("host_cache_policy1",4000,yesnoEnum.VALNOTSET);
Console.WriteLine("bindcacheglobal_policy host_cache_policy1 : " + result.message);
getcachepolicyResult getcachepolicyresult1 = client.getcachepolicy("host_cache_policy1");
Console.WriteLine("getcachepolicy host_cache_policy1 : " + getcachepolicyresult1.message);
if ( (getcachepolicyresult1.List != null) && (getcachepolicyresult1.List.Length > 0)) {
for(int i =0 ; i < getcachepolicyresult1.List.Length;i++) {
cachepolicy obj;
obj = (cachepolicy) getcachepolicyresult1.List[i];
Console.WriteLine( obj.policyname + "\t" + obj.rule + "\t" + obj.actioN + "\t" + obj.storeingroup + "\t" + obj.invalgroups + "\t" + obj.invalobjects + "\t" + obj.priority + "\t" + obj.hits + "\t" + obj.flags + "\t" + obj.precededefrules + "\t" );
}
}
result = client.addpolicyexpression("host_request2","REQ.HTTP.HEADER HOST == www.test.com");
Console.WriteLine("addpolicyexpression host_request2 : " + result.message);
result = client.addcachecontentgroup("test_group2",0xFFFFFFFF,yesnoEnum.VALNOTSET,yesnoEnum.VALNOTSET,null,null);
Console.WriteLine("addcachecontentgroup test_group2 : " + result.message);
result = client.setcachecontentgroup_lazydnsresolve("test_group2",yesnoEnum.YES);
Console.WriteLine("setcachecontentgroup_lazydnsresolve test_group2 : " + result.message);
result = client.addcachepolicy("host_cache_policy2","host_request2",cachedirectiveEnum.CACHE,"test_group2",null,null);
Console.WriteLine("addcachepolicy host_cache_policy2 : " + result.message);
result = client.bindcacheglobal_policy("host_cache_policy2",4010,yesnoEnum.VALNOTSET);
Console.WriteLine("bindcacheglobal_policy host_cache_policy2 : " + result.message);
getcachepolicyResult getcachepolicyresult2 = client.getcachepolicy("host_cache_policy2");
Console.WriteLine("getcachepolicy host_cache_policy2 : " + getcachepolicyresult2.message);
if ( (getcachepolicyresult2.List != null) && (getcachepolicyresult2.List.Length > 0)) {
for(int i =0 ; i < getcachepolicyresult2.List.Length;i++) {
cachepolicy obj;
obj = (cachepolicy) getcachepolicyresult2.List[i];
Console.WriteLine( obj.policyname + "\t" + obj.rule + "\t" + obj.actioN + "\t" + obj.storeingroup + "\t" + obj.invalgroups + "\t" + obj.invalobjects + "\t" + obj.priority + "\t" + obj.hits + "\t" + obj.flags + "\t" + obj.precededefrules + "\t" );
}
}
result = client.logout();
Console.WriteLine("logout : " + result.message);
}
catch (Exception ex) {
Console.WriteLine( "Exception: "+ex.ToString());
}
}
}
}