Пример #1
0
        private void IFetchNodeRefs()
        {
            pnCli2Auth_VaultFetchNodeRefs req = new pnCli2Auth_VaultFetchNodeRefs();
            req.Read(fStream);

            if (fPlayerID == 0) {
                // Can't fetch NodeRefs if we're not logged in...
                pnAuth2Cli_VaultNodeRefsFetched reply = new pnAuth2Cli_VaultNodeRefsFetched();
                reply.fResult = ENetError.kNetErrVaultNodeAccessViolation;
                reply.fTransID = req.fTransID;
                reply.Send(fStream);
            } else if (fPermissions >= pnAcctPerms.CCR) {
                // If we're a CCR+, then we can grab any tree we want.
                fVaultCli.FetchNodeRefs(req.fNodeID, new pnCallback(new pnVaultNodeRefsFetched(IOnNodeRefsFetched), req.fTransID));
            } else {
                // For everyone else, we need to inspect the parent node for security
                fVaultCli.FetchNode(req.fNodeID, new pnCallback(new pnVaultNodeFetched(ITreeFetchRequest), req.fTransID));
            }
        }
Пример #2
0
 private void IVaultNodeRefsFetched()
 {
     pnAuth2Cli_VaultNodeRefsFetched reply = new pnAuth2Cli_VaultNodeRefsFetched();
     reply.Read(fStream);
     FireCallback(reply.fTransID, new object[] { reply.fResult, reply.fNodeRefs, null });
 }
Пример #3
0
        private void ITreeFetchRequest(ENetError result, pnVaultNode node, object param)
        {
            ENetError decision = ENetError.kNetErrVaultNodeAccessViolation;
            if (result != ENetError.kNetSuccess)
                // If something bad happens vault side, we cannot proceed :(
                decision = result;
            else if (node == null)
                // Successful node fetch but node is null? O.o
                result = ENetError.kNetErrInternalError;
            else if (node.NodeType == ENodeType.kNodeAge || node.NodeType == ENodeType.kNodeAgeInfo)
                // We will fetch the tree of ages when we link to them
                decision = ENetError.kNetSuccess;
            else if (node.NodeType == ENodeType.kNodePlayer)
                // We can only fetch our player
                if (fPlayerID == node.NodeID)
                    decision = ENetError.kNetSuccess;

            if (decision == ENetError.kNetSuccess)
                fVaultCli.FetchNodeRefs(node.NodeID, new pnCallback(new pnVaultNodeRefsFetched(IOnNodeRefsFetched), param));
            else {
                pnAuth2Cli_VaultNodeRefsFetched reply = new pnAuth2Cli_VaultNodeRefsFetched();
                reply.fResult = decision;
                reply.fTransID = (uint)param;
                lock (fStream) reply.Send(fStream);
            }
        }
Пример #4
0
 private void IOnNodeRefsFetched(ENetError result, pnVaultNodeRef[] refs, object param)
 {
     pnAuth2Cli_VaultNodeRefsFetched reply = new pnAuth2Cli_VaultNodeRefsFetched();
     reply.fNodeRefs = refs;
     reply.fResult = result;
     reply.fTransID = (uint)param;
     lock (fStream) reply.Send(fStream);
 }