~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to libdrizzle/pack.c

  • Committer: Monty Taylor
  • Date: 2008-09-16 06:40:44 UTC
  • mfrom: (390.1.7 client-split)
  • Revision ID: monty@inaugust.com-20080916064044-vbgmaf36cvm8jufx
Merged in from client-split.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Copyright (C) 2000-2003 MySQL AB
2
 
 
3
 
   This program is free software; you can redistribute it and/or modify
4
 
   it under the terms of the GNU General Public License as published by
5
 
   the Free Software Foundation; version 2 of the License.
6
 
 
7
 
   This program is distributed in the hope that it will be useful,
8
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
9
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
 
   GNU General Public License for more details.
11
 
 
12
 
   You should have received a copy of the GNU General Public License
13
 
   along with this program; if not, write to the Free Software
14
 
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
15
 
 
16
 
#include <drizzled/global.h>
 
1
/* - mode: c; c-basic-offset: 2; indent-tabs-mode: nil; -*-
 
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
 
3
 *
 
4
 *  Copyright (C) 2008 Sun Microsystems, Inc.
 
5
 *
 
6
 *  This program is free software; you can redistribute it and/or modify
 
7
 *  it under the terms of the GNU General Public License as published by
 
8
 *  the Free Software Foundation; version 2 of the License.
 
9
 *
 
10
 *  This program is distributed in the hope that it will be useful,
 
11
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
 *  GNU General Public License for more details.
 
14
 *
 
15
 *  You should have received a copy of the GNU General Public License
 
16
 *  along with this program; if not, write to the Free Software
 
17
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
18
 */
 
19
 
17
20
#include "libdrizzle.h"
 
21
#include <stdint.h>
18
22
 
19
23
/* Get the length of next field. Change parameter to point at fieldstart */
20
 
uint32_t net_field_length(uchar **packet)
 
24
uint32_t net_field_length(unsigned char **packet)
21
25
{
22
 
  register uchar *pos= (uchar *)*packet;
 
26
  register unsigned char *pos= (unsigned char *)*packet;
23
27
  if (*pos < 251)
24
28
  {
25
29
    (*packet)++;
45
49
}
46
50
 
47
51
/* The same as above but returns int64_t */
48
 
uint64_t net_field_length_ll(uchar **packet)
 
52
uint64_t net_field_length_ll(unsigned char **packet)
49
53
{
50
 
  register uchar *pos= *packet;
 
54
  register unsigned char *pos= *packet;
51
55
  if (*pos < 251)
52
56
  {
53
57
    (*packet)++;
93
97
   Position in 'pkg' after the packed length
94
98
*/
95
99
 
96
 
uchar *net_store_length(uchar *packet, uint64_t length)
 
100
unsigned char *net_store_length(unsigned char *packet, uint64_t length)
97
101
{
98
102
  if (length < (uint64_t) 251LL)
99
103
  {
100
 
    *packet=(uchar) length;
 
104
    *packet=(unsigned char) length;
101
105
    return packet+1;
102
106
  }
103
107
  /* 251 is reserved for NULL */