continue;	        } bump("Protocol error: Illegal time format"); case 'C': case 'D': act->action = (action == 'C' ? SCP_SINK_FILE : SCP_SINK_DIR); break; default: bump("Protocol error: Expected control record"); }
act->action = SCP_SINK_ENDDIR; return 0; case 'T': if (sscanf(act->buf, "%ld %*d %ld %*d", &act->mtime, &act->atime) == 2) { act->settime = 1; back->send("", 1); continue;	        } bump("Protocol error: Illegal time format"); case 'C': case 'D': act->action = (action == 'C' ? SCP_SINK_FILE : SCP_SINK_DIR); break; default: bump("Protocol error: Expected control record"); }  done = 1; }
int scp_get_sink_action(struct scp_sink_action *act){    int done = 0;    int i, bufsize;    int action;    char ch;    act->settime = 0;    act->buf = NULL;    bufsize = 0;    while (!done) {	if (ssh_scp_recv(&ch, 1) <= 0)	    return 1;	if (ch == '\n')	    bump("Protocol error: Unexpected newline");	i = 0;	action = ch;	do {	    if (ssh_scp_recv(&ch, 1) <= 0)		bump("Lost connection");	    if (i >= bufsize) {		bufsize = i + 128;		act->buf = srealloc(act->buf, bufsize);	    }	    act->buf[i++] = ch;	} while (ch != '\n');	act->buf[i - 1] = '\0';	switch (action) {	  case '\01':		       /* error */	    tell_user(stderr, "%s\n", act->buf);	    errs++;	    continue;		       /* go round again */	  case '\02':		       /* fatal error */	    bump("%s", act->buf);	  case 'E':	    back->send("", 1);	    act->action = SCP_SINK_ENDDIR;	    return 0;	  case 'T':	    if (sscanf(act->buf, "%ld %*d %ld %*d",		       &act->mtime, &act->atime) == 2) {		act->settime = 1;		back->send("", 1);		continue;	       /* go round again */	    }	    bump("Protocol error: Illegal time format");	  case 'C':	  case 'D':	    act->action = (action == 'C' ? SCP_SINK_FILE : SCP_SINK_DIR);	    break;	  default:	    bump("Protocol error: Expected control record");	}	/*	 * We will go round this loop only once, unless we hit	 * `continue' above.	 */	done = 1;    }    /*     * If we get here, we must have seen SCP_SINK_FILE or     * SCP_SINK_DIR.     */    if (sscanf(act->buf, "%o %lu %n", &act->mode, &act->size, &i) != 2)	bump("Protocol error: Illegal file descriptor format");    act->name = act->buf + i;    return 0;}