#include <sys/types.h>
#include <netinet/in.h>
+#include "../lib/sstring.h"
+
#include "esockets.h"
#include "library.h"
#define BF_OK 0x00
#define BF_OVER 0xFF
+#define BF_UNLOADED 0xFE
#define SS_IDLE 0x00
#define SS_VERSIONED 0x01
struct rline;
typedef int (*handler_function)(struct rline *ri, int argc, char **argv);
+typedef void (*rline_callback)(int failed, int linec, char **linev, void *tag);
typedef struct handler {
sstring *command;
char *curpos;
struct rline *next;
void *tag;
+ rline_callback callback;
struct esocket *socket;
} rline;
int respond(struct rline *li, int argc, ...);
int error_respond(struct rline *li, int error_code, char *format, ...);
-int ri_append(struct rline *li, char *format, ...);
-int ri_error(struct rline *li, int error_code, char *format, ...);
+int ri_append(struct rline *li, char *format, ...) __attribute__ ((format (printf, 2, 3)));
+int ri_error(struct rline *li, int error_code, char *format, ...) __attribute__ ((format (printf, 3, 4)));
int ri_final(struct rline *li);
int load_permits(void);
int nterfacer_new_rline(char *line, struct esocket *socket, int *number);
struct sconnect *find_sconnect_from_fd(int fd);
-#endif
+void *nterfacer_sendline(char *service, char *command, int argc, char **argv, rline_callback callback, void *tag);
+void nterfacer_freeline(void *arg);
+#endif