#ifndef _NNTP_H
#define _NNTP_H

#ifndef _GLOBAL_H
#include "global.h"
#endif

#ifndef _SMTP_H
#include "smtp.h"
#endif

#if defined(MSDOS) && !defined(_DOS_H) && !defined(__dj_include_dos_h_)
#include <dos.h>
#endif

struct nntpsv {
	int		 s;
#if 0
	int		 ret;
#endif
	int		 debug;
	int		 slave;
	unsigned	 first;
	unsigned	 last;
	unsigned	 pointer;
	unsigned	 hold_i;

	char		 buf[512];
#if 0
	char		 history[512];
#endif
	char		*newnews;
	char		*path;
	char		*fname;
	char		*id;

	FILE		*ihave;
	uint32		 dest;
	int32		 unixtime;
	long		 ftime;
	struct date	*datest;
	struct time	*timest;

	struct article	*ap;
};
#define NULLNNTPSV (struct nntpsv *)0


struct article {
	char		*group;
#if 0	/* not used */
	char		*id;
#endif
	char		*path;
	unsigned	 number;
	unsigned	 tmpu;
#if 0	/* not used */
	struct article	*next;
#endif
};
#define NULLARTICLE (struct article *)0


struct post {
	char	*user;
	char	*reply;
	char	*sig;
	char	*organ;
	char	*fullname;
};
#define NULLPOST (struct post *)0


#if 0	/* not used */
struct groups {
	struct article	*a;
	struct article	*next;
};
#define NULLGROUP (struct groups *)0
#endif


#if 0	/* not used */
struct head {
	char	*from;
	char	*reply_to;
	char	*subject;
	char	*id;
};
#define NULLHEAD (struct head *)0
#endif


struct g_list {
	char		*str;
	struct g_list	*next;
};
#define NULLG (struct g_list *)0


struct Servers {
	struct		 timer nntpt;
	char		*name;
	uint32		 dest;
	char		*newsgroups;   	/* list of newsgroups */
	int		 lowtime;       /* for connect window */
	int		 hightime;
        int              ihave;         /* Use 'ihave' pusher */
        int              mode_reader;   /* Send 'MODE READER' when connecting */
	struct Servers	*next;
};
#define NULLSERVER (struct Servers *)0


#define NNLINELEN 512
#define NNPATHLEN 255
  
#ifndef _COMMANDS_H
int nntp1 	(int argc, char *argv[], void *p);
int nntp0 	(int argc, char *argv[], void *p);
int donntp 	(int argc, char *argv[], void *p);
#endif
int nnGpost	(FILE *data, const char *from, struct list *le);

#endif /* _NNTP_H */

