smb_doorclnt.c revision da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0
/*
* CDDL HEADER START
*
* 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
* 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]
*
* CDDL HEADER END
*/
/*
* Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
/*
* User-space door client routines for both SMB daemon and CLIs.
*/
#include <fcntl.h>
#include <syslog.h>
#include <door.h>
#include <string.h>
#include <strings.h>
#include <stdlib.h>
#include <errno.h>
#include <smbsrv/wintypes.h>
#include <smbsrv/smb_door_svc.h>
#include <smbsrv/smb_common_door.h>
/*
* Returns 0 on success. Otherwise, -1.
*/
int
{
int rc = 0;
if (!op_desc)
op_desc = "unknown operation";
return (-1);
rc = -1;
}
return (rc);
}
/*
* smb_dr_clnt_call
*
* This function will make a door call to the server function
* associated with the door descriptor fd. The specified door
* request buffer (i.e. argp) will be passed as the argument to the
* door_call(). Upon success, the result buffer is returned. Otherwise,
* NULL pointer is returned. The size of the result buffer is returned
* via rbufsize.
*/
char *
char *op_desc)
{
if (!argp) {
return (NULL);
}
if (!op_desc)
op_desc = "unknown operation";
return (NULL);
}
!= SMB_DR_OP_SUCCESS) {
*rbufsize = 0;
return (NULL);
}
}
/*
* smb_dr_clnt_free
*
* regardless of the status of the door call.
*
* The doorfs allocates a new buffer if the result buffer passed by the client
* is too small. This function will munmap if that happens.
*/
/*ARGSUSED*/
void
{
if (argp) {
} else if (rbufp) {
}
}
} else {
if (rbufp) {
}
}
}
}