1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-07-22 05:21:51 +03:00

examples: Reformat senddata.c

Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Jakub Jelen
2025-04-24 14:54:07 +02:00
committed by Andreas Schneider
parent 320e5154b2
commit babd891e82

View File

@ -5,60 +5,60 @@
#define LIMIT 0x100000000UL #define LIMIT 0x100000000UL
int main(void) { int main(void)
ssh_session session; {
ssh_channel channel; ssh_session session;
char buffer[1024 * 1024] = {0}; ssh_channel channel;
int rc; char buffer[1024 * 1024] = {0};
uint64_t total=0; int rc;
uint64_t lastshown=4096; uint64_t total = 0;
session = connect_ssh("localhost", NULL, 0); uint64_t lastshown = 4096;
if (session == NULL) { session = connect_ssh("localhost", NULL, 0);
return 1; if (session == NULL) {
} return 1;
channel = ssh_channel_new(session);
if (channel == NULL) {
ssh_disconnect(session);
return 1;
}
rc = ssh_channel_open_session(channel);
if (rc < 0) {
ssh_channel_close(channel);
ssh_disconnect(session);
return 1;
}
rc = ssh_channel_request_exec(channel, "cat > /dev/null");
if (rc < 0) {
ssh_channel_close(channel);
ssh_disconnect(session);
return 1;
}
while ((rc = ssh_channel_write(channel, buffer, sizeof(buffer))) > 0) {
total += rc;
if(total/2 >= lastshown){
printf("written %llx\n", (long long unsigned int) total);
lastshown=total;
} }
if(total > LIMIT)
break;
}
if (rc < 0) { channel = ssh_channel_new(session);
printf("error : %s\n",ssh_get_error(session)); if (channel == NULL) {
ssh_disconnect(session);
return 1;
}
rc = ssh_channel_open_session(channel);
if (rc < 0) {
ssh_channel_close(channel);
ssh_disconnect(session);
return 1;
}
rc = ssh_channel_request_exec(channel, "cat > /dev/null");
if (rc < 0) {
ssh_channel_close(channel);
ssh_disconnect(session);
return 1;
}
while ((rc = ssh_channel_write(channel, buffer, sizeof(buffer))) > 0) {
total += rc;
if (total / 2 >= lastshown) {
printf("written %llx\n", (long long unsigned int)total);
lastshown = total;
}
if (total > LIMIT)
break;
}
if (rc < 0) {
printf("error : %s\n", ssh_get_error(session));
ssh_channel_close(channel);
ssh_disconnect(session);
return 1;
}
ssh_channel_send_eof(channel);
ssh_channel_close(channel); ssh_channel_close(channel);
ssh_disconnect(session); ssh_disconnect(session);
return 1;
}
ssh_channel_send_eof(channel); return 0;
ssh_channel_close(channel);
ssh_disconnect(session);
return 0;
} }