/* returns SILC_SERVER_REC if it's SILC server, NULL if it isn't */
#define SILC_SERVER(server) \
PROTO_CHECK_CAST(SERVER(server), SILC_SERVER_REC, chat_type, "SILC")
-
#define SILC_SERVER_CONNECT(conn) \
PROTO_CHECK_CAST(SERVER_CONNECT(conn), SILC_SERVER_CONNECT_REC, \
chat_type, "SILC")
-
#define IS_SILC_SERVER(server) \
(SILC_SERVER(server) ? TRUE : FALSE)
-
#define IS_SILC_SERVER_CONNECT(conn) \
(SILC_SERVER_CONNECT(conn) ? TRUE : FALSE)
#include "server-connect-rec.h"
} SILC_SERVER_CONNECT_REC;
+typedef struct {
+ SilcClientEntry client_entry;
+ SilcClientConnection conn;
+ SilcUInt32 session_id;
+ char *filepath;
+ bool send;
+
+ long starttime; /* Start time of transfer */
+ double kps; /* Kilos per second */
+ SilcUInt64 offset; /* Current offset */
+ SilcUInt64 filesize; /* Total file size */
+ SilcUInt32 percent; /* Percent of current transmission */
+} *FtpSession;
+
#define STRUCT_SERVER_CONNECT_REC SILC_SERVER_CONNECT_REC
typedef struct {
#include "server-rec.h"
GSList *idles; /* Idle queue - send these commands to server
if there's nothing else to do */
+
+ SilcDList ftp_sessions;
+ FtpSession current_session;
gpointer chanqueries;
SilcClientConnection conn;
+ SilcUInt32 umode;
} SILC_SERVER_REC;
SILC_SERVER_REC *silc_server_connect(SILC_SERVER_CONNECT_REC *conn);
const char *command, const char *args);
void silc_server_init(void);
void silc_server_deinit(void);
+void silc_server_free_ftp(SILC_SERVER_REC *server,
+ SilcClientEntry client_entry);
+bool silc_term_utf8(void);
#endif