Mercurial > hg > xemacs-beta
annotate lib-src/pop.h @ 5834:7984e732829e
Fix file descriptor leak in pop.c.
See <CAHCOHQkUhtC7netdxqCkDy3vqtctbLBwxWC7ucmvLhRaPkAsDw@mail.gmail.com>
in xemacs-patches.
| author | Jerry James <james@xemacs.org> |
|---|---|
| date | Fri, 05 Dec 2014 16:22:57 -0700 |
| parents | 308d34e9f07d |
| children |
| rev | line source |
|---|---|
| 54 | 1 /* pop.h: Header file for the "pop.c" client POP3 protocol. |
| 3650 | 2 Copyright (C) 1991, 1993, 2002, 2003, 2004, |
| 3 2005, 2006 Free Software Foundation, Inc. | |
| 54 | 4 Written by Jonathan Kamens, jik@security.ov.com. |
| 5 | |
| 613 | 6 This file is part of XEmacs. |
| 54 | 7 |
|
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
3650
diff
changeset
|
8 XEmacs is free software: you can redistribute it and/or modify it |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
3650
diff
changeset
|
9 under the terms of the GNU General Public License as published by the |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
3650
diff
changeset
|
10 Free Software Foundation, either version 3 of the License, or (at your |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
3650
diff
changeset
|
11 option) any later version. |
| 54 | 12 |
|
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
3650
diff
changeset
|
13 XEmacs is distributed in the hope that it will be useful, but WITHOUT |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
3650
diff
changeset
|
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
3650
diff
changeset
|
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
3650
diff
changeset
|
16 for more details. |
| 54 | 17 |
| 18 You should have received a copy of the GNU General Public License | |
|
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
3650
diff
changeset
|
19 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */ |
| 3650 | 20 |
| 21 /* Synched up with: FSF 22.0.50. */ | |
| 54 | 22 |
| 23 #include <stdio.h> | |
| 24 | |
| 25 #define GETLINE_MIN 1024 /* the getline buffer starts out this */ | |
| 26 /* size */ | |
| 27 #define GETLINE_INCR 1024 /* the getline buffer is grown by this */ | |
| 28 /* size when it needs to grow */ | |
| 29 | |
| 30 extern char pop_error[]; | |
| 31 extern int pop_debug; | |
| 32 | |
| 33 struct _popserver | |
| 34 { | |
| 35 int file, data; | |
| 36 char *buffer; | |
| 37 int buffer_size, buffer_index; | |
| 38 int in_multi; | |
| 39 int trash_started; | |
| 40 }; | |
| 41 | |
| 42 typedef struct _popserver *popserver; | |
| 43 | |
| 44 /* | |
| 45 * Valid flags for the pop_open function. | |
| 46 */ | |
| 47 | |
| 48 #define POP_NO_KERBEROS (1<<0) | |
| 49 #define POP_NO_HESIOD (1<<1) | |
| 50 #define POP_NO_GETPASS (1<<2) | |
| 51 | |
| 52 #ifdef __STDC__ | |
| 53 #define _ARGS(a) a | |
| 54 #else | |
| 55 #define _ARGS(a) () | |
| 56 #endif | |
| 57 | |
| 58 extern popserver pop_open _ARGS((char *host, char *username, char *password, | |
| 59 int flags)); | |
| 60 extern int pop_stat _ARGS((popserver server, int *count, int *size)); | |
| 61 extern int pop_list _ARGS((popserver server, int message, int **IDs, | |
| 62 int **size)); | |
| 3650 | 63 extern int pop_retrieve _ARGS((popserver server, int message, int markfrom, |
| 64 char **)); | |
| 54 | 65 extern int pop_retrieve_first _ARGS((popserver server, int message, |
| 66 char **response)); | |
| 67 extern int pop_retrieve_next _ARGS((popserver server, char **line)); | |
| 68 extern int pop_retrieve_flush _ARGS((popserver server)); | |
| 69 extern int pop_top_first _ARGS((popserver server, int message, int lines, | |
| 70 char **response)); | |
| 71 extern int pop_top_next _ARGS((popserver server, char **line)); | |
| 72 extern int pop_top_flush _ARGS((popserver server)); | |
| 73 extern int pop_multi_first _ARGS((popserver server, char *command, | |
| 74 char **response)); | |
| 75 extern int pop_multi_next _ARGS((popserver server, char **line)); | |
| 76 extern int pop_multi_flush _ARGS((popserver server)); | |
| 77 extern int pop_delete _ARGS((popserver server, int message)); | |
| 78 extern int pop_noop _ARGS((popserver server)); | |
| 79 extern int pop_last _ARGS((popserver server)); | |
| 80 extern int pop_reset _ARGS((popserver server)); | |
| 81 extern int pop_quit _ARGS((popserver server)); | |
| 82 extern void pop_close _ARGS((popserver)); | |
| 83 | |
| 84 #undef _ARGS |
