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