25#ifndef PROTOCORE_FTP_H
26#define PROTOCORE_FTP_H
30#if PROTOCORE_ENABLE_FTP
39static inline int protocore_ftp_reply_class(
int code)
41 return (code >= 100 && code <= 599) ? code / 100 : 0;
45static inline proto_bool protocore_ftp_reply_ok(
int code)
47 return protocore_ftp_reply_class(code) == 2;
138 FtpBuildCommandArgs build_command_args;
139 FtpBuildPortArgs build_port_args;
140 FtpBuildEprtArgs build_eprt_args;
141 FtpParseReplyArgs parse_reply_args;
142 FtpParsePasvArgs parse_pasv_args;
143 FtpParseEpsvArgs parse_epsv_args;
154 void (*
const build_command)(uint8_t *work);
155 void (*
const build_port)(uint8_t *work);
156 void (*
const build_eprt)(uint8_t *work);
157 void (*
const parse_reply)(uint8_t *work);
158 void (*
const parse_pasv)(uint8_t *work);
159 void (*
const parse_epsv)(uint8_t *work);
164void protocore_ftp_build_command(uint8_t *work);
165void protocore_ftp_build_port(uint8_t *work);
166void protocore_ftp_build_eprt(uint8_t *work);
167void protocore_ftp_parse_reply(uint8_t *work);
168void protocore_ftp_parse_pasv(uint8_t *work);
169void protocore_ftp_parse_epsv(uint8_t *work);
175static const FtpNs Ftp __attribute__((unused)) = {
176 .build_command = protocore_ftp_build_command,
177 .build_port = protocore_ftp_build_port,
178 .build_eprt = protocore_ftp_build_eprt,
179 .parse_reply = protocore_ftp_parse_reply,
180 .parse_pasv = protocore_ftp_parse_pasv,
181 .parse_epsv = protocore_ftp_parse_epsv,
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS