{-------------------------------------------------------------}
{
{    Programa de Transferência Remota de Arquivos
{
{    Rotina para trocar a porta de dados
{
{    Autor: Jose' Antonio Borges
{
{    Em 21/04/98
{
{-------------------------------------------------------------}

unit ftpPort;
interface

uses dvCrt, dvWin, strings, winsock, winprocs,
     ftpVars, ftpMsg, ftpDlg, ftpRede;

procedure trocaPortaLocal;

implementation

{-------------------------------------------------------------}
{       troca para outra porta ao abrir conexao de dados
{-------------------------------------------------------------}

procedure trocaPortaLocal;
var s, s1: string;
    codigo: integer;
    continua: boolean;
begin
    portaLocal := portaLocal + 1;    { cada recepcao, troca porta local }
    msgWrite ('FTSELPOR', 0);  {'Selecionando a porta '}
    writeln (portaLocal);

    s := 'PORT ';
    str (enderLocal and $ff, s1);            s := s + s1 + ',';
    str ((enderLocal shr 8) and $ff, s1);    s := s + s1 + ',';
    str ((enderLocal shr 16) and $ff, s1);   s := s + s1 + ',';
    str ((enderLocal shr 24)and $ff, s1);    s := s + s1 + ',';
    str (portaLocal shr 8, s1);              s := s + s1 + ',';
    str (portaLocal and $ff, s1);            s := s + s1;

    writeln (s);
    if enviaComando (s) then
        while pins <> pret do
            begin
                pegaResposta (s, codigo, continua);
                if codigo <> 200 then
                    begin
                        mensagem ('FTERPORT', 1);  {'Problemas na escolha da porta de dados, código '}
                        if not verboso then
                            sintWriteln (s);
                    end;
            end;
end;

end.