[BACK]Return to proto.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / cvs

Diff for /src/usr.bin/cvs/Attic/proto.c between version 1.4 and 1.5

version 1.4, 2004/07/25 18:50:30 version 1.5, 2004/07/26 16:00:10
Line 60 
Line 60 
 #include "log.h"  #include "log.h"
   
   
   #define CVS_MTSTK_MAXDEPTH   16
   
   
   
 extern int   verbosity;  extern int   verbosity;
 extern int   cvs_compress;  extern int   cvs_compress;
 extern char *cvs_rsh;  extern char *cvs_rsh;
Line 72 
Line 75 
   
   
   
 /*  
  * Local and remote directory used by the `Directory' request.  
  */  
 char  cvs_ldir[MAXPATHLEN];  
 char  cvs_rdir[MAXPATHLEN];  
   
   
   
 char *cvs_fcksum = NULL;  
   
 mode_t  cvs_lastmode = 0;  
   
   
 static int  cvs_resp_validreq  (int, char *);  static int  cvs_resp_validreq  (int, char *);
 static int  cvs_resp_cksum     (int, char *);  static int  cvs_resp_cksum     (int, char *);
 static int  cvs_resp_modtime   (int, char *);  static int  cvs_resp_modtime   (int, char *);
Line 92 
Line 82 
 static int  cvs_resp_ok        (int, char *);  static int  cvs_resp_ok        (int, char *);
 static int  cvs_resp_error     (int, char *);  static int  cvs_resp_error     (int, char *);
 static int  cvs_resp_statdir   (int, char *);  static int  cvs_resp_statdir   (int, char *);
   static int  cvs_resp_sticky    (int, char *);
 static int  cvs_resp_newentry  (int, char *);  static int  cvs_resp_newentry  (int, char *);
 static int  cvs_resp_updated   (int, char *);  static int  cvs_resp_updated   (int, char *);
 static int  cvs_resp_removed   (int, char *);  static int  cvs_resp_removed   (int, char *);
 static int  cvs_resp_mode      (int, char *);  static int  cvs_resp_mode      (int, char *);
   static int  cvs_resp_modxpand  (int, char *);
   
   
   
Line 181 
Line 173 
         { CVS_RESP_CHECKEDIN,  "Checked-in",             cvs_resp_newentry },          { CVS_RESP_CHECKEDIN,  "Checked-in",             cvs_resp_newentry },
         { CVS_RESP_MODE,       "Mode",                   cvs_resp_mode     },          { CVS_RESP_MODE,       "Mode",                   cvs_resp_mode     },
         { CVS_RESP_MODTIME,    "Mod-time",               cvs_resp_modtime  },          { CVS_RESP_MODTIME,    "Mod-time",               cvs_resp_modtime  },
           { CVS_RESP_MODXPAND,   "Module-expansion",       cvs_resp_modxpand },
           { CVS_RESP_SETSTICKY,  "Set-sticky",             cvs_resp_sticky   },
           { CVS_RESP_CLRSTICKY,  "Clear-sticky",           cvs_resp_sticky   },
 };  };
   
   
   static char *cvs_mt_stack[CVS_MTSTK_MAXDEPTH];
   static u_int cvs_mtstk_depth = 0;
   
   
 #define CVS_NBREQ   (sizeof(cvs_requests)/sizeof(cvs_requests[0]))  #define CVS_NBREQ   (sizeof(cvs_requests)/sizeof(cvs_requests[0]))
 #define CVS_NBRESP  (sizeof(cvs_responses)/sizeof(cvs_responses[0]))  #define CVS_NBRESP  (sizeof(cvs_responses)/sizeof(cvs_responses[0]))
   
 /* mask of requets supported by server */  /* mask of requets supported by server */
 static u_char  cvs_server_validreq[CVS_REQ_MAX + 1];  static u_char  cvs_server_validreq[CVS_REQ_MAX + 1];
   
   /*
    * Local and remote directory used by the `Directory' request.
    */
   char  cvs_ldir[MAXPATHLEN];
   char  cvs_rdir[MAXPATHLEN];
   
   char *cvs_fcksum = NULL;
   
   mode_t  cvs_lastmode = 0;
   
   
 /*  /*
  * cvs_req_getbyid()   * cvs_req_getbyid()
  *   *
Line 485 
Line 494 
 static int  static int
 cvs_resp_m(int type, char *line)  cvs_resp_m(int type, char *line)
 {  {
           char *cp;
         FILE *stream;          FILE *stream;
   
         stream = NULL;          stream = NULL;
Line 500 
Line 510 
                 stream = stderr;                  stream = stderr;
                 break;                  break;
         case CVS_RESP_MT:          case CVS_RESP_MT:
                   if (*line == '+') {
                           if (cvs_mtstk_depth == CVS_MTSTK_MAXDEPTH) {
                                   cvs_log(LP_ERR,
                                       "MT scope stack has reached max depth");
                                   return (-1);
                           }
                           cvs_mt_stack[cvs_mtstk_depth++] = strdup(line + 1);
                           if (cvs_mt_stack[cvs_mtstk_depth] == NULL) {
                                   cvs_mtstk_depth--;
                                   return (-1);
                           }
                   }
                   else if (*line == '-') {
                           if (cvs_mtstk_depth == 0) {
                                   cvs_log(LP_ERR, "MT scope stack underflow");
                                   return (-1);
                           }
                           else if (strcmp(line,
                               cvs_mt_stack[cvs_mtstk_depth]) != 0) {
                                   cvs_log(LP_ERR, "mismatch in MT scope stack");
                                   return (-1);
                           }
                           free(cvs_mt_stack[cvs_mtstk_depth--]);
                   }
                   else {
                           if (strcmp(line, "newline") == 0)
                                   putc('\n', stdout);
                           else if (strncmp(line, "fname ", 6) == 0)
                                   printf("%s", line + 6);
                           else {
                                   /* assume text */
                                   cp = strchr(line, ' ');
                                   if (cp != NULL)
                                           printf("%s", cp + 1);
                           }
                   }
   
                 break;                  break;
         case CVS_RESP_MBINARY:          case CVS_RESP_MBINARY:
                 cvs_log(LP_WARN, "MT and Mbinary not supported in client yet");                  cvs_log(LP_WARN, "Mbinary not supported in client yet");
                 break;                  break;
         }          }
   
Line 556 
Line 603 
             CVS_PATH_STATICENTRIES);              CVS_PATH_STATICENTRIES);
   
         if ((type == CVS_RESP_CLRSTATDIR) &&          if ((type == CVS_RESP_CLRSTATDIR) &&
             (unlink(statpath) == -1)) {              (unlink(statpath) == -1) && (errno != ENOENT)) {
                 cvs_log(LP_ERRNO, "failed to unlink %s file",                  cvs_log(LP_ERRNO, "failed to unlink %s file",
                     CVS_PATH_STATICENTRIES);                      CVS_PATH_STATICENTRIES);
                 return (-1);                  return (-1);
         }          }
         else if (type == CVS_RESP_SETSTATDIR) {          else if (type == CVS_RESP_SETSTATDIR) {
                 fd = open(statpath, O_CREAT|O_TRUNC|O_WRONLY, 0400);                  fd = open(statpath, O_CREAT|O_TRUNC|O_WRONLY, 0400);
                 if (fd == -1) {                  if (fd == -1) {
                         cvs_log(LP_ERRNO, "failed to create %s file",                          cvs_log(LP_ERRNO, "failed to create %s file",
                             CVS_PATH_STATICENTRIES);                              CVS_PATH_STATICENTRIES);
                         return (-1);                          return (-1);
                 }                  }
                 (void)close(fd);                  (void)close(fd);
   
         }          }
   
         return (0);          return (0);
 }  }
   
   /*
    * cvs_resp_sticky()
    *
    * Handler for the `Clear-sticky' and `Set-sticky' responses.
    */
   
   static int
   cvs_resp_sticky(int type, char *line)
   {
           if (type == CVS_RESP_CLRSTICKY) {
           }
           else if (type == CVS_RESP_SETSTICKY) {
           }
   
           return (0);
   }
   
   
 /*  /*
  * cvs_resp_newentry()   * cvs_resp_newentry()
  *   *
Line 713 
Line 778 
         if (cvs_strtomode(line, &cvs_lastmode) < 0) {          if (cvs_strtomode(line, &cvs_lastmode) < 0) {
                 return (-1);                  return (-1);
         }          }
           return (0);
   }
   
   
   /*
    * cvs_resp_modxpand()
    *
    * Handler for the `Module-expansion' response.
    */
   
   static int
   cvs_resp_modxpand(int type, char *line)
   {
         return (0);          return (0);
 }  }
   

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5