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:
Casey Bodley 2012-03-19 12:24:43 -04:00
parent 6f8f4d8e3f
commit bbb1ed696c
88 changed files with 4784 additions and 5040 deletions

165
COPYING Normal file
View 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.

View file

@ -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>

View file

@ -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>

View file

@ -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"

View file

@ -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>

View file

@ -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_

View file

@ -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"

View file

@ -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

View file

@ -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_

View file

@ -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>

View file

@ -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>

View file

@ -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

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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__

View file

@ -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>

View file

@ -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__

View file

@ -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__

View file

@ -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>

View file

@ -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>

View file

@ -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__

View file

@ -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__

View file

@ -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>

View file

@ -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>

View file

@ -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__

View file

@ -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"

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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__

View file

@ -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>

View file

@ -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__

View file

@ -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>

View file

@ -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__

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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__

View file

@ -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>

View file

@ -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__

View file

@ -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>

View file

@ -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.
*/ */
/*++ /*++

View file

@ -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>

View file

@ -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__

View file

@ -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>

View file

@ -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__

View file

@ -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

View file

@ -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:

View file

@ -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

View file

@ -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);
} }

View file

@ -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>

View file

@ -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);
} }

View file

@ -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>

View file

@ -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

View file

@ -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>

View file

@ -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;
} }
} }

View file

@ -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

View file

@ -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 */

View file

@ -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 */

View file

@ -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 */

View file

@ -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

View file

@ -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_

View file

@ -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 */

View file

@ -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 */

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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__

View file

@ -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"

View file

@ -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_

View file

@ -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"

View file

@ -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_

View file

@ -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>

View file

@ -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

View file

@ -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>