Update of /cvsroot/playerstage/code/player/server/drivers/shell
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11860/server/drivers/shell

Modified Files:
      Tag: b_thjc_dynamic_arrays
        readlog.cc writelog.cc 
Log Message:
dynamic array changes to drivers compile, still needs testing
added lots more .cvsignore settings for eclipse

Index: writelog.cc
===================================================================
RCS file: /cvsroot/playerstage/code/player/server/drivers/shell/writelog.cc,v
retrieving revision 1.82.2.1
retrieving revision 1.82.2.2
diff -C2 -d -r1.82.2.1 -r1.82.2.2
*** writelog.cc 14 Sep 2007 00:21:10 -0000      1.82.2.1
--- writelog.cc 19 Oct 2007 21:58:56 -0000      1.82.2.2
***************
*** 23,27 ****
--- 23,31 ----
   * Author: Andrew Howard
   * Date: 14 Jun 2003
+ <<<<<<< writelog.cc
+  * CVS: $Id$
+ =======
   * CVS: $Id$
+ >>>>>>> 1.82.2.1
   *
   */
***************
*** 618,627 ****
                             this->device_addr))
    {
-     if(hdr->size != sizeof(player_log_set_write_state_t))
-     {
-       PLAYER_ERROR2("request is wrong length (%d != %d); ignoring",
-                     hdr->size, sizeof(player_log_set_write_state_t));
-       return(-1);
-     }
      player_log_set_write_state_t* sreq = (player_log_set_write_state_t*)data;
  
--- 622,625 ----
***************
*** 646,656 ****
                                  PLAYER_LOG_REQ_GET_STATE, this->device_addr))
    {
-     if(hdr->size != 0)
-     {
-       PLAYER_ERROR2("request is wrong length (%d != %d); ignoring",
-                     hdr->size, 0);
-       return(-1);
-     }
- 
      player_log_get_state_t greq;
  
--- 644,647 ----
***************
*** 671,680 ****
                                  PLAYER_LOG_REQ_SET_FILENAME, 
this->device_addr))
    {
-     if(hdr->size < sizeof(uint32_t))
-     {
-       PLAYER_ERROR2("request is wrong length (%d < %d); ignoring",
-                     hdr->size, sizeof(uint32_t));
-       return(-1);
-     }
      player_log_set_filename_t* freq = (player_log_set_filename_t*)data;
  
--- 662,665 ----
***************
*** 1710,1720 ****
              player_aio_data_t* inputs(static_cast<player_aio_data_t*>(data));
  
-             // check for buffer overrun
-             if (inputs->voltages_count > PLAYER_AIO_MAX_INPUTS) {
-                 // this shouldn't happen
-                 PLAYER_ERROR("count too big for buffer");
-                 return -1;
-             }
- 
              fprintf(this->file, "%04d ", inputs->voltages_count);
  
--- 1695,1698 ----
***************
*** 1805,1823 ****
              player_rfid_data_t* rdata(static_cast<player_rfid_data_t*>(data));
  
-             if (rdata->tags_count > PLAYER_RFID_MAX_TAGS) {
-                 // this shouldn't happen
-                 PLAYER_ERROR("count too big for buffer");
-                 return -1;
-             }
- 
              fprintf(file, "%04d ", rdata->tags_count);
  
              for (player_rfid_tag_t *t(rdata->tags);
                   t != rdata->tags + rdata->tags_count; ++t) {
!               if (t->guid_count > PLAYER_RFID_MAX_GUID) {
!                 PLAYER_ERROR("guid count too big for buffer");
!                 return -1;
!               }
!               char str[PLAYER_RFID_MAX_GUID * 2 + 1];
                memset(str, '\0', sizeof(str));
                EncodeHex(str, sizeof(str), t->guid, t->guid_count);
--- 1783,1791 ----
              player_rfid_data_t* rdata(static_cast<player_rfid_data_t*>(data));
  
              fprintf(file, "%04d ", rdata->tags_count);
  
              for (player_rfid_tag_t *t(rdata->tags);
                   t != rdata->tags + rdata->tags_count; ++t) {
!               char str[t->guid_count * 2 + 1];
                memset(str, '\0', sizeof(str));
                EncodeHex(str, sizeof(str), t->guid, t->guid_count);

Index: readlog.cc
===================================================================
RCS file: /cvsroot/playerstage/code/player/server/drivers/shell/readlog.cc,v
retrieving revision 1.52.2.1
retrieving revision 1.52.2.2
diff -C2 -d -r1.52.2.1 -r1.52.2.2
*** readlog.cc  14 Sep 2007 00:21:10 -0000      1.52.2.1
--- readlog.cc  19 Oct 2007 21:58:56 -0000      1.52.2.2
***************
*** 23,27 ****
--- 23,31 ----
   * Author: Andrew Howard
   * Date: 17 May 2003
+ <<<<<<< readlog.cc
+  * CVS: $Id$
+ =======
   * CVS: $Id$
+ >>>>>>> 1.52.2.1
   *
   * The writelog driver will write data from another device to a log file.
***************
*** 147,150 ****
--- 151,155 ----
  
  #include <libplayercore/playercore.h>
+ #include <libplayerxdr/playerxdr.h>
  
  #include "encode.h"
***************
*** 1107,1119 ****
                                  this->localize_addr))
    {
-     if(hdr->size != 0)
-     {
-       PLAYER_ERROR2("request is wrong length (%d != %d); ignoring",
-                     hdr->size, 0);
-       return(PLAYER_MSGTYPE_RESP_NACK);
-     }
- 
- 
- 
      this->Publish(this->localize_addr, resp_queue,
                    PLAYER_MSGTYPE_RESP_ACK,
--- 1112,1115 ----
***************
*** 2328,2338 ****
              }
  
-             if (inputs.voltages_count > PLAYER_AIO_MAX_INPUTS) {
-               PLAYER_ERROR2("invalid line at %s:%d: too much data for buffer",
-                             filename, linenum);
-               return -1;
-             }
- 
              char **t(tokens + 8);
              for (float *v(inputs.voltages);
                   v != inputs.voltages + inputs.voltages_count; ++v, ++t)
--- 2324,2329 ----
              }
  
              char **t(tokens + 8);
+             inputs.voltages = new float[inputs.voltages_count];
              for (float *v(inputs.voltages);
                   v != inputs.voltages + inputs.voltages_count; ++v, ++t)
***************
*** 2341,2344 ****
--- 2332,2336 ----
              Publish(id, type, subtype, (void *)&inputs, sizeof(inputs),
                      &time);
+             delete [] inputs.voltages;
              return 0;
            }
***************
*** 2436,2454 ****
              }
  
-             if (rdata.tags_count > PLAYER_RFID_MAX_TAGS) {
-               PLAYER_ERROR2("invalid line at %s:%d: too much data for buffer",
-                             this->filename, linenum);
-               return -1;
-             }
  
              char **t(tokens + 8);
              for (player_rfid_tag_t *r(rdata.tags);
                   r != rdata.tags + rdata.tags_count; ++r, ++t) {
                r->guid_count = strlen(*t) / 2;
!               DecodeHex(r->guid, PLAYER_RFID_MAX_GUID, *t, strlen(*t));
              }
  
              Publish(id, type, subtype, (void *)&rdata, sizeof(rdata),
                      &time);
              return 0;
            }
--- 2428,2444 ----
              }
  
  
              char **t(tokens + 8);
+             rdata.tags = new player_rfid_tag_t[ rdata.tags_count];
              for (player_rfid_tag_t *r(rdata.tags);
                   r != rdata.tags + rdata.tags_count; ++r, ++t) {
                r->guid_count = strlen(*t) / 2;
!               r->guid = new char [r->guid_count];
!               DecodeHex(r->guid, r->guid_count, *t, strlen(*t));
              }
  
              Publish(id, type, subtype, (void *)&rdata, sizeof(rdata),
                      &time);
+             player_rfid_data_t_cleanup(&rdata);
              return 0;
            }


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to