1 #ifndef CVM__V1CLIENT__H__
2 #define CVM__V1CLIENT__H__
3 
4 #include "facts.h"
5 #include "errors.h"
6 
7 #define CVM_BUFSIZE 512
8 
9 struct cvm_packet
10 {
11   unsigned length;
12   unsigned char data[CVM_BUFSIZE];
13 };
14 
15 extern const char* cvm_client_account_split_chars;
16 extern const char* cvm_client_ucspi_domain(void);
17 extern int cvm_client_authenticate(const char* module, const char* account,
18 				   const char* domain, const char** credentials,
19 				   int parse_account);
20 extern int cvm_client_fact_str(unsigned number, const char** data);
21 extern int cvm_client_fact_uint(unsigned number, unsigned long* data);
22 
23 extern int cvm_client_setugid(void);
24 extern int cvm_client_setenv(void);
25 
26 extern unsigned cvm_xfer_command_packets(const char* module,
27 					 const struct cvm_packet* request,
28 					 struct cvm_packet* response);
29 extern unsigned cvm_xfer_local_packets(const char* path,
30 				       const struct cvm_packet* request,
31 				       struct cvm_packet* response);
32 extern unsigned cvm_xfer_udp_packets(const char* hostport,
33 				     const struct cvm_packet* request,
34 				     struct cvm_packet* response);
35 
36 /* Wrapper functions for library compatibility. */
37 extern unsigned cvm_xfer_command(const char* module,
38 				 unsigned char buffer[CVM_BUFSIZE],
39 				 unsigned* buflen);
40 extern unsigned cvm_xfer_local(const char* path,
41 			       unsigned char buffer[CVM_BUFSIZE],
42 			       unsigned* buflen);
43 extern unsigned cvm_xfer_udp(const char* hostport,
44 			     unsigned char buffer[CVM_BUFSIZE],
45 			     unsigned* buflen);
46 
47 #ifndef CVM_NOCOMPAT
48 
49 /* Legacy definitions. */
50 #define cvm_account_split_chars    cvm_client_account_split_chars
51 #define cvm_ucspi_domain           cvm_client_ucspi_domain
52 #define cvm_setugid                cvm_client_setugid
53 #define cvm_setenv                 cvm_client_setenv
54 #define cvm_split_account          cvm_client_split_account
55 
56 #ifndef CVM__MODULE__H__
57 # define cvm_authenticate          cvm_client_authenticate
58 # define cvm_fact_str              cvm_client_fact_str
59 # define cvm_fact_uint             cvm_client_fact_uint
60 #else
61 # undef cvm_authenticate
62 # undef cvm_fact_str
63 # undef cvm_fact_uint
64 #endif
65 
66 #endif
67 
68 #endif
69