Hi all,
I am currently writing a program that will use libssh2 on Ubuntu 10.04. To make sure I have SSH working, I installed openssh-server and tested it by connecting to it. I also successfully SCP'd a file to the server using the "scp" command. I then did a small test by using libssh2 to connect to the ssh server, open a ssh channel and run a command such as "uptime". This all worked perfectly. However, I ran into a problem when trying to send a file using SCP. I have followed the example code here: http://www.libssh2.org/examples/scp_write.html The code was copied and pasted from that example. I was successful in connecting to the SSH server and logging in. But, I seem to get an error when opening the SCP channel. The code to do so is the following: /* Send a file via scp. The mode parameter must only have permissions! */ channel = libssh2_scp_send(session, scppath, fileinfo.st_mode & 0777, (unsigned long)fileinfo.st_size); if (!channel) { char *errmsg; int errlen; int err = libssh2_session_last_error(session, &errmsg, &errlen, 0); fprintf(stderr, "Unable to open a session: (%d) %s\n", err, errmsg); goto shutdown; } This returns an error: Unable to open a session: (0) I am not sure what is meant by the error code 0. I also thought it was a bit weird that there was no error message set into err msg. If I do comment out the lines that checks whether the channel has been set, I get another error from this block of code: do { nread = fread(mem, 1, sizeof(mem), local); if (nread <= 0) { /* end of file */ break; } ptr = mem; do { /* write the same data over and over, until error or completion */ rc = libssh2_channel_write(channel, ptr, nread); if (rc < 0) { fprintf(stderr, "ERROR %d\n", rc); break; } else { /* rc indicates how many bytes were written this time */ ptr += rc; nread -= rc; } } while (nread); } while (1); I get the error: ERROR -39 Can anyone please assist me and tell me what I have done wrong? Thank you very much :)
_______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
