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