The SSH helper functions.
[The libssh API]

Different helper functions used in the SSH Library. More...

Functions

char * ssh_basename (const char *path)
 basename - parse filename component.
char * ssh_dirname (const char *path)
 Parse directory component.
int ssh_getpass (const char *prompt, char *buf, size_t len, int echo, int verify)
 Get a password from the console.
int ssh_mkdir (const char *pathname, mode_t mode)
 Attempts to create a directory with the given pathname.
char * ssh_path_expand_tilde (const char *d)
 Expand a directory starting with a tilde '~'.
int ssh_timeout_update (struct ssh_timestamp *ts, int timeout)
 updates a timeout value so it reflects the remaining time
const char * ssh_version (int req_version)
 Check if libssh is the required version or get the version string.

Detailed Description

Different helper functions used in the SSH Library.


Function Documentation

char* ssh_basename ( const char *  path  ) 

basename - parse filename component.

basename breaks a null-terminated pathname string into a filename component. ssh_basename() returns the component following the final '/'. Trailing '/' characters are not counted as part of the pathname.

Parameters:
[in] path The path to parse.
Returns:
The filename of path or NULL if we can't allocate memory. If path is a the string "/", basename returns the string "/". If path is NULL or an empty string, "." is returned.

Referenced by ssh_scp_push_directory(), and ssh_scp_push_file().

char* ssh_dirname ( const char *  path  ) 

Parse directory component.

dirname breaks a null-terminated pathname string into a directory component. In the usual case, ssh_dirname() returns the string up to, but not including, the final '/'. Trailing '/' characters are not counted as part of the pathname. The caller must free the memory.

Parameters:
[in] path The path to parse.
Returns:
The dirname of path or NULL if we can't allocate memory. If path does not contain a slash, c_dirname() returns the string ".". If path is the string "/", it returns the string "/". If path is NULL or an empty string, "." is returned.

Referenced by ssh_write_knownhost().

int ssh_getpass ( const char *  prompt,
char *  buf,
size_t  len,
int  echo,
int  verify 
)

Get a password from the console.

You should make sure that the buffer is an empty string!

You can also use this function to ask for a username. Then you can fill the buffer with the username and it is shows to the users. If the users just presses enter the buffer will be untouched.

   char username[128];

   snprintf(username, sizeof(username), "john");

   ssh_getpass("Username:", username, sizeof(username), 1, 0);

The prompt will look like this:

Username: [john]

If you press enter then john is used as the username, or you can type it in to change it.

Parameters:
[in] prompt The prompt to show to ask for the password.
[out] buf The buffer the password should be stored. It NEEDS to be empty or filled out.
[in] len The length of the buffer.
[in] echo Should we echo what you type.
[in] verify Should we ask for the password twice.
Returns:
0 on success, -1 on error.

int ssh_mkdir ( const char *  pathname,
mode_t  mode 
)

Attempts to create a directory with the given pathname.

This is the portable version of mkdir, mode is ignored on Windows systems.

Parameters:
[in] pathname The path name to create the directory.
[in] mode The permissions to use.
Returns:
0 on success, < 0 on error with errno set.

Referenced by ssh_write_knownhost().

char* ssh_path_expand_tilde ( const char *  d  ) 

Expand a directory starting with a tilde '~'.

Parameters:
[in] d The directory to expand.
Returns:
The expanded directory, NULL on error.

Referenced by ssh_options_set().

int ssh_timeout_update ( struct ssh_timestamp *  ts,
int  timeout 
)

updates a timeout value so it reflects the remaining time

Parameters:
[in] ts pointer to an existing timestamp
[in] timeout timeout in milliseconds. Negative values mean infinite timeout
Returns:
remaining time in milliseconds, 0 if elapsed, -1 if never, -2 if option-set-timeout.

const char* ssh_version ( int  req_version  ) 

Check if libssh is the required version or get the version string.

Parameters:
[in] req_version The version required.
Returns:
If the version of libssh is newer than the version required it will return a version string. NULL if the version is older.
Example:

  if (ssh_version(SSH_VERSION_INT(0,2,1)) == NULL) {
    fprintf(stderr, "libssh version is too old!\n");
    exit(1);
  }

  if (debug) {
    printf("libssh %s\n", ssh_version(0));
  }


Generated on Thu Jan 7 20:57:29 2016 for libssh by  doxygen 1.5.6