summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2006-05-24 06:36:17 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:08:32 -0500
commit574daba7951b64b6b877db55a92e5a66f3354b4f (patch)
treedca7ba77a419ee00c5dead30e04d0bc32b5dccb0
parent3372344ade7e2610b8ba7d3175465656847affd7 (diff)
downloadsamba-574daba7951b64b6b877db55a92e5a66f3354b4f.tar.gz
samba-574daba7951b64b6b877db55a92e5a66f3354b4f.tar.bz2
samba-574daba7951b64b6b877db55a92e5a66f3354b4f.zip
r15851: the conversion of loadparm to BOOL broke all big-endian platforms as
the service and global declarations were left as int. I tried to fix this initially by fixing the service declarations, but it didn't work. While I investigate why, this patch at least gets the use of int right, and should give big-endian platforms a chance (This used to be commit e12ae809eaf0a4c48ebb086615a9051b59996b5a)
-rw-r--r--source4/param/loadparm.c10
-rw-r--r--source4/param/loadparm.h2
2 files changed, 6 insertions, 6 deletions
diff --git a/source4/param/loadparm.c b/source4/param/loadparm.c
index 183cec802d..3d33da2bcd 100644
--- a/source4/param/loadparm.c
+++ b/source4/param/loadparm.c
@@ -784,7 +784,7 @@ static const char *lp_string(const char *s)
#define FN_GLOBAL_LIST(fn_name,ptr) \
const char **fn_name(void) {return(*(const char ***)(ptr));}
#define FN_GLOBAL_BOOL(fn_name,ptr) \
- BOOL fn_name(void) {return(*(BOOL *)(ptr));}
+ BOOL fn_name(void) {return((BOOL)*(int *)(ptr));}
#define FN_GLOBAL_CHAR(fn_name,ptr) \
char fn_name(void) {return(*(char *)(ptr));}
#define FN_GLOBAL_INTEGER(fn_name,ptr) \
@@ -1443,7 +1443,7 @@ static void copy_service(service * pserviceDest, service * pserviceSource, int *
switch (parm_table[i].type) {
case P_BOOL:
- *(BOOL *)dest_ptr = *(BOOL *)src_ptr;
+ *(int *)dest_ptr = *(int *)src_ptr;
break;
case P_INTEGER:
@@ -2035,7 +2035,7 @@ static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
break;
case P_BOOL:
- fprintf(f, "%s", BOOLSTR(*(BOOL *)ptr));
+ fprintf(f, "%s", BOOLSTR((BOOL)*(int *)ptr));
break;
case P_INTEGER:
@@ -2072,7 +2072,7 @@ static BOOL equal_parameter(parm_type type, void *ptr1, void *ptr2)
{
switch (type) {
case P_BOOL:
- return (*((BOOL *)ptr1) == *((BOOL *)ptr2));
+ return (*((int *)ptr1) == *((int *)ptr2));
case P_INTEGER:
case P_BYTES:
@@ -2162,7 +2162,7 @@ static BOOL is_default(int i)
*(char **)parm_table[i].ptr);
case P_BOOL:
return parm_table[i].def.bvalue ==
- *(BOOL *)parm_table[i].ptr;
+ *(int *)parm_table[i].ptr;
case P_INTEGER:
case P_BYTES:
case P_ENUM:
diff --git a/source4/param/loadparm.h b/source4/param/loadparm.h
index 5e3bcea523..d439a435e6 100644
--- a/source4/param/loadparm.h
+++ b/source4/param/loadparm.h
@@ -51,7 +51,7 @@ struct parm_struct {
const struct enum_list *enum_list;
unsigned int flags;
union {
- BOOL bvalue;
+ int bvalue;
int ivalue;
char *svalue;
char cvalue;