# rpc/virnetsaslcontext.h
virNetSASLContextCheckIdentity;
+virNetSASLContextGetTCPMinSSF;
virNetSASLContextNewClient;
virNetSASLContextNewServer;
virNetSASLSessionClientStart;
#if WITH_SASL
if (virNetServerNeedsAuth(srv, REMOTE_AUTH_SASL) &&
!(saslCtxt = virNetSASLContextNewServer(
- (const char *const*)config->sasl_allowed_username_list)))
+ (const char *const*)config->sasl_allowed_username_list,
+ 56)))
return -1;
#endif
else
/* Plain TCP, better get an SSF layer */
virNetSASLSessionSecProps(sasl,
- 56, /* Good enough to require kerberos */
+ virNetSASLContextGetTCPMinSSF(saslCtxt),
100000, /* Arbitrary big number */
false); /* No anonymous */
virObjectLockable parent;
const char *const *usernameACL;
+ unsigned int tcpMinSSF;
};
struct _virNetSASLSession {
return ctxt;
}
-virNetSASLContext *virNetSASLContextNewServer(const char *const *usernameACL)
+virNetSASLContext *virNetSASLContextNewServer(const char *const *usernameACL,
+ unsigned int tcpMinSSF)
{
virNetSASLContext *ctxt;
return NULL;
ctxt->usernameACL = usernameACL;
+ ctxt->tcpMinSSF = tcpMinSSF;
return ctxt;
}
}
+unsigned int virNetSASLContextGetTCPMinSSF(virNetSASLContext *ctxt)
+{
+ return ctxt->tcpMinSSF;
+}
+
+
virNetSASLSession *virNetSASLSessionNewClient(virNetSASLContext *ctxt G_GNUC_UNUSED,
const char *service,
const char *hostname,
};
virNetSASLContext *virNetSASLContextNewClient(void);
-virNetSASLContext *virNetSASLContextNewServer(const char *const *usernameACL);
+virNetSASLContext *virNetSASLContextNewServer(const char *const *usernameACL,
+ unsigned int min_ssf);
int virNetSASLContextCheckIdentity(virNetSASLContext *ctxt,
const char *identity);
+unsigned int virNetSASLContextGetTCPMinSSF(virNetSASLContext *ctxt);
+
virNetSASLSession *virNetSASLSessionNewClient(virNetSASLContext *ctxt,
const char *service,
const char *hostname,