Author: jpeach Date: 2006-03-12 22:27:01 +0000 (Sun, 12 Mar 2006) New Revision: 14255
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=14255 Log: Revert r14204 which was horribly broken. Modified: branches/SAMBA_3_0/source/include/smb.h branches/SAMBA_3_0/source/param/loadparm.c branches/SAMBA_3_0/source/web/swat.c Changeset: Modified: branches/SAMBA_3_0/source/include/smb.h =================================================================== --- branches/SAMBA_3_0/source/include/smb.h 2006-03-12 21:40:53 UTC (rev 14254) +++ branches/SAMBA_3_0/source/include/smb.h 2006-03-12 22:27:01 UTC (rev 14255) @@ -758,7 +758,7 @@ /* the following are used by loadparm for option lists */ typedef enum { P_BOOL,P_BOOLREV,P_CHAR,P_INTEGER,P_OCTAL,P_LIST, - P_STRING,P_USTRING,P_ENUM,P_SEP + P_STRING,P_USTRING,P_GSTRING,P_UGSTRING,P_ENUM,P_SEP } parm_type; typedef enum { Modified: branches/SAMBA_3_0/source/param/loadparm.c =================================================================== --- branches/SAMBA_3_0/source/param/loadparm.c 2006-03-12 21:40:53 UTC (rev 14254) +++ branches/SAMBA_3_0/source/param/loadparm.c 2006-03-12 22:27:01 UTC (rev 14255) @@ -1022,7 +1022,7 @@ {"max open files", P_INTEGER, P_GLOBAL, &Globals.max_open_files, NULL, NULL, FLAG_ADVANCED}, {"min print space", P_INTEGER, P_LOCAL, &sDefault.iMinPrintSpace, NULL, NULL, FLAG_ADVANCED | FLAG_PRINT}, - {"socket options", P_STRING, P_GLOBAL, user_socket_options, NULL, NULL, FLAG_ADVANCED}, + {"socket options", P_GSTRING, P_GLOBAL, user_socket_options, NULL, NULL, FLAG_ADVANCED}, {"strict allocate", P_BOOL, P_LOCAL, &sDefault.bStrictAllocate, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, {"strict sync", P_BOOL, P_LOCAL, &sDefault.bStrictSync, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, {"sync always", P_BOOL, P_LOCAL, &sDefault.bSyncAlways, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, @@ -2722,8 +2722,8 @@ BOOL hadFlag; const char *section_names[] = { "local", "global", NULL}; const char *type[] = { "P_BOOL", "P_BOOLREV", "P_CHAR", "P_INTEGER", - "P_OCTAL", "P_LIST", "P_STRING", "P_USTRING", - "P_ENUM", "P_SEP"}; + "P_OCTAL", "P_LIST", "P_STRING", "P_USTRING", "P_GSTRING", + "P_UGSTRING", "P_ENUM", "P_SEP"}; unsigned flags[] = { FLAG_BASIC, FLAG_SHARE, FLAG_PRINT, FLAG_GLOBAL, FLAG_WIZARD, FLAG_ADVANCED, FLAG_DEVELOPER, FLAG_DEPRECATED, FLAG_HIDE, FLAG_DOS_STRING}; @@ -3518,6 +3518,15 @@ strupper_m(*(char **)parm_ptr); break; + case P_GSTRING: + pstrcpy((char *)parm_ptr, pszParmValue); + break; + + case P_UGSTRING: + pstrcpy((char *)parm_ptr, pszParmValue); + strupper_m((char *)parm_ptr); + break; + case P_ENUM: lp_set_enum_parm( &parm_table[parmnum], pszParmValue, (int*)parm_ptr ); break; @@ -3596,6 +3605,13 @@ } break; + case P_GSTRING: + case P_UGSTRING: + if ((char *)ptr) { + fprintf(f, "%s", (char *)ptr); + } + break; + case P_STRING: case P_USTRING: if (*(char **)ptr) { @@ -3629,6 +3645,16 @@ case P_LIST: return str_list_compare(*(char ***)ptr1, *(char ***)ptr2); + case P_GSTRING: + case P_UGSTRING: + { + char *p1 = (char *)ptr1, *p2 = (char *)ptr2; + if (p1 && !*p1) + p1 = NULL; + if (p2 && !*p2) + p2 = NULL; + return (p1 == p2 || strequal(p1, p2)); + } case P_STRING: case P_USTRING: { @@ -3722,6 +3748,10 @@ case P_USTRING: return strequal(parm_table[i].def.svalue, *(char **)parm_table[i].ptr); + case P_GSTRING: + case P_UGSTRING: + return strequal(parm_table[i].def.svalue, + (char *)parm_table[i].ptr); case P_BOOL: case P_BOOLREV: return parm_table[i].def.bvalue == @@ -4084,6 +4114,14 @@ parm_table[i].def.svalue = NULL; } break; + case P_GSTRING: + case P_UGSTRING: + if (parm_table[i].ptr) { + parm_table[i].def.svalue = SMB_STRDUP((char *)parm_table[i].ptr); + } else { + parm_table[i].def.svalue = NULL; + } + break; case P_BOOL: case P_BOOLREV: parm_table[i].def.bvalue = Modified: branches/SAMBA_3_0/source/web/swat.c =================================================================== --- branches/SAMBA_3_0/source/web/swat.c 2006-03-12 21:40:53 UTC (rev 14254) +++ branches/SAMBA_3_0/source/web/swat.c 2006-03-12 22:27:01 UTC (rev 14255) @@ -275,6 +275,16 @@ _("Set Default"), make_parm_name(parm->label),fix_backslash((char *)(parm->def.svalue))); break; + case P_GSTRING: + case P_UGSTRING: + push_utf8_allocate(&utf8_s1, (char *)ptr); + printf("<input type=text size=40 name=\"parm_%s\" value=\"%s\">", + make_parm_name(parm->label), fix_quotes(utf8_s1)); + SAFE_FREE(utf8_s1); + printf("<input type=button value=\"%s\" onClick=\"swatform.parm_%s.value=\'%s\'\">", + _("Set Default"), make_parm_name(parm->label),fix_backslash((char *)(parm->def.svalue))); + break; + case P_BOOL: printf("<select name=\"parm_%s\">",make_parm_name(parm->label)); printf("<option %s>Yes", (*(BOOL *)ptr)?"selected":""); @@ -368,6 +378,11 @@ if (!strcmp(*(char **)ptr,(char *)(parm->def.svalue))) continue; break; + case P_GSTRING: + case P_UGSTRING: + if (!strcmp((char *)ptr,(char *)(parm->def.svalue))) continue; + break; + case P_BOOL: case P_BOOLREV: if (*(BOOL *)ptr == (BOOL)(parm->def.bvalue)) continue;