43 lines
1.0 KiB
C
43 lines
1.0 KiB
C
#ifndef EILDUSCD_CONNECTION_H
|
|
#define EILDUSCD_CONNECTION_H
|
|
|
|
typedef struct {
|
|
int fd;
|
|
char *buffer;
|
|
int fill;
|
|
int size;
|
|
char seen_cr;
|
|
} ildus_connection_t;
|
|
|
|
typedef struct {
|
|
int code;
|
|
/* Indicates if it was a multiline message */
|
|
int long_msg;
|
|
char *msg;
|
|
/* In case of a long message */
|
|
char *head_msg;
|
|
char **data;
|
|
} ildus_message_t;
|
|
|
|
typedef enum {
|
|
ILDUS_CONNECTION_CONNECTION_NO_ERROR,
|
|
ILDUS_CONNECTION_CONNECTION_READ_ERROR,
|
|
ILDUS_CONNECTION_CONNECTION_BUFFER_OVERFLOW,
|
|
ILDUS_CONNECTION_UNRESOLVED_HOST_ERROR,
|
|
ILDUS_CONNECTION_FAILED,
|
|
ILDUS_CONNECTION_MALFORMED_REPLY,
|
|
} ildus_connection_error_t;
|
|
|
|
ildus_connection_t *
|
|
new_ildus_connection(char *name, int port, ildus_connection_error_t *error);
|
|
void del_ildus_connection(ildus_connection_t *c);
|
|
|
|
ildus_message_t *
|
|
ildus_connection_get_message(ildus_connection_t *c,
|
|
ildus_connection_error_t *error);
|
|
int
|
|
ildus_connection_send(ildus_connection_t *c, char *data);
|
|
|
|
void del_ildus_message(ildus_message_t *m);
|
|
#endif
|