Manos.Tool.ServerCommand.DoSetUser C# (CSharp) Method

DoSetUser() private method

private DoSetUser ( Manos.ManosApp app, object user_data ) : void
app Manos.ManosApp
user_data object
return void
        private void DoSetUser(ManosApp app, object user_data)
        {
            #if DISABLE_POSIX
            throw new InvalidOperationException ("Attempt to set user on a non-posix build.");
            #else
            string user = user_data as string;

            Console.WriteLine ("setting user to: '{0}'", user);

            if (user == null) {
                AppHost.Stop ();
                throw new InvalidOperationException (String.Format ("Attempting to set user to null."));
            }

            Passwd pwd = Syscall.getpwnam (user);
            if (pwd == null) {
                AppHost.Stop ();
                throw new InvalidOperationException (String.Format ("Unable to find user '{0}'.", user));
            }

            int error = Syscall.seteuid (pwd.pw_uid);
            if (error != 0) {
                AppHost.Stop ();
                throw new InvalidOperationException (String.Format ("Unable to switch to user '{0}' error: '{1}'.", user, error));
            }

            #endif
        }