home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / cvs-1.8.7-src.tgz / tar.out / fsf / cvs / src / client.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  5KB  |  176 lines

  1. /* Interface between the client and the rest of CVS.  */
  2.  
  3. /* Stuff shared with the server.  */
  4. extern char *mode_to_string PROTO((mode_t));
  5. extern int change_mode PROTO((char *, char *));
  6.  
  7. extern int gzip_level;
  8. extern int file_gzip_level;
  9. extern int filter_through_gzip PROTO((int, int, int, pid_t *));
  10. extern int filter_through_gunzip PROTO((int, int, pid_t *));
  11.  
  12. #if defined (CLIENT_SUPPORT) || defined (SERVER_SUPPORT)
  13.  
  14. extern int cvsencrypt;
  15.  
  16. #ifdef HAVE_KERBEROS
  17.  
  18. /* We can't declare the arguments without including krb.h, and I don't
  19.    want to do that in every file.  */
  20. extern struct buffer *krb_encrypt_buffer_initialize ();
  21.  
  22. #endif /* HAVE_KERBEROS */
  23.  
  24. #endif /* defined (CLIENT_SUPPORT) || defined (SERVER_SUPPORT) */
  25.  
  26. #ifdef CLIENT_SUPPORT
  27. /*
  28.  * Flag variable for seeing whether the server has been started yet.
  29.  * As of this writing, only edit.c:notify_check() uses it.
  30.  */
  31. extern int server_started;
  32.  
  33. /* Is the -P option to checkout or update specified?  */
  34. extern int client_prune_dirs;
  35.  
  36. #ifdef AUTH_CLIENT_SUPPORT
  37. extern int use_authenticating_server;
  38. int connect_to_pserver PROTO((int *tofdp, int* fromfdp, int verify_only));
  39. # ifndef CVS_AUTH_PORT
  40. # define CVS_AUTH_PORT 2401
  41. # endif /* CVS_AUTH_PORT */
  42. #endif /* AUTH_CLIENT_SUPPORT */
  43.  
  44. #ifdef AUTH_SERVER_SUPPORT
  45. extern void pserver_authenticate_connection PROTO ((void));
  46. #endif
  47.  
  48. #if defined (SERVER_SUPPORT) && defined (HAVE_KERBEROS)
  49. extern void kserver_authenticate_connection PROTO ((void));
  50. #endif
  51.  
  52. /* Talking to the server. */
  53. void send_to_server PROTO((char *str, size_t len));
  54. void read_from_server PROTO((char *buf, size_t len));
  55.  
  56. /* Internal functions that handle client communication to server, etc.  */
  57. int supported_request PROTO ((char *));
  58. void option_with_arg PROTO((char *option, char *arg));
  59.  
  60. /* Get the responses and then close the connection.  */
  61. extern int get_responses_and_close PROTO((void));
  62.  
  63. extern int get_server_responses PROTO((void));
  64.  
  65. /* Start up the connection to the server on the other end.  */
  66. void
  67. start_server PROTO((void));
  68.  
  69. /* Send the names of all the argument files to the server.  */
  70. void
  71. send_file_names PROTO((int argc, char **argv, unsigned int flags));
  72.  
  73. /* Flags for send_file_names.  */
  74. /* Expand wild cards?  */
  75. #define SEND_EXPAND_WILD 1
  76.  
  77. /*
  78.  * Send Repository, Modified and Entry.  argc and argv contain only
  79.  * the files to operate on (or empty for everything), not options.
  80.  * local is nonzero if we should not recurse (-l option).
  81.  */
  82. void
  83. send_files PROTO((int argc, char **argv, int local, int aflag));
  84.  
  85. /*
  86.  * Like send_files but never send "Unchanged"--just send the contents of the
  87.  * file in that case.  This is used to fix it if you import a directory which
  88.  * happens to have CVS directories (yes it is obscure but the testsuite tests
  89.  * it).
  90.  */
  91. void
  92. send_files_contents PROTO((int argc, char **argv, int local, int aflag));
  93.  
  94. /* Send an argument to the remote server.  */
  95. void
  96. send_arg PROTO((char *string));
  97.  
  98. /* Send a string of single-char options to the remote server, one by one.  */
  99. void
  100. send_option_string PROTO((char *string));
  101.  
  102. #endif /* CLIENT_SUPPORT */
  103.  
  104. /*
  105.  * This structure is used to catalog the responses the client is
  106.  * prepared to see from the server.
  107.  */
  108.  
  109. struct response
  110. {
  111.     /* Name of the response.  */
  112.     char *name;
  113.  
  114. #ifdef CLIENT_SUPPORT
  115.     /*
  116.      * Function to carry out the response.  ARGS is the text of the
  117.      * command after name and, if present, a single space, have been
  118.      * stripped off.  The function can scribble into ARGS if it wants.
  119.      */
  120.     void (*func) PROTO((char *args, int len));
  121.  
  122.     /*
  123.      * ok and error are special; they indicate we are at the end of the
  124.      * responses, and error indicates we should exit with nonzero
  125.      * exitstatus.
  126.      */
  127.     enum {response_type_normal, response_type_ok, response_type_error} type;
  128. #endif
  129.  
  130.     /* Used by the server to indicate whether response is supported by
  131.        the client, as set by the Valid-responses request.  */
  132.     enum {
  133.       /*
  134.        * Failure to implement this response can imply a fatal
  135.        * error.  This should be set only for responses which were in the
  136.        * original version of the protocol; it should not be set for new
  137.        * responses.
  138.        */
  139.       rs_essential,
  140.  
  141.       /* Some clients might not understand this response.  */
  142.       rs_optional,
  143.  
  144.       /*
  145.        * Set by the server to one of the following based on what this
  146.        * client actually supports.
  147.        */
  148.       rs_supported,
  149.       rs_not_supported
  150.       } status;
  151. };
  152.  
  153. /* Table of responses ending in an entry with a NULL name.  */
  154.  
  155. extern struct response responses[];
  156.  
  157. #ifdef CLIENT_SUPPORT
  158.  
  159. extern void client_senddate PROTO((const char *date));
  160. extern void client_expand_modules PROTO((int argc, char **argv, int local));
  161. extern void client_send_expansions PROTO((int local, char *where));
  162. extern void client_nonexpanded_setup PROTO((void));
  163.  
  164. extern void send_init_command PROTO ((void));
  165.  
  166. extern char **failed_patches;
  167. extern int failed_patches_count;
  168. extern char toplevel_wd[];
  169. extern void client_import_setup PROTO((char *repository));
  170. extern int client_process_import_file
  171.     PROTO((char *message, char *vfile, char *vtag,
  172.        int targc, char *targv[], char *repository));
  173. extern void client_import_done PROTO((void));
  174. extern void client_notify PROTO((char *, char *, char *, int, char *));
  175. #endif /* CLIENT_SUPPORT */
  176.