/*
 * pure.h : common header for PURE service.
 *
 * $Id: pure.h,v 1.1.2.1 2001/11/12 17:31:23 simm Exp $
 */

#include <fcntl.h>
#include <netdb.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#ifndef O_BINARY
#define O_BINARY (0)
#endif

#ifndef _PURE_H_
#define _PURE_H_

typedef struct _net_peer {
	int     handle;
	char*   name;
	u_long  address;
	u_short port;
	u_short bport;
	u_short eport;
} net_peer;

typedef struct _dcc_file {
	int   handle;
	char* name;
	unsigned int size;
	unsigned int offset;
	unsigned int pos;
} dcc_file;

/* pure-myaddr.c */
int pure_getmyaddr( net_peer* peer );
/* pure-server.c */
int pure_server_wait( net_peer* peer, int offset );
/* pure-putfile.c */
int pure_open_putfile( dcc_file* file );
int pure_putfile( dcc_file* file, net_peer* peer );
/* pure-client.c */
int pure_client_connect( net_peer* peer );
/* pure-getfile.c */
int pure_open_getfile( dcc_file* file, char* arg );
int pure_getfile( dcc_file* file, net_peer* peer );
/* pure-loop.c */
int pure_loop( net_peer* peer );

#endif // _PURE_H_


syntax highlighted by Code2HTML, v. 0.9.1