fix warnings and allow passing user name and password on the command line

This commit is contained in:
Daniel Stenberg 2006-12-21 14:06:49 +00:00
parent ef8d1a2af8
commit f7f897df07

View File

@ -14,12 +14,15 @@
#include <stdio.h> #include <stdio.h>
#include <ctype.h> #include <ctype.h>
int main(int argc, char *argv[]) { int main(int argc, char *argv[])
{
int sock, i, auth_pw = 1; int sock, i, auth_pw = 1;
struct sockaddr_in sin; struct sockaddr_in sin;
const char *fingerprint; const char *fingerprint;
LIBSSH2_SESSION *session; LIBSSH2_SESSION *session;
LIBSSH2_CHANNEL *channel; LIBSSH2_CHANNEL *channel;
char *username=(char *)"username";
char *password=(char *)"password";
#ifdef WIN32 #ifdef WIN32
WSADATA wsadata; WSADATA wsadata;
@ -61,15 +64,22 @@ int main(int argc, char *argv[]) {
} }
printf("\n"); printf("\n");
if(argc > 1) {
username = argv[1];
}
if(argc > 2) {
password = argv[2];
}
if (auth_pw) { if (auth_pw) {
/* We could authenticate via password */ /* We could authenticate via password */
if (libssh2_userauth_password(session, "username", "password")) { if (libssh2_userauth_password(session, username, password)) {
printf("Authentication by password failed.\n"); printf("Authentication by password failed.\n");
goto shutdown; goto shutdown;
} }
} else { } else {
/* Or by public key */ /* Or by public key */
if (libssh2_userauth_publickey_fromfile(session, "username", "/home/username/.ssh/id_rsa.pub", "/home/username/.ssh/id_rsa", "pasphrase")) { if (libssh2_userauth_publickey_fromfile(session, username, "/home/username/.ssh/id_rsa.pub", "/home/username/.ssh/id_rsa", password)) {
printf("\tAuthentication by public key failed\n"); printf("\tAuthentication by public key failed\n");
goto shutdown; goto shutdown;
} }
@ -84,12 +94,12 @@ int main(int argc, char *argv[]) {
/* Some environment variables may be set, /* Some environment variables may be set,
* It's up to the server which ones it'll allow though * It's up to the server which ones it'll allow though
*/ */
libssh2_channel_setenv(channel, "FOO", "bar"); libssh2_channel_setenv(channel, (char *)"FOO", (char *)"bar");
/* Request a terminal with 'vanilla' terminal emulation /* Request a terminal with 'vanilla' terminal emulation
* See /etc/termcap for more options * See /etc/termcap for more options
*/ */
if (libssh2_channel_request_pty(channel, "vanilla")) { if (libssh2_channel_request_pty(channel, (char *)"vanilla")) {
fprintf(stderr, "Failed requesting pty\n"); fprintf(stderr, "Failed requesting pty\n");
goto skip_shell; goto skip_shell;
} }