Zig
Zig
Inovis VAN FTP/SSL (EDI)
See more FTP Examples
Demonstrates how to connect to the Inovis EDI VAN (FTP/SSL).Chilkat Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
var success: bool = false;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
const ftp = try chilkat.Ftp2.init();
defer ftp.deinit();
ftp.setHostname("ftpssl.gateway.inovisworks.net");
ftp.setUsername("myLogin");
ftp.setPassword("myPassword");
// The Inovis EDI VAN requires Passive connections:
ftp.setPassive(true);
// Note: The Inovis documentation mentions an outbound
// high port range of 40000-49999. In passive mode, the
// FTP server chooses the port number for the data
// connection. The Inovis server will choose a port number
// in the range 40000-49999. To establish the data connection,
// your firewall must allow outgoing connections in that port
// range.
// This tells Chilkat FTP2 to establish
// an AUTH TLS secure channel after connecting
// on the standard FTP port 21.
ftp.setAuthTls(true);
// You'll probably need this property set to true if you're
// behind a NAT router or firewall.
ftp.setPassiveUseHostAddr(true);
// The Ssl property is for establishing an implicit SSL connection
// on port 990. Do not set it to true. The Inovis VAN
// uses explicit encryption (SSL/TLS).
ftp.setSsl(false);
// The Chilkat FTP component automatically sends a "FEAT";
// command after connecting. This allows the component
// to better know the FTP server's capabilities.
// The Invois server doesn't recognize the FEAT command,
// so disable it:
ftp.setAutoFeat(false);
// Connect, convert to TLS, and login to the FTP server.
success = if (ftp.connect()) true else |_| false;
if (!success) {
std.debug.print("{s}\n", .{try ftp.getLastErrorText(alloc)});
return;
} else {
// LastErrorText contains information even when
// successful. This allows you to visually verify
// that the secure connection actually occurred.
std.debug.print("{s}\n", .{try ftp.getLastErrorText(alloc)});
}
std.debug.print("Connection to Inovis EDI VAN OK!\n", .{});
// Do whatever you're doing to do ...
// upload files, download files, etc...
success = if (ftp.disconnect()) true else |_| false;
}