This repository has been archived on 2020-04-11. You can view files and clone it, but cannot push or open issues or pull requests.
eilduscd/src/ildus-connection.h

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