SCF_Session_getTerminal man page on SunOS

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
SunOS logo
[printable version]

SCF_Session_getTerminal(3SSmartcard LibrarySCF_Session_getTerminal(3SMARTCARD)

NAME
       SCF_Session_getTerminal - establish a context with a smartcard terminal
       (reader)

SYNOPSIS
       cc [ flag... ] file... -lsmartcard [ library...]
       #include <smartcard/scf.h>

       SCF_Status_t SCF_Session_getTerminal(SCF_Session_t session, const  char
       *terminalName, SCF_Terminal_t *terminal);

PARAMETERS
       session	       The  session  (from SCF_Session_getSession(3SMARTCARD))
		       containing a terminal to be opened.

       terminal	       A pointer to an SCF_Terminal_t. If the terminal is suc‐
		       cessfully  opened,  a  handle  for the terminal will be
		       returned through this parameter.

       terminalName    Specifies the name of the terminal to access. If termi‐
		       nalName	is  a  null  pointer,  it  indicates  that the
		       library should connect with the	default	 terminal  for
		       the session.

DESCRIPTION
       The  SCF_Session_getTerminal()  function	 establishes  a context with a
       specific smartcard terminal (also known as a reader)  in	 the  session.
       Terminal	 objects  are  used  for detecting card movement (insertion or
       removal) and to create card objects for accessing a specific card.

       The list of available  terminal	names  can  be	retrieved  by  calling
       SCF_Session_getInfo(3SMARTCARD).	 Unless the user explicitly requests a
       specific terminal, applications should use the session's default termi‐
       nal  by	calling	 SCF_Session_getTerminal() with a null pointer for the
       terminal name. This eliminates the need to first process an  available-
       terminal	 list  with  just  one	element	 on systems with only a single
       smartcard terminal. On multi-terminal systems, the user can  preconfig‐
       ure  one	 of  the terminals as the default (or preferred) terminal. See
       USAGE below.

       If SCF_Session_getTerminal() is called multiple times in the same  ses‐
       sion to access the same physical terminal, the same SCF_Terminal_t will
       be returned in each call. Multithreaded applications must take care  to
       avoid  having  one  thread  close  a  terminal  that is still needed by
       another thread. This can be accomplished	 by  coordination  within  the
       application  or	by having each thread open a separate session to avoid
       interference.

       When the terminal is no longer  needed,	SCF_Terminal_close(3SMARTCARD)
       should be called to release terminal resources. Closing a terminal will
       also close any cards opened from the terminal.

RETURN VALUES
       Upon success, SCF_STATUS_SUCCESS is returned and terminal contains  the
       opened  terminal.  Otherwise,  an  error value is returned and terminal
       remains unaltered.

ERRORS
       The SCF_Session_getTerminal() function will fail if:

       SCF_STATUS_BADARGS      The terminal argument is a null pointer.

       SCF_STATUS_BADHANDLE    The session was closed or is invalid.

       SCF_STATUS_BADTERMINAL  The specified terminalName  is  not  valid  for
			       this session, or the default terminal could not
			       be opened because there are no terminals avail‐
			       able in this session.

       SCF_STATUS_COMMERROR    The connection to the server was lost.

       SCF_STATUS_FAILED       An internal error occurred.

EXAMPLES
       Example 1: Use the default terminal.

       SCF_Status_t status;
       SCF_Session_t mySession;
       SCF_Terminal_t myTerminal;
       char *myName;

       /* (...call SCF_Session_getSession to open mySession...) */

       status = SCF_Session_getTerminal(mySession, NULL, &myTerminal);
       if (status != SCF_STATUS_SUCCESS) exit(1);

       status = SCF_Terminal_getInfo(myTerminal, "name", &myName);
       if (status != SCF_STATUS_SUCCESS) exit(1);

       printf("Please insert a card into the terminal named %s\n", myName);

       /* ... */

       Example 2: Open a terminal by name.

       SCF_Status_t status;
       SCF_Session_t mySession;
       SCF_Terminal_t myTerminal;
       char *myName;

       /* (...call SCF_Session_getSession to open mySession...) */

       /*
	* The name should be selected from the list of terminal names
	* available from SCF_Session_getInfo, but it could also be
	* read from an appliation's config file or from user input.
	*/
       myName = "SunInternalReader";

       status = SCF_Session_getTerminal(mySession, myName, &myTerminal);
       if (status == SCF_STATUS_BADTERMINAL) {
	   printf("There is no terminal named %s.\n", myName);
	   exit(1);
       } else if (status != SCF_STATUS_SUCCESS) exit(2);

       /* ... */

USAGE
       When  using  the Solaris OCF smartcard framework, the default reader is
       specified by the	 ocf.client.default.defaultreader  property.  If  this
       property	 is  not  set,	the  first  available  reader is chosen as the
       default. Users can set the SCF_DEFAULT_TERMINAL environment variable to
       the  name  of  a terminal to override the normal default. The smartcard
       utility can also be used to add terminals to or remove  terminals  from
       the  system.  See smartcard(1M) for information on how to add or modify
       the OCF property.

       Terminals can be accessed only by the user who expected to have	physi‐
       cal  access to the terminal. By default, this user is assumed to be the
       owner of /dev/console and the superuser. Certain terminals such as  Sun
       Ray  appliances	can  use  a different method to restrict access to the
       terminal.

       The framework also uses the DISPLAY  environment	 variable  to  further
       restrict	 which	terminals are listed for a user. By default, terminals
       are associated with the ":0" display. Sun Ray terminals are  associated
       with  the  display  for that session, for example ":25". If the DISPLAY
       environment variable is not set or is a display on another host, it  is
       treated	as  though  it were set to ":0". Terminals not associated with
       the user's DISPLAY are not listed.  To  override	 this  behaviour,  the
       SCF_FILTER_KEY  environment variable can be set to the desired display,
       for example ":0", ":25", and so on. To list all terminals to  which   a
       user  has  access,  SCF_FILTER_KEY  can	be set to the special value of
       ":*".

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │Evolving			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │MT-Level		     │MT-Safe			   │
       └─────────────────────────────┴─────────────────────────────┘

SEE ALSO
       smartcard(1M),	libsmartcard(3LIB),   SCF_Session_getInfo(3SMARTCARD),
       SCF_Session_getSession(3SMARTCARD),     SCF_Terminal_close(3SMARTCARD),
       attributes(5)

SunOS 5.10			  15 May 20SCF_Session_getTerminal(3SMARTCARD)
[top]

List of man pages available for SunOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net