Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG, Page 609 of 808  Not logged in ELOG logo
ID Date Icon Authordown Author Email Category OS ELOG Version Subject
  918   Tue Feb 8 13:00:40 2005 Warning Emiliano GabrielliAlberT@SuperAlberT.itBug reportLinux2.5.6erroneus encoding
elog sends wrong HTTP headers, charset is empty and not separed from the
next one "Connection: Keep-Alive ... this bug tells the browser that the
encoding is "connection:" ... that is wrong.

root@emc2:/home/albert# GET -USde http://midas.psi.ch/elogs/Forum/
GET http://midas.psi.ch/elogs/Forum/
User-Agent: lwp-request/2.06

GET http://midas.psi.ch/elogs/Forum/ --> 200 Document follows
Connection: close
Date: Tue, 08 Feb 2005 11:54:40 GMT
Pragma: no-cache
Server: ELOG HTTP 2.5.6-2
Content-Type: text/html;charset=Connection: Keep-Alive
Expires: Fri, 01 Jan 1983 00:00:00 GMT
.....
....


this is the problem from validator point of viev:
http://validator.w3.org/check?uri=http%3A%2F%2Fmidas.psi.ch%2Felogs%2FForum%2F&charset=%28detect+automatically%29&doctype=%28detect+automatically%29&ss=1&verbose=1
  920   Tue Feb 8 13:11:30 2005 Warning Emiliano GabrielliAlberT@SuperAlberT.itBug reportAll2.5.6Re: HTML 4.1 transitional validation fails
> as this url shows http://www.htmlhelp.com/tools/validator/problems.html#amp

> it should be used an HTML entity instead of the ampersand sign.<p> another problem with validation: required attribute "ALT" not specified in every <img> tag used in the elog (icons) here is an example of the validator results: http://validator.w3.org/check?uri=http%3A%2F%2Fmidas.psi.ch%2Felogs%2FLinux+Demo%2F&charset=iso-8859-1+%28Western+Europe%29&verbose=1
  921   Tue Feb 8 13:13:22 2005 Blink Emiliano GabrielliAlberT@SuperAlberT.itBug reportLinux2.5.6Re: preselected values and conditional options
 up :-)
  924   Tue Feb 8 15:41:55 2005 Agree Emiliano GabrielliAlberT@SuperAlberT.itBug fixLinux2.5.6Re: erroneus encoding
the following patch corrects the problem, plz apply :


--- elogd.c     2005-02-03 16:46:10.000000000 +0100
+++ elogd_albert.c      2005-02-08 15:40:36.000000000 +0100
@@ -6178,7 +6178,7 @@
    if (getcfg("global", "charset", str, sizeof(str)))
       rsprintf("Content-Type: text/html;charset=%s\r\n", str);
    else
-      rsprintf("Content-Type: text/html;charset=%S\r\n", DEFAULT_HTTP_CHARSET);
+      rsprintf("Content-Type: text/html;charset=%s\r\n", DEFAULT_HTTP_CHARSET);

    if (use_keepalive) {
       rsprintf("Connection: Keep-Alive\r\n");
@@ -11267,7 +11267,7 @@
    rsprintf("Server: ELOG HTTP %s\r\n", VERSION);
    rsprintf("Accept-Ranges: bytes\r\n");
    rsprintf("Connection: close\r\n");
-   rsprintf("Content-Type: text/plain;charset=%S\r\n", DEFAULT_HTTP_CHARSET);
+   rsprintf("Content-Type: text/plain;charset=%s\r\n", DEFAULT_HTTP_CHARSET);
    rsprintf("Pragma: no-cache\r\n");
    rsprintf("Expires: Fri, 01 Jan 1983 00:00:00 GMT\r\n\r\n");
  925   Tue Feb 8 17:40:54 2005 Idea Emiliano GabrielliAlberT@SuperAlberT.itBug fixAll2.5.6 cvs[patch]: fixed wrong extention check
current version uses strstr() to check if the file has the expected ascii
text extension ... this is buggy becouse this way a file named
".txt_hidden_file" or "foo.config.dat" are both seen as .txt files.

the following patch fixes the problem, plz apply to cvs:



#######################################################################
--- elogd_orig.c        2005-02-03 16:46:10.000000000 +0100
+++ elogd_extchk_fix.c  2005-02-08 17:32:21.000000000 +0100
@@ -1160,6 +1160,28 @@

 #define my_toupper(_c)    ( ((_c)>='a' && (_c)<='z') ? ((_c)-'a'+'A') : (_c) )

+static BOOL chkext(const char *str, const char *ext)
+{
+   int extl, strl;
+   char c1, c2;
+
+   if (ext == NULL || str == NULL)
+      return FALSE;
+
+   extl = strlen(ext);
+   strl = strlen(str);
+   if (extl >= strl)
+      return FALSE;
+   str = str+strl-extl;
+   while (*str) {
+      c1 = *str++;
+      c2 = *ext++;
+      if (my_toupper(c1) != my_toupper(c2))
+         return FALSE;
+   }
+   return TRUE;
+}
+
 BOOL strieq(const char *str1, const char *str2)
 {
    char c1, c2;
@@ -1168,6 +1190,8 @@
       return TRUE;
    if (str1 == NULL || str2 == NULL)
       return FALSE;
+   if (strlen(str1)!=strlen(str2))
+      return FALSE;

    while (*str1) {
       c1 = *str1++;
@@ -13698,8 +13722,8 @@
                       ("<tr><td colspan=%d class=\"attachment\">%s %d: <a
href=\"%s\">%s</a>\n",
                        colspan, loc("Attachment"), index + 1, ref,
attachment[index] + 14);

-                  if ((strstr(str, ".TXT") || strstr(str, ".ASC") ||
strstr(str, ".CFG")
-                       || strstr(str, ".CONF")
+                  if ((chkext(str, ".TXT") || chkext(str, ".ASC") ||
chkext(str, ".CFG")
+                       || chkext(str, ".CONF")
                        || strchr(str, '.') == NULL) && show_attachments) {
                      /* display attachment */
                      rsprintf("</td></tr><tr><td colspan=%d
class=\"messagelist\"><pre>", colspan);
@@ -14779,7 +14803,7 @@
    regex_t re_buf[MAX_N_ATTR + 1];
    regmatch_t pmatch[10];

-   /* redirect if enpty parameters */
+   /* redirect if empty parameters */
    if (strstr(_cmdline, "=&")) {
       while ((pt1 = strstr(_cmdline, "=&")) != NULL) {
          pt2 = pt1;
#######################################################################
  926   Tue Feb 8 19:04:25 2005 Blink Emiliano GabrielliAlberT@SuperAlberT.itCommentLinux2.5.6 cvs[patch] Re: images attached shown as inline
> > uhm ok .. can I expect to get a release with this feature in the near future ?
> 
> I checked how I would do that and did not find a good solution. If I put a
> 
> <img width=300 ...> 
> 
> for example, this scales down a big picture to only 300 pixels width. But if you submit a small
> picture, like just an icon, it blows it up to 300 pixels as well, which does not look nice.
> Unfortunatle I don't know of any option like "maxwidth=x" which only scales pictures down if they
> are larger than x. Do you know?

the following patch should do the job:


#################################################################################
--- elogd_orig.c        2005-02-03 16:46:10.000000000 +0100
+++ elogd_imgscale.c    2005-02-08 18:58:14.000000000 +0100
@@ -13690,9 +13690,14 @@
                       ("<tr><td colspan=%d class=\"attachment\">%s %d: <a href=\"%s\">%s</a>\n",
                        colspan, loc("Attachment"), index + 1, ref, attachment[index] + 14);
                   if (show_attachments)
-                     rsprintf
-                         ("</td></tr><tr><td colspan=%d class=\"messagelist\"><img
src=\"%s\"></td></tr>",
-                          colspan, ref);
+                     if (!getcfg(lbs->name, "Attached image width", str, sizeof(str))) {
+                        rsprintf("</td></tr><tr><td colspan=%d class=\"messagelist\"><img
src=\"%s\"></td></tr>",
+                                 colspan, ref);
+                    } else {
+                        rsprintf("</td></tr><tr><td colspan=%d class=\"messagelist\">"
+                                 "<div style=\"width: %s\"><img src=\"%s\" style=\"width:
100%\"></div></td></tr>",
+                                 colspan, str, ref);
+                    }
                } else {
                   rsprintf
                       ("<tr><td colspan=%d class=\"attachment\">%s %d: <a href=\"%s\">%s</a>\n",
@@ -18090,7 +18095,10 @@
                   if (is_image(att)) {
                      rsprintf("<tr><td class=\"messageframe\">\n");
                      rsprintf("<a name=\"att%d\"></a>\n", index + 1);
-                     rsprintf("<img src=\"%s\"></td></tr>", ref);
+                     if (!getcfg(lbs->name, "Attached image width entry", str, sizeof(str)))
+                        rsprintf("<img src=\"%s\"></td></tr>", ref);
+                    else
+                        rsprintf("<div style=\"width: %s\"><img src=\"%s\" style=\"width:
100%\"></div></td></tr>", str, ref);
                      rsprintf("</td></tr>\n\n");
                   } else {
                      if (is_ascii(file_name)) {
##########################################################################################

two new elog.conf parameters are defined:
Attached image width          ; width of full view image attached
Attached image width entry    ; width of attached image in the entry list view

plz apply :-)
  947   Wed Feb 16 08:45:54 2005 Agree Emiliano GabrielliAlberT@SuperAlberT.itBug reportLinux2.5.6Re: preselected values and conditional options
> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
> > Attributes = Author, Type, Category, Subject 
> > Required Attributes = Author, Type, Subject 
> > Options Type = Deposition{1}, Arc Studies{1}, Conditioning{1}, Vacuum{2}, 
> > Other{3} 
> > Preset Type = Deposition 
>  
> The "Preset xxx" option actually never was ment to be used with conditional 
> attributes. I added that functionality in rev. 1.553. Please give it a try. 
 
it works fine !!! thank you so much (btw, using Preset xxx{1} it doesn't 
works.. but it should be the correct beaviour) 
  948   Wed Feb 16 08:48:52 2005 Smile Emiliano GabrielliAlberT@SuperAlberT.itBug fixAll2.5.6 cvsRe: [patch]: fixed wrong extention check
> > current version uses strstr() to check if the file has the expected ascii 
> > text extension ... this is buggy becouse this way a file named 
> > ".txt_hidden_file" or "foo.config.dat" are both seen as .txt files. 
>  
> I added your routine chkext() to the code, but actually use it differently. I 
> display now ASCII files not by their extension, but the code checks for each file 
> to contain non-printable characters. If it contains all printable letters, and does 
> not have the extension PDF, PS or EPS, it's shown inline. 
 
I totally agree with you choice :-) 
ELOG V3.1.5-3fb85fa6