Diff for /tftpd/src/srv.c between versions 1.2.2.8 and 1.4.2.1

version 1.2.2.8, 2014/02/20 16:30:05 version 1.4.2.1, 2014/02/21 08:32:33
Line 216  txOack(sched_task_t *task) Line 216  txOack(sched_task_t *task)
   
         EVERBOSE(4, "blksize=%u tsize=%llu timeout=%u rollover=%u",           EVERBOSE(4, "blksize=%u tsize=%llu timeout=%u rollover=%u", 
                         cli.siz, cli.tsiz, cli.tout.tv_sec, cli.roll);                          cli.siz, cli.tsiz, cli.tout.tv_sec, cli.roll);
        schedEvent(TASK_ROOT(task), txPkt, NULL, TASK_FD(task),         schedCallOnce(TASK_ROOT(task), txPkt, NULL, TASK_FD(task), 
                         TASK_DATA(task), RPACK_OFF(pkt));                          TASK_DATA(task), RPACK_OFF(pkt));
         taskExit(task, NULL);          taskExit(task, NULL);
 }  }
Line 234  RQ(sched_task_t *task) Line 234  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));
        len = str_getString(tftp->tftp_data, rlen, &str);        len = str_getString(RPACK_NEXT(pkt), rlen, &str);
         if (len == -1)          if (len == -1)
                 goto end;                  goto end;
         else {          else {
                   strlcpy(cli.file, (char*) RPACK_NEXT(pkt), sizeof cli.file);
                 rlen -= len;                  rlen -= len;
                 rpack_rnext(pkt, len);                  rpack_rnext(pkt, len);
                 strlcpy(cli.file, (char*) tftp->tftp_data, sizeof cli.file);  
         }          }
         len = str_getString((const u_char*) str, rlen, NULL);          len = str_getString((const u_char*) str, rlen, NULL);
         if (len == -1)          if (len == -1)
Line 355  ACK(sched_task_t *task) Line 355  ACK(sched_task_t *task)
         if (ntohs(code) > cli.seq || (ntohs(code) < (cli.seq - 1))) {          if (ntohs(code) > cli.seq || (ntohs(code) < (cli.seq - 1))) {
                 code = htole16(5);                  code = htole16(5);
                 goto end;                  goto end;
        } else if (ntohs(code) == cli.seq)        } else if (ntohs(code) == cli.seq) {
                cli.seq++;                /* check for rollover seq id */
                 if (cli.roll && cli.seq == USHRT_MAX)
                         cli.seq = cli.roll;
                 else
                         cli.seq++;
         }
   
         EVERBOSE(3, "ACK:: seq=%hu; my new seq=%hu;", ntohs(code), cli.seq);          EVERBOSE(3, "ACK:: seq=%hu; my new seq=%hu;", ntohs(code), cli.seq);
   
Line 458  rxPkt(sched_task_t *task) Line 463  rxPkt(sched_task_t *task)
                 goto end;                  goto end;
         } else if (!cli.addr.sa.sa_len) {          } else if (!cli.addr.sa.sa_len) {
                 cli.addr = sa;                  cli.addr = sa;
                   RPACK_REWIND(pkt);
                 switch (ntohs(tftp->tftp_opc)) {                  switch (ntohs(tftp->tftp_opc)) {
                         case TFTP_OPC_RRQ:                          case TFTP_OPC_RRQ:
                         case TFTP_OPC_WRQ:                          case TFTP_OPC_WRQ:

Removed from v.1.2.2.8  
changed lines
  Added in v.1.4.2.1


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