/* * Copyright 2001-2004 Brandon Long * All Rights Reserved. * * ClearSilver Templating System * * This code is made available under the terms of the ClearSilver License. * http://www.clearsilver.net/license.hdf * */ #ifndef __NEO_NET_H_ #define __NEO_NET_H_ 1 __BEGIN_DECLS #define NET_BUFSIZE 4096 typedef struct _neo_sock { int fd; int data_timeout; int conn_timeout; UINT32 remote_ip; int remote_port; /* incoming buffer */ UINT8 ibuf[NET_BUFSIZE]; int ib; int il; /* outbound buffer */ UINT8 obuf[NET_BUFSIZE]; int ol; } NSOCK; NEOERR *ne_net_listen(int port, int *fd); NEOERR *ne_net_accept(NSOCK **sock, int fd, int data_timeout); NEOERR *ne_net_connect(NSOCK **sock, const char *host, int port, int conn_timeout, int data_timeout); NEOERR *ne_net_close(NSOCK **sock); NEOERR *ne_net_read(NSOCK *sock, UINT8 *buf, int buflen); NEOERR *ne_net_read_line(NSOCK *sock, char **buf); NEOERR *ne_net_read_binary(NSOCK *sock, UINT8 **b, int *blen); NEOERR *ne_net_read_str_alloc(NSOCK *sock, char **s, int *len); NEOERR *ne_net_read_int(NSOCK *sock, int *i); NEOERR *ne_net_write(NSOCK *sock, const char *b, int blen); NEOERR *ne_net_write_line(NSOCK *sock, const char *s); NEOERR *ne_net_write_binary(NSOCK *sock, const char *b, int blen); NEOERR *ne_net_write_str(NSOCK *sock, const char *s); NEOERR *ne_net_write_int(NSOCK *sock, int i); NEOERR *ne_net_flush(NSOCK *sock); void ne_net_shutdown(void); __END_DECLS #endif /* __NEO_NET_H_ */