Beispiel #1
0
        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
        }