1
1
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@713 7dcaeef0-15fb-0310-b436-a5af3365683c
Этот коммит содержится в:
Andreas Schneider 2009-05-04 22:30:21 +00:00
родитель 6c51183f0e
Коммит dc07d46cca
3 изменённых файлов: 68 добавлений и 3 удалений

Просмотреть файл

@ -1,9 +1,12 @@
all: test_tunnel
all: test_tunnel test_exec
CFLAGS=-I../include/ -g -Wall
LDFLAGS=-lssh -L../libssh/.libs
LDFLAGS=-lssh -L../build/libssh/
test_tunnel: test_tunnel.o authentication.o connection.o
gcc -o $@ $^ $(LDFLAGS)
test_exec: test_exec.o authentication.o connection.o
gcc -o $@ $^ $(LDFLAGS)
clean:
rm -f *.o test_tunnel

Просмотреть файл

@ -47,7 +47,7 @@ static int auth_kbdint(SSH_SESSION *session){
}
int authenticate (SSH_SESSION *session){
int auth=ssh_userauth_autopubkey(session);
int auth=ssh_userauth_autopubkey(session, NULL);
char *password;
if(auth==SSH_AUTH_ERROR){
fprintf(stderr,"Authenticating with pubkey: %s\n",ssh_get_error(session));

62
tests/test_exec.c Обычный файл
Просмотреть файл

@ -0,0 +1,62 @@
/*
This file is distributed in public domain. You can do whatever you want
with its content.
*/
#include <libssh/libssh.h>
#include <stdio.h>
#include <string.h>
#include "tests.h"
void do_connect(SSH_SESSION *session) {
char buf[4096] = {0};
CHANNEL *channel;
int error = ssh_connect(session);
if (error != SSH_OK) {
fprintf(stderr,"Error at connection: %s\n", ssh_get_error(session));
return;
}
printf("Connected\n");
ssh_is_server_known(session);
error = authenticate(session);
if(error != SSH_AUTH_SUCCESS) {
fprintf(stderr,"Error at authentication: %s\n", ssh_get_error(session));
return;
}
printf("Authenticated\n");
channel = channel_new(session);
channel_open_session(channel);
printf("Execute 'ls' on the channel\n");
error = channel_request_exec(channel, "ls");
if(error != SSH_OK){
fprintf(stderr, "Error executing command: %s\n", ssh_get_error(session));
return;
}
printf("--------------------output----------------------\n");
while (channel_read(channel, buf, sizeof(buf), 0)) {
printf("%s", buf);
}
printf("\n");
printf("---------------------end------------------------\n");
channel_send_eof(channel);
fprintf(stderr, "Exit status: %d\n", channel_get_exit_status(channel));
printf("\nChannel test finished\n");
channel_close(channel);
channel_free(channel);
}
int main(int argc, char **argv){
SSH_OPTIONS *options=set_opts(argc, argv);
SSH_SESSION *session=ssh_new();
if(options==NULL){
return 1;
}
ssh_set_options(session,options);
do_connect(session);
ssh_disconnect(session);
ssh_finalize();
return 0;
}