xref: /illumos-gate/usr/src/man/man3sasl/sasl_server_new.3sasl (revision 069e6b7e31ba5dcbc5441b98af272714d9a5455c)
te
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]
SASL_SERVER_NEW 3SASL "Oct 14, 2003"
NAME
sasl_server_new - create a new server authentication object
SYNOPSIS

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);
DESCRIPTION

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.

PARAMETERS
service

The registered name of the service that uses SASL. The registered name is usually the protocol name, for example, IMAP.

serverFQDN

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.

user_realm

The domain of the user agent. The user_realm is usually not necessary. The default value of user_realm is NULL.

iplocalport

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)

ipremoteport

The IP address and port of the remote side of the connection. The value of ipremoteport may be NULL. See iplocalport.

callbacks

Callbacks, for example: authorization, lang, and new getopt context.

flags

Usage flags. For servers, the flags SASL_NEED_PROXY and SASL_SUCCESS_DATA are available.

pconn

A pointer to the connection context allocated by the library. This structure will be used for all future SASL calls for this connection.

RETURN VALUES

sasl_server_new() returns an integer that corresponds to a SASL error code.

ERRORS
SASL_OK

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.

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Evolving
MT-Level MT-Safe
SEE ALSO

gethostname(3C), sasl_errors(3SASL), attributes(5)