pop3d.h
changeset 41 0cb519e770ba
parent 38 058e5ad9ba79
child 43 6903f7870c4c
equal deleted inserted replaced
40:a0c73de318ed 41:0cb519e770ba
   112 	char	user[ARGLEN];
   112 	char	user[ARGLEN];
   113 	char	pass[ARGLEN];
   113 	char	pass[ARGLEN];
   114 };
   114 };
   115 
   115 
   116 struct listener {
   116 struct listener {
   117 	struct sockaddr_storage	ss;
       
   118 	struct event		ev;
   117 	struct event		ev;
   119 	struct event		pause;
   118 	struct event		pause;
   120 	int			flags;
   119 	int			flags;
   121 	int			sock;
   120 	int			sock;
   122 };
   121 };
   127 	UPDATE
   126 	UPDATE
   128 };
   127 };
   129 
   128 
   130 struct session {
   129 struct session {
   131 	SPLAY_ENTRY(session)	entry;
   130 	SPLAY_ENTRY(session)	entry;
   132 	struct imsgev		*iev_maildrop;
       
   133 	struct iobuf		iobuf;
   131 	struct iobuf		iobuf;
   134 	struct io		io;
   132 	struct io		io;
       
   133 	struct sockaddr_storage	ss;
   135 	char			user[ARGLEN];
   134 	char			user[ARGLEN];
   136 	char			pass[ARGLEN];
   135 	char			pass[ARGLEN];
   137 	size_t			m_sz;
   136 	size_t			m_sz;
   138 	size_t			nmsgs;
   137 	size_t			nmsgs;
   139 	struct listener		*l;
   138 	struct listener		*l;
       
   139 	struct imsgev		*iev_maildrop;
   140 	uint32_t		id;
   140 	uint32_t		id;
   141 	int			flags;
   141 	int			flags;
   142 	enum state		state;
   142 	enum state		state;
   143 };
   143 };
   144 
   144 
   145 /* pop3e.c */
   145 /* pop3e.c */
   146 void pop3_main(int [2], struct passwd *);
   146 void pop3_main(int [2], struct passwd *);
   147 
   147 
   148 /* session.c */
   148 /* session.c */
   149 void session_init(struct listener *, int);
   149 void session_init(struct listener *, int, const struct sockaddr_storage *);
   150 void session_close(struct session *, int);
   150 void session_close(struct session *, int);
   151 void session_reply(struct session *, char *, ...);
   151 void session_reply(struct session *, char *, ...);
   152 void session_set_state(struct session *, enum state);
   152 void session_set_state(struct session *, enum state);
   153 void session_imsgev_init(struct session *, int);
   153 void session_imsgev_init(struct session *, int);
   154 SPLAY_HEAD(session_tree, session);
   154 SPLAY_HEAD(session_tree, session);