static sourceinfo_t *sasl_sourceinfo_create(sasl_session_t *p)
{
	sasl_sourceinfo_t *ssi;

	ssi = smalloc(sizeof(sasl_sourceinfo_t));
	object_init(object(ssi), "<sasl sourceinfo>", (destructor_t) sasl_sourceinfo_delete);

	ssi->parent.s = p->server;
	ssi->parent.connection = curr_uplink->conn;
	if (p->host)
		ssi->parent.sourcedesc = p->host;
	ssi->parent.service = saslsvs;
	ssi->parent.v = &sasl_vtable;
	ssi->parent.force_language = language_find("en");
	ssi->sess = p;

	return &ssi->parent;
}
static sourceinfo_t *sasl_sourceinfo_create(sasl_session_t *p)
{
	sasl_sourceinfo_t *ssi;

	ssi = smalloc(sizeof(sasl_sourceinfo_t));
	object_init(object(ssi), "<sasl sourceinfo>", (destructor_t) sasl_sourceinfo_delete);

	ssi->parent.s = p->server;
	ssi->parent.connection = curr_uplink->conn;
	if (p->host)
		ssi->parent.sourcedesc = p->host;
	ssi->parent.service = saslsvs;
	ssi->parent.v = &sasl_vtable;
	ssi->parent.force_language = language_find("en");
	ssi->sess = p;

	return &ssi->parent;
}