/** Create a new session, called from CPolicyServer @param aVersion TVersion reference @param aMessage RMessage2 object reference @return CSession2 based object pointer @internalTechnology @released */ CSession2* CSecureServerBase::NewSessionL(const TVersion &aVersion, const RMessage2& aMessage) const { TVersion v = GetServerVersion(); if(!User::QueryVersionSupported(v, aVersion)) { User::Leave(KErrNotSupported); } CSession2* session = DoNewSessionL(aVersion, aMessage); return session; }
kern_return_t GetServerAttribute(AttributeType attrib, UInt32 /*tagSize*/, void* /*tags*/, unsigned int bufSize, unsigned int* attribSize, void** buffer) { Assert(buffer != NULL); Assert(sAttributeBuffer != NULL); if ((attribSize == NULL) || (buffer == NULL)) return SCParamErr; *attribSize = 0; //use the sAttributeBuffer memory to store the attribute. This buffer //should be big enough to store the largest attribute *buffer = sAttributeBuffer; if ((attrib.attribClass != kServerAttr) || (attrib.version != kCurrentVersion)) return SCUnsupportedAttrib; kern_return_t theError = SCNoError; switch (attrib.attribKind) { case kDNSNameAttr: { if (bufSize >= sizeof(QTSServerDNSName)) { *attribSize = sizeof(QTSServerDNSName); theError = GetServerName((QTSServerDNSName*)sAttributeBuffer); } else theError = SCBufferToSmall; break; } case kProcessInfoAttr: { if (bufSize >= sizeof(QTSProcessInfoRec)) { *attribSize = sizeof(QTSProcessInfoRec); theError = GetProcessInfo((QTSProcessInfoRec*)sAttributeBuffer); } else theError = SCBufferToSmall; break; } case kVersionAttr: { if (bufSize >= sizeof(QTSServerVersionRec)) { *attribSize = sizeof(QTSServerVersionRec); theError = GetServerVersion((QTSServerVersionRec*)sAttributeBuffer); } else theError = SCBufferToSmall; break; } case kStatusAttr: { if (bufSize >= sizeof(QTSServerStatusRec)) { *attribSize = sizeof(QTSServerStatusRec); theError = GetServerStatusRec((QTSServerStatusRec*)sAttributeBuffer); } else theError = SCBufferToSmall; break; } case kRefuseConnectionsAttr: { if (bufSize >= sizeof(QTSRefuseConnectionsRec)) { *attribSize = sizeof(QTSRefuseConnectionsRec); theError = GetRefuseConnections((QTSRefuseConnectionsRec*)sAttributeBuffer); } else theError = SCBufferToSmall; break; } case kHistoryAttr: { if (bufSize >= sizeof(QTSServerHistoryRec)) { *attribSize = sizeof(QTSServerHistoryRec); theError = GetHistory((QTSServerHistoryRec*)sAttributeBuffer); } else theError = SCBufferToSmall; break; } default: theError = SCUnsupportedAttrib; } return theError; }