hgomez      01/05/15 03:14:22

  Modified:    jk/src/native/common jk_msg_buff.h jk_msg_buff.c
  Log:
  New buf for ajp14 (long/bytes)
  
  Revision  Changes    Path
  1.2       +27 -9     jakarta-tomcat-connectors/jk/src/native/common/jk_msg_buff.h
  
  Index: jk_msg_buff.h
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/src/native/common/jk_msg_buff.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jk_msg_buff.h     2001/05/14 09:36:20     1.1
  +++ jk_msg_buff.h     2001/05/15 10:14:16     1.2
  @@ -57,7 +57,7 @@
    * Description: Data marshaling. XDR like                                  *
    * Author:      Costin <[EMAIL PROTECTED]>                              *
    * Author:      Gal Shachor <[EMAIL PROTECTED]>                           *
  - * Version:     $Revision: 1.1 $                                           *
  + * Version:     $Revision: 1.2 $                                           *
    ***************************************************************************/
   
   #ifndef JK_MSG_BUF_H
  @@ -152,36 +152,54 @@
   
   /* -------------------- Real encoding -------------------- */
   
  -void jk_b_set_int(jk_msg_buf_t *msg, 
  -                  int pos, 
  -                  unsigned short val);
  -
   int jk_b_append_byte(jk_msg_buf_t *msg, 
                        unsigned char val);
   
  +int jk_b_append_bytes(jk_msg_buf_t *        msg, 
  +                      const unsigned char * param,
  +                                       int                   len);
  +
   int jk_b_append_int(jk_msg_buf_t *msg, 
                       unsigned short val);
   
  +int jk_b_append_long(jk_msg_buf_t *msg,
  +                     unsigned long val);
  +
   int jk_b_append_string(jk_msg_buf_t *msg, 
                          const char *param);
   
   
   /* -------------------- Decoding -------------------- */
   
  -unsigned char *jk_b_get_string(jk_msg_buf_t *msg);
  +/** Get a byte from the current position 
  + */
  +unsigned char jk_b_get_byte(jk_msg_buf_t *msg);
   
  -/** Get an int from the current position 
  +/** Get an int from the current position
    */
   unsigned short jk_b_get_int(jk_msg_buf_t *msg);
   
  -unsigned char jk_b_get_byte(jk_msg_buf_t *msg);
  +/** Get a long from the current position
  + */
  +unsigned long jk_b_get_long(jk_msg_buf_t *msg);
   
  +/** Get a String from the current position
  + */
  +unsigned char *jk_b_get_string(jk_msg_buf_t *msg);
  +
  +/** Get a byte from an arbitrary position
  + */
  +unsigned char jk_b_pget_byte(jk_msg_buf_t *msg,
  +                             int pos);
  +
   /** Get an int from an arbitrary position 
    */
   unsigned short jk_b_pget_int(jk_msg_buf_t *msg, 
                                int pos);
   
  -unsigned char jk_b_pget_byte(jk_msg_buf_t *msg, 
  +/** Get a long from an arbitrary position 
  + */
  +unsigned long jk_b_pget_long(jk_msg_buf_t *msg, 
                                int pos);
   
   /* --------------------- Help ------------------------ */
  
  
  
  1.2       +83 -9     jakarta-tomcat-connectors/jk/src/native/common/jk_msg_buff.c
  
  Index: jk_msg_buff.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/src/native/common/jk_msg_buff.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jk_msg_buff.c     2001/05/14 09:36:19     1.1
  +++ jk_msg_buff.c     2001/05/15 10:14:18     1.2
  @@ -58,7 +58,7 @@
    * Author:      Costin <[EMAIL PROTECTED]>                              *
    * Author:      Gal Shachor <[EMAIL PROTECTED]>                           *
    * Author:      Henri Gomez <[EMAIL PROTECTED]>                               *
  - * Version:     $Revision: 1.1 $                                           *
  + * Version:     $Revision: 1.2 $                                           *
    ***************************************************************************/
   
   #include "jk_pool.h"
  @@ -112,12 +112,39 @@
       msg->pos = 4;
   }
   
  -void jk_b_set_int(jk_msg_buf_t *msg, 
  +
  +static void jk_b_set_long(jk_msg_buf_t *msg,
  +                  int pos,
  +                  unsigned long val)
  +{   
  +    msg->buf[pos]       = (unsigned char)((val >> 24) & 0xFF);
  +    msg->buf[pos + 1]   = (unsigned char)((val >> 16) & 0xFF);
  +    msg->buf[pos + 2]   = (unsigned char)((val >> 8) & 0xFF);
  +    msg->buf[pos + 3]   = (unsigned char)(val & 0xFF);
  +}
  +
  +
  +int jk_b_append_long(jk_msg_buf_t *msg,
  +                    unsigned long val)
  +{
  +    if(msg->len + 4 > msg->maxlen) {
  +        return -1;
  +    }
  +
  +    jk_b_set_long(msg, msg->len, val);
  +
  +    msg->len += 4;
  +
  +    return 0;
  +}
  +
  +
  +static void jk_b_set_int(jk_msg_buf_t *msg, 
                     int pos, 
                     unsigned short val) 
   {
  -    msg->buf[pos]       = (unsigned char)((val >> 8) & 0xff);
  -    msg->buf[pos + 1]   = (unsigned char)(val & 0xff);
  +    msg->buf[pos]       = (unsigned char)((val >> 8) & 0xFF);
  +    msg->buf[pos + 1]   = (unsigned char)(val & 0xFF);
   }
   
   
  @@ -136,7 +163,7 @@
   }
   
   
  -void jk_b_set_byte(jk_msg_buf_t *msg, 
  +static void jk_b_set_byte(jk_msg_buf_t *msg, 
                      int pos, 
                      unsigned char val) 
   {
  @@ -268,6 +295,52 @@
       return 0;
   }
   
  +
  +int jk_b_append_bytes(jk_msg_buf_t         *msg,
  +                      const unsigned char  *param,
  +                                       int                   len)
  +{
  +    if (! len) {
  +        return 0;
  +    }
  +
  +    if (msg->len + len > msg->maxlen) {
  +        return -1;
  +    }
  +
  +    /* We checked for space !!  */
  +    memcpy((char *)msg->buf + msg->len, param, len); 
  +    msg->len += len;
  +
  +    return 0;
  +}
  +
  +unsigned long jk_b_get_long(jk_msg_buf_t *msg)
  +{
  +    unsigned long i;
  +    if(msg->pos + 3 > msg->len) {
  +        printf( "Read after end \n");
  +        return -1;
  +    }
  +    i  = ((msg->buf[(msg->pos++)] & 0xFF)<<24);
  +    i |= ((msg->buf[(msg->pos++)] & 0xFF)<<16);
  +    i |= ((msg->buf[(msg->pos++)] & 0xFF)<<8);
  +    i |= ((msg->buf[(msg->pos++)] & 0xFF));
  +    return i;
  +}
  +
  +unsigned long jk_b_pget_long(jk_msg_buf_t *msg,
  +                             int pos)
  +{
  +    unsigned long i;
  +    i  = ((msg->buf[(pos++)] & 0xFF)<<24);
  +    i |= ((msg->buf[(pos++)] & 0xFF)<<16);
  +    i |= ((msg->buf[(pos++)] & 0xFF)<<8);
  +    i |= ((msg->buf[(pos  )] & 0xFF));
  +    return i;
  +}
  +
  +
   unsigned short jk_b_get_int(jk_msg_buf_t *msg) 
   {
       int i;
  @@ -275,16 +348,17 @@
            printf( "Read after end \n");
            return -1;
       }
  -    i  = ((msg->buf[msg->pos++]&0xff)<<8);
  -    i += (msg->buf[(msg->pos++)] & 0xFF);
  +    i  = ((msg->buf[(msg->pos++)] & 0xFF)<<8);
  +    i += ((msg->buf[(msg->pos++)] & 0xFF));
       return i;
   }
   
   unsigned short jk_b_pget_int(jk_msg_buf_t *msg, 
                                int pos) 
   {
  -    int i= ((msg->buf[pos++]&0xff)<<8);
  -    i+= (msg->buf[pos] & 0xFF);
  +    int i;
  +     i  = ((msg->buf[pos++] & 0xFF)<<8);
  +    i += ((msg->buf[pos]   & 0xFF));
       return i;
   }
   
  
  
  

Reply via email to