mirror of
https://git.libssh.org/projects/libssh.git
synced 2025-10-23 03:28:55 +03:00
This is mostly mechanical change initializing all the pointers I was able to
find with some grep and manual review of sources and examples.
Used the following greps (which yield some false positives though):
git grep " \w* *\* *\w*;$"
git grep " ssh_session \w*;"
git grep " ssh_channel \w*;"
git grep " struct ssh_iterator \*\w*;"
git grep " ssh_bind \w*;"
git grep " ssh_key \w*;"
git grep " ssh_string \w*;"
git grep " ssh_buffer \w*;"
git grep " HMACCTX \w*;"
git grep " SHACTX \w*;"
grep -rinP '^(?!.*=)\s*(?:\w+\s+)*\w+\s*\*\s*\w+\s*;'
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
71 lines
1.9 KiB
C
71 lines
1.9 KiB
C
/*
|
|
* connect_ssh.c
|
|
* This file contains an example of how to connect to a
|
|
* SSH server using libssh
|
|
*/
|
|
|
|
/*
|
|
Copyright 2009 Aris Adamantiadis
|
|
|
|
This file is part of the SSH Library
|
|
|
|
You are free to copy this file, modify it in any way, consider it being public
|
|
domain. This does not apply to the rest of the library though, but it is
|
|
allowed to cut-and-paste working code from this file to any license of
|
|
program.
|
|
The goal is to show the API in action. It's not a reference on how terminal
|
|
clients must be made or how a client should react.
|
|
*/
|
|
|
|
#include <libssh/libssh.h>
|
|
#include "examples_common.h"
|
|
#include <stdio.h>
|
|
|
|
ssh_session connect_ssh(const char *host, const char *user, int verbosity)
|
|
{
|
|
ssh_session session = NULL;
|
|
int auth = 0;
|
|
|
|
session = ssh_new();
|
|
if (session == NULL) {
|
|
return NULL;
|
|
}
|
|
|
|
if (user != NULL) {
|
|
if (ssh_options_set(session, SSH_OPTIONS_USER, user) < 0) {
|
|
ssh_free(session);
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
if (ssh_options_set(session, SSH_OPTIONS_HOST, host) < 0) {
|
|
ssh_free(session);
|
|
return NULL;
|
|
}
|
|
ssh_options_set(session, SSH_OPTIONS_LOG_VERBOSITY, &verbosity);
|
|
if (ssh_connect(session)) {
|
|
fprintf(stderr, "Connection failed : %s\n", ssh_get_error(session));
|
|
ssh_disconnect(session);
|
|
ssh_free(session);
|
|
return NULL;
|
|
}
|
|
if (verify_knownhost(session) < 0) {
|
|
ssh_disconnect(session);
|
|
ssh_free(session);
|
|
return NULL;
|
|
}
|
|
auth = authenticate_console(session);
|
|
if (auth == SSH_AUTH_SUCCESS) {
|
|
return session;
|
|
} else if (auth == SSH_AUTH_DENIED) {
|
|
fprintf(stderr, "Authentication failed\n");
|
|
} else {
|
|
fprintf(stderr,
|
|
"Error while authenticating : %s\n",
|
|
ssh_get_error(session));
|
|
}
|
|
ssh_disconnect(session);
|
|
ssh_free(session);
|
|
return NULL;
|
|
}
|