晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /usr/include/gssrpc/ |
Upload File : |
/* include/gssrpc/auth_gssapi.h - GSS-API style auth parameters for RPC */
/*
* Copyright 1993 OpenVision Technologies, Inc., All Rights Reserved.
*/
#ifndef GSSRPC_AUTH_GSSAPI_H
#define GSSRPC_AUTH_GSSAPI_H
GSSRPC__BEGIN_DECLS
#define AUTH_GSSAPI_EXIT 0
#define AUTH_GSSAPI_INIT 1
#define AUTH_GSSAPI_CONTINUE_INIT 2
#define AUTH_GSSAPI_MSG 3
#define AUTH_GSSAPI_DESTROY 4
/*
* Yuck. Some sys/types.h files leak symbols
*/
#ifdef major
#undef major
#endif
#ifdef minor
#undef minor
#endif
typedef struct _auth_gssapi_name {
char *name;
gss_OID type;
} auth_gssapi_name;
typedef struct _auth_gssapi_creds {
uint32_t version;
bool_t auth_msg;
gss_buffer_desc client_handle;
} auth_gssapi_creds;
typedef struct _auth_gssapi_init_arg {
uint32_t version;
gss_buffer_desc token;
} auth_gssapi_init_arg;
typedef struct _auth_gssapi_init_res {
uint32_t version;
gss_buffer_desc client_handle;
OM_uint32 gss_major, gss_minor;
gss_buffer_desc token;
gss_buffer_desc signed_isn;
} auth_gssapi_init_res;
typedef void (*auth_gssapi_log_badauth_func)
(OM_uint32 major,
OM_uint32 minor,
struct sockaddr_in *raddr,
caddr_t data);
/* auth_gssapi_log_badauth_func is IPv4-specific; this version gives the
* transport handle so the fd can be used to get the address. */
typedef void (*auth_gssapi_log_badauth2_func)
(OM_uint32 major,
OM_uint32 minor,
SVCXPRT *xprt,
caddr_t data);
typedef void (*auth_gssapi_log_badverf_func)
(gss_name_t client,
gss_name_t server,
struct svc_req *rqst,
struct rpc_msg *msg,
caddr_t data);
typedef void (*auth_gssapi_log_miscerr_func)
(struct svc_req *rqst,
struct rpc_msg *msg,
char *error,
caddr_t data);
bool_t xdr_gss_buf(XDR *, gss_buffer_t);
bool_t xdr_authgssapi_creds(XDR *, auth_gssapi_creds *);
bool_t xdr_authgssapi_init_arg(XDR *, auth_gssapi_init_arg *);
bool_t xdr_authgssapi_init_res(XDR *, auth_gssapi_init_res *);
bool_t auth_gssapi_wrap_data
(OM_uint32 *major, OM_uint32 *minor,
gss_ctx_id_t context, uint32_t seq_num, XDR
*out_xdrs, bool_t (*xdr_func)(), caddr_t
xdr_ptr);
bool_t auth_gssapi_unwrap_data
(OM_uint32 *major, OM_uint32 *minor,
gss_ctx_id_t context, uint32_t seq_num, XDR
*in_xdrs, bool_t (*xdr_func)(), caddr_t
xdr_ptr);
AUTH *auth_gssapi_create
(CLIENT *clnt,
OM_uint32 *major_status,
OM_uint32 *minor_status,
gss_cred_id_t claimant_cred_handle,
gss_name_t target_name,
gss_OID mech_type,
OM_uint32 req_flags,
OM_uint32 time_req,
gss_OID *actual_mech_type,
OM_uint32 *ret_flags,
OM_uint32 *time_rec);
AUTH *auth_gssapi_create_default
(CLIENT *clnt, char *service_name);
void auth_gssapi_display_status
(char *msg, OM_uint32 major,
OM_uint32 minor);
bool_t auth_gssapi_seal_seq
(gss_ctx_id_t context, uint32_t seq_num, gss_buffer_t out_buf);
bool_t auth_gssapi_unseal_seq
(gss_ctx_id_t context, gss_buffer_t in_buf, uint32_t *seq_num);
bool_t svcauth_gssapi_set_names
(auth_gssapi_name *names, int num);
void svcauth_gssapi_unset_names
(void);
void svcauth_gssapi_set_log_badauth_func
(auth_gssapi_log_badauth_func func,
caddr_t data);
void svcauth_gssapi_set_log_badauth2_func
(auth_gssapi_log_badauth2_func func,
caddr_t data);
void svcauth_gssapi_set_log_badverf_func
(auth_gssapi_log_badverf_func func,
caddr_t data);
void svcauth_gssapi_set_log_miscerr_func
(auth_gssapi_log_miscerr_func func,
caddr_t data);
void svcauth_gss_set_log_badauth_func(auth_gssapi_log_badauth_func,
caddr_t);
void svcauth_gss_set_log_badauth2_func(auth_gssapi_log_badauth2_func,
caddr_t);
void svcauth_gss_set_log_badverf_func(auth_gssapi_log_badverf_func,
caddr_t);
void svcauth_gss_set_log_miscerr_func(auth_gssapi_log_miscerr_func,
caddr_t data);
#define GSS_COPY_BUFFER(dest, src) { \
(dest).length = (src).length; \
(dest).value = (src).value; }
#define GSS_DUP_BUFFER(dest, src) { \
(dest).length = (src).length; \
(dest).value = (void *) malloc((dest).length); \
memcpy((dest).value, (src).value, (dest).length); }
#define GSS_BUFFERS_EQUAL(b1, b2) (((b1).length == (b2).length) && \
!memcmp((b1).value,(b2).value,(b1.length)))
GSSRPC__END_DECLS
#endif /* !defined(GSSRPC_AUTH_GSSAPI_H) */