Conectar a un SFTP con CURL usando xHarbour ...

Conectar a un SFTP con CURL usando xHarbour ...

Postby Enrrique Vertiz » Tue Jul 18, 2023 10:10 pm

Estimados Saludos

Alguien lo probo con xHarbour ?? , si se que Harbour seria ideal, pero tengo mucho que modificar y por ahora no tenemos tiempo, Yo he compilado y todo, pero al ejecutar me da un error :

Error irrecuperable 9011
hb_xfree llamado con un puntero nulo

Copie tal cual el ejemplo que aqui en paginas atras colocan, pero tube que comentar esta linea (abajo), porque al compilar xHarbour NO reconoce esta funcion: hb_vfSize( cFileName ), alguna idea ... GRACIAS

curl_easy_setopt( hCurl, HB_CURLOPT_INFILESIZE, hb_vfSize( cFileName ) )

el codigo que uso es este:

function sFtpSubirFichero( cUrlFileName, cFileName, aUser, aPass )

local hCurl
local nResult
local aaUser := AllTrim(aUser)
local aaPass := AllTrim(aPass)
local aCadena := aaUser+":"+aaPass

curl_global_init()

if ! empty( hCurl := curl_easy_init() )

curl_easy_setopt( hCurl, HB_CURLOPT_PROTOCOLS, HB_CURLPROTO_SFTP)
curl_easy_setopt( hCurl, HB_CURLOPT_URL, cUrlFileName )
curl_easy_setopt( hCurl, HB_CURLOPT_DL_BUFF_SETUP )
curl_easy_setopt( hCurl, HB_CURLOPT_UPLOAD )
curl_easy_setopt( hCurl, HB_CURLOPT_UL_FILE_SETUP, cFileName )
// curl_easy_setopt( hCurl, HB_CURLOPT_INFILESIZE, hb_vfSize( cFileName ) ) // lo marque porque hb_vfSize NO existe en xHB, que hacemos ??
curl_easy_setopt( hCurl, HB_CURLOPT_USERPWD, aCadena )
curl_easy_setopt( hCurl, HB_CURLOPT_TCP_KEEPALIVE, 1 )
curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYHOST, 0 )
curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYPEER, 0 )
curl_easy_setopt( hCurl, HB_CURLOPT_VERBOSE, 1 )
curl_easy_setopt( hCurl, HB_CURLOPT_USE_SSL, 0 )

if ( nResult := curl_easy_perform( hCurl ) ) == 0
nResult := curl_easy_dl_buff_get( hCurl )
else
? "error code:" + Str( nResult )
endif

endif

curl_global_cleanup()

return nResult
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Enrrique Vertiz
 
Posts: 541
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru

Re: Conectar a un SFTP con CURL usando xHarbour ...

Postby Antonio Linares » Wed Jul 19, 2023 6:26 am

Estimado Enrique,

Se genera un fichero .log ?

En caso afirmativo, por favor, cópialo aqui
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42103
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Conectar a un SFTP con CURL usando xHarbour ...

Postby Enrrique Vertiz » Wed Jul 19, 2023 7:30 am

Saludos Antonio

Acabo de probar y no genera ningun .LOG, he probado con FWH 23.04 y aparece el error antes indicado, gracias.
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Enrrique Vertiz
 
Posts: 541
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru

Re: Conectar a un SFTP con CURL usando xHarbour ...

Postby Enrrique Vertiz » Wed Jul 19, 2023 8:34 am

Saludos Antonio

El mismo error me sale al tratar de compilar con xHb el ejemplo TWITTER.PRG que viene en samples de FWH, ahi se usa CURL y me sale el mismo error ...
Enlazo las 2 librerias libcurl.lib que viene en FWH y hbcurl.lib que viene en xHb.
Quizas con este ejemplo sea mas facil de analizar, gracias.
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Enrrique Vertiz
 
Posts: 541
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru

Re: Conectar a un SFTP con CURL usando xHarbour ...

Postby Antonio Linares » Wed Jul 19, 2023 4:39 pm

> Enlazo las 2 librerias libcurl.lib que viene en FWH y hbcurl.lib que viene en xHb

Puedes enviármelas por favor, asi nos aseguramos que usamos las mismas

Busca y usa "wormhole app" desde google
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42103
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Conectar a un SFTP con CURL usando xHarbour ...

Postby Enrrique Vertiz » Wed Jul 19, 2023 4:52 pm

Saludos Antonio, aqui las LIBs

libcurl.lib
https://wormhole.app/9pXyE#gh5NADI8PC7IVnprLK8-0g
hbcurl.lib
https://wormhole.app/aoRno#IvOUN4epEhzCyu1WgNF-0Q

Como te mencione una prueba puede ser el ejemplo Twitter.prg que me bota el mismo error, GRACIAS
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Enrrique Vertiz
 
Posts: 541
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru

Re: Conectar a un SFTP con CURL usando xHarbour ...

Postby Antonio Linares » Wed Jul 19, 2023 5:03 pm

Si comento esta línea, ya no aparece el error:

// curl_global_init()

Puedes probarlo y confirmarlo ?

gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42103
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Conectar a un SFTP con CURL usando xHarbour ...

Postby Antonio Linares » Wed Jul 19, 2023 5:13 pm

Enrique,

Cambia esta llamada:

curl_global_init()

por

curlglobalinit()

y añade este código al final en la seccion de C:
Code: Select all  Expand view  RUN
#pragma BEGINDUMP

#include <hbapi.h>
#include <hbapiitm.h>
#include <hbapierr.h>
#include "c:\curl32\include\curl\curl.h"
#include "c:\harbour\contrib\hbcurl\hbcurl.ch"

static void * hb_curl_xgrab( size_t size )
{
   return size > 0 ? hb_xgrab( size ) : NULL;
}

static void hb_curl_xfree( void * p )
{
   if( p )
      hb_xfree( p );
}

static void * hb_curl_xrealloc( void * p, size_t size )
{
   return size > 0 ? ( p ? hb_xrealloc( p, size ) : hb_xgrab( size ) ) : NULL;
}

static char * hb_curl_strdup( const char * s )
{
   return hb_strdup( s );
}

static void * hb_curl_calloc( size_t nelem, size_t elsize )
{
   size_t size = nelem * elsize;
   void * ptr  = hb_xgrab( size );

   memset( ptr, '\0', size );

   return ptr;
}

HB_FUNC( CURLGLOBALINIT )
{
   hb_retnl( ( long ) curl_global_init_mem( hb_parnldef( 1, CURL_GLOBAL_ALL ),
                                            hb_curl_xgrab,
                                            hb_curl_xfree,
                                            hb_curl_xrealloc,
                                            hb_curl_strdup,
                                            hb_curl_calloc ) );
}
 

Así ya no aparece el error :-)

Supongo que la versión de xHarbour no hace esta comprobación sobre el puntero de memoria:
Code: Select all  Expand view  RUN
static void hb_curl_xfree( void * p )
{
   if( p )
      hb_xfree( p );
}
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42103
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Conectar a un SFTP con CURL usando xHarbour ...

Postby Enrrique Vertiz » Wed Jul 19, 2023 5:35 pm

Probando ...
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Enrrique Vertiz
 
Posts: 541
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru

Re: Conectar a un SFTP con CURL usando xHarbour ...

Postby Enrrique Vertiz » Wed Jul 19, 2023 6:02 pm

Saludos Antonio

Ya no me bota ese mensaje que me saca del sistema, me da un error: 1, voy a revisar la documentacion de CURL quizas tenga algo que ver con el SFTP o directorio o algo
MUCHAS GRACIAS.
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Enrrique Vertiz
 
Posts: 541
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru

Re: Conectar a un SFTP con CURL usando xHarbour ...

Postby Enrrique Vertiz » Wed Oct 04, 2023 2:23 pm

Saludos

Al final tuvimos que usar Putty y linea de comandos, queriamos evitar usar una aplicacion externa, pero no encontramos solucion, si alguien tiene un ejemplo funcional de como subir archivos a un SFTP usando FWH y xHarbour, ojala lo pueda compartir
Gracias
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Enrrique Vertiz
 
Posts: 541
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 47 guests