mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Update.
1997-05-10 11:46 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * nis/rpcsvc/nis_callback.x: New, from tirpcsrc-2.3. * nis/nis_call.c (__nis_docall): Rewritten for navigation in NIS+ namespace hierachy. * nis/nis_intern.h: Add new __nis_docall function prototypes. * nis/nis_add.c: Change __nis_docall/__nis_docall2 parameters for new rewritten functions. * nis/nis_checkpoint.c: Likewise. * nis/nis_lookup.c: Likewise. * nis/nis_mkdir.c: Likewise. * nis/nis_modify.c: Likewise. * nis/nis_ping.c: Likewise. * nis/nis_remove.c: Likewise. * nis/nis_rmdir.c: Likewise. * nis/nis_server.c: Likewise. * nis/nis_table.c: Likewise. 1997-05-09 16:09 Miles Bader <miles@gnu.ai.mit.edu> * argp/argp-eexst.c: Include <sysexits.h>. (argp_err_exit_status): Initialize to EX_USAGE. * argp/argp.h, argp/argp-help.c: Doc fixes. 1997-05-08 17:15 Miles Bader <miles@gnu.ai.mit.edu> * argp/argp.h [!__error_t_defined] (__error_t_defined): Define. * argp/argp-help.c (canon_doc_option): Correct ctype tests.
This commit is contained in:
30
ChangeLog
30
ChangeLog
@ -1,3 +1,33 @@
|
|||||||
|
1997-05-10 11:46 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
|
||||||
|
|
||||||
|
* nis/rpcsvc/nis_callback.x: New, from tirpcsrc-2.3.
|
||||||
|
|
||||||
|
* nis/nis_call.c (__nis_docall): Rewritten for navigation in NIS+
|
||||||
|
namespace hierachy.
|
||||||
|
* nis/nis_intern.h: Add new __nis_docall function prototypes.
|
||||||
|
* nis/nis_add.c: Change __nis_docall/__nis_docall2 parameters for new
|
||||||
|
rewritten functions.
|
||||||
|
* nis/nis_checkpoint.c: Likewise.
|
||||||
|
* nis/nis_lookup.c: Likewise.
|
||||||
|
* nis/nis_mkdir.c: Likewise.
|
||||||
|
* nis/nis_modify.c: Likewise.
|
||||||
|
* nis/nis_ping.c: Likewise.
|
||||||
|
* nis/nis_remove.c: Likewise.
|
||||||
|
* nis/nis_rmdir.c: Likewise.
|
||||||
|
* nis/nis_server.c: Likewise.
|
||||||
|
* nis/nis_table.c: Likewise.
|
||||||
|
|
||||||
|
1997-05-09 16:09 Miles Bader <miles@gnu.ai.mit.edu>
|
||||||
|
|
||||||
|
* argp/argp-eexst.c: Include <sysexits.h>.
|
||||||
|
(argp_err_exit_status): Initialize to EX_USAGE.
|
||||||
|
* argp/argp.h, argp/argp-help.c: Doc fixes.
|
||||||
|
|
||||||
|
1997-05-08 17:15 Miles Bader <miles@gnu.ai.mit.edu>
|
||||||
|
|
||||||
|
* argp/argp.h [!__error_t_defined] (__error_t_defined): Define.
|
||||||
|
* argp/argp-help.c (canon_doc_option): Correct ctype tests.
|
||||||
|
|
||||||
1997-05-08 07:53 H.J. Lu <hjl@gnu.ai.mit.edu>
|
1997-05-08 07:53 H.J. Lu <hjl@gnu.ai.mit.edu>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/poll.c: Save errno.
|
* sysdeps/unix/sysv/linux/poll.c: Save errno.
|
||||||
|
@ -22,8 +22,11 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <sysexits.h>
|
||||||
|
|
||||||
#include "argp.h"
|
#include "argp.h"
|
||||||
|
|
||||||
/* The exit status that argp will use when exiting due to a parsing error.
|
/* The exit status that argp will use when exiting due to a parsing error.
|
||||||
If not defined or set by the user program, this defaults to 1. */
|
If not defined or set by the user program, this defaults to EX_USAGE from
|
||||||
error_t argp_err_exit_status = 1;
|
<sysexits.h>. */
|
||||||
|
error_t argp_err_exit_status = EX_USAGE;
|
||||||
|
@ -658,12 +658,12 @@ canon_doc_option (const char **name)
|
|||||||
{
|
{
|
||||||
int non_opt;
|
int non_opt;
|
||||||
/* Skip initial whitespace. */
|
/* Skip initial whitespace. */
|
||||||
while (isspace (*name))
|
while (isspace (**name))
|
||||||
(*name)++;
|
(*name)++;
|
||||||
/* Decide whether this looks like an option (leading `-') or not. */
|
/* Decide whether this looks like an option (leading `-') or not. */
|
||||||
non_opt = (**name != '-');
|
non_opt = (**name != '-');
|
||||||
/* Skip until part of name used for sorting. */
|
/* Skip until part of name used for sorting. */
|
||||||
while (**name && !isalnum (*name))
|
while (**name && !isalnum (**name))
|
||||||
(*name)++;
|
(*name)++;
|
||||||
return non_opt;
|
return non_opt;
|
||||||
}
|
}
|
||||||
@ -1612,7 +1612,7 @@ weak_alias (__argp_state_help, argp_state_help)
|
|||||||
|
|
||||||
/* If appropriate, print the printf string FMT and following args, preceded
|
/* If appropriate, print the printf string FMT and following args, preceded
|
||||||
by the program name and `:', to stderr, and followed by a `Try ... --help'
|
by the program name and `:', to stderr, and followed by a `Try ... --help'
|
||||||
message, then exit (ARGP_ERR_EXIT_STATUS). */
|
message, then exit (1). */
|
||||||
void
|
void
|
||||||
__argp_error (const struct argp_state *state, const char *fmt, ...)
|
__argp_error (const struct argp_state *state, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
|
|
||||||
#ifndef __error_t_defined
|
#ifndef __error_t_defined
|
||||||
typedef int error_t;
|
typedef int error_t;
|
||||||
|
#define __error_t_defined
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __P
|
#ifndef __P
|
||||||
@ -397,7 +398,8 @@ extern void (*argp_program_version_hook) __P ((FILE *__stream,
|
|||||||
__const extern char *argp_program_bug_address;
|
__const extern char *argp_program_bug_address;
|
||||||
|
|
||||||
/* The exit status that argp will use when exiting due to a parsing error.
|
/* The exit status that argp will use when exiting due to a parsing error.
|
||||||
If not defined or set by the user program, this defaults to 1. */
|
If not defined or set by the user program, this defaults to EX_USAGE from
|
||||||
|
<sysexits.h>. */
|
||||||
extern error_t argp_err_exit_status;
|
extern error_t argp_err_exit_status;
|
||||||
|
|
||||||
/* Flags for argp_help. */
|
/* Flags for argp_help. */
|
||||||
|
2
config.guess
vendored
2
config.guess
vendored
@ -430,7 +430,7 @@ EOF
|
|||||||
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
*:GNU:*:*)
|
*:GNU:*:*)
|
||||||
echo `echo ${UNAME_MACHINE}|sed -e 's,-.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
|
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
*:Linux:*:*)
|
*:Linux:*:*)
|
||||||
# The BFD linker knows what the default object file format is, so
|
# The BFD linker knows what the default object file format is, so
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
jmp_buf _hurdsig_fault_env;
|
jmp_buf _hurdsig_fault_env;
|
||||||
struct hurd_signal_preemptor _hurdsig_fault_preemptor;
|
struct hurd_signal_preemptor _hurdsig_fault_preemptor = {0};
|
||||||
|
|
||||||
/* XXX temporary to deal with spelling fix */
|
/* XXX temporary to deal with spelling fix */
|
||||||
weak_alias (_hurdsig_fault_preemptor, _hurdsig_fault_preempter)
|
weak_alias (_hurdsig_fault_preemptor, _hurdsig_fault_preempter)
|
||||||
|
@ -426,7 +426,7 @@ abort_all_rpcs (int signo, struct machine_thread_all_state *state, int live)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct hurd_signal_preemptor *_hurdsig_preemptors;
|
struct hurd_signal_preemptor *_hurdsig_preemptors = 0;
|
||||||
sigset_t _hurdsig_preempted_set;
|
sigset_t _hurdsig_preempted_set;
|
||||||
|
|
||||||
/* XXX temporary to deal with spelling fix */
|
/* XXX temporary to deal with spelling fix */
|
||||||
|
6
nis/TODO
6
nis/TODO
@ -1,12 +1,6 @@
|
|||||||
|
|
||||||
* nss_nisplus: When using parser form nss_files, rewrite parser
|
* nss_nisplus: When using parser form nss_files, rewrite parser
|
||||||
|
|
||||||
* nss_nisplus: Search the data in the complete NIS+ namespace
|
|
||||||
specified by NIS_PATH
|
|
||||||
|
|
||||||
* What does nis_list give back, if rpc.nisd is not running or
|
|
||||||
if /var/nis/NIS_START_FILE does not exist ?
|
|
||||||
|
|
||||||
* nis_table.c: nis_list():
|
* nis_table.c: nis_list():
|
||||||
Missing flags: FOLLOW_PATH, ALL_RESULTS
|
Missing flags: FOLLOW_PATH, ALL_RESULTS
|
||||||
callback: Don't simulate it, use server callback thread
|
callback: Don't simulate it, use server callback thread
|
||||||
|
@ -55,7 +55,8 @@ nis_add (const_nis_name name, const nis_object *obj)
|
|||||||
req.ns_object.ns_object_val[0].zo_domain =
|
req.ns_object.ns_object_val[0].zo_domain =
|
||||||
nis_domain_of_r (name, buf4, sizeof (buf4));
|
nis_domain_of_r (name, buf4, sizeof (buf4));
|
||||||
|
|
||||||
if ((status = __do_niscall (NULL, 0, NIS_ADD, (xdrproc_t) xdr_ns_request,
|
if ((status = __do_niscall (req.ns_object.ns_object_val[0].zo_domain,
|
||||||
|
NIS_ADD, (xdrproc_t) xdr_ns_request,
|
||||||
(caddr_t) &req, (xdrproc_t) xdr_nis_result,
|
(caddr_t) &req, (xdrproc_t) xdr_nis_result,
|
||||||
(caddr_t) res, MASTER_ONLY)) != RPC_SUCCESS)
|
(caddr_t) res, MASTER_ONLY)) != RPC_SUCCESS)
|
||||||
res->status = status;
|
res->status = status;
|
||||||
|
217
nis/nis_call.c
217
nis/nis_call.c
@ -160,36 +160,19 @@ __nis_dobind (const nis_server *server, u_long flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
nis_error
|
nis_error
|
||||||
__do_niscall (const nis_server *serv, int serv_len, u_long prog,
|
__do_niscall2 (const nis_server *server, u_int server_len, u_long prog,
|
||||||
xdrproc_t xargs, caddr_t req, xdrproc_t xres, caddr_t resp,
|
xdrproc_t xargs, caddr_t req, xdrproc_t xres, caddr_t resp,
|
||||||
u_long flags)
|
u_long flags)
|
||||||
{
|
{
|
||||||
CLIENT *clnt;
|
CLIENT *clnt;
|
||||||
directory_obj *dir = NULL;
|
|
||||||
const nis_server *server;
|
|
||||||
int try, result;
|
int try, result;
|
||||||
unsigned int server_len;
|
|
||||||
|
|
||||||
if (serv == NULL || serv_len == 0)
|
|
||||||
{
|
|
||||||
dir = readColdStartFile ();
|
|
||||||
if (dir == NULL) /* No /var/nis/NIS_COLD_START -> no NIS+ installed */
|
|
||||||
return NIS_UNAVAIL;
|
|
||||||
server = dir->do_servers.do_servers_val;
|
|
||||||
server_len = dir->do_servers.do_servers_len;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
server = serv;
|
|
||||||
server_len = serv_len;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (((flags & MASTER_ONLY) == MASTER_ONLY) && server_len > 1)
|
|
||||||
server_len = 1; /* The first entry is the master */
|
|
||||||
|
|
||||||
try = 0;
|
try = 0;
|
||||||
result = NIS_NAMEUNREACHABLE;
|
result = NIS_NAMEUNREACHABLE;
|
||||||
|
|
||||||
|
if (((flags & MASTER_ONLY) == MASTER_ONLY) && server_len > 1)
|
||||||
|
server_len = 1; /* The first entry is the master */
|
||||||
|
|
||||||
while (try < MAXTRIES && result != RPC_SUCCESS)
|
while (try < MAXTRIES && result != RPC_SUCCESS)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
@ -215,7 +198,191 @@ __do_niscall (const nis_server *serv, int serv_len, u_long prog,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dir != NULL)
|
return result;
|
||||||
nis_free_directory (dir);
|
}
|
||||||
|
|
||||||
|
static directory_obj *
|
||||||
|
dir_lookup (const_nis_name name, nis_server *serv, u_long flags)
|
||||||
|
{
|
||||||
|
CLIENT *clnt;
|
||||||
|
int try, result;
|
||||||
|
nis_result *res;
|
||||||
|
struct ns_request req;
|
||||||
|
directory_obj *dir;
|
||||||
|
|
||||||
|
res = calloc (1, sizeof (nis_result));
|
||||||
|
req.ns_name = (char *)name;
|
||||||
|
req.ns_object.ns_object_len = 0;
|
||||||
|
req.ns_object.ns_object_val = NULL;
|
||||||
|
try = 0;
|
||||||
|
result = NIS_NAMEUNREACHABLE;
|
||||||
|
|
||||||
|
while (try < MAXTRIES && result != RPC_SUCCESS)
|
||||||
|
{
|
||||||
|
if ((clnt = __nis_dobind (serv, flags)) == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
result = clnt_call (clnt, NIS_LOOKUP, (xdrproc_t) xdr_ns_request,
|
||||||
|
(caddr_t) &req, (xdrproc_t) xdr_nis_result,
|
||||||
|
(caddr_t) res, TIMEOUT);
|
||||||
|
|
||||||
|
if (result != RPC_SUCCESS)
|
||||||
|
{
|
||||||
|
clnt_perror (clnt, "do_niscall: clnt_call");
|
||||||
|
clnt_destroy (clnt);
|
||||||
|
result = NIS_RPCERROR;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
clnt_destroy (clnt);
|
||||||
|
}
|
||||||
|
if (result != RPC_SUCCESS || res->status != NIS_SUCCESS)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
dir = nis_clone_directory (&res->objects.objects_val->DI_data, NULL);
|
||||||
|
nis_freeresult (res);
|
||||||
|
|
||||||
|
return dir;
|
||||||
|
}
|
||||||
|
|
||||||
|
static directory_obj *
|
||||||
|
rec_dirsearch (const_nis_name name, directory_obj *dir, u_long flags)
|
||||||
|
{
|
||||||
|
char domain [strlen (name) + 3];
|
||||||
|
|
||||||
|
nis_domain_of_r (name, domain, sizeof (domain));
|
||||||
|
if (strncmp (domain, "org_dir.", 8) == 0)
|
||||||
|
{
|
||||||
|
char tmp[strlen (name) + 3];
|
||||||
|
|
||||||
|
nis_domain_of_r (domain, tmp, sizeof (tmp));
|
||||||
|
strcpy (domain, tmp);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (strncmp (domain, "groups_dir.", 11) == 0)
|
||||||
|
{
|
||||||
|
char tmp[strlen (name) + 3];
|
||||||
|
|
||||||
|
nis_domain_of_r (domain, tmp, sizeof (tmp));
|
||||||
|
strcpy (domain, tmp);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* We have no grous_dir or org_dir, so try the complete name */
|
||||||
|
strcpy (domain, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (nis_dir_cmp (domain, dir->do_name))
|
||||||
|
{
|
||||||
|
case SAME_NAME:
|
||||||
|
return dir;
|
||||||
|
case NOT_SEQUENTIAL:
|
||||||
|
/* NOT_SEQUENTIAL means, go one up and try it there ! */
|
||||||
|
case HIGHER_NAME:
|
||||||
|
{ /* We need data from a parent domain */
|
||||||
|
directory_obj *obj;
|
||||||
|
char ndomain [strlen (name) + 3];
|
||||||
|
|
||||||
|
nis_domain_of_r (dir->do_name, ndomain, sizeof (ndomain));
|
||||||
|
|
||||||
|
/* The root server of our domain is a replica of the parent
|
||||||
|
domain ! (Now I understand why a root server must be a
|
||||||
|
replica of the parent domain) */
|
||||||
|
obj = dir_lookup (ndomain, dir->do_servers.do_servers_val,
|
||||||
|
flags);
|
||||||
|
if (obj != NULL)
|
||||||
|
{
|
||||||
|
/* We have found a NIS+ server serving ndomain, now
|
||||||
|
let us search for "name" */
|
||||||
|
nis_free_directory (dir);
|
||||||
|
return rec_dirsearch (name, obj, flags);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Ups, very bad. Are we already the root server ? */
|
||||||
|
nis_free_directory (dir);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LOWER_NAME:
|
||||||
|
{
|
||||||
|
directory_obj *obj;
|
||||||
|
char leaf [strlen (name) + 3];
|
||||||
|
char ndomain [strlen (name) + 3];
|
||||||
|
u_int i;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
if (strlen (domain) == 0)
|
||||||
|
{
|
||||||
|
nis_free_directory (dir);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
nis_leaf_of_r (domain, leaf, sizeof (leaf));
|
||||||
|
nis_domain_of_r (domain, ndomain, sizeof (ndomain));
|
||||||
|
strcpy (domain, ndomain);
|
||||||
|
}
|
||||||
|
while (nis_dir_cmp (domain, dir->do_name) != SAME_NAME);
|
||||||
|
strcat (leaf, ".");
|
||||||
|
strcat (leaf, domain);
|
||||||
|
|
||||||
|
for (i = 0; i < dir->do_servers.do_servers_len; ++i)
|
||||||
|
{
|
||||||
|
obj = dir_lookup (leaf, &dir->do_servers.do_servers_val[i],
|
||||||
|
flags);
|
||||||
|
if (obj != NULL)
|
||||||
|
{
|
||||||
|
/* We have found a NIS+ server serving ndomain, now
|
||||||
|
let us search for "name" */
|
||||||
|
nis_free_directory (dir);
|
||||||
|
return rec_dirsearch (name, obj, flags);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BAD_NAME:
|
||||||
|
nis_free_directory (dir);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
nis_free_directory (dir);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
nis_error
|
||||||
|
__do_niscall (const_nis_name name, u_long prog, xdrproc_t xargs,
|
||||||
|
caddr_t req, xdrproc_t xres, caddr_t resp, u_long flags)
|
||||||
|
{
|
||||||
|
nis_error result;
|
||||||
|
directory_obj *dir = NULL;
|
||||||
|
const nis_server *server;
|
||||||
|
u_int server_len;
|
||||||
|
|
||||||
|
|
||||||
|
dir = readColdStartFile ();
|
||||||
|
if (dir == NULL) /* No /var/nis/NIS_COLD_START -> no NIS+ installed */
|
||||||
|
return NIS_UNAVAIL;
|
||||||
|
|
||||||
|
if (name != NULL)
|
||||||
|
{
|
||||||
|
dir = rec_dirsearch (name, dir, flags);
|
||||||
|
if (dir == NULL)
|
||||||
|
{
|
||||||
|
if (nis_dir_cmp (nis_local_directory(), name) == NOT_SEQUENTIAL)
|
||||||
|
return NIS_NAMEUNREACHABLE;
|
||||||
|
else
|
||||||
|
return NIS_NOTFOUND;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
server = dir->do_servers.do_servers_val;
|
||||||
|
server_len = dir->do_servers.do_servers_len;
|
||||||
|
|
||||||
|
if (((flags & MASTER_ONLY) == MASTER_ONLY) && server_len > 1)
|
||||||
|
server_len = 1; /* The first entry is the master */
|
||||||
|
|
||||||
|
result = __do_niscall2 (server, server_len, prog, xargs, req, xres,
|
||||||
|
resp, flags);
|
||||||
|
if (dir != NULL)
|
||||||
|
nis_free_directory (dir);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@ nis_checkpoint(const_nis_name dirname)
|
|||||||
i < res2->objects.objects_val[0].DI_data.do_servers.do_servers_len;
|
i < res2->objects.objects_val[0].DI_data.do_servers.do_servers_len;
|
||||||
++i)
|
++i)
|
||||||
{
|
{
|
||||||
if (__do_niscall (&res2->objects.objects_val[0].DI_data.do_servers.do_servers_val[i],
|
if (__do_niscall2 (&res2->objects.objects_val[0].DI_data.do_servers.do_servers_val[i],
|
||||||
1, NIS_CHECKPOINT, (xdrproc_t) xdr_nis_name,
|
1, NIS_CHECKPOINT, (xdrproc_t) xdr_nis_name,
|
||||||
(caddr_t) &dirname, (xdrproc_t) xdr_cp_result,
|
(caddr_t) &dirname, (xdrproc_t) xdr_cp_result,
|
||||||
(caddr_t) &cpres, 0) != RPC_SUCCESS)
|
(caddr_t) &cpres, 0) != RPC_SUCCESS)
|
||||||
|
@ -24,9 +24,12 @@
|
|||||||
|
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
|
|
||||||
extern nis_error __do_niscall (__const nis_server *server, int server_len,
|
extern nis_error __do_niscall2 (const nis_server *server, u_int server_len,
|
||||||
u_long prog, xdrproc_t xargs, caddr_t req,
|
u_long prog, xdrproc_t xargs, caddr_t req,
|
||||||
xdrproc_t xres, caddr_t resp, u_long flags);
|
xdrproc_t xres, caddr_t resp, u_long flags);
|
||||||
|
extern nis_error __do_niscall (const_nis_name name, u_long prog,
|
||||||
|
xdrproc_t xargs, caddr_t req, xdrproc_t xres,
|
||||||
|
caddr_t resp, u_long flags);
|
||||||
#if defined (HAVE_SECURE_RPC)
|
#if defined (HAVE_SECURE_RPC)
|
||||||
extern AUTH *authdes_pk_create (const char *, const netobj *, u_int,
|
extern AUTH *authdes_pk_create (const char *, const netobj *, u_int,
|
||||||
struct sockaddr *, des_block *);
|
struct sockaddr *, des_block *);
|
||||||
|
@ -56,7 +56,7 @@ nis_lookup (const_nis_name name, const u_long flags)
|
|||||||
req.ns_object.ns_object_val = NULL;
|
req.ns_object.ns_object_val = NULL;
|
||||||
memset (res, '\0', sizeof (nis_result));
|
memset (res, '\0', sizeof (nis_result));
|
||||||
|
|
||||||
if ((status = __do_niscall (NULL, 0, NIS_LOOKUP,
|
if ((status = __do_niscall (req.ns_name, NIS_LOOKUP,
|
||||||
(xdrproc_t) xdr_ns_request,
|
(xdrproc_t) xdr_ns_request,
|
||||||
(caddr_t) & req,
|
(caddr_t) & req,
|
||||||
(xdrproc_t) xdr_nis_result,
|
(xdrproc_t) xdr_nis_result,
|
||||||
@ -113,7 +113,7 @@ nis_lookup (const_nis_name name, const u_long flags)
|
|||||||
req.ns_object.ns_object_val = NULL;
|
req.ns_object.ns_object_val = NULL;
|
||||||
memset (res, '\0', sizeof (nis_result));
|
memset (res, '\0', sizeof (nis_result));
|
||||||
|
|
||||||
if ((status = __do_niscall (NULL, 0, NIS_LOOKUP,
|
if ((status = __do_niscall (req.ns_name, NIS_LOOKUP,
|
||||||
(xdrproc_t) xdr_ns_request,
|
(xdrproc_t) xdr_ns_request,
|
||||||
(caddr_t) &req,
|
(caddr_t) &req,
|
||||||
(xdrproc_t) xdr_nis_result,
|
(xdrproc_t) xdr_nis_result,
|
||||||
|
@ -28,17 +28,17 @@ nis_mkdir (const_nis_name dir, const nis_server *server)
|
|||||||
|
|
||||||
if (server == NULL)
|
if (server == NULL)
|
||||||
{
|
{
|
||||||
if (__do_niscall (NULL, 0, NIS_MKDIR, (xdrproc_t) xdr_nis_name,
|
if (__do_niscall (dir, NIS_MKDIR, (xdrproc_t) xdr_nis_name,
|
||||||
(caddr_t) &dir, (xdrproc_t) xdr_nis_error,
|
(caddr_t) &dir, (xdrproc_t) xdr_nis_error,
|
||||||
(caddr_t) &res, 0) != RPC_SUCCESS)
|
(caddr_t) &res, 0) != RPC_SUCCESS)
|
||||||
return NIS_RPCERROR;
|
return NIS_RPCERROR;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (__do_niscall (server, 1, NIS_MKDIR,
|
if (__do_niscall2 (server, 1, NIS_MKDIR,
|
||||||
(xdrproc_t) xdr_nis_name,
|
(xdrproc_t) xdr_nis_name,
|
||||||
(caddr_t) &dir, (xdrproc_t) xdr_nis_error,
|
(caddr_t) &dir, (xdrproc_t) xdr_nis_error,
|
||||||
(caddr_t) &res, 0) != RPC_SUCCESS)
|
(caddr_t) &res, 0) != RPC_SUCCESS)
|
||||||
return NIS_RPCERROR;
|
return NIS_RPCERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ nis_modify (const_nis_name name, const nis_object *obj)
|
|||||||
req.ns_object.ns_object_len = 1;
|
req.ns_object.ns_object_len = 1;
|
||||||
req.ns_object.ns_object_val = nis_clone_object (obj, NULL);
|
req.ns_object.ns_object_val = nis_clone_object (obj, NULL);
|
||||||
|
|
||||||
if ((status = __do_niscall (NULL, 0, NIS_MODIFY, (xdrproc_t) xdr_ns_request,
|
if ((status = __do_niscall (name, NIS_MODIFY, (xdrproc_t) xdr_ns_request,
|
||||||
(caddr_t) & req, (xdrproc_t) xdr_nis_result,
|
(caddr_t) & req, (xdrproc_t) xdr_nis_result,
|
||||||
(caddr_t) res, MASTER_ONLY)) != RPC_SUCCESS)
|
(caddr_t) res, MASTER_ONLY)) != RPC_SUCCESS)
|
||||||
res->status = status;
|
res->status = status;
|
||||||
|
@ -53,11 +53,10 @@ nis_ping (const_nis_name dirname, u_long utime, const nis_object *dirobj)
|
|||||||
args.stamp = utime;
|
args.stamp = utime;
|
||||||
|
|
||||||
for (i = 0; i < obj->DI_data.do_servers.do_servers_len; ++i)
|
for (i = 0; i < obj->DI_data.do_servers.do_servers_len; ++i)
|
||||||
__do_niscall (&obj->DI_data.do_servers.do_servers_val[i], 1,
|
__do_niscall2 (&obj->DI_data.do_servers.do_servers_val[i], 1,
|
||||||
NIS_PING, (xdrproc_t) xdr_ping_args,
|
NIS_PING, (xdrproc_t) xdr_ping_args,
|
||||||
(caddr_t) &args, (xdrproc_t) xdr_void,
|
(caddr_t) &args, (xdrproc_t) xdr_void,
|
||||||
(caddr_t) NULL, 0);
|
(caddr_t) NULL, 0);
|
||||||
|
|
||||||
if (res)
|
if (res)
|
||||||
nis_freeresult (res);
|
nis_freeresult (res);
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ nis_remove (const_nis_name name, const nis_object *obj)
|
|||||||
req.ns_object.ns_object_val = NULL;
|
req.ns_object.ns_object_val = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((status = __do_niscall (NULL, 0, NIS_REMOVE, (xdrproc_t) xdr_ns_request,
|
if ((status = __do_niscall (name, NIS_REMOVE, (xdrproc_t) xdr_ns_request,
|
||||||
(caddr_t) & req, (xdrproc_t) xdr_nis_result,
|
(caddr_t) & req, (xdrproc_t) xdr_nis_result,
|
||||||
(caddr_t) res, MASTER_ONLY)) != RPC_SUCCESS)
|
(caddr_t) res, MASTER_ONLY)) != RPC_SUCCESS)
|
||||||
res->status = status;
|
res->status = status;
|
||||||
|
@ -28,17 +28,17 @@ nis_rmdir (const_nis_name dir, const nis_server *server)
|
|||||||
|
|
||||||
if (server == NULL)
|
if (server == NULL)
|
||||||
{
|
{
|
||||||
if (__do_niscall (NULL, 0, NIS_RMDIR, (xdrproc_t) xdr_nis_name,
|
if (__do_niscall (dir, NIS_RMDIR, (xdrproc_t) xdr_nis_name,
|
||||||
(caddr_t) &dir, (xdrproc_t) xdr_nis_error,
|
(caddr_t) &dir, (xdrproc_t) xdr_nis_error,
|
||||||
(caddr_t) &res, 0) != RPC_SUCCESS)
|
(caddr_t) &res, 0) != RPC_SUCCESS)
|
||||||
return NIS_RPCERROR;
|
return NIS_RPCERROR;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (__do_niscall (server, 1, NIS_RMDIR,
|
if (__do_niscall2 (server, 1, NIS_RMDIR,
|
||||||
(xdrproc_t) xdr_nis_name,
|
(xdrproc_t) xdr_nis_name,
|
||||||
(caddr_t) &dir, (xdrproc_t) xdr_nis_error,
|
(caddr_t) &dir, (xdrproc_t) xdr_nis_error,
|
||||||
(caddr_t) &res, 0) != RPC_SUCCESS)
|
(caddr_t) &res, 0) != RPC_SUCCESS)
|
||||||
return NIS_RPCERROR;
|
return NIS_RPCERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,16 +37,16 @@ nis_servstate (const nis_server *serv, const nis_tag *tags,
|
|||||||
|
|
||||||
if (serv == NULL)
|
if (serv == NULL)
|
||||||
{
|
{
|
||||||
if (__do_niscall (NULL, 0, NIS_SERVSTATE, (xdrproc_t) xdr_nis_taglist,
|
if (__do_niscall (NULL, NIS_SERVSTATE, (xdrproc_t) xdr_nis_taglist,
|
||||||
(caddr_t) &taglist, (xdrproc_t) xdr_nis_taglist,
|
(caddr_t) &taglist, (xdrproc_t) xdr_nis_taglist,
|
||||||
(caddr_t) &tagres, 0) != RPC_SUCCESS)
|
(caddr_t) &tagres, 0) != RPC_SUCCESS)
|
||||||
return NIS_RPCERROR;
|
return NIS_RPCERROR;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (__do_niscall (serv, 1, NIS_SERVSTATE, (xdrproc_t) xdr_nis_taglist,
|
if (__do_niscall2 (serv, 1, NIS_SERVSTATE, (xdrproc_t) xdr_nis_taglist,
|
||||||
(caddr_t) &taglist, (xdrproc_t) xdr_nis_taglist,
|
(caddr_t) &taglist, (xdrproc_t) xdr_nis_taglist,
|
||||||
(caddr_t) &tagres, 0) != RPC_SUCCESS)
|
(caddr_t) &tagres, 0) != RPC_SUCCESS)
|
||||||
return NIS_RPCERROR;
|
return NIS_RPCERROR;
|
||||||
}
|
}
|
||||||
if (tagres.tags.tags_len > 0)
|
if (tagres.tags.tags_len > 0)
|
||||||
@ -84,16 +84,16 @@ nis_stats (const nis_server *serv, const nis_tag *tags,
|
|||||||
|
|
||||||
if (serv == NULL)
|
if (serv == NULL)
|
||||||
{
|
{
|
||||||
if (__do_niscall (NULL, 0, NIS_STATUS, (xdrproc_t) xdr_nis_taglist,
|
if (__do_niscall (NULL, NIS_STATUS, (xdrproc_t) xdr_nis_taglist,
|
||||||
(caddr_t) &taglist, (xdrproc_t) xdr_nis_taglist,
|
(caddr_t) &taglist, (xdrproc_t) xdr_nis_taglist,
|
||||||
(caddr_t) &tagres, 0) != RPC_SUCCESS)
|
(caddr_t) &tagres, 0) != RPC_SUCCESS)
|
||||||
return NIS_RPCERROR;
|
return NIS_RPCERROR;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (__do_niscall (serv, 1, NIS_STATUS, (xdrproc_t) xdr_nis_taglist,
|
if (__do_niscall2 (serv, 1, NIS_STATUS, (xdrproc_t) xdr_nis_taglist,
|
||||||
(caddr_t) &taglist, (xdrproc_t) xdr_nis_taglist,
|
(caddr_t) &taglist, (xdrproc_t) xdr_nis_taglist,
|
||||||
(caddr_t) &tagres, 0) != RPC_SUCCESS)
|
(caddr_t) &tagres, 0) != RPC_SUCCESS)
|
||||||
return NIS_RPCERROR;
|
return NIS_RPCERROR;
|
||||||
}
|
}
|
||||||
if (tagres.tags.tags_len > 0)
|
if (tagres.tags.tags_len > 0)
|
||||||
|
@ -197,9 +197,9 @@ nis_list (const_nis_name name, u_long flags,
|
|||||||
{
|
{
|
||||||
memset (res, '\0', sizeof (nis_result));
|
memset (res, '\0', sizeof (nis_result));
|
||||||
|
|
||||||
if ((result = __do_niscall (NULL, 0, NIS_IBLIST,
|
if ((result = __do_niscall (ibreq.ibr_name, NIS_IBLIST,
|
||||||
(xdrproc_t) xdr_ib_request,
|
(xdrproc_t) xdr_ib_request,
|
||||||
(caddr_t) & ibreq, (xdrproc_t) xdr_nis_result,
|
(caddr_t) &ibreq, (xdrproc_t) xdr_nis_result,
|
||||||
(caddr_t) res, flags)) != RPC_SUCCESS)
|
(caddr_t) res, flags)) != RPC_SUCCESS)
|
||||||
{
|
{
|
||||||
res->status = result;
|
res->status = result;
|
||||||
@ -276,9 +276,9 @@ nis_add_entry (const_nis_name name, const nis_object *obj,
|
|||||||
ibreq.ibr_obj.ibr_obj_val = nis_clone_object (obj, NULL);
|
ibreq.ibr_obj.ibr_obj_val = nis_clone_object (obj, NULL);
|
||||||
ibreq.ibr_obj.ibr_obj_len = 1;
|
ibreq.ibr_obj.ibr_obj_len = 1;
|
||||||
|
|
||||||
if ((status = __do_niscall (NULL, 0, NIS_IBADD,
|
if ((status = __do_niscall (ibreq.ibr_name, NIS_IBADD,
|
||||||
(xdrproc_t) xdr_ib_request,
|
(xdrproc_t) xdr_ib_request,
|
||||||
(caddr_t) & ibreq,
|
(caddr_t) &ibreq,
|
||||||
(xdrproc_t) xdr_nis_result,
|
(xdrproc_t) xdr_nis_result,
|
||||||
(caddr_t) res, 0)) != RPC_SUCCESS)
|
(caddr_t) res, 0)) != RPC_SUCCESS)
|
||||||
res->status = status;
|
res->status = status;
|
||||||
@ -308,7 +308,7 @@ nis_modify_entry (const_nis_name name, const nis_object *obj,
|
|||||||
ibreq.ibr_obj.ibr_obj_val = nis_clone_object (obj, NULL);
|
ibreq.ibr_obj.ibr_obj_val = nis_clone_object (obj, NULL);
|
||||||
ibreq.ibr_obj.ibr_obj_len = 1;
|
ibreq.ibr_obj.ibr_obj_len = 1;
|
||||||
|
|
||||||
if ((status = __do_niscall (NULL, 0, NIS_IBMODIFY,
|
if ((status = __do_niscall (ibreq.ibr_name, NIS_IBMODIFY,
|
||||||
(xdrproc_t) xdr_ib_request,
|
(xdrproc_t) xdr_ib_request,
|
||||||
(caddr_t) & ibreq, (xdrproc_t) xdr_nis_result,
|
(caddr_t) & ibreq, (xdrproc_t) xdr_nis_result,
|
||||||
(caddr_t) res, 0)) != RPC_SUCCESS)
|
(caddr_t) res, 0)) != RPC_SUCCESS)
|
||||||
@ -342,7 +342,7 @@ nis_remove_entry (const_nis_name name, const nis_object *obj,
|
|||||||
ibreq.ibr_obj.ibr_obj_len = 1;
|
ibreq.ibr_obj.ibr_obj_len = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((status = __do_niscall (NULL, 0, NIS_IBREMOVE,
|
if ((status = __do_niscall (ibreq.ibr_name, NIS_IBREMOVE,
|
||||||
(xdrproc_t) xdr_ib_request,
|
(xdrproc_t) xdr_ib_request,
|
||||||
(caddr_t) & ibreq, (xdrproc_t) xdr_nis_result,
|
(caddr_t) & ibreq, (xdrproc_t) xdr_nis_result,
|
||||||
(caddr_t) res, 0)) != RPC_SUCCESS)
|
(caddr_t) res, 0)) != RPC_SUCCESS)
|
||||||
@ -368,8 +368,9 @@ nis_first_entry (const_nis_name name)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((status = __do_niscall (NULL, 0, NIS_IBFIRST, (xdrproc_t) xdr_ib_request,
|
if ((status = __do_niscall (ibreq.ibr_name, NIS_IBFIRST,
|
||||||
(caddr_t) & ibreq, (xdrproc_t) xdr_nis_result,
|
(xdrproc_t) xdr_ib_request,
|
||||||
|
(caddr_t) &ibreq, (xdrproc_t) xdr_nis_result,
|
||||||
(caddr_t) res, 0)) != RPC_SUCCESS)
|
(caddr_t) res, 0)) != RPC_SUCCESS)
|
||||||
res->status = status;
|
res->status = status;
|
||||||
|
|
||||||
@ -406,8 +407,9 @@ nis_next_entry (const_nis_name name, const netobj *cookie)
|
|||||||
ibreq.ibr_cookie.n_len = cookie->n_len;
|
ibreq.ibr_cookie.n_len = cookie->n_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((status = __do_niscall (NULL, 0, NIS_IBNEXT, (xdrproc_t) xdr_ib_request,
|
if ((status = __do_niscall (ibreq.ibr_name, NIS_IBNEXT,
|
||||||
(caddr_t) & ibreq, (xdrproc_t) xdr_nis_result,
|
(xdrproc_t) xdr_ib_request,
|
||||||
|
(caddr_t) &ibreq, (xdrproc_t) xdr_nis_result,
|
||||||
(caddr_t) res, 0)) != RPC_SUCCESS)
|
(caddr_t) res, 0)) != RPC_SUCCESS)
|
||||||
res->status = status;
|
res->status = status;
|
||||||
|
|
||||||
|
65
nis/rpcsvc/nis_callback.x
Normal file
65
nis/rpcsvc/nis_callback.x
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
%/*
|
||||||
|
% * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
|
||||||
|
% * unrestricted use provided that this legend is included on all tape
|
||||||
|
% * media and as a part of the software program in whole or part. Users
|
||||||
|
% * may copy or modify Sun RPC without charge, but are not authorized
|
||||||
|
% * to license or distribute it to anyone else except as part of a product or
|
||||||
|
% * program developed by the user or with the express written consent of
|
||||||
|
% * Sun Microsystems, Inc.
|
||||||
|
% *
|
||||||
|
% * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
|
||||||
|
% * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
% * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
|
||||||
|
% *
|
||||||
|
% * Sun RPC is provided with no support and without any obligation on the
|
||||||
|
% * part of Sun Microsystems, Inc. to assist in its use, correction,
|
||||||
|
% * modification or enhancement.
|
||||||
|
% *
|
||||||
|
% * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
|
||||||
|
% * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
|
||||||
|
% * OR ANY PART THEREOF.
|
||||||
|
% *
|
||||||
|
% * In no event will Sun Microsystems, Inc. be liable for any lost revenue
|
||||||
|
% * or profits or other special, indirect and consequential damages, even if
|
||||||
|
% * Sun has been advised of the possibility of such damages.
|
||||||
|
% *
|
||||||
|
% * Sun Microsystems, Inc.
|
||||||
|
% * 2550 Garcia Avenue
|
||||||
|
% * Mountain View, California 94043
|
||||||
|
% */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* nis_callback.x
|
||||||
|
*
|
||||||
|
* Copyright (c) 1988-1992 Sun Microsystems Inc
|
||||||
|
* All Rights Reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
%#pragma ident "@(#)nis_callback.x 1.7 94/05/03 SMI"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* "@(#)zns_cback.x 1.2 90/09/10 Copyr 1990 Sun Micro"
|
||||||
|
*
|
||||||
|
* RPCL description of the Callback Service.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef RPC_HDR
|
||||||
|
%#include <rpcsvc/nis.h>
|
||||||
|
#endif
|
||||||
|
#ifdef RPC_XDR
|
||||||
|
%#include "nis_clnt.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef nis_object *obj_p;
|
||||||
|
|
||||||
|
struct cback_data {
|
||||||
|
obj_p entries<>; /* List of objects */
|
||||||
|
};
|
||||||
|
|
||||||
|
program CB_PROG {
|
||||||
|
version CB_VERS {
|
||||||
|
bool CBPROC_RECEIVE(cback_data) = 1;
|
||||||
|
void CBPROC_FINISH(void) = 2;
|
||||||
|
void CBPROC_ERROR(nis_error) = 3;
|
||||||
|
} = 1;
|
||||||
|
} = 100302;
|
@ -1 +0,0 @@
|
|||||||
#include <termios/sys/ttydefaults.h>
|
|
@ -39,7 +39,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* System wide defaults for terminal state.
|
* System wide defaults for terminal state. 4.4 BSD/generic GNU version.
|
||||||
*/
|
*/
|
||||||
#ifndef _SYS_TTYDEFAULTS_H_
|
#ifndef _SYS_TTYDEFAULTS_H_
|
||||||
#define _SYS_TTYDEFAULTS_H_
|
#define _SYS_TTYDEFAULTS_H_
|
||||||
@ -48,15 +48,7 @@
|
|||||||
* Defaults on "first" open.
|
* Defaults on "first" open.
|
||||||
*/
|
*/
|
||||||
#define TTYDEF_IFLAG (BRKINT | ISTRIP | ICRNL | IMAXBEL | IXON | IXANY)
|
#define TTYDEF_IFLAG (BRKINT | ISTRIP | ICRNL | IMAXBEL | IXON | IXANY)
|
||||||
#ifdef OXTABS
|
#define TTYDEF_OFLAG (OPOST | ONLCR | OXTABS)
|
||||||
# define TTYDEF_OFLAG (OPOST | ONLCR | OXTABS)
|
|
||||||
#else
|
|
||||||
# if defined TAB3
|
|
||||||
# define TTYDEF_OFLAG (OPOST | ONLCR | TAB3)
|
|
||||||
# else
|
|
||||||
# define TTYDEF_OFLAG (OPOST | ONLCR)
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
#define TTYDEF_LFLAG (ECHO | ICANON | ISIG | IEXTEN | ECHOE|ECHOKE|ECHOCTL)
|
#define TTYDEF_LFLAG (ECHO | ICANON | ISIG | IEXTEN | ECHOE|ECHOKE|ECHOCTL)
|
||||||
#define TTYDEF_CFLAG (CREAD | CS7 | PARENB | HUPCL)
|
#define TTYDEF_CFLAG (CREAD | CS7 | PARENB | HUPCL)
|
||||||
#define TTYDEF_SPEED (B9600)
|
#define TTYDEF_SPEED (B9600)
|
104
sysdeps/unix/bsd/sun/sunos4/sys/ttydefaults.h
Normal file
104
sysdeps/unix/bsd/sun/sunos4/sys/ttydefaults.h
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
/*-
|
||||||
|
* Copyright (c) 1982, 1986, 1993
|
||||||
|
* The Regents of the University of California. All rights reserved.
|
||||||
|
* (c) UNIX System Laboratories, Inc.
|
||||||
|
* All or some portions of this file are derived from material licensed
|
||||||
|
* to the University of California by American Telephone and Telegraph
|
||||||
|
* Co. or Unix System Laboratories, Inc. and are reproduced herein with
|
||||||
|
* the permission of UNIX System Laboratories, Inc.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. All advertising materials mentioning features or use of this software
|
||||||
|
* must display the following acknowledgement:
|
||||||
|
* This product includes software developed by the University of
|
||||||
|
* California, Berkeley and its contributors.
|
||||||
|
* 4. Neither the name of the University nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 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 POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* System wide defaults for terminal state. SunOS 4 version.
|
||||||
|
*/
|
||||||
|
#ifndef _SYS_TTYDEFAULTS_H_
|
||||||
|
#define _SYS_TTYDEFAULTS_H_
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Defaults on "first" open.
|
||||||
|
*/
|
||||||
|
#define TTYDEF_IFLAG (BRKINT | ISTRIP | ICRNL | IMAXBEL | IXON | IXANY)
|
||||||
|
#define TTYDEF_OFLAG (OPOST | ONLCR | XTABS)
|
||||||
|
#define TTYDEF_LFLAG (ECHO | ICANON | ISIG | IEXTEN | ECHOE|ECHOKE|ECHOCTL)
|
||||||
|
#define TTYDEF_CFLAG (CREAD | CS7 | PARENB | HUPCL)
|
||||||
|
#define TTYDEF_SPEED (B9600)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Control Character Defaults
|
||||||
|
*/
|
||||||
|
#define CTRL(x) (x&037)
|
||||||
|
#define CEOF CTRL('d')
|
||||||
|
#ifdef _POSIX_VDISABLE
|
||||||
|
# define CEOL _POSIX_VDISABLE
|
||||||
|
#else
|
||||||
|
# define CEOL ((unsigned char)'\377') /* XXX avoid _POSIX_VDISABLE */
|
||||||
|
#endif
|
||||||
|
#define CERASE 0177
|
||||||
|
#define CINTR CTRL('c')
|
||||||
|
#ifdef _POSIX_VDISABLE
|
||||||
|
# define CSTATUS _POSIX_VDISABLE
|
||||||
|
#else
|
||||||
|
# define CSTATUS ((unsigned char)'\377') /* XXX avoid _POSIX_VDISABLE */
|
||||||
|
#endif
|
||||||
|
#define CKILL CTRL('u')
|
||||||
|
#define CMIN 1
|
||||||
|
#define CQUIT 034 /* FS, ^\ */
|
||||||
|
#define CSUSP CTRL('z')
|
||||||
|
#define CTIME 0
|
||||||
|
#define CDSUSP CTRL('y')
|
||||||
|
#define CSTART CTRL('q')
|
||||||
|
#define CSTOP CTRL('s')
|
||||||
|
#define CLNEXT CTRL('v')
|
||||||
|
#define CDISCARD CTRL('o')
|
||||||
|
#define CWERASE CTRL('w')
|
||||||
|
#define CREPRINT CTRL('r')
|
||||||
|
#define CEOT CEOF
|
||||||
|
/* compat */
|
||||||
|
#define CBRK CEOL
|
||||||
|
#define CRPRNT CREPRINT
|
||||||
|
#define CFLUSH CDISCARD
|
||||||
|
|
||||||
|
/* PROTECTED INCLUSION ENDS HERE */
|
||||||
|
#endif /* !_SYS_TTYDEFAULTS_H_ */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* #define TTYDEFCHARS to include an array of default control characters.
|
||||||
|
*/
|
||||||
|
#ifdef TTYDEFCHARS
|
||||||
|
cc_t ttydefchars[NCCS] = {
|
||||||
|
CEOF, CEOL, CEOL, CERASE, CWERASE, CKILL, CREPRINT,
|
||||||
|
_POSIX_VDISABLE, CINTR, CQUIT, CSUSP, CDSUSP, CSTART, CSTOP, CLNEXT,
|
||||||
|
CDISCARD, CMIN, CTIME, CSTATUS, _POSIX_VDISABLE
|
||||||
|
};
|
||||||
|
#undef TTYDEFCHARS
|
||||||
|
#endif
|
@ -41,10 +41,13 @@ poll (fds, nfds, timeout)
|
|||||||
{
|
{
|
||||||
if (syscall)
|
if (syscall)
|
||||||
{
|
{
|
||||||
|
int errno_saved = errno;
|
||||||
int retval = __syscall_poll (fds, nfds, timeout);
|
int retval = __syscall_poll (fds, nfds, timeout);
|
||||||
|
|
||||||
if (retval >= 0 || errno != ENOSYS)
|
if (retval >= 0 || errno != ENOSYS)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
|
__set_errno (errno_saved);
|
||||||
}
|
}
|
||||||
|
|
||||||
must_emulate = 1;
|
must_emulate = 1;
|
||||||
|
104
sysdeps/unix/sysv/linux/sys/ttydefaults.h
Normal file
104
sysdeps/unix/sysv/linux/sys/ttydefaults.h
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
/*-
|
||||||
|
* Copyright (c) 1982, 1986, 1993
|
||||||
|
* The Regents of the University of California. All rights reserved.
|
||||||
|
* (c) UNIX System Laboratories, Inc.
|
||||||
|
* All or some portions of this file are derived from material licensed
|
||||||
|
* to the University of California by American Telephone and Telegraph
|
||||||
|
* Co. or Unix System Laboratories, Inc. and are reproduced herein with
|
||||||
|
* the permission of UNIX System Laboratories, Inc.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. All advertising materials mentioning features or use of this software
|
||||||
|
* must display the following acknowledgement:
|
||||||
|
* This product includes software developed by the University of
|
||||||
|
* California, Berkeley and its contributors.
|
||||||
|
* 4. Neither the name of the University nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 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 POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* System wide defaults for terminal state. Linux version.
|
||||||
|
*/
|
||||||
|
#ifndef _SYS_TTYDEFAULTS_H_
|
||||||
|
#define _SYS_TTYDEFAULTS_H_
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Defaults on "first" open.
|
||||||
|
*/
|
||||||
|
#define TTYDEF_IFLAG (BRKINT | ISTRIP | ICRNL | IMAXBEL | IXON | IXANY)
|
||||||
|
#define TTYDEF_OFLAG (OPOST | ONLCR | XTABS)
|
||||||
|
#define TTYDEF_LFLAG (ECHO | ICANON | ISIG | IEXTEN | ECHOE|ECHOKE|ECHOCTL)
|
||||||
|
#define TTYDEF_CFLAG (CREAD | CS7 | PARENB | HUPCL)
|
||||||
|
#define TTYDEF_SPEED (B9600)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Control Character Defaults
|
||||||
|
*/
|
||||||
|
#define CTRL(x) (x&037)
|
||||||
|
#define CEOF CTRL('d')
|
||||||
|
#ifdef _POSIX_VDISABLE
|
||||||
|
# define CEOL _POSIX_VDISABLE
|
||||||
|
#else
|
||||||
|
# define CEOL ((unsigned char)'\377') /* XXX avoid _POSIX_VDISABLE */
|
||||||
|
#endif
|
||||||
|
#define CERASE 0177
|
||||||
|
#define CINTR CTRL('c')
|
||||||
|
#ifdef _POSIX_VDISABLE
|
||||||
|
# define CSTATUS _POSIX_VDISABLE
|
||||||
|
#else
|
||||||
|
# define CSTATUS ((unsigned char)'\377') /* XXX avoid _POSIX_VDISABLE */
|
||||||
|
#endif
|
||||||
|
#define CKILL CTRL('u')
|
||||||
|
#define CMIN 1
|
||||||
|
#define CQUIT 034 /* FS, ^\ */
|
||||||
|
#define CSUSP CTRL('z')
|
||||||
|
#define CTIME 0
|
||||||
|
#define CDSUSP CTRL('y')
|
||||||
|
#define CSTART CTRL('q')
|
||||||
|
#define CSTOP CTRL('s')
|
||||||
|
#define CLNEXT CTRL('v')
|
||||||
|
#define CDISCARD CTRL('o')
|
||||||
|
#define CWERASE CTRL('w')
|
||||||
|
#define CREPRINT CTRL('r')
|
||||||
|
#define CEOT CEOF
|
||||||
|
/* compat */
|
||||||
|
#define CBRK CEOL
|
||||||
|
#define CRPRNT CREPRINT
|
||||||
|
#define CFLUSH CDISCARD
|
||||||
|
|
||||||
|
/* PROTECTED INCLUSION ENDS HERE */
|
||||||
|
#endif /* !_SYS_TTYDEFAULTS_H_ */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* #define TTYDEFCHARS to include an array of default control characters.
|
||||||
|
*/
|
||||||
|
#ifdef TTYDEFCHARS
|
||||||
|
cc_t ttydefchars[NCCS] = {
|
||||||
|
CEOF, CEOL, CEOL, CERASE, CWERASE, CKILL, CREPRINT,
|
||||||
|
_POSIX_VDISABLE, CINTR, CQUIT, CSUSP, CDSUSP, CSTART, CSTOP, CLNEXT,
|
||||||
|
CDISCARD, CMIN, CTIME, CSTATUS, _POSIX_VDISABLE
|
||||||
|
};
|
||||||
|
#undef TTYDEFCHARS
|
||||||
|
#endif
|
Reference in New Issue
Block a user