]> granicus.if.org Git - postgresql/blob - src/include/libpq/libpq.h
Add parameters for controlling locations of server-side SSL files
[postgresql] / src / include / libpq / libpq.h
1 /*-------------------------------------------------------------------------
2  *
3  * libpq.h
4  *        POSTGRES LIBPQ buffer structure definitions.
5  *
6  *
7  * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * src/include/libpq/libpq.h
11  *
12  *-------------------------------------------------------------------------
13  */
14 #ifndef LIBPQ_H
15 #define LIBPQ_H
16
17 #include <sys/types.h>
18 #include <netinet/in.h>
19
20 #include "lib/stringinfo.h"
21 #include "libpq/libpq-be.h"
22
23 /* ----------------
24  * PQArgBlock
25  *              Information (pointer to array of this structure) required
26  *              for the PQfn() call.  (This probably ought to go somewhere else...)
27  * ----------------
28  */
29 typedef struct
30 {
31         int                     len;
32         int                     isint;
33         union
34         {
35                 int                *ptr;                /* can't use void (dec compiler barfs)   */
36                 int                     integer;
37         }                       u;
38 } PQArgBlock;
39
40 /*
41  * External functions.
42  */
43
44 /*
45  * prototypes for functions in pqcomm.c
46  */
47 extern int StreamServerPort(int family, char *hostName,
48         unsigned short portNumber, char *unixSocketName, pgsocket ListenSocket[],
49                                  int MaxListen);
50 extern int      StreamConnection(pgsocket server_fd, Port *port);
51 extern void StreamClose(pgsocket sock);
52 extern void TouchSocketFile(void);
53 extern void pq_init(void);
54 extern void pq_comm_reset(void);
55 extern int      pq_getbytes(char *s, size_t len);
56 extern int      pq_getstring(StringInfo s);
57 extern int      pq_getmessage(StringInfo s, int maxlen);
58 extern int      pq_getbyte(void);
59 extern int      pq_peekbyte(void);
60 extern int      pq_getbyte_if_available(unsigned char *c);
61 extern int      pq_putbytes(const char *s, size_t len);
62 extern int      pq_flush(void);
63 extern int      pq_flush_if_writable(void);
64 extern bool pq_is_send_pending(void);
65 extern int      pq_putmessage(char msgtype, const char *s, size_t len);
66 extern void pq_putmessage_noblock(char msgtype, const char *s, size_t len);
67 extern void pq_startcopyout(void);
68 extern void pq_endcopyout(bool errorAbort);
69
70 /*
71  * prototypes for functions in be-secure.c
72  */
73 extern char *ssl_cert_file;
74 extern char *ssl_key_file;
75 extern char *ssl_ca_file;
76 extern char *ssl_crl_file;
77
78 extern int      secure_initialize(void);
79 extern bool secure_loaded_verify_locations(void);
80 extern void secure_destroy(void);
81 extern int      secure_open_server(Port *port);
82 extern void secure_close(Port *port);
83 extern ssize_t secure_read(Port *port, void *ptr, size_t len);
84 extern ssize_t secure_write(Port *port, void *ptr, size_t len);
85
86 #endif   /* LIBPQ_H */