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;

Reply via email to