license changed to LGPL: added COPYING file, changed source file comments
Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
This commit is contained in:
parent
6f8f4d8e3f
commit
bbb1ed696c
88 changed files with 4784 additions and 5040 deletions
165
COPYING
Normal file
165
COPYING
Normal file
|
|
@ -0,0 +1,165 @@
|
||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
|
||||||
|
This version of the GNU Lesser General Public License incorporates
|
||||||
|
the terms and conditions of version 3 of the GNU General Public
|
||||||
|
License, supplemented by the additional permissions listed below.
|
||||||
|
|
||||||
|
0. Additional Definitions.
|
||||||
|
|
||||||
|
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||||
|
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||||
|
General Public License.
|
||||||
|
|
||||||
|
"The Library" refers to a covered work governed by this License,
|
||||||
|
other than an Application or a Combined Work as defined below.
|
||||||
|
|
||||||
|
An "Application" is any work that makes use of an interface provided
|
||||||
|
by the Library, but which is not otherwise based on the Library.
|
||||||
|
Defining a subclass of a class defined by the Library is deemed a mode
|
||||||
|
of using an interface provided by the Library.
|
||||||
|
|
||||||
|
A "Combined Work" is a work produced by combining or linking an
|
||||||
|
Application with the Library. The particular version of the Library
|
||||||
|
with which the Combined Work was made is also called the "Linked
|
||||||
|
Version".
|
||||||
|
|
||||||
|
The "Minimal Corresponding Source" for a Combined Work means the
|
||||||
|
Corresponding Source for the Combined Work, excluding any source code
|
||||||
|
for portions of the Combined Work that, considered in isolation, are
|
||||||
|
based on the Application, and not on the Linked Version.
|
||||||
|
|
||||||
|
The "Corresponding Application Code" for a Combined Work means the
|
||||||
|
object code and/or source code for the Application, including any data
|
||||||
|
and utility programs needed for reproducing the Combined Work from the
|
||||||
|
Application, but excluding the System Libraries of the Combined Work.
|
||||||
|
|
||||||
|
1. Exception to Section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
You may convey a covered work under sections 3 and 4 of this License
|
||||||
|
without being bound by section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
2. Conveying Modified Versions.
|
||||||
|
|
||||||
|
If you modify a copy of the Library, and, in your modifications, a
|
||||||
|
facility refers to a function or data to be supplied by an Application
|
||||||
|
that uses the facility (other than as an argument passed when the
|
||||||
|
facility is invoked), then you may convey a copy of the modified
|
||||||
|
version:
|
||||||
|
|
||||||
|
a) under this License, provided that you make a good faith effort to
|
||||||
|
ensure that, in the event an Application does not supply the
|
||||||
|
function or data, the facility still operates, and performs
|
||||||
|
whatever part of its purpose remains meaningful, or
|
||||||
|
|
||||||
|
b) under the GNU GPL, with none of the additional permissions of
|
||||||
|
this License applicable to that copy.
|
||||||
|
|
||||||
|
3. Object Code Incorporating Material from Library Header Files.
|
||||||
|
|
||||||
|
The object code form of an Application may incorporate material from
|
||||||
|
a header file that is part of the Library. You may convey such object
|
||||||
|
code under terms of your choice, provided that, if the incorporated
|
||||||
|
material is not limited to numerical parameters, data structure
|
||||||
|
layouts and accessors, or small macros, inline functions and templates
|
||||||
|
(ten or fewer lines in length), you do both of the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the object code that the
|
||||||
|
Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
4. Combined Works.
|
||||||
|
|
||||||
|
You may convey a Combined Work under terms of your choice that,
|
||||||
|
taken together, effectively do not restrict modification of the
|
||||||
|
portions of the Library contained in the Combined Work and reverse
|
||||||
|
engineering for debugging such modifications, if you also do each of
|
||||||
|
the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the Combined Work that
|
||||||
|
the Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
c) For a Combined Work that displays copyright notices during
|
||||||
|
execution, include the copyright notice for the Library among
|
||||||
|
these notices, as well as a reference directing the user to the
|
||||||
|
copies of the GNU GPL and this license document.
|
||||||
|
|
||||||
|
d) Do one of the following:
|
||||||
|
|
||||||
|
0) Convey the Minimal Corresponding Source under the terms of this
|
||||||
|
License, and the Corresponding Application Code in a form
|
||||||
|
suitable for, and under terms that permit, the user to
|
||||||
|
recombine or relink the Application with a modified version of
|
||||||
|
the Linked Version to produce a modified Combined Work, in the
|
||||||
|
manner specified by section 6 of the GNU GPL for conveying
|
||||||
|
Corresponding Source.
|
||||||
|
|
||||||
|
1) Use a suitable shared library mechanism for linking with the
|
||||||
|
Library. A suitable mechanism is one that (a) uses at run time
|
||||||
|
a copy of the Library already present on the user's computer
|
||||||
|
system, and (b) will operate properly with a modified version
|
||||||
|
of the Library that is interface-compatible with the Linked
|
||||||
|
Version.
|
||||||
|
|
||||||
|
e) Provide Installation Information, but only if you would otherwise
|
||||||
|
be required to provide such information under section 6 of the
|
||||||
|
GNU GPL, and only to the extent that such information is
|
||||||
|
necessary to install and execute a modified version of the
|
||||||
|
Combined Work produced by recombining or relinking the
|
||||||
|
Application with a modified version of the Linked Version. (If
|
||||||
|
you use option 4d0, the Installation Information must accompany
|
||||||
|
the Minimal Corresponding Source and Corresponding Application
|
||||||
|
Code. If you use option 4d1, you must provide the Installation
|
||||||
|
Information in the manner specified by section 6 of the GNU GPL
|
||||||
|
for conveying Corresponding Source.)
|
||||||
|
|
||||||
|
5. Combined Libraries.
|
||||||
|
|
||||||
|
You may place library facilities that are a work based on the
|
||||||
|
Library side by side in a single library together with other library
|
||||||
|
facilities that are not Applications and are not covered by this
|
||||||
|
License, and convey such a combined library under terms of your
|
||||||
|
choice, if you do both of the following:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work based
|
||||||
|
on the Library, uncombined with any other library facilities,
|
||||||
|
conveyed under the terms of this License.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library that part of it
|
||||||
|
is a work based on the Library, and explaining where to find the
|
||||||
|
accompanying uncombined form of the same work.
|
||||||
|
|
||||||
|
6. Revised Versions of the GNU Lesser General Public License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the GNU Lesser General Public License from time to time. Such new
|
||||||
|
versions will be similar in spirit to the present version, but may
|
||||||
|
differ in detail to address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the
|
||||||
|
Library as you received it specifies that a certain numbered version
|
||||||
|
of the GNU Lesser General Public License "or any later version"
|
||||||
|
applies to it, you have the option of following the terms and
|
||||||
|
conditions either of that published version or of any later version
|
||||||
|
published by the Free Software Foundation. If the Library as you
|
||||||
|
received it does not specify a version number of the GNU Lesser
|
||||||
|
General Public License, you may choose any version of the GNU Lesser
|
||||||
|
General Public License ever published by the Free Software Foundation.
|
||||||
|
|
||||||
|
If the Library as you received it specifies that a proxy can decide
|
||||||
|
whether future versions of the GNU Lesser General Public License shall
|
||||||
|
apply, that proxy's public statement of acceptance of any version is
|
||||||
|
permanent authorization for you to choose that version for the
|
||||||
|
Library.
|
||||||
36
daemon/acl.c
36
daemon/acl.c
|
|
@ -1,28 +1,24 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
#include <strsafe.h>
|
#include <strsafe.h>
|
||||||
#include <sddl.h>
|
#include <sddl.h>
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,24 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
#include <strsafe.h>
|
#include <strsafe.h>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "nfs41_callback.h"
|
#include "nfs41_callback.h"
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _DAEMON_DEBUG_
|
#ifndef _DAEMON_DEBUG_
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "delegation.h"
|
#include "delegation.h"
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef DELEGATION_H
|
#ifndef DELEGATION_H
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _NFS41_DAEMON_
|
#ifndef _NFS41_DAEMON_
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef IDMAP_H
|
#ifndef IDMAP_H
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef NFS41_LIST_H
|
#ifndef NFS41_LIST_H
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,24 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
#include <strsafe.h>
|
#include <strsafe.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __NFS41_DAEMON_NAME_CACHE_H__
|
#ifndef __NFS41_DAEMON_NAME_CACHE_H__
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __NFS41__
|
#ifndef __NFS41__
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __NFS41_CALLBACK_H__
|
#ifndef __NFS41_CALLBACK_H__
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __NFS41_DAEMON_COMPOUND_H__
|
#ifndef __NFS41_DAEMON_COMPOUND_H__
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __NFS41_NFS_CONST_H__
|
#ifndef __NFS41_NFS_CONST_H__
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __NFS41_NFS_OPS_H__
|
#ifndef __NFS41_NFS_OPS_H__
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "nfs41_ops.h"
|
#include "nfs41_ops.h"
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,23 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
*
|
||||||
*
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* for noncommercial education and research purposes, so long as no
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* your option) any later version.
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
*
|
||||||
* or distribution of this software without specific, written prior
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* works of this software is not granted.
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
*
|
* License for more details.
|
||||||
* This software is provided as is, without representation or warranty
|
*
|
||||||
* of any kind either express or implied, including without limitation
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*/
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
|
||||||
* claim arising out of or in connection with the use of the software,
|
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
|
||||||
* such damages.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __NFS41_DAEMON_TYPES_H__
|
#ifndef __NFS41_DAEMON_TYPES_H__
|
||||||
#define __NFS41_DAEMON_TYPES_H__
|
#define __NFS41_DAEMON_TYPES_H__
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __NFS41_NFS_XDR_H__
|
#ifndef __NFS41_NFS_XDR_H__
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __PNFS_H__
|
#ifndef __PNFS_H__
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef RECOVERY_H
|
#ifndef RECOVERY_H
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __NFS41_DAEMON_UPCALL_H__
|
#ifndef __NFS41_DAEMON_UPCALL_H__
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __NFS41_DAEMON_UTIL_H__
|
#ifndef __NFS41_DAEMON_UTIL_H__
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*++
|
/*++
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __NFS41_NP_H__
|
#ifndef __NFS41_NP_H__
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,22 @@
|
||||||
/* Copyright (c) 2010
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* for noncommercial education and research purposes, so long as no
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* of any kind either express or implied, including without limitation
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* your option) any later version.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* claim arising out of or in connection with the use of the software,
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* such damages.
|
* License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __NFS41_NP_OPTIONS_H__
|
#ifndef __NFS41_NP_OPTIONS_H__
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,24 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* This file is just for prepending nfs41_driver to the
|
* This file is just for prepending nfs41_driver to the
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,24 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*++
|
/*++
|
||||||
|
|
||||||
Module Name:
|
Module Name:
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,24 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*++
|
/*++
|
||||||
|
|
||||||
Copyright (c) 1997 - 1999 Microsoft Corporation
|
Copyright (c) 1997 - 1999 Microsoft Corporation
|
||||||
|
|
|
||||||
|
|
@ -1,218 +1,213 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, Sun Microsystems, Inc.
|
* Copyright (c) 2009, Sun Microsystems, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
* - Redistributions of source code must retain the above copyright notice,
|
* - Redistributions of source code must retain the above copyright notice,
|
||||||
* this list of conditions and the following disclaimer.
|
* this list of conditions and the following disclaimer.
|
||||||
* - Redistributions in binary form must reproduce the above copyright notice,
|
* - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
* and/or other materials provided with the distribution.
|
* and/or other materials provided with the distribution.
|
||||||
* - Neither the name of Sun Microsystems, Inc. nor the names of its
|
* - Neither the name of Sun Microsystems, Inc. nor the names of its
|
||||||
* contributors may be used to endorse or promote products derived
|
* contributors may be used to endorse or promote products derived
|
||||||
* from this software without specific prior written permission.
|
* from this software without specific prior written permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
#if defined(LIBC_SCCS) && !defined(lint)
|
||||||
static char *sccsid = "@(#)auth_none.c 1.19 87/08/11 Copyr 1984 Sun Micro";
|
static char *sccsid = "@(#)auth_none.c 1.19 87/08/11 Copyr 1984 Sun Micro";
|
||||||
static char *sccsid = "@(#)auth_none.c 2.1 88/07/29 4.0 RPCSRC";
|
static char *sccsid = "@(#)auth_none.c 2.1 88/07/29 4.0 RPCSRC";
|
||||||
#endif
|
#endif
|
||||||
//#include <sys/cdefs.h>
|
//#include <sys/cdefs.h>
|
||||||
__FBSDID("$FreeBSD: src/lib/libc/rpc/auth_none.c,v 1.12 2002/03/22 23:18:35 obrien Exp $");
|
__FBSDID("$FreeBSD: src/lib/libc/rpc/auth_none.c,v 1.12 2002/03/22 23:18:35 obrien Exp $");
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* auth_none.c
|
* auth_none.c
|
||||||
* Creates a client authentication handle for passing "null"
|
* Creates a client authentication handle for passing "null"
|
||||||
* credentials and verifiers to remote systems.
|
* credentials and verifiers to remote systems.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1984, Sun Microsystems, Inc.
|
* Copyright (C) 1984, Sun Microsystems, Inc.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
|
||||||
*
|
*
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
* Kevin Coffman <kwc@umich.edu>
|
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
*/
|
||||||
*/
|
|
||||||
#include <wintirpc.h>
|
#include <wintirpc.h>
|
||||||
//#include <pthread.h>
|
//#include <pthread.h>
|
||||||
#include <reentrant.h>
|
#include <reentrant.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <rpc/types.h>
|
#include <rpc/types.h>
|
||||||
#include <rpc/xdr.h>
|
#include <rpc/xdr.h>
|
||||||
#include <rpc/auth.h>
|
#include <rpc/auth.h>
|
||||||
|
|
||||||
#define MAX_MARSHAL_SIZE 20
|
#define MAX_MARSHAL_SIZE 20
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Authenticator operations routines
|
* Authenticator operations routines
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static bool_t authnone_marshal (AUTH *, XDR *, u_int *);
|
static bool_t authnone_marshal (AUTH *, XDR *, u_int *);
|
||||||
static void authnone_verf (AUTH *);
|
static void authnone_verf (AUTH *);
|
||||||
static bool_t authnone_validate (AUTH *, struct opaque_auth *, u_int);
|
static bool_t authnone_validate (AUTH *, struct opaque_auth *, u_int);
|
||||||
static bool_t authnone_refresh (AUTH *, void *);
|
static bool_t authnone_refresh (AUTH *, void *);
|
||||||
static void authnone_destroy (AUTH *);
|
static void authnone_destroy (AUTH *);
|
||||||
|
|
||||||
extern bool_t xdr_opaque_auth();
|
extern bool_t xdr_opaque_auth();
|
||||||
|
|
||||||
static struct auth_ops *authnone_ops();
|
static struct auth_ops *authnone_ops();
|
||||||
|
|
||||||
static struct authnone_private {
|
static struct authnone_private {
|
||||||
AUTH no_client;
|
AUTH no_client;
|
||||||
char marshalled_client[MAX_MARSHAL_SIZE];
|
char marshalled_client[MAX_MARSHAL_SIZE];
|
||||||
u_int mcnt;
|
u_int mcnt;
|
||||||
} *authnone_private;
|
} *authnone_private;
|
||||||
|
|
||||||
AUTH *
|
AUTH *
|
||||||
authnone_create()
|
authnone_create()
|
||||||
{
|
{
|
||||||
struct authnone_private *ap = authnone_private;
|
struct authnone_private *ap = authnone_private;
|
||||||
XDR xdr_stream;
|
XDR xdr_stream;
|
||||||
XDR *xdrs;
|
XDR *xdrs;
|
||||||
extern mutex_t authnone_lock;
|
extern mutex_t authnone_lock;
|
||||||
|
|
||||||
mutex_lock(&authnone_lock);
|
mutex_lock(&authnone_lock);
|
||||||
if (ap == 0) {
|
if (ap == 0) {
|
||||||
ap = (struct authnone_private *)calloc(1, sizeof (*ap));
|
ap = (struct authnone_private *)calloc(1, sizeof (*ap));
|
||||||
if (ap == 0) {
|
if (ap == 0) {
|
||||||
mutex_unlock(&authnone_lock);
|
mutex_unlock(&authnone_lock);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
authnone_private = ap;
|
authnone_private = ap;
|
||||||
}
|
}
|
||||||
if (!ap->mcnt) {
|
if (!ap->mcnt) {
|
||||||
ap->no_client.ah_cred = ap->no_client.ah_verf = _null_auth;
|
ap->no_client.ah_cred = ap->no_client.ah_verf = _null_auth;
|
||||||
ap->no_client.ah_ops = authnone_ops();
|
ap->no_client.ah_ops = authnone_ops();
|
||||||
xdrs = &xdr_stream;
|
xdrs = &xdr_stream;
|
||||||
xdrmem_create(xdrs, ap->marshalled_client,
|
xdrmem_create(xdrs, ap->marshalled_client,
|
||||||
(u_int)MAX_MARSHAL_SIZE, XDR_ENCODE);
|
(u_int)MAX_MARSHAL_SIZE, XDR_ENCODE);
|
||||||
(void)xdr_opaque_auth(xdrs, &ap->no_client.ah_cred);
|
(void)xdr_opaque_auth(xdrs, &ap->no_client.ah_cred);
|
||||||
(void)xdr_opaque_auth(xdrs, &ap->no_client.ah_verf);
|
(void)xdr_opaque_auth(xdrs, &ap->no_client.ah_verf);
|
||||||
ap->mcnt = XDR_GETPOS(xdrs);
|
ap->mcnt = XDR_GETPOS(xdrs);
|
||||||
XDR_DESTROY(xdrs);
|
XDR_DESTROY(xdrs);
|
||||||
}
|
}
|
||||||
mutex_unlock(&authnone_lock);
|
mutex_unlock(&authnone_lock);
|
||||||
return (&ap->no_client);
|
return (&ap->no_client);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*ARGSUSED*/
|
/*ARGSUSED*/
|
||||||
static bool_t
|
static bool_t
|
||||||
authnone_marshal(AUTH *client, XDR *xdrs, u_int *seq)
|
authnone_marshal(AUTH *client, XDR *xdrs, u_int *seq)
|
||||||
{
|
{
|
||||||
struct authnone_private *ap;
|
struct authnone_private *ap;
|
||||||
bool_t dummy;
|
bool_t dummy;
|
||||||
extern mutex_t authnone_lock;
|
extern mutex_t authnone_lock;
|
||||||
|
|
||||||
assert(xdrs != NULL);
|
assert(xdrs != NULL);
|
||||||
|
|
||||||
ap = authnone_private;
|
ap = authnone_private;
|
||||||
if (ap == NULL) {
|
if (ap == NULL) {
|
||||||
mutex_unlock(&authnone_lock);
|
mutex_unlock(&authnone_lock);
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
dummy = (*xdrs->x_ops->x_putbytes)(xdrs,
|
dummy = (*xdrs->x_ops->x_putbytes)(xdrs,
|
||||||
ap->marshalled_client, ap->mcnt);
|
ap->marshalled_client, ap->mcnt);
|
||||||
mutex_unlock(&authnone_lock);
|
mutex_unlock(&authnone_lock);
|
||||||
return (dummy);
|
return (dummy);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* All these unused parameters are required to keep ANSI-C from grumbling */
|
/* All these unused parameters are required to keep ANSI-C from grumbling */
|
||||||
/*ARGSUSED*/
|
/*ARGSUSED*/
|
||||||
static void
|
static void
|
||||||
authnone_verf(AUTH *client)
|
authnone_verf(AUTH *client)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/*ARGSUSED*/
|
/*ARGSUSED*/
|
||||||
static bool_t
|
static bool_t
|
||||||
authnone_validate(AUTH *client, struct opaque_auth *opaque, u_int seq)
|
authnone_validate(AUTH *client, struct opaque_auth *opaque, u_int seq)
|
||||||
{
|
{
|
||||||
|
|
||||||
return (TRUE);
|
return (TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*ARGSUSED*/
|
/*ARGSUSED*/
|
||||||
static bool_t
|
static bool_t
|
||||||
authnone_refresh(AUTH *client, void *dummy)
|
authnone_refresh(AUTH *client, void *dummy)
|
||||||
{
|
{
|
||||||
|
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*ARGSUSED*/
|
/*ARGSUSED*/
|
||||||
static void
|
static void
|
||||||
authnone_destroy(AUTH *client)
|
authnone_destroy(AUTH *client)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
authnone_wrap(AUTH *auth, XDR *xdrs, xdrproc_t func, caddr_t args)
|
authnone_wrap(AUTH *auth, XDR *xdrs, xdrproc_t func, caddr_t args)
|
||||||
{
|
{
|
||||||
return ((*func)(xdrs, args));
|
return ((*func)(xdrs, args));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
authnone_unwrap(AUTH *auth, XDR *xdrs, xdrproc_t func, caddr_t args, u_int seq)
|
authnone_unwrap(AUTH *auth, XDR *xdrs, xdrproc_t func, caddr_t args, u_int seq)
|
||||||
{
|
{
|
||||||
return ((*func)(xdrs, args));
|
return ((*func)(xdrs, args));
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct auth_ops *
|
static struct auth_ops *
|
||||||
authnone_ops()
|
authnone_ops()
|
||||||
{
|
{
|
||||||
static struct auth_ops ops;
|
static struct auth_ops ops;
|
||||||
extern mutex_t ops_lock;
|
extern mutex_t ops_lock;
|
||||||
|
|
||||||
/* VARIABLES PROTECTED BY ops_lock: ops */
|
/* VARIABLES PROTECTED BY ops_lock: ops */
|
||||||
|
|
||||||
mutex_lock(&ops_lock);
|
mutex_lock(&ops_lock);
|
||||||
if (ops.ah_nextverf == NULL) {
|
if (ops.ah_nextverf == NULL) {
|
||||||
ops.ah_nextverf = authnone_verf;
|
ops.ah_nextverf = authnone_verf;
|
||||||
ops.ah_marshal = authnone_marshal;
|
ops.ah_marshal = authnone_marshal;
|
||||||
ops.ah_validate = authnone_validate;
|
ops.ah_validate = authnone_validate;
|
||||||
ops.ah_refresh = authnone_refresh;
|
ops.ah_refresh = authnone_refresh;
|
||||||
ops.ah_destroy = authnone_destroy;
|
ops.ah_destroy = authnone_destroy;
|
||||||
ops.ah_wrap = authnone_wrap;
|
ops.ah_wrap = authnone_wrap;
|
||||||
ops.ah_unwrap = authnone_unwrap;
|
ops.ah_unwrap = authnone_unwrap;
|
||||||
}
|
}
|
||||||
mutex_unlock(&ops_lock);
|
mutex_unlock(&ops_lock);
|
||||||
return (&ops);
|
return (&ops);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <wintirpc.h>
|
#include <wintirpc.h>
|
||||||
|
|
|
||||||
|
|
@ -1,409 +1,404 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, Sun Microsystems, Inc.
|
* Copyright (c) 2009, Sun Microsystems, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
* - Redistributions of source code must retain the above copyright notice,
|
* - Redistributions of source code must retain the above copyright notice,
|
||||||
* this list of conditions and the following disclaimer.
|
* this list of conditions and the following disclaimer.
|
||||||
* - Redistributions in binary form must reproduce the above copyright notice,
|
* - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
* and/or other materials provided with the distribution.
|
* and/or other materials provided with the distribution.
|
||||||
* - Neither the name of Sun Microsystems, Inc. nor the names of its
|
* - Neither the name of Sun Microsystems, Inc. nor the names of its
|
||||||
* contributors may be used to endorse or promote products derived
|
* contributors may be used to endorse or promote products derived
|
||||||
* from this software without specific prior written permission.
|
* from this software without specific prior written permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//#include <sys/cdefs.h>
|
//#include <sys/cdefs.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* auth_unix.c, Implements UNIX style authentication parameters.
|
* auth_unix.c, Implements UNIX style authentication parameters.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1984, Sun Microsystems, Inc.
|
* Copyright (C) 1984, Sun Microsystems, Inc.
|
||||||
*
|
*
|
||||||
* The system is very weak. The client uses no encryption for it's
|
* The system is very weak. The client uses no encryption for it's
|
||||||
* credentials and only sends null verifiers. The server sends backs
|
* credentials and only sends null verifiers. The server sends backs
|
||||||
* null verifiers or optionally a verifier that suggests a new short hand
|
* null verifiers or optionally a verifier that suggests a new short hand
|
||||||
* for the credentials.
|
* for the credentials.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
|
||||||
*
|
*
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
* Kevin Coffman <kwc@umich.edu>
|
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
*/
|
||||||
*/
|
|
||||||
#include <wintirpc.h>
|
#include <wintirpc.h>
|
||||||
//#include <pthread.h>
|
//#include <pthread.h>
|
||||||
#include <reentrant.h>
|
#include <reentrant.h>
|
||||||
//#include <sys/param.h>
|
//#include <sys/param.h>
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
//#include <err.h>
|
//#include <err.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
//#include <unistd.h>
|
//#include <unistd.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include <rpc/types.h>
|
#include <rpc/types.h>
|
||||||
#include <rpc/xdr.h>
|
#include <rpc/xdr.h>
|
||||||
#include <rpc/auth.h>
|
#include <rpc/auth.h>
|
||||||
#include <rpc/auth_unix.h>
|
#include <rpc/auth_unix.h>
|
||||||
|
|
||||||
/* auth_unix.c */
|
/* auth_unix.c */
|
||||||
static void authunix_nextverf (AUTH *);
|
static void authunix_nextverf (AUTH *);
|
||||||
static bool_t authunix_marshal (AUTH *, XDR *, u_int *seq);
|
static bool_t authunix_marshal (AUTH *, XDR *, u_int *seq);
|
||||||
static bool_t authunix_validate (AUTH *, struct opaque_auth *, u_int);
|
static bool_t authunix_validate (AUTH *, struct opaque_auth *, u_int);
|
||||||
static bool_t authunix_refresh (AUTH *, void *);
|
static bool_t authunix_refresh (AUTH *, void *);
|
||||||
static void authunix_destroy (AUTH *);
|
static void authunix_destroy (AUTH *);
|
||||||
static void marshal_new_auth (AUTH *);
|
static void marshal_new_auth (AUTH *);
|
||||||
static struct auth_ops *authunix_ops (void);
|
static struct auth_ops *authunix_ops (void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This struct is pointed to by the ah_private field of an auth_handle.
|
* This struct is pointed to by the ah_private field of an auth_handle.
|
||||||
*/
|
*/
|
||||||
struct audata {
|
struct audata {
|
||||||
struct opaque_auth au_origcred; /* original credentials */
|
struct opaque_auth au_origcred; /* original credentials */
|
||||||
struct opaque_auth au_shcred; /* short hand cred */
|
struct opaque_auth au_shcred; /* short hand cred */
|
||||||
u_long au_shfaults; /* short hand cache faults */
|
u_long au_shfaults; /* short hand cache faults */
|
||||||
char au_marshed[MAX_AUTH_BYTES];
|
char au_marshed[MAX_AUTH_BYTES];
|
||||||
u_int au_mpos; /* xdr pos at end of marshed */
|
u_int au_mpos; /* xdr pos at end of marshed */
|
||||||
};
|
};
|
||||||
#define AUTH_PRIVATE(auth) ((struct audata *)auth->ah_private)
|
#define AUTH_PRIVATE(auth) ((struct audata *)auth->ah_private)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create a unix style authenticator.
|
* Create a unix style authenticator.
|
||||||
* Returns an auth handle with the given stuff in it.
|
* Returns an auth handle with the given stuff in it.
|
||||||
*/
|
*/
|
||||||
AUTH *
|
AUTH *
|
||||||
authunix_create(machname, uid, gid, len, aup_gids)
|
authunix_create(machname, uid, gid, len, aup_gids)
|
||||||
char *machname;
|
char *machname;
|
||||||
uid_t uid;
|
uid_t uid;
|
||||||
gid_t gid;
|
gid_t gid;
|
||||||
int len;
|
int len;
|
||||||
gid_t *aup_gids;
|
gid_t *aup_gids;
|
||||||
{
|
{
|
||||||
struct authunix_parms aup;
|
struct authunix_parms aup;
|
||||||
char mymem[MAX_AUTH_BYTES];
|
char mymem[MAX_AUTH_BYTES];
|
||||||
struct timeval now;
|
struct timeval now;
|
||||||
XDR xdrs;
|
XDR xdrs;
|
||||||
AUTH *auth;
|
AUTH *auth;
|
||||||
struct audata *au;
|
struct audata *au;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Allocate and set up auth handle
|
* Allocate and set up auth handle
|
||||||
*/
|
*/
|
||||||
au = NULL;
|
au = NULL;
|
||||||
auth = mem_alloc(sizeof(*auth));
|
auth = mem_alloc(sizeof(*auth));
|
||||||
#ifndef _KERNEL
|
#ifndef _KERNEL
|
||||||
if (auth == NULL) {
|
if (auth == NULL) {
|
||||||
// XXX warnx("authunix_create: out of memory");
|
// XXX warnx("authunix_create: out of memory");
|
||||||
goto cleanup_authunix_create;
|
goto cleanup_authunix_create;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
au = mem_alloc(sizeof(*au));
|
au = mem_alloc(sizeof(*au));
|
||||||
#ifndef _KERNEL
|
#ifndef _KERNEL
|
||||||
if (au == NULL) {
|
if (au == NULL) {
|
||||||
// XXX warnx("authunix_create: out of memory");
|
// XXX warnx("authunix_create: out of memory");
|
||||||
goto cleanup_authunix_create;
|
goto cleanup_authunix_create;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
auth->ah_ops = authunix_ops();
|
auth->ah_ops = authunix_ops();
|
||||||
auth->ah_private = (caddr_t)au;
|
auth->ah_private = (caddr_t)au;
|
||||||
auth->ah_verf = au->au_shcred = _null_auth;
|
auth->ah_verf = au->au_shcred = _null_auth;
|
||||||
au->au_shfaults = 0;
|
au->au_shfaults = 0;
|
||||||
au->au_origcred.oa_base = NULL;
|
au->au_origcred.oa_base = NULL;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* fill in param struct from the given params
|
* fill in param struct from the given params
|
||||||
*/
|
*/
|
||||||
(void)gettimeofday(&now, NULL);
|
(void)gettimeofday(&now, NULL);
|
||||||
aup.aup_time = now.tv_sec;
|
aup.aup_time = now.tv_sec;
|
||||||
aup.aup_machname = machname;
|
aup.aup_machname = machname;
|
||||||
aup.aup_uid = uid;
|
aup.aup_uid = uid;
|
||||||
aup.aup_gid = gid;
|
aup.aup_gid = gid;
|
||||||
aup.aup_len = (u_int)len;
|
aup.aup_len = (u_int)len;
|
||||||
aup.aup_gids = aup_gids;
|
aup.aup_gids = aup_gids;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Serialize the parameters into origcred
|
* Serialize the parameters into origcred
|
||||||
*/
|
*/
|
||||||
xdrmem_create(&xdrs, mymem, MAX_AUTH_BYTES, XDR_ENCODE);
|
xdrmem_create(&xdrs, mymem, MAX_AUTH_BYTES, XDR_ENCODE);
|
||||||
if (! xdr_authunix_parms(&xdrs, &aup))
|
if (! xdr_authunix_parms(&xdrs, &aup))
|
||||||
abort();
|
abort();
|
||||||
au->au_origcred.oa_length = len = XDR_GETPOS(&xdrs);
|
au->au_origcred.oa_length = len = XDR_GETPOS(&xdrs);
|
||||||
au->au_origcred.oa_flavor = AUTH_UNIX;
|
au->au_origcred.oa_flavor = AUTH_UNIX;
|
||||||
#ifdef _KERNEL
|
#ifdef _KERNEL
|
||||||
au->au_origcred.oa_base = mem_alloc((u_int) len);
|
au->au_origcred.oa_base = mem_alloc((u_int) len);
|
||||||
#else
|
#else
|
||||||
if ((au->au_origcred.oa_base = mem_alloc((u_int) len)) == NULL) {
|
if ((au->au_origcred.oa_base = mem_alloc((u_int) len)) == NULL) {
|
||||||
// XXX warnx("authunix_create: out of memory");
|
// XXX warnx("authunix_create: out of memory");
|
||||||
goto cleanup_authunix_create;
|
goto cleanup_authunix_create;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
memmove(au->au_origcred.oa_base, mymem, (size_t)len);
|
memmove(au->au_origcred.oa_base, mymem, (size_t)len);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* set auth handle to reflect new cred.
|
* set auth handle to reflect new cred.
|
||||||
*/
|
*/
|
||||||
auth->ah_cred = au->au_origcred;
|
auth->ah_cred = au->au_origcred;
|
||||||
marshal_new_auth(auth);
|
marshal_new_auth(auth);
|
||||||
return (auth);
|
return (auth);
|
||||||
#ifndef _KERNEL
|
#ifndef _KERNEL
|
||||||
cleanup_authunix_create:
|
cleanup_authunix_create:
|
||||||
if (auth)
|
if (auth)
|
||||||
mem_free(auth, sizeof(*auth));
|
mem_free(auth, sizeof(*auth));
|
||||||
if (au) {
|
if (au) {
|
||||||
if (au->au_origcred.oa_base)
|
if (au->au_origcred.oa_base)
|
||||||
mem_free(au->au_origcred.oa_base, (u_int)len);
|
mem_free(au->au_origcred.oa_base, (u_int)len);
|
||||||
mem_free(au, sizeof(*au));
|
mem_free(au, sizeof(*au));
|
||||||
}
|
}
|
||||||
return (NULL);
|
return (NULL);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns an auth handle with parameters determined by doing lots of
|
* Returns an auth handle with parameters determined by doing lots of
|
||||||
* syscalls.
|
* syscalls.
|
||||||
*/
|
*/
|
||||||
AUTH *
|
AUTH *
|
||||||
authunix_create_default()
|
authunix_create_default()
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
char machname[MAXHOSTNAMELEN + 1];
|
char machname[MAXHOSTNAMELEN + 1];
|
||||||
uid_t uid;
|
uid_t uid;
|
||||||
gid_t gid;
|
gid_t gid;
|
||||||
gid_t gids[NGRPS];
|
gid_t gids[NGRPS];
|
||||||
|
|
||||||
if (gethostname(machname, sizeof machname) == -1)
|
if (gethostname(machname, sizeof machname) == -1)
|
||||||
abort();
|
abort();
|
||||||
machname[sizeof(machname) - 1] = 0;
|
machname[sizeof(machname) - 1] = 0;
|
||||||
#if 0
|
#if 0
|
||||||
uid = geteuid();
|
uid = geteuid();
|
||||||
gid = getegid();
|
gid = getegid();
|
||||||
if ((len = getgroups(NGRPS, gids)) < 0)
|
if ((len = getgroups(NGRPS, gids)) < 0)
|
||||||
abort();
|
abort();
|
||||||
#else
|
#else
|
||||||
// XXX Need to figure out what to do here!
|
// XXX Need to figure out what to do here!
|
||||||
uid = 666;
|
uid = 666;
|
||||||
gid = 777;
|
gid = 777;
|
||||||
gids[0] = 0;
|
gids[0] = 0;
|
||||||
len = 0;
|
len = 0;
|
||||||
#endif
|
#endif
|
||||||
/* XXX: interface problem; those should all have been unsigned */
|
/* XXX: interface problem; those should all have been unsigned */
|
||||||
return (authunix_create(machname, uid, gid, len, gids));
|
return (authunix_create(machname, uid, gid, len, gids));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* authunix operations
|
* authunix operations
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* ARGSUSED */
|
/* ARGSUSED */
|
||||||
static void
|
static void
|
||||||
authunix_nextverf(auth)
|
authunix_nextverf(auth)
|
||||||
AUTH *auth;
|
AUTH *auth;
|
||||||
{
|
{
|
||||||
/* no action necessary */
|
/* no action necessary */
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool_t
|
static bool_t
|
||||||
authunix_marshal(auth, xdrs, seq)
|
authunix_marshal(auth, xdrs, seq)
|
||||||
AUTH *auth;
|
AUTH *auth;
|
||||||
XDR *xdrs;
|
XDR *xdrs;
|
||||||
u_int *seq;
|
u_int *seq;
|
||||||
{
|
{
|
||||||
struct audata *au;
|
struct audata *au;
|
||||||
|
|
||||||
assert(auth != NULL);
|
assert(auth != NULL);
|
||||||
assert(xdrs != NULL);
|
assert(xdrs != NULL);
|
||||||
|
|
||||||
au = AUTH_PRIVATE(auth);
|
au = AUTH_PRIVATE(auth);
|
||||||
return (XDR_PUTBYTES(xdrs, au->au_marshed, au->au_mpos));
|
return (XDR_PUTBYTES(xdrs, au->au_marshed, au->au_mpos));
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool_t
|
static bool_t
|
||||||
authunix_validate(auth, verf, seq)
|
authunix_validate(auth, verf, seq)
|
||||||
AUTH *auth;
|
AUTH *auth;
|
||||||
struct opaque_auth *verf;
|
struct opaque_auth *verf;
|
||||||
u_int seq;
|
u_int seq;
|
||||||
{
|
{
|
||||||
struct audata *au;
|
struct audata *au;
|
||||||
XDR xdrs;
|
XDR xdrs;
|
||||||
|
|
||||||
assert(auth != NULL);
|
assert(auth != NULL);
|
||||||
assert(verf != NULL);
|
assert(verf != NULL);
|
||||||
|
|
||||||
if (verf->oa_flavor == AUTH_SHORT) {
|
if (verf->oa_flavor == AUTH_SHORT) {
|
||||||
au = AUTH_PRIVATE(auth);
|
au = AUTH_PRIVATE(auth);
|
||||||
xdrmem_create(&xdrs, verf->oa_base, verf->oa_length,
|
xdrmem_create(&xdrs, verf->oa_base, verf->oa_length,
|
||||||
XDR_DECODE);
|
XDR_DECODE);
|
||||||
|
|
||||||
if (au->au_shcred.oa_base != NULL) {
|
if (au->au_shcred.oa_base != NULL) {
|
||||||
mem_free(au->au_shcred.oa_base,
|
mem_free(au->au_shcred.oa_base,
|
||||||
au->au_shcred.oa_length);
|
au->au_shcred.oa_length);
|
||||||
au->au_shcred.oa_base = NULL;
|
au->au_shcred.oa_base = NULL;
|
||||||
}
|
}
|
||||||
if (xdr_opaque_auth(&xdrs, &au->au_shcred)) {
|
if (xdr_opaque_auth(&xdrs, &au->au_shcred)) {
|
||||||
auth->ah_cred = au->au_shcred;
|
auth->ah_cred = au->au_shcred;
|
||||||
} else {
|
} else {
|
||||||
xdrs.x_op = XDR_FREE;
|
xdrs.x_op = XDR_FREE;
|
||||||
(void)xdr_opaque_auth(&xdrs, &au->au_shcred);
|
(void)xdr_opaque_auth(&xdrs, &au->au_shcred);
|
||||||
au->au_shcred.oa_base = NULL;
|
au->au_shcred.oa_base = NULL;
|
||||||
auth->ah_cred = au->au_origcred;
|
auth->ah_cred = au->au_origcred;
|
||||||
}
|
}
|
||||||
marshal_new_auth(auth);
|
marshal_new_auth(auth);
|
||||||
}
|
}
|
||||||
return (TRUE);
|
return (TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool_t
|
static bool_t
|
||||||
authunix_refresh(AUTH *auth, void *dummy)
|
authunix_refresh(AUTH *auth, void *dummy)
|
||||||
{
|
{
|
||||||
struct audata *au = AUTH_PRIVATE(auth);
|
struct audata *au = AUTH_PRIVATE(auth);
|
||||||
struct authunix_parms aup;
|
struct authunix_parms aup;
|
||||||
struct timeval now;
|
struct timeval now;
|
||||||
XDR xdrs;
|
XDR xdrs;
|
||||||
int stat;
|
int stat;
|
||||||
|
|
||||||
assert(auth != NULL);
|
assert(auth != NULL);
|
||||||
|
|
||||||
if (auth->ah_cred.oa_base == au->au_origcred.oa_base) {
|
if (auth->ah_cred.oa_base == au->au_origcred.oa_base) {
|
||||||
/* there is no hope. Punt */
|
/* there is no hope. Punt */
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
au->au_shfaults ++;
|
au->au_shfaults ++;
|
||||||
|
|
||||||
/* first deserialize the creds back into a struct authunix_parms */
|
/* first deserialize the creds back into a struct authunix_parms */
|
||||||
aup.aup_machname = NULL;
|
aup.aup_machname = NULL;
|
||||||
aup.aup_gids = NULL;
|
aup.aup_gids = NULL;
|
||||||
xdrmem_create(&xdrs, au->au_origcred.oa_base,
|
xdrmem_create(&xdrs, au->au_origcred.oa_base,
|
||||||
au->au_origcred.oa_length, XDR_DECODE);
|
au->au_origcred.oa_length, XDR_DECODE);
|
||||||
stat = xdr_authunix_parms(&xdrs, &aup);
|
stat = xdr_authunix_parms(&xdrs, &aup);
|
||||||
if (! stat)
|
if (! stat)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
/* update the time and serialize in place */
|
/* update the time and serialize in place */
|
||||||
(void)gettimeofday(&now, NULL);
|
(void)gettimeofday(&now, NULL);
|
||||||
aup.aup_time = now.tv_sec;
|
aup.aup_time = now.tv_sec;
|
||||||
xdrs.x_op = XDR_ENCODE;
|
xdrs.x_op = XDR_ENCODE;
|
||||||
XDR_SETPOS(&xdrs, 0);
|
XDR_SETPOS(&xdrs, 0);
|
||||||
stat = xdr_authunix_parms(&xdrs, &aup);
|
stat = xdr_authunix_parms(&xdrs, &aup);
|
||||||
if (! stat)
|
if (! stat)
|
||||||
goto done;
|
goto done;
|
||||||
auth->ah_cred = au->au_origcred;
|
auth->ah_cred = au->au_origcred;
|
||||||
marshal_new_auth(auth);
|
marshal_new_auth(auth);
|
||||||
done:
|
done:
|
||||||
/* free the struct authunix_parms created by deserializing */
|
/* free the struct authunix_parms created by deserializing */
|
||||||
xdrs.x_op = XDR_FREE;
|
xdrs.x_op = XDR_FREE;
|
||||||
(void)xdr_authunix_parms(&xdrs, &aup);
|
(void)xdr_authunix_parms(&xdrs, &aup);
|
||||||
XDR_DESTROY(&xdrs);
|
XDR_DESTROY(&xdrs);
|
||||||
return (stat);
|
return (stat);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
authunix_destroy(auth)
|
authunix_destroy(auth)
|
||||||
AUTH *auth;
|
AUTH *auth;
|
||||||
{
|
{
|
||||||
struct audata *au;
|
struct audata *au;
|
||||||
|
|
||||||
assert(auth != NULL);
|
assert(auth != NULL);
|
||||||
|
|
||||||
au = AUTH_PRIVATE(auth);
|
au = AUTH_PRIVATE(auth);
|
||||||
mem_free(au->au_origcred.oa_base, au->au_origcred.oa_length);
|
mem_free(au->au_origcred.oa_base, au->au_origcred.oa_length);
|
||||||
|
|
||||||
if (au->au_shcred.oa_base != NULL)
|
if (au->au_shcred.oa_base != NULL)
|
||||||
mem_free(au->au_shcred.oa_base, au->au_shcred.oa_length);
|
mem_free(au->au_shcred.oa_base, au->au_shcred.oa_length);
|
||||||
|
|
||||||
mem_free(auth->ah_private, sizeof(struct audata));
|
mem_free(auth->ah_private, sizeof(struct audata));
|
||||||
|
|
||||||
if (auth->ah_verf.oa_base != NULL)
|
if (auth->ah_verf.oa_base != NULL)
|
||||||
mem_free(auth->ah_verf.oa_base, auth->ah_verf.oa_length);
|
mem_free(auth->ah_verf.oa_base, auth->ah_verf.oa_length);
|
||||||
|
|
||||||
mem_free(auth, sizeof(*auth));
|
mem_free(auth, sizeof(*auth));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Marshals (pre-serializes) an auth struct.
|
* Marshals (pre-serializes) an auth struct.
|
||||||
* sets private data, au_marshed and au_mpos
|
* sets private data, au_marshed and au_mpos
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
marshal_new_auth(auth)
|
marshal_new_auth(auth)
|
||||||
AUTH *auth;
|
AUTH *auth;
|
||||||
{
|
{
|
||||||
XDR xdr_stream;
|
XDR xdr_stream;
|
||||||
XDR *xdrs = &xdr_stream;
|
XDR *xdrs = &xdr_stream;
|
||||||
struct audata *au;
|
struct audata *au;
|
||||||
|
|
||||||
assert(auth != NULL);
|
assert(auth != NULL);
|
||||||
|
|
||||||
au = AUTH_PRIVATE(auth);
|
au = AUTH_PRIVATE(auth);
|
||||||
xdrmem_create(xdrs, au->au_marshed, MAX_AUTH_BYTES, XDR_ENCODE);
|
xdrmem_create(xdrs, au->au_marshed, MAX_AUTH_BYTES, XDR_ENCODE);
|
||||||
if ((! xdr_opaque_auth(xdrs, &(auth->ah_cred))) ||
|
if ((! xdr_opaque_auth(xdrs, &(auth->ah_cred))) ||
|
||||||
(! xdr_opaque_auth(xdrs, &(auth->ah_verf))))
|
(! xdr_opaque_auth(xdrs, &(auth->ah_verf))))
|
||||||
assert(0); // XXX
|
assert(0); // XXX
|
||||||
// XXX warnx("auth_none.c - Fatal marshalling problem");
|
// XXX warnx("auth_none.c - Fatal marshalling problem");
|
||||||
else
|
else
|
||||||
au->au_mpos = XDR_GETPOS(xdrs);
|
au->au_mpos = XDR_GETPOS(xdrs);
|
||||||
XDR_DESTROY(xdrs);
|
XDR_DESTROY(xdrs);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool_t
|
static bool_t
|
||||||
authunix_wrap(AUTH *auth, XDR *xdrs, xdrproc_t func, caddr_t args, u_int seq)
|
authunix_wrap(AUTH *auth, XDR *xdrs, xdrproc_t func, caddr_t args, u_int seq)
|
||||||
{
|
{
|
||||||
return ((*func)(xdrs, args));
|
return ((*func)(xdrs, args));
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct auth_ops *
|
static struct auth_ops *
|
||||||
authunix_ops()
|
authunix_ops()
|
||||||
{
|
{
|
||||||
static struct auth_ops ops;
|
static struct auth_ops ops;
|
||||||
extern mutex_t ops_lock;
|
extern mutex_t ops_lock;
|
||||||
|
|
||||||
/* VARIABLES PROTECTED BY ops_lock: ops */
|
/* VARIABLES PROTECTED BY ops_lock: ops */
|
||||||
|
|
||||||
mutex_lock(&ops_lock);
|
mutex_lock(&ops_lock);
|
||||||
if (ops.ah_nextverf == NULL) {
|
if (ops.ah_nextverf == NULL) {
|
||||||
ops.ah_nextverf = authunix_nextverf;
|
ops.ah_nextverf = authunix_nextverf;
|
||||||
ops.ah_marshal = authunix_marshal;
|
ops.ah_marshal = authunix_marshal;
|
||||||
ops.ah_validate = authunix_validate;
|
ops.ah_validate = authunix_validate;
|
||||||
ops.ah_refresh = authunix_refresh;
|
ops.ah_refresh = authunix_refresh;
|
||||||
ops.ah_destroy = authunix_destroy;
|
ops.ah_destroy = authunix_destroy;
|
||||||
ops.ah_wrap = authunix_wrap;
|
ops.ah_wrap = authunix_wrap;
|
||||||
ops.ah_unwrap = authunix_wrap;
|
ops.ah_unwrap = authunix_wrap;
|
||||||
}
|
}
|
||||||
mutex_unlock(&ops_lock);
|
mutex_unlock(&ops_lock);
|
||||||
return (&ops);
|
return (&ops);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <wintirpc.h>
|
#include <wintirpc.h>
|
||||||
|
|
|
||||||
|
|
@ -1,480 +1,475 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, Sun Microsystems, Inc.
|
* Copyright (c) 2009, Sun Microsystems, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
* - Redistributions of source code must retain the above copyright notice,
|
* - Redistributions of source code must retain the above copyright notice,
|
||||||
* this list of conditions and the following disclaimer.
|
* this list of conditions and the following disclaimer.
|
||||||
* - Redistributions in binary form must reproduce the above copyright notice,
|
* - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
* and/or other materials provided with the distribution.
|
* and/or other materials provided with the distribution.
|
||||||
* - Neither the name of Sun Microsystems, Inc. nor the names of its
|
* - Neither the name of Sun Microsystems, Inc. nor the names of its
|
||||||
* contributors may be used to endorse or promote products derived
|
* contributors may be used to endorse or promote products derived
|
||||||
* from this software without specific prior written permission.
|
* from this software without specific prior written permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1986-1996,1998 by Sun Microsystems, Inc.
|
* Copyright (c) 1986-1996,1998 by Sun Microsystems, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
|
||||||
*
|
*
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
* Kevin Coffman <kwc@umich.edu>
|
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
*/
|
||||||
*/
|
|
||||||
#include <wintirpc.h>
|
#include <wintirpc.h>
|
||||||
//#include <pthread.h>
|
//#include <pthread.h>
|
||||||
#include <reentrant.h>
|
#include <reentrant.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
//#include <sys/fcntl.h>
|
//#include <sys/fcntl.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
//#include <sys/socket.h>
|
//#include <sys/socket.h>
|
||||||
//#include <netinet/in.h>
|
//#include <netinet/in.h>
|
||||||
//#include <netinet/tcp.h>
|
//#include <netinet/tcp.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
//#include <netdb.h>
|
//#include <netdb.h>
|
||||||
//#include <syslog.h>
|
//#include <syslog.h>
|
||||||
#include <rpc/rpc.h>
|
#include <rpc/rpc.h>
|
||||||
#include <rpc/nettype.h>
|
#include <rpc/nettype.h>
|
||||||
//#include <unistd.h>
|
//#include <unistd.h>
|
||||||
#include "rpc_com.h"
|
#include "rpc_com.h"
|
||||||
|
|
||||||
extern bool_t __rpc_is_local_host(const char *);
|
extern bool_t __rpc_is_local_host(const char *);
|
||||||
#if 0 /* WINDOWS */
|
#if 0 /* WINDOWS */
|
||||||
int __rpc_raise_fd(int);
|
int __rpc_raise_fd(int);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef NETIDLEN
|
#ifndef NETIDLEN
|
||||||
#define NETIDLEN 32
|
#define NETIDLEN 32
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generic client creation with version checking the value of
|
* Generic client creation with version checking the value of
|
||||||
* vers_out is set to the highest server supported value
|
* vers_out is set to the highest server supported value
|
||||||
* vers_low <= vers_out <= vers_high AND an error results
|
* vers_low <= vers_out <= vers_high AND an error results
|
||||||
* if this can not be done.
|
* if this can not be done.
|
||||||
*
|
*
|
||||||
* It calls clnt_create_vers_timed() with a NULL value for the timeout
|
* It calls clnt_create_vers_timed() with a NULL value for the timeout
|
||||||
* pointer, which indicates that the default timeout should be used.
|
* pointer, which indicates that the default timeout should be used.
|
||||||
*/
|
*/
|
||||||
CLIENT *
|
CLIENT *
|
||||||
clnt_create_vers(const char *hostname, const rpcprog_t prog, rpcvers_t *vers_out,
|
clnt_create_vers(const char *hostname, const rpcprog_t prog, rpcvers_t *vers_out,
|
||||||
const rpcvers_t vers_low, const rpcvers_t vers_high, const char *nettype)
|
const rpcvers_t vers_low, const rpcvers_t vers_high, const char *nettype)
|
||||||
{
|
{
|
||||||
|
|
||||||
return (clnt_create_vers_timed(hostname, prog, vers_out, vers_low,
|
return (clnt_create_vers_timed(hostname, prog, vers_out, vers_low,
|
||||||
vers_high, nettype, NULL));
|
vers_high, nettype, NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This the routine has the same definition as clnt_create_vers(),
|
* This the routine has the same definition as clnt_create_vers(),
|
||||||
* except it takes an additional timeout parameter - a pointer to
|
* except it takes an additional timeout parameter - a pointer to
|
||||||
* a timeval structure. A NULL value for the pointer indicates
|
* a timeval structure. A NULL value for the pointer indicates
|
||||||
* that the default timeout value should be used.
|
* that the default timeout value should be used.
|
||||||
*/
|
*/
|
||||||
CLIENT *
|
CLIENT *
|
||||||
clnt_create_vers_timed(const char *hostname, const rpcprog_t prog,
|
clnt_create_vers_timed(const char *hostname, const rpcprog_t prog,
|
||||||
rpcvers_t *vers_out, const rpcvers_t vers_low_in, const rpcvers_t vers_high_in,
|
rpcvers_t *vers_out, const rpcvers_t vers_low_in, const rpcvers_t vers_high_in,
|
||||||
const char *nettype, const struct timeval *tp)
|
const char *nettype, const struct timeval *tp)
|
||||||
{
|
{
|
||||||
CLIENT *clnt;
|
CLIENT *clnt;
|
||||||
struct timeval to;
|
struct timeval to;
|
||||||
enum clnt_stat rpc_stat;
|
enum clnt_stat rpc_stat;
|
||||||
struct rpc_err rpcerr;
|
struct rpc_err rpcerr;
|
||||||
rpcvers_t vers_high = vers_high_in;
|
rpcvers_t vers_high = vers_high_in;
|
||||||
rpcvers_t vers_low = vers_low_in;
|
rpcvers_t vers_low = vers_low_in;
|
||||||
|
|
||||||
clnt = clnt_create_timed(hostname, prog, vers_high, nettype, tp);
|
clnt = clnt_create_timed(hostname, prog, vers_high, nettype, tp);
|
||||||
if (clnt == NULL) {
|
if (clnt == NULL) {
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
to.tv_sec = 10;
|
to.tv_sec = 10;
|
||||||
to.tv_usec = 0;
|
to.tv_usec = 0;
|
||||||
rpc_stat = clnt_call(clnt, NULLPROC, (xdrproc_t)xdr_void,
|
rpc_stat = clnt_call(clnt, NULLPROC, (xdrproc_t)xdr_void,
|
||||||
(char *)NULL, (xdrproc_t)xdr_void, (char *)NULL, to);
|
(char *)NULL, (xdrproc_t)xdr_void, (char *)NULL, to);
|
||||||
if (rpc_stat == RPC_SUCCESS) {
|
if (rpc_stat == RPC_SUCCESS) {
|
||||||
*vers_out = vers_high;
|
*vers_out = vers_high;
|
||||||
return (clnt);
|
return (clnt);
|
||||||
}
|
}
|
||||||
while (rpc_stat == RPC_PROGVERSMISMATCH && vers_high > vers_low) {
|
while (rpc_stat == RPC_PROGVERSMISMATCH && vers_high > vers_low) {
|
||||||
unsigned int minvers, maxvers;
|
unsigned int minvers, maxvers;
|
||||||
|
|
||||||
clnt_geterr(clnt, &rpcerr);
|
clnt_geterr(clnt, &rpcerr);
|
||||||
minvers = rpcerr.re_vers.low;
|
minvers = rpcerr.re_vers.low;
|
||||||
maxvers = rpcerr.re_vers.high;
|
maxvers = rpcerr.re_vers.high;
|
||||||
if (maxvers < vers_high)
|
if (maxvers < vers_high)
|
||||||
vers_high = maxvers;
|
vers_high = maxvers;
|
||||||
else
|
else
|
||||||
vers_high--;
|
vers_high--;
|
||||||
if (minvers > vers_low)
|
if (minvers > vers_low)
|
||||||
vers_low = minvers;
|
vers_low = minvers;
|
||||||
if (vers_low > vers_high) {
|
if (vers_low > vers_high) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
CLNT_CONTROL(clnt, CLSET_VERS, (char *)&vers_high);
|
CLNT_CONTROL(clnt, CLSET_VERS, (char *)&vers_high);
|
||||||
rpc_stat = clnt_call(clnt, NULLPROC, (xdrproc_t)xdr_void,
|
rpc_stat = clnt_call(clnt, NULLPROC, (xdrproc_t)xdr_void,
|
||||||
(char *)NULL, (xdrproc_t)xdr_void,
|
(char *)NULL, (xdrproc_t)xdr_void,
|
||||||
(char *)NULL, to);
|
(char *)NULL, to);
|
||||||
if (rpc_stat == RPC_SUCCESS) {
|
if (rpc_stat == RPC_SUCCESS) {
|
||||||
*vers_out = vers_high;
|
*vers_out = vers_high;
|
||||||
return (clnt);
|
return (clnt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
clnt_geterr(clnt, &rpcerr);
|
clnt_geterr(clnt, &rpcerr);
|
||||||
|
|
||||||
error:
|
error:
|
||||||
rpc_createerr.cf_stat = rpc_stat;
|
rpc_createerr.cf_stat = rpc_stat;
|
||||||
rpc_createerr.cf_error = rpcerr;
|
rpc_createerr.cf_error = rpcerr;
|
||||||
clnt_destroy(clnt);
|
clnt_destroy(clnt);
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Top level client creation routine.
|
* Top level client creation routine.
|
||||||
* Generic client creation: takes (servers name, program-number, nettype) and
|
* Generic client creation: takes (servers name, program-number, nettype) and
|
||||||
* returns client handle. Default options are set, which the user can
|
* returns client handle. Default options are set, which the user can
|
||||||
* change using the rpc equivalent of _ioctl()'s.
|
* change using the rpc equivalent of _ioctl()'s.
|
||||||
*
|
*
|
||||||
* It tries for all the netids in that particular class of netid until
|
* It tries for all the netids in that particular class of netid until
|
||||||
* it succeeds.
|
* it succeeds.
|
||||||
* XXX The error message in the case of failure will be the one
|
* XXX The error message in the case of failure will be the one
|
||||||
* pertaining to the last create error.
|
* pertaining to the last create error.
|
||||||
*
|
*
|
||||||
* It calls clnt_create_timed() with the default timeout.
|
* It calls clnt_create_timed() with the default timeout.
|
||||||
*/
|
*/
|
||||||
CLIENT *
|
CLIENT *
|
||||||
clnt_create(const char *hostname, const rpcprog_t prog, const rpcvers_t vers,
|
clnt_create(const char *hostname, const rpcprog_t prog, const rpcvers_t vers,
|
||||||
const char *nettype)
|
const char *nettype)
|
||||||
{
|
{
|
||||||
|
|
||||||
return (clnt_create_timed(hostname, prog, vers, nettype, NULL));
|
return (clnt_create_timed(hostname, prog, vers, nettype, NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This the routine has the same definition as clnt_create(),
|
* This the routine has the same definition as clnt_create(),
|
||||||
* except it takes an additional timeout parameter - a pointer to
|
* except it takes an additional timeout parameter - a pointer to
|
||||||
* a timeval structure. A NULL value for the pointer indicates
|
* a timeval structure. A NULL value for the pointer indicates
|
||||||
* that the default timeout value should be used.
|
* that the default timeout value should be used.
|
||||||
*
|
*
|
||||||
* This function calls clnt_tp_create_timed().
|
* This function calls clnt_tp_create_timed().
|
||||||
*/
|
*/
|
||||||
CLIENT *
|
CLIENT *
|
||||||
clnt_create_timed(const char *hostname, const rpcprog_t prog, const rpcvers_t vers,
|
clnt_create_timed(const char *hostname, const rpcprog_t prog, const rpcvers_t vers,
|
||||||
const char *netclass, const struct timeval *tp)
|
const char *netclass, const struct timeval *tp)
|
||||||
{
|
{
|
||||||
struct netconfig *nconf;
|
struct netconfig *nconf;
|
||||||
CLIENT *clnt = NULL;
|
CLIENT *clnt = NULL;
|
||||||
void *handle;
|
void *handle;
|
||||||
enum clnt_stat save_cf_stat = RPC_SUCCESS;
|
enum clnt_stat save_cf_stat = RPC_SUCCESS;
|
||||||
struct rpc_err save_cf_error;
|
struct rpc_err save_cf_error;
|
||||||
char nettype_array[NETIDLEN];
|
char nettype_array[NETIDLEN];
|
||||||
char *nettype = &nettype_array[0];
|
char *nettype = &nettype_array[0];
|
||||||
|
|
||||||
if (netclass == NULL)
|
if (netclass == NULL)
|
||||||
nettype = NULL;
|
nettype = NULL;
|
||||||
else {
|
else {
|
||||||
size_t len = strlen(netclass);
|
size_t len = strlen(netclass);
|
||||||
if (len >= sizeof (nettype_array)) {
|
if (len >= sizeof (nettype_array)) {
|
||||||
rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
|
rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
strcpy(nettype, netclass);
|
strcpy(nettype, netclass);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((handle = __rpc_setconf((char *)nettype)) == NULL) {
|
if ((handle = __rpc_setconf((char *)nettype)) == NULL) {
|
||||||
rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
|
rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
rpc_createerr.cf_stat = RPC_SUCCESS;
|
rpc_createerr.cf_stat = RPC_SUCCESS;
|
||||||
while (clnt == NULL) {
|
while (clnt == NULL) {
|
||||||
if ((nconf = __rpc_getconf(handle)) == NULL) {
|
if ((nconf = __rpc_getconf(handle)) == NULL) {
|
||||||
if (rpc_createerr.cf_stat == RPC_SUCCESS)
|
if (rpc_createerr.cf_stat == RPC_SUCCESS)
|
||||||
rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
|
rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#ifdef CLNT_DEBUG
|
#ifdef CLNT_DEBUG
|
||||||
printf("trying netid %s\n", nconf->nc_netid);
|
printf("trying netid %s\n", nconf->nc_netid);
|
||||||
#endif
|
#endif
|
||||||
clnt = clnt_tp_create_timed(hostname, prog, vers, nconf, tp);
|
clnt = clnt_tp_create_timed(hostname, prog, vers, nconf, tp);
|
||||||
if (clnt)
|
if (clnt)
|
||||||
break;
|
break;
|
||||||
else {
|
else {
|
||||||
/*
|
/*
|
||||||
* Since we didn't get a name-to-address
|
* Since we didn't get a name-to-address
|
||||||
* translation failure here, we remember
|
* translation failure here, we remember
|
||||||
* this particular error. The object of
|
* this particular error. The object of
|
||||||
* this is to enable us to return to the
|
* this is to enable us to return to the
|
||||||
* caller a more-specific error than the
|
* caller a more-specific error than the
|
||||||
* unhelpful ``Name to address translation
|
* unhelpful ``Name to address translation
|
||||||
* failed'' which might well occur if we
|
* failed'' which might well occur if we
|
||||||
* merely returned the last error (because
|
* merely returned the last error (because
|
||||||
* the local loopbacks are typically the
|
* the local loopbacks are typically the
|
||||||
* last ones in /etc/netconfig and the most
|
* last ones in /etc/netconfig and the most
|
||||||
* likely to be unable to translate a host
|
* likely to be unable to translate a host
|
||||||
* name). We also check for a more
|
* name). We also check for a more
|
||||||
* meaningful error than ``unknown host
|
* meaningful error than ``unknown host
|
||||||
* name'' for the same reasons.
|
* name'' for the same reasons.
|
||||||
*/
|
*/
|
||||||
if (rpc_createerr.cf_stat != RPC_N2AXLATEFAILURE &&
|
if (rpc_createerr.cf_stat != RPC_N2AXLATEFAILURE &&
|
||||||
rpc_createerr.cf_stat != RPC_UNKNOWNHOST) {
|
rpc_createerr.cf_stat != RPC_UNKNOWNHOST) {
|
||||||
save_cf_stat = rpc_createerr.cf_stat;
|
save_cf_stat = rpc_createerr.cf_stat;
|
||||||
save_cf_error = rpc_createerr.cf_error;
|
save_cf_error = rpc_createerr.cf_error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Attempt to return an error more specific than ``Name to address
|
* Attempt to return an error more specific than ``Name to address
|
||||||
* translation failed'' or ``unknown host name''
|
* translation failed'' or ``unknown host name''
|
||||||
*/
|
*/
|
||||||
if ((rpc_createerr.cf_stat == RPC_N2AXLATEFAILURE ||
|
if ((rpc_createerr.cf_stat == RPC_N2AXLATEFAILURE ||
|
||||||
rpc_createerr.cf_stat == RPC_UNKNOWNHOST) &&
|
rpc_createerr.cf_stat == RPC_UNKNOWNHOST) &&
|
||||||
(save_cf_stat != RPC_SUCCESS)) {
|
(save_cf_stat != RPC_SUCCESS)) {
|
||||||
rpc_createerr.cf_stat = save_cf_stat;
|
rpc_createerr.cf_stat = save_cf_stat;
|
||||||
rpc_createerr.cf_error = save_cf_error;
|
rpc_createerr.cf_error = save_cf_error;
|
||||||
}
|
}
|
||||||
__rpc_endconf(handle);
|
__rpc_endconf(handle);
|
||||||
return (clnt);
|
return (clnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generic client creation: takes (servers name, program-number, netconf) and
|
* Generic client creation: takes (servers name, program-number, netconf) and
|
||||||
* returns client handle. Default options are set, which the user can
|
* returns client handle. Default options are set, which the user can
|
||||||
* change using the rpc equivalent of _ioctl()'s : clnt_control()
|
* change using the rpc equivalent of _ioctl()'s : clnt_control()
|
||||||
* It finds out the server address from rpcbind and calls clnt_tli_create().
|
* It finds out the server address from rpcbind and calls clnt_tli_create().
|
||||||
*
|
*
|
||||||
* It calls clnt_tp_create_timed() with the default timeout.
|
* It calls clnt_tp_create_timed() with the default timeout.
|
||||||
*/
|
*/
|
||||||
CLIENT *
|
CLIENT *
|
||||||
clnt_tp_create(const char *hostname, const rpcprog_t prog, const rpcvers_t vers,
|
clnt_tp_create(const char *hostname, const rpcprog_t prog, const rpcvers_t vers,
|
||||||
const struct netconfig *nconf)
|
const struct netconfig *nconf)
|
||||||
{
|
{
|
||||||
return (clnt_tp_create_timed(hostname, prog, vers, nconf, NULL));
|
return (clnt_tp_create_timed(hostname, prog, vers, nconf, NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This has the same definition as clnt_tp_create(), except it
|
* This has the same definition as clnt_tp_create(), except it
|
||||||
* takes an additional parameter - a pointer to a timeval structure.
|
* takes an additional parameter - a pointer to a timeval structure.
|
||||||
* A NULL value for the timeout pointer indicates that the default
|
* A NULL value for the timeout pointer indicates that the default
|
||||||
* value for the timeout should be used.
|
* value for the timeout should be used.
|
||||||
*/
|
*/
|
||||||
CLIENT *
|
CLIENT *
|
||||||
clnt_tp_create_timed(const char *hostname, const rpcprog_t prog, const rpcvers_t vers,
|
clnt_tp_create_timed(const char *hostname, const rpcprog_t prog, const rpcvers_t vers,
|
||||||
const struct netconfig *nconf, const struct timeval *tp)
|
const struct netconfig *nconf, const struct timeval *tp)
|
||||||
{
|
{
|
||||||
struct netbuf *svcaddr; /* servers address */
|
struct netbuf *svcaddr; /* servers address */
|
||||||
CLIENT *cl = NULL; /* client handle */
|
CLIENT *cl = NULL; /* client handle */
|
||||||
|
|
||||||
if (nconf == NULL) {
|
if (nconf == NULL) {
|
||||||
rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
|
rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get the address of the server
|
* Get the address of the server
|
||||||
*/
|
*/
|
||||||
if ((svcaddr = __rpcb_findaddr_timed(prog, vers,
|
if ((svcaddr = __rpcb_findaddr_timed(prog, vers,
|
||||||
(struct netconfig *)nconf, (char *)hostname,
|
(struct netconfig *)nconf, (char *)hostname,
|
||||||
&cl, (struct timeval *)tp)) == NULL) {
|
&cl, (struct timeval *)tp)) == NULL) {
|
||||||
/* appropriate error number is set by rpcbind libraries */
|
/* appropriate error number is set by rpcbind libraries */
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
if (cl == NULL) {
|
if (cl == NULL) {
|
||||||
cl = clnt_tli_create(RPC_ANYFD, nconf, svcaddr,
|
cl = clnt_tli_create(RPC_ANYFD, nconf, svcaddr,
|
||||||
prog, vers, 0, 0, NULL, NULL, NULL);
|
prog, vers, 0, 0, NULL, NULL, NULL);
|
||||||
} else {
|
} else {
|
||||||
/* Reuse the CLIENT handle and change the appropriate fields */
|
/* Reuse the CLIENT handle and change the appropriate fields */
|
||||||
if (CLNT_CONTROL(cl, CLSET_SVC_ADDR, (void *)svcaddr) == TRUE) {
|
if (CLNT_CONTROL(cl, CLSET_SVC_ADDR, (void *)svcaddr) == TRUE) {
|
||||||
if (cl->cl_netid == NULL)
|
if (cl->cl_netid == NULL)
|
||||||
cl->cl_netid = strdup(nconf->nc_netid);
|
cl->cl_netid = strdup(nconf->nc_netid);
|
||||||
if (cl->cl_tp == NULL)
|
if (cl->cl_tp == NULL)
|
||||||
cl->cl_tp = strdup(nconf->nc_device);
|
cl->cl_tp = strdup(nconf->nc_device);
|
||||||
(void) CLNT_CONTROL(cl, CLSET_PROG, (void *)&prog);
|
(void) CLNT_CONTROL(cl, CLSET_PROG, (void *)&prog);
|
||||||
(void) CLNT_CONTROL(cl, CLSET_VERS, (void *)&vers);
|
(void) CLNT_CONTROL(cl, CLSET_VERS, (void *)&vers);
|
||||||
} else {
|
} else {
|
||||||
CLNT_DESTROY(cl);
|
CLNT_DESTROY(cl);
|
||||||
cl = clnt_tli_create(RPC_ANYFD, nconf, svcaddr,
|
cl = clnt_tli_create(RPC_ANYFD, nconf, svcaddr,
|
||||||
prog, vers, 0, 0, NULL, NULL, NULL);
|
prog, vers, 0, 0, NULL, NULL, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(svcaddr->buf);
|
free(svcaddr->buf);
|
||||||
free(svcaddr);
|
free(svcaddr);
|
||||||
return (cl);
|
return (cl);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generic client creation: returns client handle.
|
* Generic client creation: returns client handle.
|
||||||
* Default options are set, which the user can
|
* Default options are set, which the user can
|
||||||
* change using the rpc equivalent of _ioctl()'s : clnt_control().
|
* change using the rpc equivalent of _ioctl()'s : clnt_control().
|
||||||
* If fd is RPC_ANYFD, it will be opened using nconf.
|
* If fd is RPC_ANYFD, it will be opened using nconf.
|
||||||
* It will be bound if not so.
|
* It will be bound if not so.
|
||||||
* If sizes are 0; appropriate defaults will be chosen.
|
* If sizes are 0; appropriate defaults will be chosen.
|
||||||
*/
|
*/
|
||||||
CLIENT *
|
CLIENT *
|
||||||
clnt_tli_create(const SOCKET fd_in, const struct netconfig *nconf,
|
clnt_tli_create(const SOCKET fd_in, const struct netconfig *nconf,
|
||||||
struct netbuf *svcaddr, const rpcprog_t prog, const rpcvers_t vers,
|
struct netbuf *svcaddr, const rpcprog_t prog, const rpcvers_t vers,
|
||||||
const uint sendsz, const uint recvsz,
|
const uint sendsz, const uint recvsz,
|
||||||
int (*callback_xdr)(void *, void *),
|
int (*callback_xdr)(void *, void *),
|
||||||
int (*callback_function)(void *, void *, void **),
|
int (*callback_function)(void *, void *, void **),
|
||||||
void *callback_args)
|
void *callback_args)
|
||||||
{
|
{
|
||||||
CLIENT *cl; /* client handle */
|
CLIENT *cl; /* client handle */
|
||||||
bool_t madefd = FALSE; /* whether fd opened here */
|
bool_t madefd = FALSE; /* whether fd opened here */
|
||||||
long servtype;
|
long servtype;
|
||||||
BOOL one = TRUE;
|
BOOL one = TRUE;
|
||||||
struct __rpc_sockinfo si;
|
struct __rpc_sockinfo si;
|
||||||
extern int __rpc_minfd;
|
extern int __rpc_minfd;
|
||||||
SOCKET fd = fd_in;
|
SOCKET fd = fd_in;
|
||||||
|
|
||||||
if (fd == RPC_ANYFD) {
|
if (fd == RPC_ANYFD) {
|
||||||
if (nconf == NULL) {
|
if (nconf == NULL) {
|
||||||
rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
|
rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
fd = __rpc_nconf2fd(nconf);
|
fd = __rpc_nconf2fd(nconf);
|
||||||
|
|
||||||
if (fd == INVALID_SOCKET)
|
if (fd == INVALID_SOCKET)
|
||||||
goto err;
|
goto err;
|
||||||
#if 0
|
#if 0
|
||||||
if (fd < __rpc_minfd)
|
if (fd < __rpc_minfd)
|
||||||
fd = __rpc_raise_fd(fd);
|
fd = __rpc_raise_fd(fd);
|
||||||
#endif
|
#endif
|
||||||
madefd = TRUE;
|
madefd = TRUE;
|
||||||
servtype = nconf->nc_semantics;
|
servtype = nconf->nc_semantics;
|
||||||
bindresvport(fd, NULL);
|
bindresvport(fd, NULL);
|
||||||
if (!__rpc_fd2sockinfo(fd, &si))
|
if (!__rpc_fd2sockinfo(fd, &si))
|
||||||
goto err;
|
goto err;
|
||||||
} else {
|
} else {
|
||||||
if (!__rpc_fd2sockinfo(fd, &si))
|
if (!__rpc_fd2sockinfo(fd, &si))
|
||||||
goto err;
|
goto err;
|
||||||
servtype = __rpc_socktype2seman(si.si_socktype);
|
servtype = __rpc_socktype2seman(si.si_socktype);
|
||||||
if (servtype == -1) {
|
if (servtype == -1) {
|
||||||
rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
|
rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (si.si_af != ((struct sockaddr *)svcaddr->buf)->sa_family) {
|
if (si.si_af != ((struct sockaddr *)svcaddr->buf)->sa_family) {
|
||||||
rpc_createerr.cf_stat = RPC_UNKNOWNHOST; /* XXX */
|
rpc_createerr.cf_stat = RPC_UNKNOWNHOST; /* XXX */
|
||||||
goto err1;
|
goto err1;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (servtype) {
|
switch (servtype) {
|
||||||
case NC_TPI_COTS:
|
case NC_TPI_COTS:
|
||||||
cl = clnt_vc_create(fd, svcaddr, prog, vers, sendsz, recvsz,
|
cl = clnt_vc_create(fd, svcaddr, prog, vers, sendsz, recvsz,
|
||||||
callback_xdr, callback_function, callback_args);
|
callback_xdr, callback_function, callback_args);
|
||||||
break;
|
break;
|
||||||
case NC_TPI_COTS_ORD:
|
case NC_TPI_COTS_ORD:
|
||||||
if (nconf &&
|
if (nconf &&
|
||||||
((strcmp(nconf->nc_protofmly, "inet") == 0) ||
|
((strcmp(nconf->nc_protofmly, "inet") == 0) ||
|
||||||
(strcmp(nconf->nc_protofmly, "inet6") == 0))) {
|
(strcmp(nconf->nc_protofmly, "inet6") == 0))) {
|
||||||
setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (const char *)&one,
|
setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (const char *)&one,
|
||||||
sizeof (one));
|
sizeof (one));
|
||||||
}
|
}
|
||||||
cl = clnt_vc_create(fd, svcaddr, prog, vers, sendsz, recvsz,
|
cl = clnt_vc_create(fd, svcaddr, prog, vers, sendsz, recvsz,
|
||||||
callback_xdr, callback_function, callback_args);
|
callback_xdr, callback_function, callback_args);
|
||||||
break;
|
break;
|
||||||
case NC_TPI_CLTS:
|
case NC_TPI_CLTS:
|
||||||
cl = clnt_dg_create(fd, svcaddr, prog, vers, sendsz, recvsz);
|
cl = clnt_dg_create(fd, svcaddr, prog, vers, sendsz, recvsz);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cl == NULL)
|
if (cl == NULL)
|
||||||
goto err1; /* borrow errors from clnt_dg/vc creates */
|
goto err1; /* borrow errors from clnt_dg/vc creates */
|
||||||
if (nconf) {
|
if (nconf) {
|
||||||
cl->cl_netid = strdup(nconf->nc_netid);
|
cl->cl_netid = strdup(nconf->nc_netid);
|
||||||
cl->cl_tp = strdup(nconf->nc_device);
|
cl->cl_tp = strdup(nconf->nc_device);
|
||||||
} else {
|
} else {
|
||||||
cl->cl_netid = "";
|
cl->cl_netid = "";
|
||||||
cl->cl_tp = "";
|
cl->cl_tp = "";
|
||||||
}
|
}
|
||||||
if (madefd) {
|
if (madefd) {
|
||||||
(void) CLNT_CONTROL(cl, CLSET_FD_CLOSE, NULL);
|
(void) CLNT_CONTROL(cl, CLSET_FD_CLOSE, NULL);
|
||||||
/* (void) CLNT_CONTROL(cl, CLSET_POP_TIMOD, NULL); */
|
/* (void) CLNT_CONTROL(cl, CLSET_POP_TIMOD, NULL); */
|
||||||
};
|
};
|
||||||
|
|
||||||
return (cl);
|
return (cl);
|
||||||
|
|
||||||
err:
|
err:
|
||||||
rpc_createerr.cf_stat = RPC_SYSTEMERROR;
|
rpc_createerr.cf_stat = RPC_SYSTEMERROR;
|
||||||
rpc_createerr.cf_error.re_errno = errno;
|
rpc_createerr.cf_error.re_errno = errno;
|
||||||
err1: if (madefd)
|
err1: if (madefd)
|
||||||
(void)closesocket(fd);
|
(void)closesocket(fd);
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0 /* WINDOWS */
|
#if 0 /* WINDOWS */
|
||||||
/*
|
/*
|
||||||
* To avoid conflicts with the "magic" file descriptors (0, 1, and 2),
|
* To avoid conflicts with the "magic" file descriptors (0, 1, and 2),
|
||||||
* we try to not use them. The __rpc_raise_fd() routine will dup
|
* we try to not use them. The __rpc_raise_fd() routine will dup
|
||||||
* a descriptor to a higher value. If we fail to do it, we continue
|
* a descriptor to a higher value. If we fail to do it, we continue
|
||||||
* to use the old one (and hope for the best).
|
* to use the old one (and hope for the best).
|
||||||
*/
|
*/
|
||||||
int __rpc_minfd = 3;
|
int __rpc_minfd = 3;
|
||||||
|
|
||||||
int
|
int
|
||||||
__rpc_raise_fd(int fd)
|
__rpc_raise_fd(int fd)
|
||||||
{
|
{
|
||||||
int nfd;
|
int nfd;
|
||||||
|
|
||||||
if (fd >= __rpc_minfd)
|
if (fd >= __rpc_minfd)
|
||||||
return (fd);
|
return (fd);
|
||||||
|
|
||||||
if ((nfd = fcntl(fd, F_DUPFD, __rpc_minfd)) == -1)
|
if ((nfd = fcntl(fd, F_DUPFD, __rpc_minfd)) == -1)
|
||||||
return (fd);
|
return (fd);
|
||||||
|
|
||||||
if (fsync(nfd) == -1) {
|
if (fsync(nfd) == -1) {
|
||||||
closesocket(nfd);
|
closesocket(nfd);
|
||||||
return (fd);
|
return (fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (closesocket(fd) == -1) {
|
if (closesocket(fd) == -1) {
|
||||||
/* this is okay, we will syslog an error, then use the new fd */
|
/* this is okay, we will syslog an error, then use the new fd */
|
||||||
(void) syslog(LOG_ERR,
|
(void) syslog(LOG_ERR,
|
||||||
"could not close() fd %d; mem & fd leak", fd);
|
"could not close() fd %d; mem & fd leak", fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (nfd);
|
return (nfd);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -45,31 +45,27 @@
|
||||||
* Now go hang yourself.
|
* Now go hang yourself.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <wintirpc.h>
|
#include <wintirpc.h>
|
||||||
//#include <pthread.h>
|
//#include <pthread.h>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,415 +1,410 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, Sun Microsystems, Inc.
|
* Copyright (c) 2009, Sun Microsystems, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
* - Redistributions of source code must retain the above copyright notice,
|
* - Redistributions of source code must retain the above copyright notice,
|
||||||
* this list of conditions and the following disclaimer.
|
* this list of conditions and the following disclaimer.
|
||||||
* - Redistributions in binary form must reproduce the above copyright notice,
|
* - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
* and/or other materials provided with the distribution.
|
* and/or other materials provided with the distribution.
|
||||||
* - Neither the name of Sun Microsystems, Inc. nor the names of its
|
* - Neither the name of Sun Microsystems, Inc. nor the names of its
|
||||||
* contributors may be used to endorse or promote products derived
|
* contributors may be used to endorse or promote products derived
|
||||||
* from this software without specific prior written permission.
|
* from this software without specific prior written permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* rpc_prot.c
|
* rpc_prot.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 1984, Sun Microsystems, Inc.
|
* Copyright (C) 1984, Sun Microsystems, Inc.
|
||||||
*
|
*
|
||||||
* This set of routines implements the rpc message definition,
|
* This set of routines implements the rpc message definition,
|
||||||
* its serializer and some common rpc utility routines.
|
* its serializer and some common rpc utility routines.
|
||||||
* The routines are meant for various implementations of rpc -
|
* The routines are meant for various implementations of rpc -
|
||||||
* they are NOT for the rpc client or rpc service implementations!
|
* they are NOT for the rpc client or rpc service implementations!
|
||||||
* Because authentication stuff is easy and is part of rpc, the opaque
|
* Because authentication stuff is easy and is part of rpc, the opaque
|
||||||
* routines are also in this program.
|
* routines are also in this program.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
|
||||||
*
|
*
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
* Kevin Coffman <kwc@umich.edu>
|
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
*/
|
||||||
*/
|
|
||||||
#include <wintirpc.h>
|
#include <wintirpc.h>
|
||||||
//#include <sys/param.h>
|
//#include <sys/param.h>
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include <rpc/rpc.h>
|
#include <rpc/rpc.h>
|
||||||
|
|
||||||
static void accepted(enum accept_stat, struct rpc_err *);
|
static void accepted(enum accept_stat, struct rpc_err *);
|
||||||
static void rejected(enum reject_stat, struct rpc_err *);
|
static void rejected(enum reject_stat, struct rpc_err *);
|
||||||
|
|
||||||
/* * * * * * * * * * * * * * XDR Authentication * * * * * * * * * * * */
|
/* * * * * * * * * * * * * * XDR Authentication * * * * * * * * * * * */
|
||||||
|
|
||||||
extern struct opaque_auth _null_auth;
|
extern struct opaque_auth _null_auth;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XDR an opaque authentication struct
|
* XDR an opaque authentication struct
|
||||||
* (see auth.h)
|
* (see auth.h)
|
||||||
*/
|
*/
|
||||||
bool_t
|
bool_t
|
||||||
xdr_opaque_auth(xdrs, ap)
|
xdr_opaque_auth(xdrs, ap)
|
||||||
XDR *xdrs;
|
XDR *xdrs;
|
||||||
struct opaque_auth *ap;
|
struct opaque_auth *ap;
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(xdrs != NULL);
|
assert(xdrs != NULL);
|
||||||
assert(ap != NULL);
|
assert(ap != NULL);
|
||||||
|
|
||||||
if (xdr_enum(xdrs, &(ap->oa_flavor)))
|
if (xdr_enum(xdrs, &(ap->oa_flavor)))
|
||||||
return (xdr_bytes(xdrs, &ap->oa_base,
|
return (xdr_bytes(xdrs, &ap->oa_base,
|
||||||
&ap->oa_length, MAX_AUTH_BYTES));
|
&ap->oa_length, MAX_AUTH_BYTES));
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XDR a DES block
|
* XDR a DES block
|
||||||
*/
|
*/
|
||||||
bool_t
|
bool_t
|
||||||
xdr_des_block(xdrs, blkp)
|
xdr_des_block(xdrs, blkp)
|
||||||
XDR *xdrs;
|
XDR *xdrs;
|
||||||
des_block *blkp;
|
des_block *blkp;
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(xdrs != NULL);
|
assert(xdrs != NULL);
|
||||||
assert(blkp != NULL);
|
assert(blkp != NULL);
|
||||||
|
|
||||||
return (xdr_opaque(xdrs, (caddr_t)(void *)blkp, sizeof(des_block)));
|
return (xdr_opaque(xdrs, (caddr_t)(void *)blkp, sizeof(des_block)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* * * * * * * * * * * * * * XDR RPC MESSAGE * * * * * * * * * * * * * * * */
|
/* * * * * * * * * * * * * * XDR RPC MESSAGE * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XDR the MSG_ACCEPTED part of a reply message union
|
* XDR the MSG_ACCEPTED part of a reply message union
|
||||||
*/
|
*/
|
||||||
bool_t
|
bool_t
|
||||||
xdr_accepted_reply(xdrs, ar)
|
xdr_accepted_reply(xdrs, ar)
|
||||||
XDR *xdrs;
|
XDR *xdrs;
|
||||||
struct accepted_reply *ar;
|
struct accepted_reply *ar;
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(xdrs != NULL);
|
assert(xdrs != NULL);
|
||||||
assert(ar != NULL);
|
assert(ar != NULL);
|
||||||
|
|
||||||
/* personalized union, rather than calling xdr_union */
|
/* personalized union, rather than calling xdr_union */
|
||||||
if (! xdr_opaque_auth(xdrs, &(ar->ar_verf)))
|
if (! xdr_opaque_auth(xdrs, &(ar->ar_verf)))
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
if (! xdr_enum(xdrs, (enum_t *)&(ar->ar_stat)))
|
if (! xdr_enum(xdrs, (enum_t *)&(ar->ar_stat)))
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
switch (ar->ar_stat) {
|
switch (ar->ar_stat) {
|
||||||
|
|
||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
return ((*(ar->ar_results.proc))(xdrs, ar->ar_results.where));
|
return ((*(ar->ar_results.proc))(xdrs, ar->ar_results.where));
|
||||||
|
|
||||||
case PROG_MISMATCH:
|
case PROG_MISMATCH:
|
||||||
if (! xdr_u_int32_t(xdrs, &(ar->ar_vers.low)))
|
if (! xdr_u_int32_t(xdrs, &(ar->ar_vers.low)))
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
return (xdr_u_int32_t(xdrs, &(ar->ar_vers.high)));
|
return (xdr_u_int32_t(xdrs, &(ar->ar_vers.high)));
|
||||||
|
|
||||||
case GARBAGE_ARGS:
|
case GARBAGE_ARGS:
|
||||||
case SYSTEM_ERR:
|
case SYSTEM_ERR:
|
||||||
case PROC_UNAVAIL:
|
case PROC_UNAVAIL:
|
||||||
case PROG_UNAVAIL:
|
case PROG_UNAVAIL:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return (TRUE); /* TRUE => open ended set of problems */
|
return (TRUE); /* TRUE => open ended set of problems */
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XDR the MSG_DENIED part of a reply message union
|
* XDR the MSG_DENIED part of a reply message union
|
||||||
*/
|
*/
|
||||||
bool_t
|
bool_t
|
||||||
xdr_rejected_reply(xdrs, rr)
|
xdr_rejected_reply(xdrs, rr)
|
||||||
XDR *xdrs;
|
XDR *xdrs;
|
||||||
struct rejected_reply *rr;
|
struct rejected_reply *rr;
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(xdrs != NULL);
|
assert(xdrs != NULL);
|
||||||
assert(rr != NULL);
|
assert(rr != NULL);
|
||||||
|
|
||||||
/* personalized union, rather than calling xdr_union */
|
/* personalized union, rather than calling xdr_union */
|
||||||
if (! xdr_enum(xdrs, (enum_t *)&(rr->rj_stat)))
|
if (! xdr_enum(xdrs, (enum_t *)&(rr->rj_stat)))
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
switch (rr->rj_stat) {
|
switch (rr->rj_stat) {
|
||||||
|
|
||||||
case RPC_MISMATCH:
|
case RPC_MISMATCH:
|
||||||
if (! xdr_u_int32_t(xdrs, &(rr->rj_vers.low)))
|
if (! xdr_u_int32_t(xdrs, &(rr->rj_vers.low)))
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
return (xdr_u_int32_t(xdrs, &(rr->rj_vers.high)));
|
return (xdr_u_int32_t(xdrs, &(rr->rj_vers.high)));
|
||||||
|
|
||||||
case AUTH_ERROR:
|
case AUTH_ERROR:
|
||||||
return (xdr_enum(xdrs, (enum_t *)&(rr->rj_why)));
|
return (xdr_enum(xdrs, (enum_t *)&(rr->rj_why)));
|
||||||
}
|
}
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
assert(0);
|
assert(0);
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct xdr_discrim reply_dscrm[3] = {
|
static const struct xdr_discrim reply_dscrm[3] = {
|
||||||
{ (int)MSG_ACCEPTED, (xdrproc_t)xdr_accepted_reply },
|
{ (int)MSG_ACCEPTED, (xdrproc_t)xdr_accepted_reply },
|
||||||
{ (int)MSG_DENIED, (xdrproc_t)xdr_rejected_reply },
|
{ (int)MSG_DENIED, (xdrproc_t)xdr_rejected_reply },
|
||||||
{ __dontcare__, NULL_xdrproc_t } };
|
{ __dontcare__, NULL_xdrproc_t } };
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XDR a reply message
|
* XDR a reply message
|
||||||
*/
|
*/
|
||||||
bool_t
|
bool_t
|
||||||
xdr_replymsg(xdrs, rmsg)
|
xdr_replymsg(xdrs, rmsg)
|
||||||
XDR *xdrs;
|
XDR *xdrs;
|
||||||
struct rpc_msg *rmsg;
|
struct rpc_msg *rmsg;
|
||||||
{
|
{
|
||||||
assert(xdrs != NULL);
|
assert(xdrs != NULL);
|
||||||
assert(rmsg != NULL);
|
assert(rmsg != NULL);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
xdr_u_int32_t(xdrs, &(rmsg->rm_xid)) &&
|
xdr_u_int32_t(xdrs, &(rmsg->rm_xid)) &&
|
||||||
xdr_enum(xdrs, (enum_t *)&(rmsg->rm_direction)) &&
|
xdr_enum(xdrs, (enum_t *)&(rmsg->rm_direction)) &&
|
||||||
(rmsg->rm_direction == REPLY) )
|
(rmsg->rm_direction == REPLY) )
|
||||||
return (xdr_union(xdrs, (enum_t *)&(rmsg->rm_reply.rp_stat),
|
return (xdr_union(xdrs, (enum_t *)&(rmsg->rm_reply.rp_stat),
|
||||||
(caddr_t)(void *)&(rmsg->rm_reply.ru), reply_dscrm,
|
(caddr_t)(void *)&(rmsg->rm_reply.ru), reply_dscrm,
|
||||||
NULL_xdrproc_t));
|
NULL_xdrproc_t));
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XDR a reply message in pieces, first xid and direction, then union
|
* XDR a reply message in pieces, first xid and direction, then union
|
||||||
*/
|
*/
|
||||||
bool_t
|
bool_t
|
||||||
xdr_getxiddir(xdrs, rmsg)
|
xdr_getxiddir(xdrs, rmsg)
|
||||||
XDR *xdrs;
|
XDR *xdrs;
|
||||||
struct rpc_msg *rmsg;
|
struct rpc_msg *rmsg;
|
||||||
{
|
{
|
||||||
assert(xdrs != NULL);
|
assert(xdrs != NULL);
|
||||||
assert(rmsg != NULL);
|
assert(rmsg != NULL);
|
||||||
|
|
||||||
return (xdr_u_int32_t(xdrs, &(rmsg->rm_xid)) &&
|
return (xdr_u_int32_t(xdrs, &(rmsg->rm_xid)) &&
|
||||||
xdr_enum(xdrs, (enum_t *)&(rmsg->rm_direction)));
|
xdr_enum(xdrs, (enum_t *)&(rmsg->rm_direction)));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool_t
|
bool_t
|
||||||
xdr_getreplyunion(xdrs, rmsg)
|
xdr_getreplyunion(xdrs, rmsg)
|
||||||
XDR *xdrs;
|
XDR *xdrs;
|
||||||
struct rpc_msg *rmsg;
|
struct rpc_msg *rmsg;
|
||||||
{
|
{
|
||||||
assert(xdrs != NULL);
|
assert(xdrs != NULL);
|
||||||
assert(rmsg != NULL);
|
assert(rmsg != NULL);
|
||||||
|
|
||||||
return (xdr_union(xdrs, (enum_t *)&(rmsg->rm_reply.rp_stat),
|
return (xdr_union(xdrs, (enum_t *)&(rmsg->rm_reply.rp_stat),
|
||||||
(caddr_t)(void *)&(rmsg->rm_reply.ru), reply_dscrm,
|
(caddr_t)(void *)&(rmsg->rm_reply.ru), reply_dscrm,
|
||||||
NULL_xdrproc_t));
|
NULL_xdrproc_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool_t
|
bool_t
|
||||||
xdr_getcallbody(xdrs, rmsg)
|
xdr_getcallbody(xdrs, rmsg)
|
||||||
XDR *xdrs;
|
XDR *xdrs;
|
||||||
struct rpc_msg *rmsg;
|
struct rpc_msg *rmsg;
|
||||||
{
|
{
|
||||||
assert(xdrs != NULL);
|
assert(xdrs != NULL);
|
||||||
assert(rmsg != NULL);
|
assert(rmsg != NULL);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
xdr_u_int32_t(xdrs, &(rmsg->rm_call.cb_rpcvers)) &&
|
xdr_u_int32_t(xdrs, &(rmsg->rm_call.cb_rpcvers)) &&
|
||||||
xdr_u_int32_t(xdrs, &(rmsg->rm_call.cb_prog)) &&
|
xdr_u_int32_t(xdrs, &(rmsg->rm_call.cb_prog)) &&
|
||||||
xdr_u_int32_t(xdrs, &(rmsg->rm_call.cb_vers)) &&
|
xdr_u_int32_t(xdrs, &(rmsg->rm_call.cb_vers)) &&
|
||||||
xdr_u_int32_t(xdrs, &(rmsg->rm_call.cb_proc)) &&
|
xdr_u_int32_t(xdrs, &(rmsg->rm_call.cb_proc)) &&
|
||||||
xdr_opaque_auth(xdrs, &(rmsg->rm_call.cb_cred)) )
|
xdr_opaque_auth(xdrs, &(rmsg->rm_call.cb_cred)) )
|
||||||
return (xdr_opaque_auth(xdrs, &(rmsg->rm_call.cb_verf)));
|
return (xdr_opaque_auth(xdrs, &(rmsg->rm_call.cb_verf)));
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Serializes the "static part" of a call message header.
|
* Serializes the "static part" of a call message header.
|
||||||
* The fields include: rm_xid, rm_direction, rpcvers, prog, and vers.
|
* The fields include: rm_xid, rm_direction, rpcvers, prog, and vers.
|
||||||
* The rm_xid is not really static, but the user can easily munge on the fly.
|
* The rm_xid is not really static, but the user can easily munge on the fly.
|
||||||
*/
|
*/
|
||||||
bool_t
|
bool_t
|
||||||
xdr_callhdr(xdrs, cmsg)
|
xdr_callhdr(xdrs, cmsg)
|
||||||
XDR *xdrs;
|
XDR *xdrs;
|
||||||
struct rpc_msg *cmsg;
|
struct rpc_msg *cmsg;
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(xdrs != NULL);
|
assert(xdrs != NULL);
|
||||||
assert(cmsg != NULL);
|
assert(cmsg != NULL);
|
||||||
|
|
||||||
cmsg->rm_direction = CALL;
|
cmsg->rm_direction = CALL;
|
||||||
cmsg->rm_call.cb_rpcvers = RPC_MSG_VERSION;
|
cmsg->rm_call.cb_rpcvers = RPC_MSG_VERSION;
|
||||||
if (
|
if (
|
||||||
(xdrs->x_op == XDR_ENCODE) &&
|
(xdrs->x_op == XDR_ENCODE) &&
|
||||||
xdr_u_int32_t(xdrs, &(cmsg->rm_xid)) &&
|
xdr_u_int32_t(xdrs, &(cmsg->rm_xid)) &&
|
||||||
xdr_enum(xdrs, (enum_t *)&(cmsg->rm_direction)) &&
|
xdr_enum(xdrs, (enum_t *)&(cmsg->rm_direction)) &&
|
||||||
xdr_u_int32_t(xdrs, &(cmsg->rm_call.cb_rpcvers)) &&
|
xdr_u_int32_t(xdrs, &(cmsg->rm_call.cb_rpcvers)) &&
|
||||||
xdr_u_int32_t(xdrs, &(cmsg->rm_call.cb_prog)) )
|
xdr_u_int32_t(xdrs, &(cmsg->rm_call.cb_prog)) )
|
||||||
return (xdr_u_int32_t(xdrs, &(cmsg->rm_call.cb_vers)));
|
return (xdr_u_int32_t(xdrs, &(cmsg->rm_call.cb_vers)));
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************** Client utility routine ************* */
|
/* ************************** Client utility routine ************* */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
accepted(acpt_stat, error)
|
accepted(acpt_stat, error)
|
||||||
enum accept_stat acpt_stat;
|
enum accept_stat acpt_stat;
|
||||||
struct rpc_err *error;
|
struct rpc_err *error;
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(error != NULL);
|
assert(error != NULL);
|
||||||
|
|
||||||
switch (acpt_stat) {
|
switch (acpt_stat) {
|
||||||
|
|
||||||
case PROG_UNAVAIL:
|
case PROG_UNAVAIL:
|
||||||
error->re_status = RPC_PROGUNAVAIL;
|
error->re_status = RPC_PROGUNAVAIL;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case PROG_MISMATCH:
|
case PROG_MISMATCH:
|
||||||
error->re_status = RPC_PROGVERSMISMATCH;
|
error->re_status = RPC_PROGVERSMISMATCH;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case PROC_UNAVAIL:
|
case PROC_UNAVAIL:
|
||||||
error->re_status = RPC_PROCUNAVAIL;
|
error->re_status = RPC_PROCUNAVAIL;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case GARBAGE_ARGS:
|
case GARBAGE_ARGS:
|
||||||
error->re_status = RPC_CANTDECODEARGS;
|
error->re_status = RPC_CANTDECODEARGS;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case SYSTEM_ERR:
|
case SYSTEM_ERR:
|
||||||
error->re_status = RPC_SYSTEMERROR;
|
error->re_status = RPC_SYSTEMERROR;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
error->re_status = RPC_SUCCESS;
|
error->re_status = RPC_SUCCESS;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
/* something's wrong, but we don't know what ... */
|
/* something's wrong, but we don't know what ... */
|
||||||
error->re_status = RPC_FAILED;
|
error->re_status = RPC_FAILED;
|
||||||
error->re_lb.s1 = (int32_t)MSG_ACCEPTED;
|
error->re_lb.s1 = (int32_t)MSG_ACCEPTED;
|
||||||
error->re_lb.s2 = (int32_t)acpt_stat;
|
error->re_lb.s2 = (int32_t)acpt_stat;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
rejected(rjct_stat, error)
|
rejected(rjct_stat, error)
|
||||||
enum reject_stat rjct_stat;
|
enum reject_stat rjct_stat;
|
||||||
struct rpc_err *error;
|
struct rpc_err *error;
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(error != NULL);
|
assert(error != NULL);
|
||||||
|
|
||||||
switch (rjct_stat) {
|
switch (rjct_stat) {
|
||||||
case RPC_MISMATCH:
|
case RPC_MISMATCH:
|
||||||
error->re_status = RPC_VERSMISMATCH;
|
error->re_status = RPC_VERSMISMATCH;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case AUTH_ERROR:
|
case AUTH_ERROR:
|
||||||
error->re_status = RPC_AUTHERROR;
|
error->re_status = RPC_AUTHERROR;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* something's wrong, but we don't know what ... */
|
/* something's wrong, but we don't know what ... */
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
error->re_status = RPC_FAILED;
|
error->re_status = RPC_FAILED;
|
||||||
error->re_lb.s1 = (int32_t)MSG_DENIED;
|
error->re_lb.s1 = (int32_t)MSG_DENIED;
|
||||||
error->re_lb.s2 = (int32_t)rjct_stat;
|
error->re_lb.s2 = (int32_t)rjct_stat;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* given a reply message, fills in the error
|
* given a reply message, fills in the error
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
_seterr_reply(msg, error)
|
_seterr_reply(msg, error)
|
||||||
struct rpc_msg *msg;
|
struct rpc_msg *msg;
|
||||||
struct rpc_err *error;
|
struct rpc_err *error;
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(msg != NULL);
|
assert(msg != NULL);
|
||||||
assert(error != NULL);
|
assert(error != NULL);
|
||||||
|
|
||||||
/* optimized for normal, SUCCESSful case */
|
/* optimized for normal, SUCCESSful case */
|
||||||
switch (msg->rm_reply.rp_stat) {
|
switch (msg->rm_reply.rp_stat) {
|
||||||
|
|
||||||
case MSG_ACCEPTED:
|
case MSG_ACCEPTED:
|
||||||
if (msg->acpted_rply.ar_stat == SUCCESS) {
|
if (msg->acpted_rply.ar_stat == SUCCESS) {
|
||||||
error->re_status = RPC_SUCCESS;
|
error->re_status = RPC_SUCCESS;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
accepted(msg->acpted_rply.ar_stat, error);
|
accepted(msg->acpted_rply.ar_stat, error);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MSG_DENIED:
|
case MSG_DENIED:
|
||||||
rejected(msg->rjcted_rply.rj_stat, error);
|
rejected(msg->rjcted_rply.rj_stat, error);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
error->re_status = RPC_FAILED;
|
error->re_status = RPC_FAILED;
|
||||||
error->re_lb.s1 = (int32_t)(msg->rm_reply.rp_stat);
|
error->re_lb.s1 = (int32_t)(msg->rm_reply.rp_stat);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
switch (error->re_status) {
|
switch (error->re_status) {
|
||||||
|
|
||||||
case RPC_VERSMISMATCH:
|
case RPC_VERSMISMATCH:
|
||||||
error->re_vers.low = msg->rjcted_rply.rj_vers.low;
|
error->re_vers.low = msg->rjcted_rply.rj_vers.low;
|
||||||
error->re_vers.high = msg->rjcted_rply.rj_vers.high;
|
error->re_vers.high = msg->rjcted_rply.rj_vers.high;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RPC_AUTHERROR:
|
case RPC_AUTHERROR:
|
||||||
error->re_why = msg->rjcted_rply.rj_why;
|
error->re_why = msg->rjcted_rply.rj_why;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RPC_PROGVERSMISMATCH:
|
case RPC_PROGVERSMISMATCH:
|
||||||
error->re_vers.low = msg->acpted_rply.ar_vers.low;
|
error->re_vers.low = msg->acpted_rply.ar_vers.low;
|
||||||
error->re_vers.high = msg->acpted_rply.ar_vers.high;
|
error->re_vers.high = msg->acpted_rply.ar_vers.high;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RPC_FAILED:
|
case RPC_FAILED:
|
||||||
case RPC_SUCCESS:
|
case RPC_SUCCESS:
|
||||||
case RPC_PROGNOTREGISTERED:
|
case RPC_PROGNOTREGISTERED:
|
||||||
case RPC_PMAPFAILURE:
|
case RPC_PMAPFAILURE:
|
||||||
case RPC_UNKNOWNPROTO:
|
case RPC_UNKNOWNPROTO:
|
||||||
case RPC_UNKNOWNHOST:
|
case RPC_UNKNOWNHOST:
|
||||||
case RPC_SYSTEMERROR:
|
case RPC_SYSTEMERROR:
|
||||||
case RPC_CANTDECODEARGS:
|
case RPC_CANTDECODEARGS:
|
||||||
case RPC_PROCUNAVAIL:
|
case RPC_PROCUNAVAIL:
|
||||||
case RPC_PROGUNAVAIL:
|
case RPC_PROGUNAVAIL:
|
||||||
case RPC_TIMEDOUT:
|
case RPC_TIMEDOUT:
|
||||||
case RPC_CANTRECV:
|
case RPC_CANTRECV:
|
||||||
case RPC_CANTSEND:
|
case RPC_CANTSEND:
|
||||||
case RPC_CANTDECODERES:
|
case RPC_CANTDECODERES:
|
||||||
case RPC_CANTENCODEARGS:
|
case RPC_CANTENCODEARGS:
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,22 @@
|
||||||
/* Copyright (c) 2010
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* for noncommercial education and research purposes, so long as no
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* of any kind either express or implied, including without limitation
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* your option) any later version.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* claim arising out of or in connection with the use of the software,
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* such damages.
|
* License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <wintirpc.h>
|
#include <wintirpc.h>
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,190 +1,185 @@
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1997,98 The NetBSD Foundation, Inc.
|
* Copyright (c) 1997,98 The NetBSD Foundation, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* This code is derived from software contributed to The NetBSD Foundation
|
* This code is derived from software contributed to The NetBSD Foundation
|
||||||
* by J.T. Conklin.
|
* by J.T. Conklin.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
* are met:
|
* are met:
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer.
|
* notice, this list of conditions and the following disclaimer.
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
* documentation and/or other materials provided with the distribution.
|
* documentation and/or other materials provided with the distribution.
|
||||||
* 3. All advertising materials mentioning features or use of this software
|
* 3. All advertising materials mentioning features or use of this software
|
||||||
* must display the following acknowledgement:
|
* must display the following acknowledgement:
|
||||||
* This product includes software developed by the NetBSD
|
* This product includes software developed by the NetBSD
|
||||||
* Foundation, Inc. and its contributors.
|
* Foundation, Inc. and its contributors.
|
||||||
* 4. Neither the name of The NetBSD Foundation nor the names of its
|
* 4. Neither the name of The NetBSD Foundation nor the names of its
|
||||||
* contributors may be used to endorse or promote products derived
|
* contributors may be used to endorse or promote products derived
|
||||||
* from this software without specific prior written permission.
|
* from this software without specific prior written permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
||||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
||||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $FreeBSD: src/lib/libc/include/reentrant.h,v 1.2 2002/11/01 09:37:17 dfr Exp $
|
* $FreeBSD: src/lib/libc/include/reentrant.h,v 1.2 2002/11/01 09:37:17 dfr Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Requirements:
|
* Requirements:
|
||||||
*
|
*
|
||||||
* 1. The thread safe mechanism should be lightweight so the library can
|
* 1. The thread safe mechanism should be lightweight so the library can
|
||||||
* be used by non-threaded applications without unreasonable overhead.
|
* be used by non-threaded applications without unreasonable overhead.
|
||||||
*
|
*
|
||||||
* 2. There should be no dependency on a thread engine for non-threaded
|
* 2. There should be no dependency on a thread engine for non-threaded
|
||||||
* applications.
|
* applications.
|
||||||
*
|
*
|
||||||
* 3. There should be no dependency on any particular thread engine.
|
* 3. There should be no dependency on any particular thread engine.
|
||||||
*
|
*
|
||||||
* 4. The library should be able to be compiled without support for thread
|
* 4. The library should be able to be compiled without support for thread
|
||||||
* safety.
|
* safety.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Rationale:
|
* Rationale:
|
||||||
*
|
*
|
||||||
* One approach for thread safety is to provide discrete versions of the
|
* One approach for thread safety is to provide discrete versions of the
|
||||||
* library: one thread safe, the other not. The disadvantage of this is
|
* library: one thread safe, the other not. The disadvantage of this is
|
||||||
* that libc is rather large, and two copies of a library which are 99%+
|
* that libc is rather large, and two copies of a library which are 99%+
|
||||||
* identical is not an efficent use of resources.
|
* identical is not an efficent use of resources.
|
||||||
*
|
*
|
||||||
* Another approach is to provide a single thread safe library. However,
|
* Another approach is to provide a single thread safe library. However,
|
||||||
* it should not add significant run time or code size overhead to non-
|
* it should not add significant run time or code size overhead to non-
|
||||||
* threaded applications.
|
* threaded applications.
|
||||||
*
|
*
|
||||||
* Since the NetBSD C library is used in other projects, it should be
|
* Since the NetBSD C library is used in other projects, it should be
|
||||||
* easy to replace the mutual exclusion primitives with ones provided by
|
* easy to replace the mutual exclusion primitives with ones provided by
|
||||||
* another system. Similarly, it should also be easy to remove all
|
* another system. Similarly, it should also be easy to remove all
|
||||||
* support for thread safety completely if the target environment does
|
* support for thread safety completely if the target environment does
|
||||||
* not support threads.
|
* not support threads.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Implementation Details:
|
* Implementation Details:
|
||||||
*
|
*
|
||||||
* The mutex primitives used by the library (mutex_t, mutex_lock, etc.)
|
* The mutex primitives used by the library (mutex_t, mutex_lock, etc.)
|
||||||
* are macros which expand to the cooresponding primitives provided by
|
* are macros which expand to the cooresponding primitives provided by
|
||||||
* the thread engine or to nothing. The latter is used so that code is
|
* the thread engine or to nothing. The latter is used so that code is
|
||||||
* not unreasonably cluttered with #ifdefs when all thread safe support
|
* not unreasonably cluttered with #ifdefs when all thread safe support
|
||||||
* is removed.
|
* is removed.
|
||||||
*
|
*
|
||||||
* The mutex macros can be directly mapped to the mutex primitives from
|
* The mutex macros can be directly mapped to the mutex primitives from
|
||||||
* pthreads, however it should be reasonably easy to wrap another mutex
|
* pthreads, however it should be reasonably easy to wrap another mutex
|
||||||
* implementation so it presents a similar interface.
|
* implementation so it presents a similar interface.
|
||||||
*
|
*
|
||||||
* Stub implementations of the mutex functions are provided with *weak*
|
* Stub implementations of the mutex functions are provided with *weak*
|
||||||
* linkage. These functions simply return success. When linked with a
|
* linkage. These functions simply return success. When linked with a
|
||||||
* thread library (i.e. -lpthread), the functions will override the
|
* thread library (i.e. -lpthread), the functions will override the
|
||||||
* stubs.
|
* stubs.
|
||||||
*/
|
*/
|
||||||
/* Copyright (c) 2010, 2011
|
|
||||||
* The Regents of the University of Michigan
|
/* NFSv4.1 client for Windows
|
||||||
* All Rights Reserved
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
*
|
*
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
* Kevin Coffman <kwc@umich.edu>
|
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
*/
|
||||||
*/
|
|
||||||
|
#ifndef _REENTRANT_H
|
||||||
#ifndef _REENTRANT_H
|
#define _REENTRANT_H
|
||||||
#define _REENTRANT_H
|
//#include <pthread.h>
|
||||||
//#include <pthread.h>
|
#include <libc_private.h>
|
||||||
#include <libc_private.h>
|
|
||||||
|
#include <stdlib.h>
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
|
#define mutex_t CRITICAL_SECTION
|
||||||
#define mutex_t CRITICAL_SECTION
|
#define cond_t CONDITION_VARIABLE
|
||||||
#define cond_t CONDITION_VARIABLE
|
#define rwlock_t SRWLOCK
|
||||||
#define rwlock_t SRWLOCK
|
|
||||||
|
|
||||||
|
#define thread_key_t DWORD
|
||||||
#define thread_key_t DWORD
|
#define MUTEX_INITIALIZER -1 /*THIS_NEEDS_HELP*/
|
||||||
#define MUTEX_INITIALIZER -1 /*THIS_NEEDS_HELP*/
|
#define RWLOCK_INITIALIZER -1 /*THIS_NEEDS_HELP*/
|
||||||
#define RWLOCK_INITIALIZER -1 /*THIS_NEEDS_HELP*/
|
#define mutex_init(m, a) InitializeCriticalSection(m)
|
||||||
#define mutex_init(m, a) InitializeCriticalSection(m)
|
#define mutex_lock(m) EnterCriticalSection(m)
|
||||||
#define mutex_lock(m) EnterCriticalSection(m)
|
#define mutex_unlock(m) LeaveCriticalSection(m)
|
||||||
#define mutex_unlock(m) LeaveCriticalSection(m)
|
#define mutex_trylock(m) TryEnterCriticalSection(m)
|
||||||
#define mutex_trylock(m) TryEnterCriticalSection(m)
|
|
||||||
|
#define cond_init(c, a, p) InitializeConditionVariable(c)
|
||||||
#define cond_init(c, a, p) InitializeConditionVariable(c)
|
#define cond_signal(m) WakeConditionVariable(m)
|
||||||
#define cond_signal(m) WakeConditionVariable(m)
|
#define cond_broadcast(m) WakeAllConditionVariable(m)
|
||||||
#define cond_broadcast(m) WakeAllConditionVariable(m)
|
#define cond_wait(c, m) SleepConditionVariableCS(c, m, INFINITE)
|
||||||
#define cond_wait(c, m) SleepConditionVariableCS(c, m, INFINITE)
|
#define cond_wait_timed(c, m, t) SleepConditionVariableCS(c, m, t)
|
||||||
#define cond_wait_timed(c, m, t) SleepConditionVariableCS(c, m, t)
|
|
||||||
|
#define rwlock_init(l, a) InitializeSRWLock(l)
|
||||||
#define rwlock_init(l, a) InitializeSRWLock(l)
|
#define rwlock_rdlock(l) AcquireSRWLockShared(l)
|
||||||
#define rwlock_rdlock(l) AcquireSRWLockShared(l)
|
#define rwlock_wrlock(l) AcquireSRWLockExclusive(l)
|
||||||
#define rwlock_wrlock(l) AcquireSRWLockExclusive(l)
|
/* XXX Code will have to be changed to release the right kind!!! XXX */
|
||||||
/* XXX Code will have to be changed to release the right kind!!! XXX */
|
#define rwlock_unlock(l) ReleaseSRWLockExclusive(l)
|
||||||
#define rwlock_unlock(l) ReleaseSRWLockExclusive(l)
|
|
||||||
|
#define thr_keycreate(k, d) ((*k) = TlsAlloc())
|
||||||
#define thr_keycreate(k, d) ((*k) = TlsAlloc())
|
#define thr_keydelete(k) TlsFree(k)
|
||||||
#define thr_keydelete(k) TlsFree(k)
|
#define thr_setspecific(k, p) TlsSetValue(k, p)
|
||||||
#define thr_setspecific(k, p) TlsSetValue(k, p)
|
#define thr_getspecific(k) TlsGetValue(k)
|
||||||
#define thr_getspecific(k) TlsGetValue(k)
|
#define thr_sigsetmask(f, n, o) dunno_sigmask(f, n, o)
|
||||||
#define thr_sigsetmask(f, n, o) dunno_sigmask(f, n, o)
|
|
||||||
|
#define thr_self() GetCurrentThreadId()
|
||||||
#define thr_self() GetCurrentThreadId()
|
#define thr_exit(x) ExitThread(x)
|
||||||
#define thr_exit(x) ExitThread(x)
|
|
||||||
|
/*
|
||||||
/*
|
#define mutex_t pthread_mutex_t
|
||||||
#define mutex_t pthread_mutex_t
|
#define cond_t pthread_cond_t
|
||||||
#define cond_t pthread_cond_t
|
#define rwlock_t pthread_rwlock_t
|
||||||
#define rwlock_t pthread_rwlock_t
|
|
||||||
|
#define thread_key_t pthread_key_t
|
||||||
#define thread_key_t pthread_key_t
|
#define MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
|
||||||
#define MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
|
#define RWLOCK_INITIALIZER PTHREAD_RWLOCK_INITIALIZER
|
||||||
#define RWLOCK_INITIALIZER PTHREAD_RWLOCK_INITIALIZER
|
#define mutex_init(m, a) pthread_mutex_init(m, a)
|
||||||
#define mutex_init(m, a) pthread_mutex_init(m, a)
|
#define mutex_lock(m) pthread_mutex_lock(m)
|
||||||
#define mutex_lock(m) pthread_mutex_lock(m)
|
#define mutex_unlock(m) pthread_mutex_unlock(m)
|
||||||
#define mutex_unlock(m) pthread_mutex_unlock(m)
|
#define mutex_trylock(m) pthread_mutex_trylock(m)
|
||||||
#define mutex_trylock(m) pthread_mutex_trylock(m)
|
|
||||||
|
#define cond_init(c, a, p) pthread_cond_init(c, a)
|
||||||
#define cond_init(c, a, p) pthread_cond_init(c, a)
|
#define cond_signal(m) pthread_cond_signal(m)
|
||||||
#define cond_signal(m) pthread_cond_signal(m)
|
#define cond_broadcast(m) pthread_cond_broadcast(m)
|
||||||
#define cond_broadcast(m) pthread_cond_broadcast(m)
|
#define cond_wait(c, m) pthread_cond_wait(c, m)
|
||||||
#define cond_wait(c, m) pthread_cond_wait(c, m)
|
|
||||||
|
#define rwlock_init(l, a) pthread_rwlock_init(l, a)
|
||||||
#define rwlock_init(l, a) pthread_rwlock_init(l, a)
|
#define rwlock_rdlock(l) pthread_rwlock_rdlock(l)
|
||||||
#define rwlock_rdlock(l) pthread_rwlock_rdlock(l)
|
#define rwlock_wrlock(l) pthread_rwlock_wrlock(l)
|
||||||
#define rwlock_wrlock(l) pthread_rwlock_wrlock(l)
|
#define rwlock_unlock(l) pthread_rwlock_unlock(l)
|
||||||
#define rwlock_unlock(l) pthread_rwlock_unlock(l)
|
|
||||||
|
#define thr_keycreate(k, d) pthread_key_create(k, d)
|
||||||
#define thr_keycreate(k, d) pthread_key_create(k, d)
|
#define thr_keydelete(k) pthread_key_delete(k)
|
||||||
#define thr_keydelete(k) pthread_key_delete(k)
|
#define thr_setspecific(k, p) pthread_setspecific(k, p)
|
||||||
#define thr_setspecific(k, p) pthread_setspecific(k, p)
|
#define thr_getspecific(k) pthread_getspecific(k)
|
||||||
#define thr_getspecific(k) pthread_getspecific(k)
|
#define thr_sigsetmask(f, n, o) pthread_sigmask(f, n, o)
|
||||||
#define thr_sigsetmask(f, n, o) pthread_sigmask(f, n, o)
|
|
||||||
|
#define thr_self() pthread_self()
|
||||||
#define thr_self() pthread_self()
|
#define thr_exit(x) pthread_exit(x)
|
||||||
#define thr_exit(x) pthread_exit(x)
|
*/
|
||||||
*/
|
#endif /* reentrant.h */
|
||||||
#endif /* reentrant.h */
|
|
||||||
|
|
|
||||||
|
|
@ -1,416 +1,411 @@
|
||||||
/* $NetBSD: auth.h,v 1.15 2000/06/02 22:57:55 fvdl Exp $ */
|
/* $NetBSD: auth.h,v 1.15 2000/06/02 22:57:55 fvdl Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, Sun Microsystems, Inc.
|
* Copyright (c) 2009, Sun Microsystems, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
* - Redistributions of source code must retain the above copyright notice,
|
* - Redistributions of source code must retain the above copyright notice,
|
||||||
* this list of conditions and the following disclaimer.
|
* this list of conditions and the following disclaimer.
|
||||||
* - Redistributions in binary form must reproduce the above copyright notice,
|
* - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
* and/or other materials provided with the distribution.
|
* and/or other materials provided with the distribution.
|
||||||
* - Neither the name of Sun Microsystems, Inc. nor the names of its
|
* - Neither the name of Sun Microsystems, Inc. nor the names of its
|
||||||
* contributors may be used to endorse or promote products derived
|
* contributors may be used to endorse or promote products derived
|
||||||
* from this software without specific prior written permission.
|
* from this software without specific prior written permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* from: @(#)auth.h 1.17 88/02/08 SMI
|
* from: @(#)auth.h 1.17 88/02/08 SMI
|
||||||
* from: @(#)auth.h 2.3 88/08/07 4.0 RPCSRC
|
* from: @(#)auth.h 2.3 88/08/07 4.0 RPCSRC
|
||||||
* from: @(#)auth.h 1.43 98/02/02 SMI
|
* from: @(#)auth.h 1.43 98/02/02 SMI
|
||||||
* $FreeBSD: src/include/rpc/auth.h,v 1.20 2003/01/01 18:48:42 schweikh Exp $
|
* $FreeBSD: src/include/rpc/auth.h,v 1.20 2003/01/01 18:48:42 schweikh Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* auth.h, Authentication interface.
|
* auth.h, Authentication interface.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1984, Sun Microsystems, Inc.
|
* Copyright (C) 1984, Sun Microsystems, Inc.
|
||||||
*
|
*
|
||||||
* The data structures are completely opaque to the client. The client
|
* The data structures are completely opaque to the client. The client
|
||||||
* is required to pass an AUTH * to routines that create rpc
|
* is required to pass an AUTH * to routines that create rpc
|
||||||
* "sessions".
|
* "sessions".
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
|
||||||
*
|
*
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
* Kevin Coffman <kwc@umich.edu>
|
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
*/
|
||||||
*/
|
|
||||||
#ifndef _TIRPC_AUTH_H
|
#ifndef _TIRPC_AUTH_H
|
||||||
#define _TIRPC_AUTH_H
|
#define _TIRPC_AUTH_H
|
||||||
|
|
||||||
#include <rpc/xdr.h>
|
#include <rpc/xdr.h>
|
||||||
#include <rpc/clnt_stat.h>
|
#include <rpc/clnt_stat.h>
|
||||||
//#include <sys/cdefs.h>
|
//#include <sys/cdefs.h>
|
||||||
//#include <sys/socket.h>
|
//#include <sys/socket.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
|
||||||
#define MAX_AUTH_BYTES 400
|
#define MAX_AUTH_BYTES 400
|
||||||
#define MAXNETNAMELEN 255 /* maximum length of network user's name */
|
#define MAXNETNAMELEN 255 /* maximum length of network user's name */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Client side authentication/security data
|
* Client side authentication/security data
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef struct sec_data {
|
typedef struct sec_data {
|
||||||
u_int secmod; /* security mode number e.g. in nfssec.conf */
|
u_int secmod; /* security mode number e.g. in nfssec.conf */
|
||||||
u_int rpcflavor; /* rpc flavors:AUTH_UNIX,AUTH_DES,RPCSEC_GSS */
|
u_int rpcflavor; /* rpc flavors:AUTH_UNIX,AUTH_DES,RPCSEC_GSS */
|
||||||
int flags; /* AUTH_F_xxx flags */
|
int flags; /* AUTH_F_xxx flags */
|
||||||
caddr_t data; /* opaque data per flavor */
|
caddr_t data; /* opaque data per flavor */
|
||||||
} sec_data_t;
|
} sec_data_t;
|
||||||
|
|
||||||
#ifdef _SYSCALL32_IMPL
|
#ifdef _SYSCALL32_IMPL
|
||||||
struct sec_data32 {
|
struct sec_data32 {
|
||||||
uint32_t secmod; /* security mode number e.g. in nfssec.conf */
|
uint32_t secmod; /* security mode number e.g. in nfssec.conf */
|
||||||
uint32_t rpcflavor; /* rpc flavors:AUTH_UNIX,AUTH_DES,RPCSEC_GSS */
|
uint32_t rpcflavor; /* rpc flavors:AUTH_UNIX,AUTH_DES,RPCSEC_GSS */
|
||||||
int32_t flags; /* AUTH_F_xxx flags */
|
int32_t flags; /* AUTH_F_xxx flags */
|
||||||
caddr32_t data; /* opaque data per flavor */
|
caddr32_t data; /* opaque data per flavor */
|
||||||
};
|
};
|
||||||
#endif /* _SYSCALL32_IMPL */
|
#endif /* _SYSCALL32_IMPL */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* AUTH_DES flavor specific data from sec_data opaque data field.
|
* AUTH_DES flavor specific data from sec_data opaque data field.
|
||||||
* AUTH_KERB has the same structure.
|
* AUTH_KERB has the same structure.
|
||||||
*/
|
*/
|
||||||
typedef struct des_clnt_data {
|
typedef struct des_clnt_data {
|
||||||
struct netbuf syncaddr; /* time sync addr */
|
struct netbuf syncaddr; /* time sync addr */
|
||||||
struct knetconfig *knconf; /* knetconfig info that associated */
|
struct knetconfig *knconf; /* knetconfig info that associated */
|
||||||
/* with the syncaddr. */
|
/* with the syncaddr. */
|
||||||
char *netname; /* server's netname */
|
char *netname; /* server's netname */
|
||||||
int netnamelen; /* server's netname len */
|
int netnamelen; /* server's netname len */
|
||||||
} dh_k4_clntdata_t;
|
} dh_k4_clntdata_t;
|
||||||
|
|
||||||
#ifdef _SYSCALL32_IMPL
|
#ifdef _SYSCALL32_IMPL
|
||||||
struct des_clnt_data32 {
|
struct des_clnt_data32 {
|
||||||
struct netbuf32 syncaddr; /* time sync addr */
|
struct netbuf32 syncaddr; /* time sync addr */
|
||||||
caddr32_t knconf; /* knetconfig info that associated */
|
caddr32_t knconf; /* knetconfig info that associated */
|
||||||
/* with the syncaddr. */
|
/* with the syncaddr. */
|
||||||
caddr32_t netname; /* server's netname */
|
caddr32_t netname; /* server's netname */
|
||||||
int32_t netnamelen; /* server's netname len */
|
int32_t netnamelen; /* server's netname len */
|
||||||
};
|
};
|
||||||
#endif /* _SYSCALL32_IMPL */
|
#endif /* _SYSCALL32_IMPL */
|
||||||
|
|
||||||
#ifdef KERBEROS
|
#ifdef KERBEROS
|
||||||
/*
|
/*
|
||||||
* flavor specific data to hold the data for AUTH_DES/AUTH_KERB(v4)
|
* flavor specific data to hold the data for AUTH_DES/AUTH_KERB(v4)
|
||||||
* in sec_data->data opaque field.
|
* in sec_data->data opaque field.
|
||||||
*/
|
*/
|
||||||
typedef struct krb4_svc_data {
|
typedef struct krb4_svc_data {
|
||||||
int window; /* window option value */
|
int window; /* window option value */
|
||||||
} krb4_svcdata_t;
|
} krb4_svcdata_t;
|
||||||
|
|
||||||
typedef struct krb4_svc_data des_svcdata_t;
|
typedef struct krb4_svc_data des_svcdata_t;
|
||||||
#endif /* KERBEROS */
|
#endif /* KERBEROS */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* authentication/security specific flags
|
* authentication/security specific flags
|
||||||
*/
|
*/
|
||||||
#define AUTH_F_RPCTIMESYNC 0x001 /* use RPC to do time sync */
|
#define AUTH_F_RPCTIMESYNC 0x001 /* use RPC to do time sync */
|
||||||
#define AUTH_F_TRYNONE 0x002 /* allow fall back to AUTH_NONE */
|
#define AUTH_F_TRYNONE 0x002 /* allow fall back to AUTH_NONE */
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Status returned from authentication check
|
* Status returned from authentication check
|
||||||
*/
|
*/
|
||||||
enum auth_stat {
|
enum auth_stat {
|
||||||
AUTH_OK=0,
|
AUTH_OK=0,
|
||||||
/*
|
/*
|
||||||
* failed at remote end
|
* failed at remote end
|
||||||
*/
|
*/
|
||||||
AUTH_BADCRED=1, /* bogus credentials (seal broken) */
|
AUTH_BADCRED=1, /* bogus credentials (seal broken) */
|
||||||
AUTH_REJECTEDCRED=2, /* client should begin new session */
|
AUTH_REJECTEDCRED=2, /* client should begin new session */
|
||||||
AUTH_BADVERF=3, /* bogus verifier (seal broken) */
|
AUTH_BADVERF=3, /* bogus verifier (seal broken) */
|
||||||
AUTH_REJECTEDVERF=4, /* verifier expired or was replayed */
|
AUTH_REJECTEDVERF=4, /* verifier expired or was replayed */
|
||||||
AUTH_TOOWEAK=5, /* rejected due to security reasons */
|
AUTH_TOOWEAK=5, /* rejected due to security reasons */
|
||||||
/*
|
/*
|
||||||
* failed locally
|
* failed locally
|
||||||
*/
|
*/
|
||||||
AUTH_INVALIDRESP=6, /* bogus response verifier */
|
AUTH_INVALIDRESP=6, /* bogus response verifier */
|
||||||
AUTH_FAILED=7, /* some unknown reason */
|
AUTH_FAILED=7, /* some unknown reason */
|
||||||
#ifdef KERBEROS
|
#ifdef KERBEROS
|
||||||
/*
|
/*
|
||||||
* kerberos errors
|
* kerberos errors
|
||||||
*/
|
*/
|
||||||
AUTH_KERB_GENERIC = 8, /* kerberos generic error */
|
AUTH_KERB_GENERIC = 8, /* kerberos generic error */
|
||||||
AUTH_TIMEEXPIRE = 9, /* time of credential expired */
|
AUTH_TIMEEXPIRE = 9, /* time of credential expired */
|
||||||
AUTH_TKT_FILE = 10, /* something wrong with ticket file */
|
AUTH_TKT_FILE = 10, /* something wrong with ticket file */
|
||||||
AUTH_DECODE = 11, /* can't decode authenticator */
|
AUTH_DECODE = 11, /* can't decode authenticator */
|
||||||
AUTH_NET_ADDR = 12, /* wrong net address in ticket */
|
AUTH_NET_ADDR = 12, /* wrong net address in ticket */
|
||||||
#endif /* KERBEROS */
|
#endif /* KERBEROS */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* RPCSEC_GSS errors
|
* RPCSEC_GSS errors
|
||||||
*/
|
*/
|
||||||
RPCSEC_GSS_CREDPROBLEM = 13,
|
RPCSEC_GSS_CREDPROBLEM = 13,
|
||||||
RPCSEC_GSS_CTXPROBLEM = 14
|
RPCSEC_GSS_CTXPROBLEM = 14
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef u_int32_t u_int32; /* 32-bit unsigned integers */
|
typedef u_int32_t u_int32; /* 32-bit unsigned integers */
|
||||||
|
|
||||||
union des_block {
|
union des_block {
|
||||||
struct {
|
struct {
|
||||||
u_int32_t high;
|
u_int32_t high;
|
||||||
u_int32_t low;
|
u_int32_t low;
|
||||||
} key;
|
} key;
|
||||||
char c[8];
|
char c[8];
|
||||||
};
|
};
|
||||||
typedef union des_block des_block;
|
typedef union des_block des_block;
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
extern bool_t xdr_des_block(XDR *, des_block *);
|
extern bool_t xdr_des_block(XDR *, des_block *);
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Authentication info. Opaque to client.
|
* Authentication info. Opaque to client.
|
||||||
*/
|
*/
|
||||||
struct opaque_auth {
|
struct opaque_auth {
|
||||||
enum_t oa_flavor; /* flavor of auth */
|
enum_t oa_flavor; /* flavor of auth */
|
||||||
caddr_t oa_base; /* address of more auth stuff */
|
caddr_t oa_base; /* address of more auth stuff */
|
||||||
u_int oa_length; /* not to exceed MAX_AUTH_BYTES */
|
u_int oa_length; /* not to exceed MAX_AUTH_BYTES */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Auth handle, interface to client side authenticators.
|
* Auth handle, interface to client side authenticators.
|
||||||
*/
|
*/
|
||||||
typedef struct __auth {
|
typedef struct __auth {
|
||||||
struct opaque_auth ah_cred;
|
struct opaque_auth ah_cred;
|
||||||
struct opaque_auth ah_verf;
|
struct opaque_auth ah_verf;
|
||||||
union des_block ah_key;
|
union des_block ah_key;
|
||||||
struct auth_ops {
|
struct auth_ops {
|
||||||
void (*ah_nextverf) (struct __auth *);
|
void (*ah_nextverf) (struct __auth *);
|
||||||
/* nextverf & serialize */
|
/* nextverf & serialize */
|
||||||
int (*ah_marshal) (struct __auth *, XDR *, u_int *);
|
int (*ah_marshal) (struct __auth *, XDR *, u_int *);
|
||||||
/* validate verifier */
|
/* validate verifier */
|
||||||
int (*ah_validate) (struct __auth *, struct opaque_auth *, u_int);
|
int (*ah_validate) (struct __auth *, struct opaque_auth *, u_int);
|
||||||
/* refresh credentials */
|
/* refresh credentials */
|
||||||
int (*ah_refresh) (struct __auth *, void *);
|
int (*ah_refresh) (struct __auth *, void *);
|
||||||
/* destroy this structure */
|
/* destroy this structure */
|
||||||
void (*ah_destroy) (struct __auth *);
|
void (*ah_destroy) (struct __auth *);
|
||||||
/* encode data for wire */
|
/* encode data for wire */
|
||||||
int (*ah_wrap) (struct __auth *, XDR *, xdrproc_t, caddr_t);
|
int (*ah_wrap) (struct __auth *, XDR *, xdrproc_t, caddr_t);
|
||||||
/* decode data for wire */
|
/* decode data for wire */
|
||||||
int (*ah_unwrap) (struct __auth *, XDR *, xdrproc_t, caddr_t, u_int);
|
int (*ah_unwrap) (struct __auth *, XDR *, xdrproc_t, caddr_t, u_int);
|
||||||
|
|
||||||
} *ah_ops;
|
} *ah_ops;
|
||||||
void *ah_private;
|
void *ah_private;
|
||||||
} AUTH;
|
} AUTH;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Authentication ops.
|
* Authentication ops.
|
||||||
* The ops and the auth handle provide the interface to the authenticators.
|
* The ops and the auth handle provide the interface to the authenticators.
|
||||||
*
|
*
|
||||||
* AUTH *auth;
|
* AUTH *auth;
|
||||||
* XDR *xdrs;
|
* XDR *xdrs;
|
||||||
* struct opaque_auth verf;
|
* struct opaque_auth verf;
|
||||||
*/
|
*/
|
||||||
#define AUTH_NEXTVERF(auth) \
|
#define AUTH_NEXTVERF(auth) \
|
||||||
((*((auth)->ah_ops->ah_nextverf))(auth))
|
((*((auth)->ah_ops->ah_nextverf))(auth))
|
||||||
#define auth_nextverf(auth) \
|
#define auth_nextverf(auth) \
|
||||||
((*((auth)->ah_ops->ah_nextverf))(auth))
|
((*((auth)->ah_ops->ah_nextverf))(auth))
|
||||||
|
|
||||||
#define AUTH_MARSHALL(auth, xdrs, seq) \
|
#define AUTH_MARSHALL(auth, xdrs, seq) \
|
||||||
((*((auth)->ah_ops->ah_marshal))(auth, xdrs, seq))
|
((*((auth)->ah_ops->ah_marshal))(auth, xdrs, seq))
|
||||||
#define auth_marshall(auth, xdrs, seq) \
|
#define auth_marshall(auth, xdrs, seq) \
|
||||||
((*((auth)->ah_ops->ah_marshal))(auth, xdrs))
|
((*((auth)->ah_ops->ah_marshal))(auth, xdrs))
|
||||||
|
|
||||||
#define AUTH_VALIDATE(auth, verfp, seq) \
|
#define AUTH_VALIDATE(auth, verfp, seq) \
|
||||||
((*((auth)->ah_ops->ah_validate))((auth), verfp, seq))
|
((*((auth)->ah_ops->ah_validate))((auth), verfp, seq))
|
||||||
#define auth_validate(auth, verfp, seq) \
|
#define auth_validate(auth, verfp, seq) \
|
||||||
((*((auth)->ah_ops->ah_validate))((auth), verfp, seq))
|
((*((auth)->ah_ops->ah_validate))((auth), verfp, seq))
|
||||||
|
|
||||||
#define AUTH_REFRESH(auth, msg) \
|
#define AUTH_REFRESH(auth, msg) \
|
||||||
((*((auth)->ah_ops->ah_refresh))(auth, msg))
|
((*((auth)->ah_ops->ah_refresh))(auth, msg))
|
||||||
#define auth_refresh(auth, msg) \
|
#define auth_refresh(auth, msg) \
|
||||||
((*((auth)->ah_ops->ah_refresh))(auth, msg))
|
((*((auth)->ah_ops->ah_refresh))(auth, msg))
|
||||||
|
|
||||||
#define AUTH_DESTROY(auth) \
|
#define AUTH_DESTROY(auth) \
|
||||||
((*((auth)->ah_ops->ah_destroy))(auth))
|
((*((auth)->ah_ops->ah_destroy))(auth))
|
||||||
#define auth_destroy(auth) \
|
#define auth_destroy(auth) \
|
||||||
((*((auth)->ah_ops->ah_destroy))(auth))
|
((*((auth)->ah_ops->ah_destroy))(auth))
|
||||||
|
|
||||||
#define AUTH_WRAP(auth, xdrs, xfunc, xwhere) \
|
#define AUTH_WRAP(auth, xdrs, xfunc, xwhere) \
|
||||||
((*((auth)->ah_ops->ah_wrap))(auth, xdrs, \
|
((*((auth)->ah_ops->ah_wrap))(auth, xdrs, \
|
||||||
xfunc, xwhere))
|
xfunc, xwhere))
|
||||||
#define auth_wrap(auth, xdrs, xfunc, xwhere) \
|
#define auth_wrap(auth, xdrs, xfunc, xwhere) \
|
||||||
((*((auth)->ah_ops->ah_wrap))(auth, xdrs, \
|
((*((auth)->ah_ops->ah_wrap))(auth, xdrs, \
|
||||||
xfunc, xwhere))
|
xfunc, xwhere))
|
||||||
|
|
||||||
#define AUTH_UNWRAP(auth, xdrs, xfunc, xwhere, seq) \
|
#define AUTH_UNWRAP(auth, xdrs, xfunc, xwhere, seq) \
|
||||||
((*((auth)->ah_ops->ah_unwrap))(auth, xdrs, \
|
((*((auth)->ah_ops->ah_unwrap))(auth, xdrs, \
|
||||||
xfunc, xwhere, seq))
|
xfunc, xwhere, seq))
|
||||||
#define auth_unwrap(auth, xdrs, xfunc, xwhere, seq) \
|
#define auth_unwrap(auth, xdrs, xfunc, xwhere, seq) \
|
||||||
((*((auth)->ah_ops->ah_unwrap))(auth, xdrs, \
|
((*((auth)->ah_ops->ah_unwrap))(auth, xdrs, \
|
||||||
xfunc, xwhere, seq))
|
xfunc, xwhere, seq))
|
||||||
|
|
||||||
|
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
extern struct opaque_auth _null_auth;
|
extern struct opaque_auth _null_auth;
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Any style authentication. These routines can be used by any
|
* Any style authentication. These routines can be used by any
|
||||||
* authentication style that does not use the wrap/unwrap functions.
|
* authentication style that does not use the wrap/unwrap functions.
|
||||||
*/
|
*/
|
||||||
int authany_wrap(void), authany_unwrap(void);
|
int authany_wrap(void), authany_unwrap(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* These are the various implementations of client side authenticators.
|
* These are the various implementations of client side authenticators.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* System style authentication
|
* System style authentication
|
||||||
* AUTH *authunix_create(machname, uid, gid, len, aup_gids)
|
* AUTH *authunix_create(machname, uid, gid, len, aup_gids)
|
||||||
* char *machname;
|
* char *machname;
|
||||||
* int uid;
|
* int uid;
|
||||||
* int gid;
|
* int gid;
|
||||||
* int len;
|
* int len;
|
||||||
* int *aup_gids;
|
* int *aup_gids;
|
||||||
*/
|
*/
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
extern AUTH *authunix_create(char *, uid_t, uid_t, int, uid_t *);
|
extern AUTH *authunix_create(char *, uid_t, uid_t, int, uid_t *);
|
||||||
extern AUTH *authunix_create_default(void); /* takes no parameters */
|
extern AUTH *authunix_create_default(void); /* takes no parameters */
|
||||||
extern AUTH *authnone_create(void); /* takes no parameters */
|
extern AUTH *authnone_create(void); /* takes no parameters */
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
/*
|
/*
|
||||||
* DES style authentication
|
* DES style authentication
|
||||||
* AUTH *authsecdes_create(servername, window, timehost, ckey)
|
* AUTH *authsecdes_create(servername, window, timehost, ckey)
|
||||||
* char *servername; - network name of server
|
* char *servername; - network name of server
|
||||||
* u_int window; - time to live
|
* u_int window; - time to live
|
||||||
* const char *timehost; - optional hostname to sync with
|
* const char *timehost; - optional hostname to sync with
|
||||||
* des_block *ckey; - optional conversation key to use
|
* des_block *ckey; - optional conversation key to use
|
||||||
*/
|
*/
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
extern AUTH *authdes_create (char *, u_int, struct sockaddr *, des_block *);
|
extern AUTH *authdes_create (char *, u_int, struct sockaddr *, des_block *);
|
||||||
extern AUTH *authdes_seccreate (const char *, const u_int, const char *,
|
extern AUTH *authdes_seccreate (const char *, const u_int, const char *,
|
||||||
const des_block *);
|
const des_block *);
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
extern bool_t xdr_opaque_auth (XDR *, struct opaque_auth *);
|
extern bool_t xdr_opaque_auth (XDR *, struct opaque_auth *);
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
#define authsys_create(c,i1,i2,i3,ip) authunix_create((c),(i1),(i2),(i3),(ip))
|
#define authsys_create(c,i1,i2,i3,ip) authunix_create((c),(i1),(i2),(i3),(ip))
|
||||||
#define authsys_create_default() authunix_create_default()
|
#define authsys_create_default() authunix_create_default()
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Netname manipulation routines.
|
* Netname manipulation routines.
|
||||||
*/
|
*/
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
extern int getnetname(char *);
|
extern int getnetname(char *);
|
||||||
extern int host2netname(char *, const char *, const char *);
|
extern int host2netname(char *, const char *, const char *);
|
||||||
extern int user2netname(char *, const uid_t, const char *);
|
extern int user2netname(char *, const uid_t, const char *);
|
||||||
extern int netname2user(char *, uid_t *, gid_t *, int *, gid_t *);
|
extern int netname2user(char *, uid_t *, gid_t *, int *, gid_t *);
|
||||||
extern int netname2host(char *, char *, const int);
|
extern int netname2host(char *, char *, const int);
|
||||||
extern void passwd2des ( char *, char * );
|
extern void passwd2des ( char *, char * );
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* These routines interface to the keyserv daemon
|
* These routines interface to the keyserv daemon
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
extern int key_decryptsession(const char *, des_block *);
|
extern int key_decryptsession(const char *, des_block *);
|
||||||
extern int key_encryptsession(const char *, des_block *);
|
extern int key_encryptsession(const char *, des_block *);
|
||||||
extern int key_gendes(des_block *);
|
extern int key_gendes(des_block *);
|
||||||
extern int key_setsecret(const char *);
|
extern int key_setsecret(const char *);
|
||||||
extern int key_secretkey_is_set(void);
|
extern int key_secretkey_is_set(void);
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Publickey routines.
|
* Publickey routines.
|
||||||
*/
|
*/
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
extern int getpublickey (const char *, char *);
|
extern int getpublickey (const char *, char *);
|
||||||
extern int getpublicandprivatekey (char *, char *);
|
extern int getpublicandprivatekey (char *, char *);
|
||||||
extern int getsecretkey (char *, char *, char *);
|
extern int getsecretkey (char *, char *, char *);
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
#ifdef KERBEROS
|
#ifdef KERBEROS
|
||||||
/*
|
/*
|
||||||
* Kerberos style authentication
|
* Kerberos style authentication
|
||||||
* AUTH *authkerb_seccreate(service, srv_inst, realm, window, timehost, status)
|
* AUTH *authkerb_seccreate(service, srv_inst, realm, window, timehost, status)
|
||||||
* const char *service; - service name
|
* const char *service; - service name
|
||||||
* const char *srv_inst; - server instance
|
* const char *srv_inst; - server instance
|
||||||
* const char *realm; - server realm
|
* const char *realm; - server realm
|
||||||
* const u_int window; - time to live
|
* const u_int window; - time to live
|
||||||
* const char *timehost; - optional hostname to sync with
|
* const char *timehost; - optional hostname to sync with
|
||||||
* int *status; - kerberos status returned
|
* int *status; - kerberos status returned
|
||||||
*/
|
*/
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
extern AUTH *authkerb_seccreate(const char *, const char *, const char *,
|
extern AUTH *authkerb_seccreate(const char *, const char *, const char *,
|
||||||
const u_int, const char *, int *);
|
const u_int, const char *, int *);
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Map a kerberos credential into a unix cred.
|
* Map a kerberos credential into a unix cred.
|
||||||
*
|
*
|
||||||
* authkerb_getucred(rqst, uid, gid, grouplen, groups)
|
* authkerb_getucred(rqst, uid, gid, grouplen, groups)
|
||||||
* const struct svc_req *rqst; - request pointer
|
* const struct svc_req *rqst; - request pointer
|
||||||
* uid_t *uid;
|
* uid_t *uid;
|
||||||
* gid_t *gid;
|
* gid_t *gid;
|
||||||
* short *grouplen;
|
* short *grouplen;
|
||||||
* int *groups;
|
* int *groups;
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
extern int authkerb_getucred(/* struct svc_req *, uid_t *, gid_t *,
|
extern int authkerb_getucred(/* struct svc_req *, uid_t *, gid_t *,
|
||||||
short *, int * */);
|
short *, int * */);
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
#endif /* KERBEROS */
|
#endif /* KERBEROS */
|
||||||
|
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
struct svc_req;
|
struct svc_req;
|
||||||
struct rpc_msg;
|
struct rpc_msg;
|
||||||
enum auth_stat _svcauth_null (struct svc_req *, struct rpc_msg *);
|
enum auth_stat _svcauth_null (struct svc_req *, struct rpc_msg *);
|
||||||
enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *);
|
enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *);
|
||||||
enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *);
|
enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *);
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
#define AUTH_NONE 0 /* no authentication */
|
#define AUTH_NONE 0 /* no authentication */
|
||||||
#define AUTH_NULL 0 /* backward compatibility */
|
#define AUTH_NULL 0 /* backward compatibility */
|
||||||
#define AUTH_SYS 1 /* unix style (uid, gids) */
|
#define AUTH_SYS 1 /* unix style (uid, gids) */
|
||||||
#define AUTH_UNIX AUTH_SYS
|
#define AUTH_UNIX AUTH_SYS
|
||||||
#define AUTH_SHORT 2 /* short hand unix style */
|
#define AUTH_SHORT 2 /* short hand unix style */
|
||||||
#define AUTH_DH 3 /* for Diffie-Hellman mechanism */
|
#define AUTH_DH 3 /* for Diffie-Hellman mechanism */
|
||||||
#define AUTH_DES AUTH_DH /* for backward compatibility */
|
#define AUTH_DES AUTH_DH /* for backward compatibility */
|
||||||
#define AUTH_KERB 4 /* kerberos style */
|
#define AUTH_KERB 4 /* kerberos style */
|
||||||
#define RPCSEC_GSS 6 /* RPCSEC_GSS */
|
#define RPCSEC_GSS 6 /* RPCSEC_GSS */
|
||||||
|
|
||||||
#endif /* !_TIRPC_AUTH_H */
|
#endif /* !_TIRPC_AUTH_H */
|
||||||
|
|
|
||||||
|
|
@ -1,156 +1,152 @@
|
||||||
/*
|
/*
|
||||||
auth_gss.h
|
auth_gss.h
|
||||||
|
|
||||||
Copyright (c) 2000 The Regents of the University of Michigan.
|
Copyright (c) 2000 The Regents of the University of Michigan.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Copyright (c) 2000 Dug Song <dugsong@UMICH.EDU>.
|
Copyright (c) 2000 Dug Song <dugsong@UMICH.EDU>.
|
||||||
All rights reserved, all wrongs reversed.
|
All rights reserved, all wrongs reversed.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
are met:
|
are met:
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright
|
1. Redistributions of source code must retain the above copyright
|
||||||
notice, this list of conditions and the following disclaimer.
|
notice, this list of conditions and the following disclaimer.
|
||||||
2. Redistributions in binary form must reproduce the above copyright
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
notice, this list of conditions and the following disclaimer in the
|
notice, this list of conditions and the following disclaimer in the
|
||||||
documentation and/or other materials provided with the distribution.
|
documentation and/or other materials provided with the distribution.
|
||||||
3. Neither the name of the University nor the names of its
|
3. Neither the name of the University nor the names of its
|
||||||
contributors may be used to endorse or promote products derived
|
contributors may be used to endorse or promote products derived
|
||||||
from this software without specific prior written permission.
|
from this software without specific prior written permission.
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
/* Copyright (c) 2010, 2011
|
|
||||||
* The Regents of the University of Michigan
|
/* NFSv4.1 client for Windows
|
||||||
* All Rights Reserved
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
*
|
*
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
* Kevin Coffman <kwc@umich.edu>
|
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
*/
|
||||||
*/
|
|
||||||
#ifndef _TIRPC_AUTH_GSS_H
|
#ifndef _TIRPC_AUTH_GSS_H
|
||||||
#define _TIRPC_AUTH_GSS_H
|
#define _TIRPC_AUTH_GSS_H
|
||||||
|
|
||||||
#include <rpc/clnt.h>
|
#include <rpc/clnt.h>
|
||||||
#define SECURITY_WIN32
|
#define SECURITY_WIN32
|
||||||
#include <sspi.h>
|
#include <sspi.h>
|
||||||
|
|
||||||
/* RPCSEC_GSS control procedures. */
|
/* RPCSEC_GSS control procedures. */
|
||||||
typedef enum {
|
typedef enum {
|
||||||
RPCSEC_GSS_DATA = 0,
|
RPCSEC_GSS_DATA = 0,
|
||||||
RPCSEC_GSS_INIT = 1,
|
RPCSEC_GSS_INIT = 1,
|
||||||
RPCSEC_GSS_CONTINUE_INIT = 2,
|
RPCSEC_GSS_CONTINUE_INIT = 2,
|
||||||
RPCSEC_GSS_DESTROY = 3
|
RPCSEC_GSS_DESTROY = 3
|
||||||
} rpc_gss_proc_t;
|
} rpc_gss_proc_t;
|
||||||
|
|
||||||
/* RPCSEC_GSS services. */
|
/* RPCSEC_GSS services. */
|
||||||
typedef enum {
|
typedef enum {
|
||||||
RPCSEC_GSS_SVC_NONE = 1,
|
RPCSEC_GSS_SVC_NONE = 1,
|
||||||
RPCSEC_GSS_SVC_INTEGRITY = 2,
|
RPCSEC_GSS_SVC_INTEGRITY = 2,
|
||||||
RPCSEC_GSS_SVC_PRIVACY = 3
|
RPCSEC_GSS_SVC_PRIVACY = 3
|
||||||
} rpc_gss_svc_t;
|
} rpc_gss_svc_t;
|
||||||
|
|
||||||
#define RPCSEC_GSS_VERSION 1
|
#define RPCSEC_GSS_VERSION 1
|
||||||
|
|
||||||
/* RPCSEC_GSS security triple. */
|
/* RPCSEC_GSS security triple. */
|
||||||
struct rpc_gss_sec {
|
struct rpc_gss_sec {
|
||||||
gss_OID mech; /* mechanism */
|
gss_OID mech; /* mechanism */
|
||||||
gss_qop_t qop; /* quality of protection */
|
gss_qop_t qop; /* quality of protection */
|
||||||
rpc_gss_svc_t svc; /* service */
|
rpc_gss_svc_t svc; /* service */
|
||||||
gss_cred_id_t cred; /* cred handle */
|
gss_cred_id_t cred; /* cred handle */
|
||||||
u_int req_flags; /* req flags for init_sec_context */
|
u_int req_flags; /* req flags for init_sec_context */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Private data required for kernel implementation */
|
/* Private data required for kernel implementation */
|
||||||
struct authgss_private_data {
|
struct authgss_private_data {
|
||||||
gss_ctx_id_t pd_ctx; /* Session context handle */
|
gss_ctx_id_t pd_ctx; /* Session context handle */
|
||||||
gss_buffer_desc pd_ctx_hndl; /* Credentials context handle */
|
gss_buffer_desc pd_ctx_hndl; /* Credentials context handle */
|
||||||
u_int pd_seq_win; /* Sequence window */
|
u_int pd_seq_win; /* Sequence window */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define g_OID_equal(o1, o2) \
|
#define g_OID_equal(o1, o2) \
|
||||||
(((o1)->length == (o2)->length) && \
|
(((o1)->length == (o2)->length) && \
|
||||||
((o1)->elements != 0) && ((o2)->elements != 0) && \
|
((o1)->elements != 0) && ((o2)->elements != 0) && \
|
||||||
(memcmp((o1)->elements, (o2)->elements, (int) (o1)->length) == 0))
|
(memcmp((o1)->elements, (o2)->elements, (int) (o1)->length) == 0))
|
||||||
|
|
||||||
/* from kerberos source, gssapi_krb5.c */
|
/* from kerberos source, gssapi_krb5.c */
|
||||||
extern gss_OID_desc krb5oid;
|
extern gss_OID_desc krb5oid;
|
||||||
extern gss_OID_desc spkm3oid;
|
extern gss_OID_desc spkm3oid;
|
||||||
|
|
||||||
/* Credentials. */
|
/* Credentials. */
|
||||||
struct rpc_gss_cred {
|
struct rpc_gss_cred {
|
||||||
u_int gc_v; /* version */
|
u_int gc_v; /* version */
|
||||||
rpc_gss_proc_t gc_proc; /* control procedure */
|
rpc_gss_proc_t gc_proc; /* control procedure */
|
||||||
u_int gc_seq; /* sequence number */
|
u_int gc_seq; /* sequence number */
|
||||||
rpc_gss_svc_t gc_svc; /* service */
|
rpc_gss_svc_t gc_svc; /* service */
|
||||||
gss_buffer_desc gc_ctx; /* context handle */
|
gss_buffer_desc gc_ctx; /* context handle */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Context creation response. */
|
/* Context creation response. */
|
||||||
struct rpc_gss_init_res {
|
struct rpc_gss_init_res {
|
||||||
gss_buffer_desc gr_ctx; /* context handle */
|
gss_buffer_desc gr_ctx; /* context handle */
|
||||||
u_int gr_major; /* major status */
|
u_int gr_major; /* major status */
|
||||||
u_int gr_minor; /* minor status */
|
u_int gr_minor; /* minor status */
|
||||||
u_int gr_win; /* sequence window */
|
u_int gr_win; /* sequence window */
|
||||||
gss_buffer_desc gr_token; /* token */
|
gss_buffer_desc gr_token; /* token */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Maximum sequence number value. */
|
/* Maximum sequence number value. */
|
||||||
#define MAXSEQ 0x80000000
|
#define MAXSEQ 0x80000000
|
||||||
|
|
||||||
/* Prototypes. */
|
/* Prototypes. */
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
bool_t xdr_rpc_gss_cred __P((XDR *xdrs, struct rpc_gss_cred *p));
|
bool_t xdr_rpc_gss_cred __P((XDR *xdrs, struct rpc_gss_cred *p));
|
||||||
bool_t xdr_rpc_gss_init_args __P((XDR *xdrs, gss_buffer_desc *p));
|
bool_t xdr_rpc_gss_init_args __P((XDR *xdrs, gss_buffer_desc *p));
|
||||||
bool_t xdr_rpc_gss_init_res __P((XDR *xdrs, struct rpc_gss_init_res *p));
|
bool_t xdr_rpc_gss_init_res __P((XDR *xdrs, struct rpc_gss_init_res *p));
|
||||||
bool_t xdr_rpc_gss_data __P((XDR *xdrs, xdrproc_t xdr_func,
|
bool_t xdr_rpc_gss_data __P((XDR *xdrs, xdrproc_t xdr_func,
|
||||||
caddr_t xdr_ptr, gss_ctx_id_t ctx,
|
caddr_t xdr_ptr, gss_ctx_id_t ctx,
|
||||||
gss_qop_t qop, rpc_gss_svc_t svc,
|
gss_qop_t qop, rpc_gss_svc_t svc,
|
||||||
u_int seq));
|
u_int seq));
|
||||||
|
|
||||||
AUTH *authgss_create __P((CLIENT *, gss_name_t,
|
AUTH *authgss_create __P((CLIENT *, gss_name_t,
|
||||||
struct rpc_gss_sec *));
|
struct rpc_gss_sec *));
|
||||||
AUTH *authgss_create_default __P((CLIENT *, char *, struct rpc_gss_sec *));
|
AUTH *authgss_create_default __P((CLIENT *, char *, struct rpc_gss_sec *));
|
||||||
bool_t authgss_service __P((AUTH *auth, int svc));
|
bool_t authgss_service __P((AUTH *auth, int svc));
|
||||||
bool_t authgss_get_private_data __P((AUTH *auth,
|
bool_t authgss_get_private_data __P((AUTH *auth,
|
||||||
struct authgss_private_data *));
|
struct authgss_private_data *));
|
||||||
|
|
||||||
void log_debug __P((const char *fmt, ...));
|
void log_debug __P((const char *fmt, ...));
|
||||||
void log_status __P((char *m, OM_uint32 major,
|
void log_status __P((char *m, OM_uint32 major,
|
||||||
OM_uint32 minor));
|
OM_uint32 minor));
|
||||||
void log_hexdump __P((const u_char *buf, int len, int offset));
|
void log_hexdump __P((const u_char *buf, int len, int offset));
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
#endif /* !_TIRPC_AUTH_GSS_H */
|
#endif /* !_TIRPC_AUTH_GSS_H */
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _TIRPC_AUTH_GSS_H
|
#ifndef _TIRPC_AUTH_GSS_H
|
||||||
|
|
|
||||||
|
|
@ -39,32 +39,27 @@
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
|
||||||
*
|
*
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
* Kevin Coffman <kwc@umich.edu>
|
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _TIRPC_CLNT_H_
|
#ifndef _TIRPC_CLNT_H_
|
||||||
#define _TIRPC_CLNT_H_
|
#define _TIRPC_CLNT_H_
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,250 +1,245 @@
|
||||||
/* $NetBSD: rpc_msg.h,v 1.11 2000/06/02 22:57:56 fvdl Exp $ */
|
/* $NetBSD: rpc_msg.h,v 1.11 2000/06/02 22:57:56 fvdl Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, Sun Microsystems, Inc.
|
* Copyright (c) 2009, Sun Microsystems, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
* - Redistributions of source code must retain the above copyright notice,
|
* - Redistributions of source code must retain the above copyright notice,
|
||||||
* this list of conditions and the following disclaimer.
|
* this list of conditions and the following disclaimer.
|
||||||
* - Redistributions in binary form must reproduce the above copyright notice,
|
* - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
* and/or other materials provided with the distribution.
|
* and/or other materials provided with the distribution.
|
||||||
* - Neither the name of Sun Microsystems, Inc. nor the names of its
|
* - Neither the name of Sun Microsystems, Inc. nor the names of its
|
||||||
* contributors may be used to endorse or promote products derived
|
* contributors may be used to endorse or promote products derived
|
||||||
* from this software without specific prior written permission.
|
* from this software without specific prior written permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* from: @(#)rpc_msg.h 1.7 86/07/16 SMI
|
* from: @(#)rpc_msg.h 1.7 86/07/16 SMI
|
||||||
* from: @(#)rpc_msg.h 2.1 88/07/29 4.0 RPCSRC
|
* from: @(#)rpc_msg.h 2.1 88/07/29 4.0 RPCSRC
|
||||||
* $FreeBSD: src/include/rpc/rpc_msg.h,v 1.15 2003/01/01 18:48:42 schweikh Exp $
|
* $FreeBSD: src/include/rpc/rpc_msg.h,v 1.15 2003/01/01 18:48:42 schweikh Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* rpc_msg.h
|
* rpc_msg.h
|
||||||
* rpc message definition
|
* rpc message definition
|
||||||
*
|
*
|
||||||
* Copyright (C) 1984, Sun Microsystems, Inc.
|
* Copyright (C) 1984, Sun Microsystems, Inc.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
|
||||||
*
|
*
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
* Kevin Coffman <kwc@umich.edu>
|
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
*/
|
||||||
*/
|
|
||||||
#ifndef _TIRPC_RPC_MSG_H
|
#ifndef _TIRPC_RPC_MSG_H
|
||||||
#define _TIRPC_RPC_MSG_H
|
#define _TIRPC_RPC_MSG_H
|
||||||
|
|
||||||
#define RPC_MSG_VERSION ((u_int32_t) 2)
|
#define RPC_MSG_VERSION ((u_int32_t) 2)
|
||||||
#define RPC_SERVICE_PORT ((u_short) 2048)
|
#define RPC_SERVICE_PORT ((u_short) 2048)
|
||||||
|
|
||||||
#include <rpc/auth.h>
|
#include <rpc/auth.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Bottom up definition of an rpc message.
|
* Bottom up definition of an rpc message.
|
||||||
* NOTE: call and reply use the same overall stuct but
|
* NOTE: call and reply use the same overall stuct but
|
||||||
* different parts of unions within it.
|
* different parts of unions within it.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
enum msg_type {
|
enum msg_type {
|
||||||
CALL=0,
|
CALL=0,
|
||||||
REPLY=1
|
REPLY=1
|
||||||
};
|
};
|
||||||
|
|
||||||
enum reply_stat {
|
enum reply_stat {
|
||||||
MSG_ACCEPTED=0,
|
MSG_ACCEPTED=0,
|
||||||
MSG_DENIED=1
|
MSG_DENIED=1
|
||||||
};
|
};
|
||||||
|
|
||||||
enum accept_stat {
|
enum accept_stat {
|
||||||
SUCCESS=0,
|
SUCCESS=0,
|
||||||
PROG_UNAVAIL=1,
|
PROG_UNAVAIL=1,
|
||||||
PROG_MISMATCH=2,
|
PROG_MISMATCH=2,
|
||||||
PROC_UNAVAIL=3,
|
PROC_UNAVAIL=3,
|
||||||
GARBAGE_ARGS=4,
|
GARBAGE_ARGS=4,
|
||||||
SYSTEM_ERR=5
|
SYSTEM_ERR=5
|
||||||
};
|
};
|
||||||
|
|
||||||
enum reject_stat {
|
enum reject_stat {
|
||||||
RPC_MISMATCH=0,
|
RPC_MISMATCH=0,
|
||||||
AUTH_ERROR=1
|
AUTH_ERROR=1
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Reply part of an rpc exchange
|
* Reply part of an rpc exchange
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Reply to an rpc request that was accepted by the server.
|
* Reply to an rpc request that was accepted by the server.
|
||||||
* Note: there could be an error even though the request was
|
* Note: there could be an error even though the request was
|
||||||
* accepted.
|
* accepted.
|
||||||
*/
|
*/
|
||||||
struct accepted_reply {
|
struct accepted_reply {
|
||||||
struct opaque_auth ar_verf;
|
struct opaque_auth ar_verf;
|
||||||
enum accept_stat ar_stat;
|
enum accept_stat ar_stat;
|
||||||
union {
|
union {
|
||||||
struct {
|
struct {
|
||||||
rpcvers_t low;
|
rpcvers_t low;
|
||||||
rpcvers_t high;
|
rpcvers_t high;
|
||||||
} AR_versions;
|
} AR_versions;
|
||||||
struct {
|
struct {
|
||||||
caddr_t where;
|
caddr_t where;
|
||||||
xdrproc_t proc;
|
xdrproc_t proc;
|
||||||
} AR_results;
|
} AR_results;
|
||||||
/* and many other null cases */
|
/* and many other null cases */
|
||||||
} ru;
|
} ru;
|
||||||
#define ar_results ru.AR_results
|
#define ar_results ru.AR_results
|
||||||
#define ar_vers ru.AR_versions
|
#define ar_vers ru.AR_versions
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Reply to an rpc request that was rejected by the server.
|
* Reply to an rpc request that was rejected by the server.
|
||||||
*/
|
*/
|
||||||
struct rejected_reply {
|
struct rejected_reply {
|
||||||
enum reject_stat rj_stat;
|
enum reject_stat rj_stat;
|
||||||
union {
|
union {
|
||||||
struct {
|
struct {
|
||||||
rpcvers_t low;
|
rpcvers_t low;
|
||||||
rpcvers_t high;
|
rpcvers_t high;
|
||||||
} RJ_versions;
|
} RJ_versions;
|
||||||
enum auth_stat RJ_why; /* why authentication did not work */
|
enum auth_stat RJ_why; /* why authentication did not work */
|
||||||
} ru;
|
} ru;
|
||||||
#define rj_vers ru.RJ_versions
|
#define rj_vers ru.RJ_versions
|
||||||
#define rj_why ru.RJ_why
|
#define rj_why ru.RJ_why
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Body of a reply to an rpc request.
|
* Body of a reply to an rpc request.
|
||||||
*/
|
*/
|
||||||
struct reply_body {
|
struct reply_body {
|
||||||
enum reply_stat rp_stat;
|
enum reply_stat rp_stat;
|
||||||
union {
|
union {
|
||||||
struct accepted_reply RP_ar;
|
struct accepted_reply RP_ar;
|
||||||
struct rejected_reply RP_dr;
|
struct rejected_reply RP_dr;
|
||||||
} ru;
|
} ru;
|
||||||
#define rp_acpt ru.RP_ar
|
#define rp_acpt ru.RP_ar
|
||||||
#define rp_rjct ru.RP_dr
|
#define rp_rjct ru.RP_dr
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Body of an rpc request call.
|
* Body of an rpc request call.
|
||||||
*/
|
*/
|
||||||
struct call_body {
|
struct call_body {
|
||||||
rpcvers_t cb_rpcvers; /* must be equal to two */
|
rpcvers_t cb_rpcvers; /* must be equal to two */
|
||||||
rpcprog_t cb_prog;
|
rpcprog_t cb_prog;
|
||||||
rpcvers_t cb_vers;
|
rpcvers_t cb_vers;
|
||||||
rpcproc_t cb_proc;
|
rpcproc_t cb_proc;
|
||||||
struct opaque_auth cb_cred;
|
struct opaque_auth cb_cred;
|
||||||
struct opaque_auth cb_verf; /* protocol specific - provided by client */
|
struct opaque_auth cb_verf; /* protocol specific - provided by client */
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The rpc message
|
* The rpc message
|
||||||
*/
|
*/
|
||||||
struct rpc_msg {
|
struct rpc_msg {
|
||||||
u_int32_t rm_xid;
|
u_int32_t rm_xid;
|
||||||
enum msg_type rm_direction;
|
enum msg_type rm_direction;
|
||||||
union {
|
union {
|
||||||
struct call_body RM_cmb;
|
struct call_body RM_cmb;
|
||||||
struct reply_body RM_rmb;
|
struct reply_body RM_rmb;
|
||||||
} ru;
|
} ru;
|
||||||
#define rm_call ru.RM_cmb
|
#define rm_call ru.RM_cmb
|
||||||
#define rm_reply ru.RM_rmb
|
#define rm_reply ru.RM_rmb
|
||||||
};
|
};
|
||||||
#define acpted_rply ru.RM_rmb.ru.RP_ar
|
#define acpted_rply ru.RM_rmb.ru.RP_ar
|
||||||
#define rjcted_rply ru.RM_rmb.ru.RP_dr
|
#define rjcted_rply ru.RM_rmb.ru.RP_dr
|
||||||
|
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
/*
|
/*
|
||||||
* XDR routine to handle a rpc message.
|
* XDR routine to handle a rpc message.
|
||||||
* xdr_callmsg(xdrs, cmsg)
|
* xdr_callmsg(xdrs, cmsg)
|
||||||
* XDR *xdrs;
|
* XDR *xdrs;
|
||||||
* struct rpc_msg *cmsg;
|
* struct rpc_msg *cmsg;
|
||||||
*/
|
*/
|
||||||
extern bool_t xdr_callmsg(XDR *, struct rpc_msg *);
|
extern bool_t xdr_callmsg(XDR *, struct rpc_msg *);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XDR routine to pre-serialize the static part of a rpc message.
|
* XDR routine to pre-serialize the static part of a rpc message.
|
||||||
* xdr_callhdr(xdrs, cmsg)
|
* xdr_callhdr(xdrs, cmsg)
|
||||||
* XDR *xdrs;
|
* XDR *xdrs;
|
||||||
* struct rpc_msg *cmsg;
|
* struct rpc_msg *cmsg;
|
||||||
*/
|
*/
|
||||||
extern bool_t xdr_callhdr(XDR *, struct rpc_msg *);
|
extern bool_t xdr_callhdr(XDR *, struct rpc_msg *);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XDR routine to handle a rpc reply.
|
* XDR routine to handle a rpc reply.
|
||||||
* xdr_replymsg(xdrs, rmsg)
|
* xdr_replymsg(xdrs, rmsg)
|
||||||
* XDR *xdrs;
|
* XDR *xdrs;
|
||||||
* struct rpc_msg *rmsg;
|
* struct rpc_msg *rmsg;
|
||||||
*/
|
*/
|
||||||
extern bool_t xdr_replymsg(XDR *, struct rpc_msg *);
|
extern bool_t xdr_replymsg(XDR *, struct rpc_msg *);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XDR routine to read just xid and direction, then union
|
* XDR routine to read just xid and direction, then union
|
||||||
* xdr_getxiddir(xdrs, rmsg)
|
* xdr_getxiddir(xdrs, rmsg)
|
||||||
* XDR *xdrs;
|
* XDR *xdrs;
|
||||||
* struct rpc_msg *rmsg;
|
* struct rpc_msg *rmsg;
|
||||||
*/
|
*/
|
||||||
extern bool_t xdr_getxiddir(XDR *, struct rpc_msg *);
|
extern bool_t xdr_getxiddir(XDR *, struct rpc_msg *);
|
||||||
extern bool_t xdr_getreplyunion(XDR *, struct rpc_msg *);
|
extern bool_t xdr_getreplyunion(XDR *, struct rpc_msg *);
|
||||||
extern bool_t xdr_getcallbody(XDR *, struct rpc_msg *);
|
extern bool_t xdr_getcallbody(XDR *, struct rpc_msg *);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XDR routine to handle an accepted rpc reply.
|
* XDR routine to handle an accepted rpc reply.
|
||||||
* xdr_accepted_reply(xdrs, rej)
|
* xdr_accepted_reply(xdrs, rej)
|
||||||
* XDR *xdrs;
|
* XDR *xdrs;
|
||||||
* struct accepted_reply *rej;
|
* struct accepted_reply *rej;
|
||||||
*/
|
*/
|
||||||
extern bool_t xdr_accepted_reply(XDR *, struct accepted_reply *);
|
extern bool_t xdr_accepted_reply(XDR *, struct accepted_reply *);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XDR routine to handle a rejected rpc reply.
|
* XDR routine to handle a rejected rpc reply.
|
||||||
* xdr_rejected_reply(xdrs, rej)
|
* xdr_rejected_reply(xdrs, rej)
|
||||||
* XDR *xdrs;
|
* XDR *xdrs;
|
||||||
* struct rejected_reply *rej;
|
* struct rejected_reply *rej;
|
||||||
*/
|
*/
|
||||||
extern bool_t xdr_rejected_reply(XDR *, struct rejected_reply *);
|
extern bool_t xdr_rejected_reply(XDR *, struct rejected_reply *);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fills in the error part of a reply message.
|
* Fills in the error part of a reply message.
|
||||||
* _seterr_reply(msg, error)
|
* _seterr_reply(msg, error)
|
||||||
* struct rpc_msg *msg;
|
* struct rpc_msg *msg;
|
||||||
* struct rpc_err *error;
|
* struct rpc_err *error;
|
||||||
*/
|
*/
|
||||||
extern void _seterr_reply(struct rpc_msg *, struct rpc_err *);
|
extern void _seterr_reply(struct rpc_msg *, struct rpc_err *);
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
#endif /* !_TIRPC_RPC_MSG_H */
|
#endif /* !_TIRPC_RPC_MSG_H */
|
||||||
|
|
|
||||||
|
|
@ -1,163 +1,159 @@
|
||||||
/* $NetBSD: types.h,v 1.13 2000/06/13 01:02:44 thorpej Exp $ */
|
/* $NetBSD: types.h,v 1.13 2000/06/13 01:02:44 thorpej Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, Sun Microsystems, Inc.
|
* Copyright (c) 2009, Sun Microsystems, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions are met:
|
* modification, are permitted provided that the following conditions are met:
|
||||||
* - Redistributions of source code must retain the above copyright notice,
|
* - Redistributions of source code must retain the above copyright notice,
|
||||||
* this list of conditions and the following disclaimer.
|
* this list of conditions and the following disclaimer.
|
||||||
* - Redistributions in binary form must reproduce the above copyright notice,
|
* - Redistributions in binary form must reproduce the above copyright notice,
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
* and/or other materials provided with the distribution.
|
* and/or other materials provided with the distribution.
|
||||||
* - Neither the name of Sun Microsystems, Inc. nor the names of its
|
* - Neither the name of Sun Microsystems, Inc. nor the names of its
|
||||||
* contributors may be used to endorse or promote products derived
|
* contributors may be used to endorse or promote products derived
|
||||||
* from this software without specific prior written permission.
|
* from this software without specific prior written permission.
|
||||||
*
|
*
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* from: @(#)types.h 1.18 87/07/24 SMI
|
* from: @(#)types.h 1.18 87/07/24 SMI
|
||||||
* from: @(#)types.h 2.3 88/08/15 4.0 RPCSRC
|
* from: @(#)types.h 2.3 88/08/15 4.0 RPCSRC
|
||||||
* $FreeBSD: src/include/rpc/types.h,v 1.10.6.1 2003/12/18 00:59:50 peter Exp $
|
* $FreeBSD: src/include/rpc/types.h,v 1.10.6.1 2003/12/18 00:59:50 peter Exp $
|
||||||
*/
|
*/
|
||||||
/* Copyright (c) 2010, 2011
|
|
||||||
* The Regents of the University of Michigan
|
/* NFSv4.1 client for Windows
|
||||||
* All Rights Reserved
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
*
|
*
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
* Kevin Coffman <kwc@umich.edu>
|
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
*/
|
||||||
*/
|
|
||||||
/*
|
/*
|
||||||
* Rpc additions to <sys/types.h>
|
* Rpc additions to <sys/types.h>
|
||||||
*/
|
*/
|
||||||
#ifndef _TIRPC_TYPES_H
|
#ifndef _TIRPC_TYPES_H
|
||||||
#define _TIRPC_TYPES_H
|
#define _TIRPC_TYPES_H
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
//#include <sys/_null.h>
|
//#include <sys/_null.h>
|
||||||
|
|
||||||
// Windows mappings of data types
|
// Windows mappings of data types
|
||||||
// Fixed size things
|
// Fixed size things
|
||||||
typedef INT16 int16_t;
|
typedef INT16 int16_t;
|
||||||
typedef INT32 int32_t;
|
typedef INT32 int32_t;
|
||||||
typedef INT64 int64_t;
|
typedef INT64 int64_t;
|
||||||
typedef UINT16 u_int16_t;
|
typedef UINT16 u_int16_t;
|
||||||
typedef UINT32 u_int32_t;
|
typedef UINT32 u_int32_t;
|
||||||
typedef UINT32 uint32_t;
|
typedef UINT32 uint32_t;
|
||||||
typedef UINT64 u_int64_t;
|
typedef UINT64 u_int64_t;
|
||||||
typedef UINT64 uint64_t;
|
typedef UINT64 uint64_t;
|
||||||
typedef PCHAR caddr_t;
|
typedef PCHAR caddr_t;
|
||||||
// Scalable things
|
// Scalable things
|
||||||
typedef UCHAR u_char;
|
typedef UCHAR u_char;
|
||||||
typedef unsigned short u_short;
|
typedef unsigned short u_short;
|
||||||
typedef UINT32 u_int;
|
typedef UINT32 u_int;
|
||||||
typedef UINT32 uint;
|
typedef UINT32 uint;
|
||||||
|
|
||||||
typedef INT64 quad_t;
|
typedef INT64 quad_t;
|
||||||
typedef UINT64 u_quad_t;
|
typedef UINT64 u_quad_t;
|
||||||
|
|
||||||
typedef UINT uid_t;
|
typedef UINT uid_t;
|
||||||
typedef UINT gid_t;
|
typedef UINT gid_t;
|
||||||
typedef DWORD pid_t;
|
typedef DWORD pid_t;
|
||||||
|
|
||||||
//typedef SIZE_T size_t; //This is causing a "benign redefinition error"
|
//typedef SIZE_T size_t; //This is causing a "benign redefinition error"
|
||||||
typedef SSIZE_T ssize_t;
|
typedef SSIZE_T ssize_t;
|
||||||
// End of Windows...
|
// End of Windows...
|
||||||
|
|
||||||
typedef int32_t bool_t;
|
typedef int32_t bool_t;
|
||||||
typedef int32_t enum_t;
|
typedef int32_t enum_t;
|
||||||
|
|
||||||
typedef u_int32_t rpcprog_t;
|
typedef u_int32_t rpcprog_t;
|
||||||
typedef u_int32_t rpcvers_t;
|
typedef u_int32_t rpcvers_t;
|
||||||
typedef u_int32_t rpcproc_t;
|
typedef u_int32_t rpcproc_t;
|
||||||
typedef u_int32_t rpcprot_t;
|
typedef u_int32_t rpcprot_t;
|
||||||
typedef u_int32_t rpcport_t;
|
typedef u_int32_t rpcport_t;
|
||||||
typedef int32_t rpc_inline_t;
|
typedef int32_t rpc_inline_t;
|
||||||
|
|
||||||
#ifndef NULL
|
#ifndef NULL
|
||||||
# define NULL 0
|
# define NULL 0
|
||||||
#endif
|
#endif
|
||||||
#define __dontcare__ -1
|
#define __dontcare__ -1
|
||||||
|
|
||||||
#ifndef FALSE
|
#ifndef FALSE
|
||||||
# define FALSE (0)
|
# define FALSE (0)
|
||||||
#endif
|
#endif
|
||||||
#ifndef TRUE
|
#ifndef TRUE
|
||||||
# define TRUE (1)
|
# define TRUE (1)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define mem_alloc(bsize) calloc(1, bsize)
|
#define mem_alloc(bsize) calloc(1, bsize)
|
||||||
#define mem_free(ptr, bsize) free(ptr)
|
#define mem_free(ptr, bsize) free(ptr)
|
||||||
|
|
||||||
//#include <sys/time.h>
|
//#include <sys/time.h>
|
||||||
//#include <sys/param.h>
|
//#include <sys/param.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <netconfig.h>
|
#include <netconfig.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The netbuf structure is defined here, because FreeBSD / NetBSD only use
|
* The netbuf structure is defined here, because FreeBSD / NetBSD only use
|
||||||
* it inside the RPC code. It's in <xti.h> on SVR4, but it would be confusing
|
* it inside the RPC code. It's in <xti.h> on SVR4, but it would be confusing
|
||||||
* to have an xti.h, since FreeBSD / NetBSD does not support XTI/TLI.
|
* to have an xti.h, since FreeBSD / NetBSD does not support XTI/TLI.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The netbuf structure is used for transport-independent address storage.
|
* The netbuf structure is used for transport-independent address storage.
|
||||||
*/
|
*/
|
||||||
struct netbuf {
|
struct netbuf {
|
||||||
unsigned int maxlen;
|
unsigned int maxlen;
|
||||||
unsigned int len;
|
unsigned int len;
|
||||||
void *buf;
|
void *buf;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The format of the addres and options arguments of the XTI t_bind call.
|
* The format of the addres and options arguments of the XTI t_bind call.
|
||||||
* Only provided for compatibility, it should not be used.
|
* Only provided for compatibility, it should not be used.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct t_bind {
|
struct t_bind {
|
||||||
struct netbuf addr;
|
struct netbuf addr;
|
||||||
unsigned int qlen;
|
unsigned int qlen;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Internal library and rpcbind use. This is not an exported interface, do
|
* Internal library and rpcbind use. This is not an exported interface, do
|
||||||
* not use.
|
* not use.
|
||||||
*/
|
*/
|
||||||
struct __rpc_sockinfo {
|
struct __rpc_sockinfo {
|
||||||
ADDRESS_FAMILY si_af;
|
ADDRESS_FAMILY si_af;
|
||||||
int si_proto;
|
int si_proto;
|
||||||
int si_socktype;
|
int si_socktype;
|
||||||
int si_alen;
|
int si_alen;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _TIRPC_TYPES_H */
|
#endif /* _TIRPC_TYPES_H */
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
|
||||||
*
|
*
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
* Kevin Coffman <kwc@umich.edu>
|
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _TIRPC_WINTIRPC_H
|
#ifndef _TIRPC_WINTIRPC_H
|
||||||
|
|
|
||||||
35
mount/enum.c
35
mount/enum.c
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __NFS41_MOUNT_OPTIONS_H__
|
#ifndef __NFS41_MOUNT_OPTIONS_H__
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MINIRDR__NAME "Value is ignored, only fact of definition"
|
#define MINIRDR__NAME "Value is ignored, only fact of definition"
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _NFS41_DEBUG_
|
#ifndef _NFS41_DEBUG_
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MINIRDR__NAME "Value is ignored, only fact of definition"
|
#define MINIRDR__NAME "Value is ignored, only fact of definition"
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _NFS41_DRIVER_
|
#ifndef _NFS41_DRIVER_
|
||||||
|
|
|
||||||
36
sys/wmlkm.c
36
sys/wmlkm.c
|
|
@ -1,30 +1,26 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*
|
*
|
||||||
* Comments: RDBSS depends on wmlkm files. See comments in nulmrx/wmlkm
|
* Comments: RDBSS depends on wmlkm files. See comments in nulmrx/wmlkm
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
|
|
||||||
#include <ntddk.h>
|
#include <ntddk.h>
|
||||||
|
|
|
||||||
35
sys/wmlkm.h
35
sys/wmlkm.h
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
*
|
||||||
*
|
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef NFS41_WMLKM_H
|
#ifndef NFS41_WMLKM_H
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,22 @@
|
||||||
/* Copyright (c) 2010, 2011
|
/* NFSv4.1 client for Windows
|
||||||
* The Regents of the University of Michigan
|
* Copyright © 2012 The Regents of the University of Michigan
|
||||||
* All Rights Reserved
|
|
||||||
*
|
*
|
||||||
* Olga Kornievskaia <aglo@umich.edu>
|
* Olga Kornievskaia <aglo@umich.edu>
|
||||||
* Casey Bodley <cbodley@umich.edu>
|
* Casey Bodley <cbodley@umich.edu>
|
||||||
*
|
*
|
||||||
* Permission is granted to use, copy and redistribute this software
|
* This library is free software; you can redistribute it and/or modify it
|
||||||
* for noncommercial education and research purposes, so long as no
|
* under the terms of the GNU Lesser General Public License as published by
|
||||||
* fee is charged, and so long as the name of the University of Michigan
|
* the Free Software Foundation; either version 2.1 of the License, or (at
|
||||||
* is not used in any advertising or publicity pertaining to the use
|
* your option) any later version.
|
||||||
* or distribution of this software without specific, written prior
|
|
||||||
* authorization. Permission to modify or otherwise create derivative
|
|
||||||
* works of this software is not granted.
|
|
||||||
*
|
*
|
||||||
* This software is provided as is, without representation or warranty
|
* This library is distributed in the hope that it will be useful, but
|
||||||
* of any kind either express or implied, including without limitation
|
* without any warranty; without even the implied warranty of merchantability
|
||||||
* the implied warranties of merchantability, fitness for a particular
|
* or fitness for a particular purpose. See the GNU Lesser General Public
|
||||||
* purpose, or noninfringement. The Regents of the University of
|
* License for more details.
|
||||||
* Michigan shall not be liable for any damages, including special,
|
*
|
||||||
* indirect, incidental, or consequential damages, with respect to any
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* claim arising out of or in connection with the use of the software,
|
* along with this library; if not, write to the Free Software Foundation,
|
||||||
* even if it has been or is hereafter advised of the possibility of
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
* such damages.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue