Conectar a un SFTP con CURL usando xHarbour ...
-
- Posts: 549
- Joined: Fri Oct 07, 2005 2:17 pm
- Location: Lima - Peru
- Contact:
Conectar a un SFTP con CURL usando xHarbour ...
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
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
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
- Antonio Linares
- Site Admin
- Posts: 42273
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Conectar a un SFTP con CURL usando xHarbour ...
Estimado Enrique,
Se genera un fichero .log ?
En caso afirmativo, por favor, cópialo aqui
Se genera un fichero .log ?
En caso afirmativo, por favor, cópialo aqui
-
- Posts: 549
- Joined: Fri Oct 07, 2005 2:17 pm
- Location: Lima - Peru
- Contact:
Re: Conectar a un SFTP con CURL usando xHarbour ...
Saludos Antonio
Acabo de probar y no genera ningun .LOG, he probado con FWH 23.04 y aparece el error antes indicado, gracias.
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
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
-
- Posts: 549
- Joined: Fri Oct 07, 2005 2:17 pm
- Location: Lima - Peru
- Contact:
Re: Conectar a un SFTP con CURL usando xHarbour ...
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.
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
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
- Antonio Linares
- Site Admin
- Posts: 42273
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Conectar a un SFTP con CURL usando xHarbour ...
> 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
Puedes enviármelas por favor, asi nos aseguramos que usamos las mismas
Busca y usa "wormhole app" desde google
-
- Posts: 549
- Joined: Fri Oct 07, 2005 2:17 pm
- Location: Lima - Peru
- Contact:
Re: Conectar a un SFTP con CURL usando xHarbour ...
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
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
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
- Antonio Linares
- Site Admin
- Posts: 42273
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Conectar a un SFTP con CURL usando xHarbour ...
Si comento esta línea, ya no aparece el error:
// curl_global_init()
Puedes probarlo y confirmarlo ?
gracias
// curl_global_init()
Puedes probarlo y confirmarlo ?
gracias
- Antonio Linares
- Site Admin
- Posts: 42273
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Conectar a un SFTP con CURL usando xHarbour ...
Enrique,
Cambia esta llamada:
curl_global_init()
por
curlglobalinit()
y añade este código al final en la seccion de C:
Así ya no aparece el error
Supongo que la versión de xHarbour no hace esta comprobación sobre el puntero de memoria:
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
#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 ) );
}
Supongo que la versión de xHarbour no hace esta comprobación sobre el puntero de memoria:
Code: Select all | Expand
static void hb_curl_xfree( void * p )
{
if( p )
hb_xfree( p );
}
-
- Posts: 549
- Joined: Fri Oct 07, 2005 2:17 pm
- Location: Lima - Peru
- Contact:
Re: Conectar a un SFTP con CURL usando xHarbour ...
Probando ...
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
-
- Posts: 549
- Joined: Fri Oct 07, 2005 2:17 pm
- Location: Lima - Peru
- Contact:
Re: Conectar a un SFTP con CURL usando xHarbour ...
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.
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
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
-
- Posts: 549
- Joined: Fri Oct 07, 2005 2:17 pm
- Location: Lima - Peru
- Contact:
Re: Conectar a un SFTP con CURL usando xHarbour ...
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
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
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m