|
Packit Service |
a2489d |
/*
|
|
Packit Service |
a2489d |
This example shows blocking usage of Ftp class
|
|
Packit Service |
a2489d |
*/
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
#include <config.h>
|
|
Packit Service |
a2489d |
#include <unistd.h>
|
|
Packit Service |
a2489d |
#include "FileAccess.h"
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
char *program_name;
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
int main(int argc,char **argv)
|
|
Packit Service |
a2489d |
{
|
|
Packit Service |
a2489d |
program_name=argv[0];
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
FileAccess *f=FileAccess::New("ftp","ftp.redhat.com");
|
|
Packit Service |
a2489d |
if(!f)
|
|
Packit Service |
a2489d |
{
|
|
Packit Service |
a2489d |
fprintf(stderr,"ftp: unknown protocol, cannot create ftp session\n");
|
|
Packit Service |
a2489d |
return 1;
|
|
Packit Service |
a2489d |
}
|
|
Packit Service |
a2489d |
f->Open("/redhat",f->LONG_LIST);
|
|
Packit Service |
a2489d |
Buffer buf;
|
|
Packit Service |
a2489d |
for(;;)
|
|
Packit Service |
a2489d |
{
|
|
Packit Service |
a2489d |
SMTask::Schedule();
|
|
Packit Service |
a2489d |
|
|
Packit Service |
a2489d |
int res=f->Read(&buf,1024);
|
|
Packit Service |
a2489d |
if(res<0)
|
|
Packit Service |
a2489d |
{
|
|
Packit Service |
a2489d |
if(res==f->DO_AGAIN)
|
|
Packit Service |
a2489d |
{
|
|
Packit Service |
a2489d |
SMTask::Block();
|
|
Packit Service |
a2489d |
continue;
|
|
Packit Service |
a2489d |
}
|
|
Packit Service |
a2489d |
fprintf(stderr,"Error: %s\n",f->StrError(res));
|
|
Packit Service |
a2489d |
return 1;
|
|
Packit Service |
a2489d |
}
|
|
Packit Service |
a2489d |
if(res==0) // eof
|
|
Packit Service |
a2489d |
{
|
|
Packit Service |
a2489d |
f->Close();
|
|
Packit Service |
a2489d |
break;
|
|
Packit Service |
a2489d |
}
|
|
Packit Service |
a2489d |
buf.SpaceAdd(res);
|
|
Packit Service |
a2489d |
write(1,buf.Get(),res);
|
|
Packit Service |
a2489d |
buf.Skip(res);
|
|
Packit Service |
a2489d |
}
|
|
Packit Service |
a2489d |
SMTask::Delete(f);
|
|
Packit Service |
a2489d |
return 0;
|
|
Packit Service |
a2489d |
}
|