Main Page | Alphabetical List | Data Structures | File List | Data Fields | Globals

socketcommon.h

Go to the documentation of this file.
00001 /******************************************************************************
00002  * $Id: socketcommon.h,v 1.3 2003/12/07 18:14:22 gareuselesinge Exp $
00003  * This file is part of liberopops (http://liberopops.sf.net)                 *
00004  * This file is distributed under the terms of GNU GPL license.               *
00005  ******************************************************************************/
00006 
00007 
00008 /******************************************************************************/
00014 /******************************************************************************/
00015 
00016 #ifndef SOCKET_COMMON_H
00017 #define SOCKET_COMMON_H
00018 
00019 #include <pthread.h>
00020 #ifndef WIN32
00021         #include <netinet/in.h>
00022 #else
00023         #include <winsock.h>
00024 #endif
00025 
00026 #include "altsocklib.h"
00027 #include "win32_compatibility.h"
00028 
00034 #define SOCK_ERROR              "!! "
00035 #define SOCK_INFO               "?? "
00036 #define SOCK_SENT               "-> "
00037 #define SOCK_RECEIVED           "<- "
00038 
00039 
00045 struct sock_state_t
00046         {
00048          int socket;
00050          char *hostname;
00052          char *welcomestring;
00054          char *ipaddress;
00056          unsigned long realport;
00058          recvbuffer_t *prb;
00060          void (*print)(char *);
00062          int error_occurred;
00064          int maxlinelen;
00065         };
00066 
00067 /*****************************************************************************/
00068         
00074 
00075 extern void sock_print(char *prebuffer,char *buffer,struct sock_state_t *s);
00077 extern void sock_error(char *type,int ernum,struct sock_state_t *s);
00079 extern void sock_received(char *buffer,struct sock_state_t *s);
00081 extern void sock_sent(char *buffer,struct sock_state_t *s);
00083 extern void sock_info(char *buffer,struct sock_state_t *s);
00085 
00086 /*****************************************************************************/
00087 
00092 
00093 extern void sock_send(struct sock_state_t *s,char* buffer);
00095 extern void sock_sendraw(struct sock_state_t *s,char* buffer);
00097 extern int  sock_receive(struct sock_state_t *s,char* buffer,int maxlen);
00099 extern int  sock_receive_with_timeout(struct sock_state_t *s,char* buffer,int maxlen, int timeout);
00101 
00102 /*****************************************************************************/
00103 
00108 
00109 extern struct sock_state_t * sock_connect(char *hostname,unsigned long port,int maxlinelen,void (*print)(char *));
00111 extern void sock_disconnect(struct sock_state_t *s);
00113 extern struct sock_state_t * sock_bind(struct in_addr bind_add,unsigned short port,int maxlinelen,void (*print)(char *));
00115 extern struct sock_state_t *  sock_listen(struct sock_state_t * s);
00117 
00118 #endif

Generated on Wed May 5 15:48:03 2004 for LiberoPOPs by doxygen 1.3.6-20040222