mirror of
https://github.com/nmap/nmap.git
synced 2025-12-07 13:11:28 +00:00
119 lines
3.1 KiB
C
119 lines
3.1 KiB
C
/*
|
|
* Copyright (c) 1999, 2000
|
|
* Politecnico di Torino. All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that: (1) source code distributions
|
|
* retain the above copyright notice and this paragraph in its entirety, (2)
|
|
* distributions including binary code include the above copyright notice and
|
|
* this paragraph in its entirety in the documentation or other materials
|
|
* provided with the distribution, and (3) all advertising materials mentioning
|
|
* features or use of this software display the following acknowledgement:
|
|
* ``This product includes software developed by the Politecnico
|
|
* di Torino, and its contributors.'' 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 ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
|
|
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
*/
|
|
|
|
#define u_long unsigned long
|
|
#define u_int unsigned int
|
|
#define u_short unsigned short
|
|
#define enum_t int
|
|
#define caddr_t char*
|
|
|
|
struct opaque_auth {
|
|
enum_t oa_flavor; /* flavor of auth */
|
|
caddr_t oa_base; /* address of more auth stuff */
|
|
u_int oa_length; /* not to exceed MAX_AUTH_BYTES */
|
|
};
|
|
|
|
struct accepted_reply {
|
|
struct opaque_auth ar_verf;
|
|
enum accept_stat ar_stat;
|
|
union {
|
|
struct {
|
|
u_long low;
|
|
u_long high;
|
|
} AR_versions;
|
|
/*struct {
|
|
caddr_t where;
|
|
xdrproc_t proc;
|
|
} AR_results;
|
|
/* and many other null cases */
|
|
} ru;
|
|
#define ar_results ru.AR_results
|
|
#define ar_vers ru.AR_versions
|
|
};
|
|
|
|
struct rejected_reply {
|
|
enum reject_stat rj_stat;
|
|
union {
|
|
struct {
|
|
u_long low;
|
|
u_long high;
|
|
} RJ_versions;
|
|
enum auth_stat RJ_why; /* why authentication did not work */
|
|
} ru;
|
|
#define rj_vers ru.RJ_versions
|
|
#define rj_why ru.RJ_why
|
|
};
|
|
|
|
struct reply_body {
|
|
enum reply_stat rp_stat;
|
|
union {
|
|
struct accepted_reply RP_ar;
|
|
struct rejected_reply RP_dr;
|
|
} ru;
|
|
#define rp_acpt ru.RP_ar
|
|
#define rp_rjct ru.RP_dr
|
|
};
|
|
|
|
struct call_body {
|
|
u_long cb_rpcvers; /* must be equal to two */
|
|
u_long cb_prog;
|
|
u_long cb_vers;
|
|
u_long cb_proc;
|
|
struct opaque_auth cb_cred;
|
|
struct opaque_auth cb_verf; /* protocol specific - provided by client */
|
|
};
|
|
|
|
struct rpc_msg {
|
|
u_long rm_xid;
|
|
enum msg_type rm_direction;
|
|
union {
|
|
struct call_body RM_cmb;
|
|
struct reply_body RM_rmb;
|
|
} ru;
|
|
#define rm_call ru.RM_cmb
|
|
#define rm_reply ru.RM_rmb
|
|
};
|
|
|
|
#define MSG_ACCEPTED 0
|
|
#define MSG_DENIED 1
|
|
|
|
#define SUCCESS 0
|
|
#define PROG_UNAVAIL 1
|
|
#define PROG_MISMATCH 2
|
|
#define PROC_UNAVAIL 3
|
|
#define GARBAGE_ARGS 4
|
|
#define SYSTEM_ERR 5
|
|
|
|
#define PMAPPORT ((u_short)111)
|
|
#define PMAPPROG ((u_long)100000)
|
|
#define PMAPVERS ((u_long)2)
|
|
#define PMAPVERS_PROTO ((u_long)2)
|
|
#define PMAPVERS_ORIG ((u_long)1)
|
|
#define PMAPPROC_NULL ((u_long)0)
|
|
#define PMAPPROC_SET ((u_long)1)
|
|
#define PMAPPROC_UNSET ((u_long)2)
|
|
#define PMAPPROC_GETPORT ((u_long)3)
|
|
#define PMAPPROC_DUMP ((u_long)4)
|
|
#define PMAPPROC_CALLIT ((u_long)5)
|
|
|
|
#define CALL 0
|
|
#define REPLY 1
|