* call-dirmngr.c (lookup_status_cb): New.
[gnupg.git] / include / iobuf.h
index 9f4e8e7..2f35f9a 100644 (file)
@@ -18,8 +18,8 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  */
 
-#ifndef G10_IOBUF_H
-#define G10_IOBUF_H
+#ifndef GPG_IOBUF_H
+#define GPG_IOBUF_H
 
 #include "types.h"
 
 #define IOBUFCTRL_UNDERFLOW 3
 #define IOBUFCTRL_FLUSH     4
 #define IOBUFCTRL_DESC     5
+#define IOBUFCTRL_CANCEL    6
 #define IOBUFCTRL_USER     16
 
 typedef struct iobuf_struct *IOBUF;
 
+/* fixme: we should hide most of this stuff */
 struct iobuf_struct {
-    int usage;          /* 1 input , 2 output, 3 temp */
+    int use;          /* 1 input , 2 output, 3 temp */
     unsigned long nlimit;
     unsigned long nbytes; /* used together with nlimit */
     unsigned long ntotal; /* total bytes read (position of stream) */
@@ -54,6 +56,8 @@ struct iobuf_struct {
     int (*filter)( void *opaque, int control,
                   IOBUF chain, byte *buf, size_t *len);
     void *filter_ov;   /* value for opaque */
+    int filter_ov_owner;
+    char *real_fname;
     IOBUF chain;       /* next iobuf used for i/o if any (passed to filter) */
     int no, subno;
     const char *desc;
@@ -69,7 +73,7 @@ struct iobuf_struct {
 
 int iobuf_debug_mode;
 
-IOBUF iobuf_alloc(int usage, size_t bufsize);
+IOBUF iobuf_alloc(int use, size_t bufsize);
 IOBUF iobuf_temp(void);
 IOBUF iobuf_temp_with_content( const char *buffer, size_t length );
 IOBUF iobuf_open( const char *fname );
@@ -83,8 +87,10 @@ int   iobuf_cancel( IOBUF iobuf );
 
 int iobuf_push_filter( IOBUF a, int (*f)(void *opaque, int control,
                       IOBUF chain, byte *buf, size_t *len), void *ov );
-int iobuf_pop_filter( IOBUF a, int (*f)(void *opaque, int control,
-                     IOBUF chain, byte *buf, size_t *len), void *ov );
+int iobuf_push_filter2( IOBUF a,
+                   int (*f)(void *opaque, int control,
+                   IOBUF chain, byte *buf, size_t *len),
+                   void *ov, int rel_ov );
 int iobuf_flush(IOBUF a);
 void iobuf_clear_eof(IOBUF a);
 #define iobuf_set_error(a)    do { (a)->error = 1; } while(0)
@@ -104,11 +110,14 @@ int  iobuf_writebyte(IOBUF a, unsigned c);
 int  iobuf_write(IOBUF a, byte *buf, unsigned buflen );
 int  iobuf_writestr(IOBUF a, const char *buf );
 
+void iobuf_flush_temp( IOBUF temp );
 int  iobuf_write_temp( IOBUF a, IOBUF temp );
 size_t iobuf_temp_to_buffer( IOBUF a, byte *buffer, size_t buflen );
 void iobuf_unget_and_close_temp( IOBUF a, IOBUF temp );
 
 u32 iobuf_get_filelength( IOBUF a );
+#define IOBUF_FILELENGTH_LIMIT 0xffffffff
+const char *iobuf_get_real_fname( IOBUF a );
 const char *iobuf_get_fname( IOBUF a );
 
 void iobuf_set_block_mode( IOBUF a, size_t n );
@@ -135,6 +144,6 @@ int  iobuf_in_block_mode( IOBUF a );
 
 #define iobuf_get_temp_buffer(a) ( (a)->d.buf )
 #define iobuf_get_temp_length(a) ( (a)->d.len )
-#define iobuf_is_temp(a)        ( (a)->usage == 3 )
+#define iobuf_is_temp(a)        ( (a)->use == 3 )
 
-#endif /*G10_IOBUF_H*/
+#endif /*GPG_IOBUF_H*/