internal static int AppMain(Parameters !config) { IPContract.Imp ipConn = ((!)config.ipRef).Acquire(); if (ipConn == null) { Console.WriteLine("Could not initialize IP endpoint."); return(1); } ipConn.RecvReady(); try { if (config.name == null) { char[] !in ExHeap repHost, repDomain; ipConn.SendGetHostName(); ipConn.RecvHostName(out repHost); ipConn.SendGetDomainName(); ipConn.RecvDomainName(out repDomain); Console.WriteLine("{0}.{1}", Bitter.ToString(repHost), Bitter.ToString(repDomain)); delete repHost; delete repDomain; return(0); // success } else { ipConn.SendSetHostName(Bitter.FromString2(config.name)); switch receive { case ipConn.Err(): Console.WriteLine("Failure setting host name \"{0}\"", config.name); return(1); // failure; case ipConn.OK(): Console.WriteLine("Success setting host name"); break; case ipConn.ChannelClosed(): Console.WriteLine("Failure setting host name \"{0}\" (channel closed)", config.name); return(1); // failure; } } } finally { delete ipConn; } return(0); // success }