From b2dc329d437603e525609b101ecced7f0c5b19cd Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Fri, 1 Oct 2004 22:24:44 +0000 Subject: r2771: Second (and last) part of Swat-i18n-Patch from Björn Jacke MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "Do not use display charset for swat output. In HTML we do not care about the "locale charmap" because HTML code is UTF-8 only now. Additionally take care that we convert files from statuspage from unix charset to UTF-8. Thus we have correct HTML output under all circumstances. We now also convert the share names correctly from unix encoding to web encoding and vice vera. " Guenther (This used to be commit 6d9f77c2bb95db4939b8ef375e22b188168b70ab) --- source3/web/cgi.c | 12 +- source3/web/statuspage.c | 160 +++++++++-------- source3/web/swat.c | 457 ++++++++++++++++++++++++----------------------- 3 files changed, 318 insertions(+), 311 deletions(-) (limited to 'source3/web') diff --git a/source3/web/cgi.c b/source3/web/cgi.c index b1aa8ae754..93731d1d3f 100644 --- a/source3/web/cgi.c +++ b/source3/web/cgi.c @@ -196,18 +196,18 @@ void cgi_load_variables(void) printf("\n"); #endif - /* variables from the client are in display charset - convert them - to our internal charset before use */ + /* variables from the client are in UTF-8 - convert them + to our internal unix charset before use */ for (i=0;i%s",_(mapPid2Machine(e->pid))); - d_printf(""); + char *utf8_fname; + + printf("%s",_(mapPid2Machine(e->pid))); + printf(""); switch ((e->share_mode>>4)&0xF) { - case DENY_NONE: d_printf("DENY_NONE"); break; - case DENY_ALL: d_printf("DENY_ALL "); break; - case DENY_DOS: d_printf("DENY_DOS "); break; - case DENY_READ: d_printf("DENY_READ "); break; - case DENY_WRITE:d_printf("DENY_WRITE "); break; + case DENY_NONE: printf("DENY_NONE"); break; + case DENY_ALL: printf("DENY_ALL "); break; + case DENY_DOS: printf("DENY_DOS "); break; + case DENY_READ: printf("DENY_READ "); break; + case DENY_WRITE:printf("DENY_WRITE "); break; } - d_printf(""); + printf(""); - d_printf(""); + printf(""); switch (e->share_mode&0xF) { - case 0: d_printf("%s", _("RDONLY ")); break; - case 1: d_printf("%s", _("WRONLY ")); break; - case 2: d_printf("%s", _("RDWR ")); break; + case 0: printf("%s", _("RDONLY ")); break; + case 1: printf("%s", _("WRONLY ")); break; + case 2: printf("%s", _("RDWR ")); break; } - d_printf(""); + printf(""); - d_printf(""); + printf(""); if((e->op_type & (EXCLUSIVE_OPLOCK|BATCH_OPLOCK)) == (EXCLUSIVE_OPLOCK|BATCH_OPLOCK)) - d_printf("EXCLUSIVE+BATCH "); + printf("EXCLUSIVE+BATCH "); else if (e->op_type & EXCLUSIVE_OPLOCK) - d_printf("EXCLUSIVE "); + printf("EXCLUSIVE "); else if (e->op_type & BATCH_OPLOCK) - d_printf("BATCH "); + printf("BATCH "); else if (e->op_type & LEVEL_II_OPLOCK) - d_printf("LEVEL_II "); + printf("LEVEL_II "); else - d_printf("NONE "); - d_printf(""); + printf("NONE "); + printf(""); - d_printf("%s%s\n", - fname,tstring(e->time.tv_sec)); + push_utf8_allocate(&utf8_fname, fname); + printf("%s%s\n", + utf8_fname,tstring(e->time.tv_sec)); + SAFE_FREE(utf8_fname); } @@ -182,15 +186,15 @@ static int traverse_fn2(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf, void* st addPid2Machine (crec.pid, crec.machine); - d_printf("%d%s%s%s\n", + printf("%d%s%s%s\n", (int)crec.pid, crec.machine,crec.addr, tstring(crec.start)); if (geteuid() == 0) { - d_printf("\n", + printf("\n", (int)crec.pid); } - d_printf("\n"); + printf("\n"); return 0; } @@ -208,7 +212,7 @@ static int traverse_fn3(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf, void* st if (crec.cnum == -1 || !process_exists(crec.pid)) return 0; - d_printf("%s%s%s%d%s%s\n", + printf("%s%s%s%d%s%s\n", crec.name,uidtoname(crec.uid), gidtoname(crec.gid),(int)crec.pid, crec.machine, @@ -306,22 +310,22 @@ void status_page(void) initPid2Machine (); - d_printf("

%s

\n", _("Server Status")); + printf("

%s

\n", _("Server Status")); - d_printf("
\n"); + printf("\n"); if (!autorefresh) { - d_printf("\n", _("Auto Refresh")); - d_printf("
%s", _("Refresh Interval: ")); - d_printf("\n", + printf("\n", _("Auto Refresh")); + printf("
%s", _("Refresh Interval: ")); + printf("\n", refresh_interval); } else { - d_printf("\n", _("Stop Refreshing")); - d_printf("
%s%d\n", _("Refresh Interval: "), refresh_interval); - d_printf("\n"); + printf("\n", _("Stop Refreshing")); + printf("
%s%d\n", _("Refresh Interval: "), refresh_interval); + printf("\n"); } - d_printf("

\n"); + printf("

\n"); if (!tdb) { /* open failure either means no connections have been @@ -329,113 +333,113 @@ void status_page(void) } - d_printf("\n"); + printf("
\n"); - d_printf("", _("version:"), SAMBA_VERSION_STRING); + printf("", _("version:"), SAMBA_VERSION_STRING); fflush(stdout); - d_printf("\n", _("smbd:"), smbd_running()?_("running"):_("not running")); + printf("\n", _("smbd:"), smbd_running()?_("running"):_("not running")); if (geteuid() == 0) { if (smbd_running()) { nr_running++; - d_printf("\n", _("Stop smbd")); + printf("\n", _("Stop smbd")); } else { - d_printf("\n", _("Start smbd")); + printf("\n", _("Start smbd")); } - d_printf("\n", _("Restart smbd")); + printf("\n", _("Restart smbd")); } - d_printf("\n"); + printf("\n"); fflush(stdout); - d_printf("\n", _("nmbd:"), nmbd_running()?_("running"):_("not running")); + printf("\n", _("nmbd:"), nmbd_running()?_("running"):_("not running")); if (geteuid() == 0) { if (nmbd_running()) { nr_running++; - d_printf("\n", _("Stop nmbd")); + printf("\n", _("Stop nmbd")); } else { - d_printf("\n", _("Start nmbd")); + printf("\n", _("Start nmbd")); } - d_printf("\n", _("Restart nmbd")); + printf("\n", _("Restart nmbd")); } - d_printf("\n"); + printf("\n"); #ifdef WITH_WINBIND fflush(stdout); - d_printf("\n", _("winbindd:"), winbindd_running()?_("running"):_("not running")); + printf("\n", _("winbindd:"), winbindd_running()?_("running"):_("not running")); if (geteuid() == 0) { if (winbindd_running()) { nr_running++; - d_printf("\n", _("Stop winbindd")); + printf("\n", _("Stop winbindd")); } else { - d_printf("\n", _("Start winbindd")); + printf("\n", _("Start winbindd")); } - d_printf("\n", _("Restart winbindd")); + printf("\n", _("Restart winbindd")); } - d_printf("\n"); + printf("\n"); #endif if (geteuid() == 0) { - d_printf("\n"); + printf("\n"); if (nr_running >= 1) { /* stop, restart all */ - d_printf("\n", _("Stop All")); - d_printf("\n", _("Restart All")); + printf("\n", _("Stop All")); + printf("\n", _("Restart All")); } else if (nr_running == 0) { /* start all */ - d_printf("\n", _("Start All")); + printf("\n", _("Start All")); } - d_printf("\n"); + printf("\n"); } - d_printf("
%s%s
%s%s
%s%s
%s%s
%s%s
%s%s
%s%s
%s%s
\n"); + printf("\n"); fflush(stdout); - d_printf("

%s

\n", _("Active Connections")); - d_printf("\n"); - d_printf("\n", _("PID"), _("Client"), _("IP address"), _("Date")); + printf("

%s

\n", _("Active Connections")); + printf("
%s%s%s%s
\n"); + printf("\n", _("PID"), _("Client"), _("IP address"), _("Date")); if (geteuid() == 0) { - d_printf("\n", _("Kill")); + printf("\n", _("Kill")); } - d_printf("\n"); + printf("\n"); if (tdb) tdb_traverse(tdb, traverse_fn2, NULL); - d_printf("
%s%s%s%s%s%s

\n"); + printf("

\n"); - d_printf("

%s

\n", _("Active Shares")); - d_printf("\n"); - d_printf("\n\n", + printf("

%s

\n", _("Active Shares")); + printf("
%s%s%s%s%s%s
\n"); + printf("\n\n", _("Share"), _("User"), _("Group"), _("PID"), _("Client"), _("Date")); if (tdb) tdb_traverse(tdb, traverse_fn3, NULL); - d_printf("
%s%s%s%s%s%s

\n"); + printf("

\n"); - d_printf("

%s

\n", _("Open Files")); - d_printf("\n"); - d_printf("\n", _("PID"), _("Sharing"), _("R/W"), _("Oplock"), _("File"), _("Date")); + printf("

%s

\n", _("Open Files")); + printf("
%s%s%s%s%s%s
\n"); + printf("\n", _("PID"), _("Sharing"), _("R/W"), _("Oplock"), _("File"), _("Date")); locking_init(1); share_mode_forall(print_share_mode); locking_end(); - d_printf("
%s%s%s%s%s%s
\n"); + printf("\n"); if (tdb) tdb_close(tdb); - d_printf("
\n", _("Show Client in col 1")); - d_printf("\n", _("Show PID in col 1")); + printf("
\n", _("Show Client in col 1")); + printf("\n", _("Show PID in col 1")); - d_printf("
\n"); + printf("\n"); if (autorefresh) { /* this little JavaScript allows for automatic refresh of the page. There are other methods but this seems to be the best alternative */ - d_printf("\n"); + printf("//-->\n\n"); } } diff --git a/source3/web/swat.c b/source3/web/swat.c index ed53d0d712..40f9f05991 100644 --- a/source3/web/swat.c +++ b/source3/web/swat.c @@ -115,8 +115,8 @@ static int include_html(const char *fname) fd = web_open(fname, O_RDONLY, 0); if (fd == -1) { - d_printf(_("ERROR: Can't open %s"), fname); - d_printf("\n"); + printf(_("ERROR: Can't open %s"), fname); + printf("\n"); return 0; } @@ -134,13 +134,13 @@ static int include_html(const char *fname) static void print_header(void) { if (!cgi_waspost()) { - d_printf("Expires: 0\r\n"); + printf("Expires: 0\r\n"); } - d_printf("Content-type: text/html\r\n\r\n"); + printf("Content-type: text/html\r\n\r\n"); if (!include_html("include/header.html")) { - d_printf("\n"); - d_printf("\n\nSamba Web Administration Tool\n\n\n\n"); + printf("\n"); + printf("\n\nSamba Web Administration Tool\n\n\n\n"); } } @@ -182,7 +182,7 @@ static const char* get_parm_translated( static void print_footer(void) { if (!include_html("include/footer.html")) { - d_printf("\n\n\n"); + printf("\n\n\n"); } } @@ -198,106 +198,106 @@ static void show_parameter(int snum, struct parm_struct *parm) ptr = lp_local_ptr(snum, ptr); } - d_printf("%s", get_parm_translated(stripspaceupper(parm->label), _("Help"), parm->label)); + printf("%s", get_parm_translated(stripspaceupper(parm->label), _("Help"), parm->label)); switch (parm->type) { case P_CHAR: - d_printf("", + printf("", make_parm_name(parm->label), *(char *)ptr); - d_printf("", + printf("", _("Set Default"), make_parm_name(parm->label),(char)(parm->def.cvalue)); break; case P_LIST: - d_printf("label)); if ((char ***)ptr && *(char ***)ptr && **(char ***)ptr) { char **list = *(char ***)ptr; for (;*list;list++) { /* enclose in quotes if the string contains a space */ if ( strchr_m(*list, ' ') ) - d_printf("\'%s\'%s", *list, ((*(list+1))?", ":"")); + printf("\'%s\'%s", *list, ((*(list+1))?", ":"")); else - d_printf("%s%s", *list, ((*(list+1))?", ":"")); + printf("%s%s", *list, ((*(list+1))?", ":"")); } } - d_printf("\">"); - d_printf(""); + printf("label)); if (parm->def.lvalue) { char **list = (char **)(parm->def.lvalue); for (; *list; list++) { /* enclose in quotes if the string contains a space */ if ( strchr_m(*list, ' ') ) - d_printf("\'%s\'%s", *list, ((*(list+1))?", ":"")); + printf("\'%s\'%s", *list, ((*(list+1))?", ":"")); else - d_printf("%s%s", *list, ((*(list+1))?", ":"")); + printf("%s%s", *list, ((*(list+1))?", ":"")); } } - d_printf("\'\">"); + printf("\'\">"); break; case P_STRING: case P_USTRING: - d_printf("", + printf("", make_parm_name(parm->label), *(char **)ptr); - d_printf("", + printf("", _("Set Default"), make_parm_name(parm->label),fix_backslash((char *)(parm->def.svalue))); break; case P_GSTRING: case P_UGSTRING: - d_printf("", + printf("", make_parm_name(parm->label), (char *)ptr); - d_printf("", + printf("", _("Set Default"), make_parm_name(parm->label),fix_backslash((char *)(parm->def.svalue))); break; case P_BOOL: - d_printf(""); - d_printf("", + printf(""); + printf("", _("Set Default"), make_parm_name(parm->label),(BOOL)(parm->def.bvalue)?0:1); break; case P_BOOLREV: - d_printf(""); - d_printf("", + printf(""); + printf("", _("Set Default"), make_parm_name(parm->label),(BOOL)(parm->def.bvalue)?1:0); break; case P_INTEGER: - d_printf("", make_parm_name(parm->label), *(int *)ptr); - d_printf("", + printf("", make_parm_name(parm->label), *(int *)ptr); + printf("", _("Set Default"), make_parm_name(parm->label),(int)(parm->def.ivalue)); break; case P_OCTAL: - d_printf("", make_parm_name(parm->label), octal_string(*(int *)ptr)); - d_printf("", + printf("", make_parm_name(parm->label), octal_string(*(int *)ptr)); + printf("", _("Set Default"), make_parm_name(parm->label), octal_string((int)(parm->def.ivalue))); break; case P_ENUM: - d_printf("",make_parm_name(parm->label)); for (i=0;parm->enum_list[i].name;i++) { if (i == 0 || parm->enum_list[i].value != parm->enum_list[i-1].value) { - d_printf("