URL Connection class and GetInfo

26 views
Skip to first unread message

Adrian Williamson

unread,
Sep 12, 2024, 9:28:28 AM9/12/24
to openroa...@googlegroups.com

Hi,

 

 

https://docs.actian.com/openroad/11.2/index.html#page/LangRef/UrlConnection__22info_22_Settings.htm

 

I setup a test harness (feel free to pinch – its below) to run through all the options for URLConnection.GetInfo().

 

It's tossing out this error:

 

[Thu Sep 12 13:16:53 2024] CURLINFO_PRIMARY_PORT : 443

[Thu Sep 12 13:16:53 2024] E_WT0029 Error at line 134 of url_con_test.

 

 

[Thu Sep 12 13:16:53 2024] E_OM00E6 Invalid parameter value: UrlConnection.GetInfo(): Requested

    'info' not supported.

 

[Thu Sep 12 13:16:53 2024] CURLINFO_PRIVATE : 169.254.2.25

[Thu Sep 12 13:16:53 2024] CURLINFO_PROTOCOL : 2

 

 

So the trace statement just repeats the last usage of txt from the CURLINFO_PRIMARY_IP.

 

My pet AI tells me CURLINFO_PRIVATE is a pointer to a structure.

 

 

So does it want a longbyte and not a text – or is it really not supported?

 

Cheers

 

Adrian

 

Test harness:

 

initialize()=

declare

    www = URLConnection;

    txt = varchar(2000) not null;

    number = i8 not null;

    fp = float4;

    so_ar = array of stringobject;

    i = i4 not null;

   wwwheaders = ARRAY OF StringObject;

enddeclare

{

 

    www.SetOption(option = CURLOPT_URL, value = 'www.google.com');

 

    www.SetOption(option = CURLOPT_SSL_VERIFYPEER , value = FALSE);

    www.OutputObject = StringObject.Create();

 

    IF www.Perform() != ER_OK THEN

        CurExec.Trace(text = 'Error Text = '+www.errortext);

        CurExec.Trace(string = www.OutputObject);

        return;

    ELSE

        if www.GetInfo(info = CURLINFO_EFFECTIVE_URL, value = BYREF(txt)) = ER_OK THEN

            CurExec.Trace(text =  'EFFECTIVE_URL: ' + varchar(txt));

        ENDIF;

        IF www.GetInfo(info = CURLINFO_CONTENT_TYPE, value = BYREF(txt)) = ER_OK THEN

            CurExec.Trace(text =  'CONTENT_TYPE: ' + varchar(txt));

        ENDIF;

 

        www.GetInfo(info = CURLINFO_ACTIVESOCKET, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_ACTIVESOCKET : ' + varchar(number));

        www.GetInfo(info = CURLINFO_APPCONNECT_TIME, value = BYREF(fp));

        CurFrame.Trace(text='CURLINFO_APPCONNECT_TIME : ' + varchar(fp));

        www.GetInfo(info = CURLINFO_APPCONNECT_TIME_T, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_APPCONNECT_TIME_T : ' + varchar(number));

        www.GetInfo(info = CURLINFO_CONDITION_UNMET, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_CONDITION_UNMET : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_CONNECT_TIME, value = BYREF(fp));

        CurFrame.Trace(text='CURLINFO_CONNECT_TIME : ' + varchar(fp));

 

        www.GetInfo(info = CURLINFO_CONNECT_TIME_T, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_CONNECT_TIME_T: ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_CONTENT_LENGTH_DOWNLOAD_T : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_CONTENT_LENGTH_UPLOAD_T, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_CONTENT_LENGTH_UPLOAD_T : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_CONTENT_TYPE, value = BYREF(txt));

        CurFrame.Trace(text='CURLINFO_CONTENT_TYPE : ' + varchar(txt));

 

        www.GetInfo(info = CURLINFO_COOKIELIST, value = BYREF(so_ar));

        for i = 1 to so_ar.lastrow do

            CurFrame.Trace(text='CURLINFO_COOKIELIST : ' + varchar(so_Ar[i].value));

        endfor;

 

        www.GetInfo(info = CURLINFO_EFFECTIVE_METHOD, value = BYREF(txt));

        CurFrame.Trace(text='CURLINFO_EFFECTIVE_METHOD : ' + varchar(txt));

 

        www.GetInfo(info = CURLINFO_EFFECTIVE_URL, value = BYREF(txt));

        CurFrame.Trace(text='CURLINFO_EFFECTIVE_URL : ' + varchar(txt));

 

        www.GetInfo(info = CURLINFO_FILETIME, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_FILETIME : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_FILETIME_T, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_FILETIME_T : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_FTP_ENTRY_PATH, value = BYREF(txt));

        CurFrame.Trace(text='CURLINFO_FTP_ENTRY_PATH : ' + varchar(txt));

 

        www.GetInfo(info = CURLINFO_HEADER_SIZE, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_HEADER_SIZE : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_HTTPAUTH_AVAIL, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_HTTPAUTH_AVAIL : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_HTTP_CONNECTCODE, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_HTTP_CONNECTCODE : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_HTTP_VERSION, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_HTTP_VERSION : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_LASTSOCKET, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_LASTSOCKET : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_LOCAL_IP, value = BYREF(txt));

        CurFrame.Trace(text='CURLINFO_LOCAL_IP : ' + varchar(txt));

 

        www.GetInfo(info = CURLINFO_LOCAL_PORT, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_LOCAL_PORT : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_NAMELOOKUP_TIME, value = BYREF(fp));

        CurFrame.Trace(text='CURLINFO_NAMELOOKUP_TIME : ' + varchar(fp));

 

        www.GetInfo(info = CURLINFO_NAMELOOKUP_TIME_T, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_NAMELOOKUP_TIME_T : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_NUM_CONNECTS, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_NUM_CONNECTS : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_OS_ERRNO, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_OS_ERRNO : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_PRETRANSFER_TIME, value = BYREF(fp));

        CurFrame.Trace(text='CURLINFO_OS_ERRNO : ' + varchar(fp));

 

        www.GetInfo(info = CURLINFO_PRETRANSFER_TIME_T, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_PRETRANSFER_TIME_T : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_PRIMARY_IP, value = BYREF(txt));

        CurFrame.Trace(text='CURLINFO_PRIMARY_IP : ' + varchar(txt));

 

        www.GetInfo(info = CURLINFO_PRIMARY_PORT, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_PRIMARY_PORT : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_PRIVATE, value = BYREF(txt));

        CurFrame.Trace(text='CURLINFO_PRIVATE : ' + varchar(txt));

 

        www.GetInfo(info = CURLINFO_PROTOCOL, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_PROTOCOL : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_PROXYAUTH_AVAIL, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_PROXYAUTH_AVAIL : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_PROXY_ERROR, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_PROXY_ERROR : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_PROXY_SSL_VERIFYRESULT, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_PROXY_SSL_VERIFYRESULT : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_REDIRECT_COUNT, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_REDIRECT_COUNT : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_REDIRECT_TIME, value = BYREF(fp));

        CurFrame.Trace(text='CURLINFO_REDIRECT_TIME : ' + varchar(fp));

 

        www.GetInfo(info = CURLINFO_REDIRECT_TIME_T, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_REDIRECT_TIME_T : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_REDIRECT_URL, value = BYREF(txt));

        CurFrame.Trace(text='CURLINFO_REDIRECT_URL : ' + varchar(txt));

 

        www.GetInfo(info = CURLINFO_REQUEST_SIZE, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_REQUEST_SIZE : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_RESPONSE_CODE, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_RESPONSE_CODE : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_RETRY_AFTER, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_RETRY_AFTER : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_RTSP_CLIENT_CSEQ, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_RTSP_CLIENT_CSEQ : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_RTSP_CSEQ_RECV, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_RTSP_CSEQ_RECV : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_RTSP_SERVER_CSEQ, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_RTSP_SERVER_CSEQ : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_RTSP_SESSION_ID, value = BYREF(txt));

        CurFrame.Trace(text='CURLINFO_RTSP_SESSION_ID : ' + varchar(txt));

 

        www.GetInfo(info = CURLINFO_SCHEME, value = BYREF(txt));

        CurFrame.Trace(text='CURLINFO_SCHEME : ' + varchar(txt));

 

        www.GetInfo(info = CURLINFO_SIZE_DOWNLOAD_T, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_SIZE_DOWNLOAD_T : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_SIZE_UPLOAD_T, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_SIZE_UPLOAD_T : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_SPEED_DOWNLOAD_T, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_SPEED_DOWNLOAD_T : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_SPEED_UPLOAD_T, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_SPEED_UPLOAD_T : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_SSL_ENGINES, value = BYREF(so_ar));

        for i = 1 to so_ar.lastrow do

            CurFrame.Trace(text='CURLINFO_SSL_ENGINES : ' + varchar(so_ar[i].value));

        endfor;

 

        www.GetInfo(info = CURLINFO_SSL_VERIFYRESULT, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_SSL_VERIFYRESULT : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_STARTTRANSFER_TIME, value = BYREF(fp));

        CurFrame.Trace(text='CURLINFO_STARTTRANSFER_TIME : ' + varchar(fp));

 

        www.GetInfo(info = CURLINFO_STARTTRANSFER_TIME_T, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_STARTTRANSFER_TIME_T : ' + varchar(number));

 

        www.GetInfo(info = CURLINFO_TOTAL_TIME, value = BYREF(fp));

        CurFrame.Trace(text='CURLINFO_TOTAL_TIME : ' + varchar(fp));

 

        www.GetInfo(info = CURLINFO_TOTAL_TIME_T, value = BYREF(number));

        CurFrame.Trace(text='CURLINFO_TOTAL_TIME_T : ' + varchar(number));

 

    ENDIF;

 

    CurExec.Trace(text = 'Error Text = '+www.errortext);

    CurExec.Trace(string = www.OutputObject);

 

    return;

 

}

image002.png
image006.png
image007.png

Bodo Bergmann

unread,
Sep 16, 2024, 6:05:24 AM9/16/24
to openroa...@googlegroups.com
Hi Adrian,

I think this is a documentation issue.
The CURLINFO_PRIVATE is actually not supported for the GetInfo() method
(as CURLOPT_PRIVATE is not supported for the SetOption()/SetOptions() methods).

The GetInfo() method fails (returns ER_FAIL), so it doesn't change the value of your "txt" variable you pass in (BYREF) for the "value" parameter.
It doesn't make sense to print out its value in that case.

HTH.
Bodo.

Bodo Bergmann

Engineering Architect | OpenROAD Engineering

Actian, a division of HCLSoftware

actian.com    hcl-software.com

 GESELLSCHAFTSANGABEN: Actian Germany GmbH | Registry Off: Halenreie 42, 22359 Hamburg | Geschäftsführung: Stephen Padgett, Marc Monahan | HandelsregisterAmtsgericht Hamburg | HRB 135991 | USt-IdNr: DE252449897 


--
You received this message because you are subscribed to the Google Groups "OpenROAD Users Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openroad-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openroad-users/002301db0517%24a45f7e70%24ed1e7b50%24%40rationalcommerce.com.
Reply all
Reply to author
Forward
0 new messages