[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
SV: FTPAPI FTP_exitproc
Hi Scott.
I had the split of FTP_Conn into FTP_Open and FTP_login in mind
but then I miss the connection feedback:
Connecting to host xxx.xxx.xxx.xxx at address xxx.xxx.xxx.xxx using port
21.
220 <<<Connect:Enterprise UNIX 2.4.04 Build 134 >>> at espdev01 FTP server
ready. Time = 07:19:29
being important for proofing the connection done.
I saw in your FTPAPI internal procedures a destroySession() (in source
FTPAPISSN).
Could this one be used to do a reset when FTP_Conn or FTP_Open fails ?
Brgds
Helge
-----Oprindelig meddelelse-----
Fra: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
[mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] På vegne af Scott Klement
Sendt: 12. februar 2014 22:42
Til: HTTPAPI and FTPAPI Projects
Emne: Re: FTPAPI FTP_exitproc
Helge,
Yes, this is the expected behavior. when you register an exitProc with
FTP_DEFAULT_SOCKET it will apply to all new connections that are created
thereafter. Unless this is what you want, you should not use the
FTP_DEFAULT_SOCKET.
FTP_Conn() has actually been split into two separate procedures for exactly
this reason. The new procedures are FTP_Open() which establishes the socket
number, and FTP_Login() which does the login portion of the FTP protocol.
In current versions of FTPAPI, FTP_Conn() actually just calls these two
procedures in succession.
So you should change your code to:
FtpSess = FTP_Open(FtpRmtSys: FTPPort: FTPCnnTio);
FTP_exitProc( FtpSess: FTP_EXTLOG: %paddr(FTPExitProc): %addr(LastMsg));
if FTP_Login( FtpSess: FtpUsr: FtpPwd ) < 0;
// error occurred.
endif;
Now the exit procedure will only fire for this particular session, and will
not apply to any others.
You'll want to call FTP_Quit() when this FTP session is done (unless
FTP_open failed for some reason.)
On 2/12/2014 8:53 AM, Helge Bichel wrote:
> Dear Group.
>
>
> I have some problems getting the FTP_exitproc working across FTP
> session within the same 5250 session.
>
>
> Having:
>
> (1) FTP_exitProc( FTP_DEFAULT_SOCKET : FTP_EXTLOG :
> %paddr(FTPExitProc) : %addr(LastMsg) );
>
> (1) FtpSess =
> FTP_Conn(FtpRmtSys:FtpUsr:FtpPwd:FTPPort:FTPCnnTio);
>
>
> Starting the FTP_exitproc with FTP_DEFAULT_SOCKET before FTP_conn is
> for getting the connection message from the FTP server
>
> Connecting to host xxx.xxx.xxx.xxx at address
> xxx.xxx.xxx.xxx using port 21.
>
> 220 <<<Connect:Enterprise UNIX 2.4.04 Build 134 >>> at
> espdev01 FTP server ready. Time = 07:19:29
>
> > USER
> yyyyyyyy
>
> 331 Password required for
> yyyyyyyy
>
> > PASS
> **********
>
> 230 Connect:Enterprise UNIX login ok, access
> restrictions apply.
>
>
> this would be missing if I used
>
> (2) FtpSess =
> FTP_Conn(FtpRmtSys:FtpUsr:FtpPwd:FTPPort:FTPCnnTio);
>
> (2) FTP_exitProc( FtpSess : FTP_EXTLOG :
> %paddr(FTPExitProc) : %addr(LastMsg) );
>
>
> Now the problem:
>
>
> Calling MyFTPPgmA
>
> Using (1) causes problems if the FTP_Conn for some reason (server not
> available, invalid pw etc.) fails.
>
> The FTP_exitporoc is set at this time and does not get 'cleared'.
>
> I think this is because I can't do a FTP_Quit since the session isn't
> established.
>
>
> Calling MyFTPPgmB
>
> While still in the same 5250 session I call a different program using
> the same setup (1) and connecting to another FTP server.
>
> MyFTPPgmB crashes when doing the FTP_Conn. Reason is the FTP_exitproc
> still pointing to the routine set by MyFTPPgmA.
>
> The FTPExitProc in MyFTPPgmA writes to a file A and this routine
> still is in effect when running MyFTPPgmB.
>
> The required file A isn't open since MyFTPPgmB uses file B, not A..
>
>
> To summarize the problem:
>
>
> The FTP_exitproc set in one program 'hangs' when not doing a FTP_Quit
> and that's seems not to be possible to do when FTP_Conn fails.
>
>
> Hoping for a wise solution.
>
>
> Best regards
>
> Helge
>
>
>
> -----------------------------------------------------------------------
> This is the FTPAPI mailing list. To unsubscribe, please go to:
> http://www.scottklement.com/mailman/listinfo/ftpapi
> -----------------------------------------------------------------------
-----------------------------------------------------------------------
This is the FTPAPI mailing list. To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------