Print this page
OS-3280 need a way to specify the root of a native system in the lx brand
OS-3279 lx brand should allow delegated datasets
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
*** 35,55 ****
* University Acknowledgment- Portions of this document are derived from
* software developed by the University of California, Berkeley, and its
* contributors.
*/
- #pragma ident "%Z%%M% %I% %E% SMI"
-
/*LINTLIBRARY*/
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include "curses_inc.h"
#define TERMPATH "/usr/share/lib/terminfo/"
#define TERMPATHLEN 512
--- 35,54 ----
* University Acknowledgment- Portions of this document are derived from
* software developed by the University of California, Berkeley, and its
* contributors.
*/
/*LINTLIBRARY*/
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
+ #include <zone.h>
#include "curses_inc.h"
#define TERMPATH "/usr/share/lib/terminfo/"
#define TERMPATHLEN 512
*** 270,282 ****
if ((tfd < 0) && (errno == EACCES))
goto cant_read;
}
if (tfd < 0) {
/* /usr/share/lib/terminfo/?/$TERM */
if (snprintf(fname, sizeof (fname),
! "%s/%c/%s", TERMPATH, *term, term) >= sizeof (fname)) {
term_errno = TERMINFO_TOO_LONG;
goto out_err;
}
tfd = open(fname, 0);
--- 269,283 ----
if ((tfd < 0) && (errno == EACCES))
goto cant_read;
}
if (tfd < 0) {
+ const char *zroot = zone_get_nroot();
/* /usr/share/lib/terminfo/?/$TERM */
if (snprintf(fname, sizeof (fname),
! "%s/%s/%c/%s", zroot == NULL ? "" : zroot, TERMPATH,
! *term, term) >= sizeof (fname)) {
term_errno = TERMINFO_TOO_LONG;
goto out_err;
}
tfd = open(fname, 0);