Diff for /tftpd/src/srv.c between versions 1.7 and 1.8

version 1.7, 2014/02/24 15:23:39 version 1.8, 2014/02/24 22:28:54
Line 171  txAck(sched_task_t *task) Line 171  txAck(sched_task_t *task)
                 schedCancelby(TASK_ROOT(task), taskTIMER, CRITERIA_CALL, timeoutSession, NULL);                  schedCancelby(TASK_ROOT(task), taskTIMER, CRITERIA_CALL, timeoutSession, NULL);
                 schedEvent(TASK_ROOT(task), timeoutSession, NULL, 0, TASK_DATA(task), 0);                  schedEvent(TASK_ROOT(task), timeoutSession, NULL, 0, TASK_DATA(task), 0);
                 EVERBOSE(2, "Finish WRQ request");                  EVERBOSE(2, "Finish WRQ request");
                   schedResumeby(TASK_ROOT(task), CRITERIA_ID, 0);
         }          }
         taskExit(task, NULL);          taskExit(task, NULL);
 }  }
Line 285  RQ(sched_task_t *task) Line 286  RQ(sched_task_t *task)
   
         cli.siz = TFTP_LOAD_MAX;          cli.siz = TFTP_LOAD_MAX;
         cli.opc = ntohs(rpack_uint16(pkt, NULL, 0));          cli.opc = ntohs(rpack_uint16(pkt, NULL, 0));
           if (!RW && cli.opc == TFTP_OPC_WRQ) {
                   code = htons(2);
                   goto end;
           }
         len = str_getString(RPACK_NEXT(pkt), rlen, &str);          len = str_getString(RPACK_NEXT(pkt), rlen, &str);
         if (len == -1)          if (len == -1)
                 goto end;                  goto end;
Line 473  DATA(sched_task_t *task) Line 478  DATA(sched_task_t *task)
   
         EVERBOSE(3, "DATA:: seq=%hu; len=%d", cli.seq, len);          EVERBOSE(3, "DATA:: seq=%hu; len=%d", cli.seq, len);
   
        if (!bf)        if (len > 0) {
                len = pwrite(cli.fd, RPACK_NEXT(pkt), len, (cli.seq - 1) * cli.siz);                if (!bf)
        else                        len = pwrite(cli.fd, RPACK_NEXT(pkt), len, (cli.seq - 1) * cli.siz);
                len = bfwrite(cli.fd, RPACK_NEXT(pkt), len);                else
        if (len == -1) {                        len = bfwrite(cli.fd, RPACK_NEXT(pkt), len);
                ESYSERR(0);                if (len == -1) {
                code = htons(3);                        ESYSERR(0);
                goto end;                        code = htons(3);
        } else {                        goto end;
                rpack_rnext(pkt, len);                } else
                EVERBOSE(3, "Written to file %s %d bytes", cli.file, len);                        rpack_rnext(pkt, len);
         }          }
           EVERBOSE(3, "Written to file %s %d bytes", cli.file, len);
   
         schedEvent(TASK_ROOT(task), txAck, NULL, TASK_FD(task), TASK_DATA(task), 0);          schedEvent(TASK_ROOT(task), txAck, NULL, TASK_FD(task), TASK_DATA(task), 0);
         taskExit(task, NULL);          taskExit(task, NULL);

Removed from v.1.7  
changed lines
  Added in v.1.8


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>