.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "REMCTL_SET_CCACHE 3" .TH REMCTL_SET_CCACHE 3 "2014-07-02" "3.9" "remctl Library Reference" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" remctl_set_ccache \- Set credential cache for remctl client connections .SH "SYNOPSIS" .IX Header "SYNOPSIS" #include .PP int \fBremctl_set_ccache\fR(struct remctl *\fIr\fR, const char *\fIccache\fR); .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIremctl_set_ccache()\fR tells the the remctl client library to use \fIccache\fR as the credential cache for authentication to a remctl server. It will affect any subsequent \fIremctl_open()\fR calls on the same struct remctl object (and may have broader effects; see \s-1WARNINGS\s0 below). \fIccache\fR is normally a path to a file in the file system that holds Kerberos credentials, but may take other values depending on the underlying Kerberos implementation used by GSS-API. .PP Calling this function will normally override any \s-1KRB5CCNAME\s0 environment setting. If the caller wishes to honor that setting, it should either not call this function or check whether that environment variable is set first. .SH "RETURN VALUE" .IX Header "RETURN VALUE" \&\fIremctl_set_ccache()\fR returns true on success and false on failure. On failure, the caller should call \fIremctl_error()\fR to retrieve the error message. .PP This function will always return failure if the underlying GSS-API implementation against which the remctl client library was compiled does not support setting the Kerberos credential cache. The caller should be prepared for that. Falling back on setting the \s-1KRB5CCNAME\s0 environment variable is often a reasonable choice. .SH "EXAMPLES" .IX Header "EXAMPLES" Here's an example of attempting to use this function to set a ticket cache location and falling back on setting \s-1KRB5CCNAME\s0 in the environment if this function is not supported. .PP .Vb 1 \& struct remctl r; \& \& r = remctl_new(); \& if (r != NULL) \& if (!remctl_set_ccache(r, "/tmp/krb5cc_example")) \& putenv("KRB5CCNAME=/tmp/krb5cc_example"); .Ve .PP This assumes that any failure is due to lack of support from the underlying library rather than some other cause. .SH "COMPATIBILITY" .IX Header "COMPATIBILITY" This interface was added in version 3.0, but that version would always change the ticket cache used by all GSS-API calls in the same process. Support for the \fIgss_krb5_import_cred()\fR method of isolating the changed ticket cache to only this remctl client object was added in version 3.5. .SH "WARNINGS" .IX Header "WARNINGS" The effect of this function is only localized to this specific remctl client context if the remctl client library was built against a Kerberos as well as GSS-API library and the GSS-API library supported \&\fIgss_krb5_import_cred()\fR. Otherwise, it falls back to calling \&\fIgss_krb5_ccache_name()\fR, which sets the credential cache used by the underlying GSS-API library for every GSS-API operation in the current execution context (process or thread), not just for this remctl object or even just for remctl operations. This function may therefore change global execution state and may affect other GSS-API operations done elsewhere in the same process. .SH "AUTHOR" .IX Header "AUTHOR" Russ Allbery .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright 2011, 2013, 2014 The Board of Trustees of the Leland Stanford Junior University .PP Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIremctl_new\fR\|(3), \fIremctl_open\fR\|(3), \fIremctl_error\fR\|(3) .PP The current version of the remctl library and complete details of the remctl protocol are available from its web page at .