Copyright (C) 1998-2003, Carnegie Mellon Univeristy. All Rights Reserved.
Portions Copyright (C) 2003, Sun Microsystems,
Inc. All Rights Reserved
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
cc [ flag ... ] file ... -lsasl [ library ... ] #include <sasl/sasl.h> int sasl_server_new(const char *service, const char *serverFQDN, const char *user_realm, const char *iplocalport, const char *ipremoteport, const sasl_callback_t *callbacks, unsigned flags, sasl_conn_t **pconn);
Use the sasl_server_new() interface to create a new SASL context. This context will be used for all SASL calls for one connection. The new SASL context handles both authentication and integrity or encryption layers after authentication.
The registered name of the service that uses SASL. The registered name is usually the protocol name, for example, IMAP.
The fully-qualified server domain name. If the value of serverFQDN is NULL, use gethostname(3C). The serverFQDN parameter is useful for multi-homed servers.
The domain of the user agent. The user_realm is usually not necessary. The default value of user_realm is NULL.
The IP address and port of the local side of the connection. The value of iplocalport may be NULL. If iplocalport is NULL, mechanisms that require IP address information are disabled. The iplocalport string must be in one of the following formats:
a.b.c.d:port (IPv4)
[e:f:g:h:i:j:k:l]:port (IPv6)
[e:f:g:h:i:j:a.b.c.d]:port (IPv6)
The following older formats are also supported:
a.b.c.d;port (IPv4)
e:f:g:h:i:j:k:l;port (IPv6)
e:f:g:h:i:j:a.b.c.d;port (IPv6)
The IP address and port of the remote side of the connection. The value of ipremoteport may be NULL. See iplocalport.
Callbacks, for example: authorization, lang, and new getopt context.
Usage flags. For servers, the flags SASL_NEED_PROXY and SASL_SUCCESS_DATA are available.
A pointer to the connection context allocated by the library. This structure will be used for all future SASL calls for this connection.
sasl_server_new() returns an integer that corresponds to a SASL error code.
The call to sasl_server_new() was successful.
All other error codes indicate an error situation that must be handled, or the authentication session should be quit. See sasl_errors(3SASL) for information on SASL error codes.
See attributes(7) for descriptions of the following attributes:
ATTRIBUTE TYPE ATTRIBUTE VALUE |
Interface Stability Evolving |
MT-Level MT-Safe |
gethostname (3C), sasl_errors (3SASL), attributes (7)