Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG, Page 359 of 807  Not logged in ELOG logo
ID Date Icon Author Author Email Category OS ELOG Version Subject
  66944   Wed Nov 24 07:47:25 2010 Question Adam BlandfordAdam.Blandford@dsto.defence.gov.auQuestionWindows2.8.0-2339How to overide the Date attribute?
Hi I have a logbook where I want to override the default Date attribute. I would like to set it by default to the entry date but enable the user to modify to a different date if desired. This is for entries that pertain to an activity performed on a date different to the entry date. To acheive this I have created an attribute called "Subject Date" and used preset = $date. In general this works but I would be happy to take any other suggestions on how to acheive it? Also, how do I remove the fixed "Date" attribute from the logbook summary page? I have tried: List = ID, Subject Date, Type, Subject in the config file but this doesn't appear to work? Thanks in advance! Adam
  66943   Wed Nov 17 11:48:03 2010 Reply Stefan Rittstefan.ritt@psi.chQuestionWindows2.8.0-2331Re: elog password , attributes and quoting username and password

Yoshio Imai wrote:

Arno Teunisse wrote:

Please Notice that I've put quotes around : -u "username password" ( the documentation shows that this is not necessary) .  But now it failes to see a required attribute.  

Have you tried without the quotes? They may not be allowed!

Just for the record: It's actually forbidden. If you do -u "username password" then elog considers "username password" as the full user name, and the password is missing, so it takes the next argument as a password. In one of our trials it then used -a "Category=info" as the password, so the category was then missing. 

  66942   Tue Nov 16 16:33:52 2010 Reply Stefan Rittstefan.ritt@psi.chQuestionLinux2.8.0Re: automated email notification did not work for me

Jianglai Liu wrote:

Hi,

I am setting up an elog to organize my lab activities. I installed elog 2.8.0 on the latest CentOS 5.5, 32 bit. I got into trouble setting up the automated email notification.

According to the elog manual, I setup the smtp setting in the elogd.cfg as follows:

SMTP host = smtp.gmail.com
SMTP username = jianglai.liu
 

I then used "elogd -t" to encode the password into the configuration file.

But when I submit an entry, I always received: "Error sending Email via "smtp.gmail.com": 5.7.0 Must issue a STARTTLS command first. y17sm867489wfd.15"

If I switched to use my university email servers, similar things happened.

SMTP host = smtp.sjtu.edu.cn
SMTP username = jianglai.liu

I got "Error sending Email via "smtp.sjtu.edu.cn": 5.7.8 Error: authentication failed: another step is needed in authentication"

I also switched to use one of my old work server

SMTP host = smtp-server.its.caltech.edu
SMTP username = jliu

and ended up with the same error message.

I did a google search on this without much progress. I would appreciate it very much if someone could shed light on how do I fix this.

Thanks much!

elog only supports basic authentication, not TLS or SSL. These days more and more SMTP servers require this however. I will put this on my to-do list. In meantime you can maybe configure your CentOS machine acting as an SMTP server, and then not using TLS or SSL there. That's what most people do.

  66941   Tue Nov 16 15:56:53 2010 Reply Stefan Rittstefan.ritt@psi.chBug reportWindows2.8Re: Elogd service crashes on "reply" with percent character in subject line

Mike Zuber wrote:

Stefan Ritt wrote:

Mike Zuber wrote:

My logbook kept crashing whenever I tried to reply to an existing entry. I found that the percent sign "%", when used in the subject line, will crash the elogd service when you try to reply to the entry. This appears to only happen with windows installations. I tested this on your Linux logbook and it didn't crash.

Here is the message taken from the Windows event viewer after the crash:
An unhandled win32 exception occurred in elogd.exe [5224].

Thank you for Elog, you have done a good job with it.  It is a great logbook.

Mike

I could not reproduce your problem. I tried the very simple config file:

[Demo]
Attributes = Author, Subject

and the problem did not occur (see attachment). Can you try the most recent version (elog280-4.exe) with this simple configuration. Maybe you have a more complicated configuration which causes the problem. In that case please send it to me, so that I can reproduce the problem.

 Thank you Stefan for your help on this. I am using version 2.8.0 built Aug 2, 2010 rev 2312. I tried your configuration file and the problem did not occur. Using my config file the elogd crashes using the % sign in the subject when replying to the entry. So the problem is something in my config file. After checking through my config file and remming out individual lines and testing, I found that the following statement is causing the problem:

Preset on reply subject = Re: $Subject

I was using this to put the "Re:" on the replies.

The only problem now is I don't get the "Re:" in the subject on replies. Am I doing something wrong to cause this? My config file is attached.

Thanks,
Mike

Thanks for your detailed report. Actually the problem only happens if you have Re: $Subject and a '%' in the subject line. So you were the first one encountering this situation. I fixed it in release elog280-5 which you can download now.

  66940   Tue Nov 16 13:25:35 2010 Reply Stefan Rittstefan.ritt@psi.chQuestionLinuxV2.7.6-219Re: elog command line submission
> Hi, 
> 
> I am playing with the elog automatic subscription script, but somehow I am failing in submitting an entry. 
> I am using a syntax as this:
> 
> echo test | elog -h 127.0.0.1 -p 8085 -d /usr/local/elogbooks/Elog -l "Sub Elog" -a "Type=MyType" -x -u user passwd
> 
> and I get a message which says: 
> "cannot get host name: Success"
> 
> which seems contradictory and also there is no entry submitted. 
> 
> The command is executed on the host where the elog is running, the port and directory are taken from the cfg File. 
> 
> What is my mistake, where is my misunderstanding of the documentation?
> 
> Any hints appreciated. 
> 
> Erik

The "-d" option is certainly wrong. This is only used when running elog under Apache. But otherwise it should work. I 
tried it myself and it went fine. Try to add a "-v" flag to see verbose output.
  66939   Tue Nov 16 10:29:14 2010 Reply Stefan Rittstefan.ritt@psi.chQuestionWindows2.8.0-2331Re: Cell Style Question

Terry Bayne wrote:

Is it possible to include more than one style attribute in a "Cell Style" directive?

For example, if I want to change the background color and text color for a given cell:

Cell Style Status Fixed  = background-color:green;color:white

If so, what is the proper way to encode it?

Thanks,

Terry

Your syntax is correct. If you try a big font for example

     Cell Style Status Fixed  = background-color:green;font-size:40px

it will work. The problem here is that the text decoration is defined differently since it's a link. The CSS defines these style via

/* standard link colors and decorations */
a:link { color:#0000FF; text-decoration:none }
a:visited { color:#800080; text-decoration:none }
a:hover { color:#0000FF; text-decoration:underline }
a:active { color:#0000FF; text-decoration:underline }
a:focus { color:#0000FF; text-decoration:underline }
but I don't know how to change these style inline without defining a new class.

  66938   Tue Nov 16 10:00:48 2010 Reply Stefan Rittstefan.ritt@psi.chQuestionOther2.8.0Re: Can anyone help compile ELog 2.8.0 on SunOS 5.11?

Morion Black wrote:

 I have server with SunOS 5.11:

 

uname -a

SunOS *** 5.11 snv_134 i86pc i386 i86pc

 

when I try to compile ELog I get error:

 

gmake

gcc  -DHAVE_SSL -w -c -o crypt.o src/crypt.c

gcc  -DHAVE_SSL -I../mxml -o elog src/elog.c crypt.o -lsocket -lnsl -lssl

Undefined                       first referenced

 symbol                             in file

MAX                                 crypt.o

MIN                                 crypt.o

mempcpy                             crypt.o

_ast_strtoul                        crypt.o

_ast_realloc                        crypt.o

ld: fatal: symbol referencing errors. No output written to elog

collect2: ld returned 1 exit status

gmake: *** [elog] Error 1

 
 
Can anyone help to compile Elog?

 

 

The crypt.c file is not from me, so there might be some issues on other OSes. I defined now at least MIN/MAX by hand, and also removed mempcpy. The new version is attached. Can you try again to compile it? The strtoul and realloc are nomal C functions, maybe you have to add some other libraries for linking, but I'm not an expert for SunOS. 

Attachment 1: crypt.c
/* SHA256-based Unix crypt implementation.
   Released into the Public Domain by Ulrich Drepper <drepper@redhat.com>.
   Adapted for MS Windows by Stefan Ritt <stefan.ritt@psi.ch> 
   $Id: crypt.c 2334 2010-11-16 08:59:45Z ritt $ */

#ifdef _MSC_VER
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define __alignof__(x) sizeof(x)
#define alloca(x) malloc(x)
#define ERANGE 34

typedef unsigned int uint32_t;
#else
#include <errno.h>
#include <limits.h>
#include <stdint.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/param.h>
#include <sys/types.h>
#endif

#ifndef MAX
#define MAX(x,y) ((x)>(y)?(x):(y))
#define MIN(x,y) ((x)<(y)?(x):(y))
#endif
      
/* Structure to save state of computation between the single steps.  */
struct sha256_ctx {
   uint32_t H[8];

   uint32_t total[2];
   uint32_t buflen;
   char buffer[128];            /* NB: always correctly aligned for uint32_t.  */
};


#if __BYTE_ORDER == __LITTLE_ENDIAN
# define SWAP(n) \
    (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
#else
# define SWAP(n) (n)
#endif


/* This array contains the bytes used to pad the buffer to the next
   64-byte boundary.  (FIPS 180-2:5.1.1)  */
static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ...  */  };


/* Constants for SHA256 from FIPS 180-2:4.2.2.  */
static const uint32_t K[64] = {
   0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
   0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
   0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
   0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
   0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
   0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
   0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
   0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
   0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
   0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
   0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
   0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
   0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
   0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
   0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
   0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
};


/* Process LEN bytes of BUFFER, accumulating context into CTX.
   It is assumed that LEN % 64 == 0.  */
static void sha256_process_block(const void *buffer, size_t len, struct sha256_ctx *ctx)
{
   const uint32_t *words = buffer;
   size_t nwords = len / sizeof(uint32_t);
   uint32_t a = ctx->H[0];
   uint32_t b = ctx->H[1];
   uint32_t c = ctx->H[2];
   uint32_t d = ctx->H[3];
   uint32_t e = ctx->H[4];
   uint32_t f = ctx->H[5];
   uint32_t g = ctx->H[6];
   uint32_t h = ctx->H[7];

   /* First increment the byte count.  FIPS 180-2 specifies the possible
      length of the file up to 2^64 bits.  Here we only compute the
      number of bytes.  Do a double word increment.  */
   ctx->total[0] += len;
   if (ctx->total[0] < (int) len)
      ++ctx->total[1];

   /* Process all bytes in the buffer with 64 bytes in each round of
      the loop.  */
   while (nwords > 0) {
      uint32_t W[64];
      unsigned int t;
      uint32_t a_save = a;
      uint32_t b_save = b;
      uint32_t c_save = c;
      uint32_t d_save = d;
      uint32_t e_save = e;
      uint32_t f_save = f;
      uint32_t g_save = g;
      uint32_t h_save = h;

      /* Operators defined in FIPS 180-2:4.1.2.  */
#define Ch(x, y, z) ((x & y) ^ (~x & z))
#define Maj(x, y, z) ((x & y) ^ (x & z) ^ (y & z))
#define S0(x) (CYCLIC (x, 2) ^ CYCLIC (x, 13) ^ CYCLIC (x, 22))
#define S1(x) (CYCLIC (x, 6) ^ CYCLIC (x, 11) ^ CYCLIC (x, 25))
#define R0(x) (CYCLIC (x, 7) ^ CYCLIC (x, 18) ^ (x >> 3))
#define R1(x) (CYCLIC (x, 17) ^ CYCLIC (x, 19) ^ (x >> 10))

      /* It is unfortunate that C does not provide an operator for
         cyclic rotation.  Hope the C compiler is smart enough.  */
#define CYCLIC(w, s) ((w >> s) | (w << (32 - s)))

      /* Compute the message schedule according to FIPS 180-2:6.2.2 step 2.  */
      for (t = 0; t < 16; ++t) {
         W[t] = SWAP(*words);
         ++words;
      }
      for (t = 16; t < 64; ++t)
         W[t] = R1(W[t - 2]) + W[t - 7] + R0(W[t - 15]) + W[t - 16];

      /* The actual computation according to FIPS 180-2:6.2.2 step 3.  */
      for (t = 0; t < 64; ++t) {
         uint32_t T1 = h + S1(e) + Ch(e, f, g) + K[t] + W[t];
         uint32_t T2 = S0(a) + Maj(a, b, c);
         h = g;
         g = f;
         f = e;
         e = d + T1;
         d = c;
         c = b;
         b = a;
         a = T1 + T2;
      }

      /* Add the starting values of the context according to FIPS 180-2:6.2.2
         step 4.  */
      a += a_save;
      b += b_save;
      c += c_save;
      d += d_save;
      e += e_save;
      f += f_save;
      g += g_save;
      h += h_save;

      /* Prepare for the next round.  */
      nwords -= 16;
   }

   /* Put checksum in context given as argument.  */
   ctx->H[0] = a;
   ctx->H[1] = b;
   ctx->H[2] = c;
   ctx->H[3] = d;
   ctx->H[4] = e;
   ctx->H[5] = f;
   ctx->H[6] = g;
   ctx->H[7] = h;
}


/* Initialize structure containing state of computation.
   (FIPS 180-2:5.3.2)  */
static void sha256_init_ctx(struct sha256_ctx *ctx)
{
   ctx->H[0] = 0x6a09e667;
   ctx->H[1] = 0xbb67ae85;
   ctx->H[2] = 0x3c6ef372;
   ctx->H[3] = 0xa54ff53a;
   ctx->H[4] = 0x510e527f;
   ctx->H[5] = 0x9b05688c;
   ctx->H[6] = 0x1f83d9ab;
   ctx->H[7] = 0x5be0cd19;

   ctx->total[0] = ctx->total[1] = 0;
   ctx->buflen = 0;
}


/* Process the remaining bytes in the internal buffer and the usual
   prolog according to the standard and write the result to RESBUF.

   IMPORTANT: On some systems it is required that RESBUF is correctly
   aligned for a 32 bits value.  */
static void *sha256_finish_ctx(struct sha256_ctx *ctx, void *resbuf)
{
   /* Take yet unprocessed bytes into account.  */
   uint32_t bytes = ctx->buflen;
   size_t pad;
   unsigned int i;

   /* Now count remaining bytes.  */
   ctx->total[0] += bytes;
   if (ctx->total[0] < bytes)
      ++ctx->total[1];

   pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes;
   memcpy(&ctx->buffer[bytes], fillbuf, pad);

   /* Put the 64-bit file length in *bits* at the end of the buffer.  */
   *(uint32_t *) & ctx->buffer[bytes + pad + 4] = SWAP(ctx->total[0] << 3);
   *(uint32_t *) & ctx->buffer[bytes + pad] = SWAP((ctx->total[1] << 3) | (ctx->total[0] >> 29));

   /* Process last bytes.  */
   sha256_process_block(ctx->buffer, bytes + pad + 8, ctx);

   /* Put result from CTX in first 32 bytes following RESBUF.  */
   for (i = 0; i < 8; ++i)
      ((uint32_t *) resbuf)[i] = SWAP(ctx->H[i]);

   return resbuf;
}


static void sha256_process_bytes(const void *buffer, size_t len, struct sha256_ctx *ctx)
{
   /* When we already have some bits in our internal buffer concatenate
      both inputs first.  */
   if (ctx->buflen != 0) {
      size_t left_over = ctx->buflen;
      size_t add = 128 - left_over > len ? len : 128 - left_over;

      memcpy(&ctx->buffer[left_over], buffer, add);
      ctx->buflen += add;

      if (ctx->buflen > 64) {
         sha256_process_block(ctx->buffer, ctx->buflen & ~63, ctx);

         ctx->buflen &= 63;
         /* The regions in the following copy operation cannot overlap.  */
         memcpy(ctx->buffer, &ctx->buffer[(left_over + add) & ~63], ctx->buflen);
      }

      buffer = (const char *) buffer + add;
      len -= add;
   }

   /* Process available complete blocks.  */
   if (len >= 64) {
/* To check alignment gcc has an appropriate operator.  Other
   compilers don't.  */
#if __GNUC__ >= 2
# define UNALIGNED_P(p) (((uintptr_t) p) % __alignof__ (uint32_t) != 0)
#else
# define UNALIGNED_P(p) (((uintptr_t) p) % sizeof (uint32_t) != 0)
#endif
      if (UNALIGNED_P(buffer))
         while (len > 64) {
            sha256_process_block(memcpy(ctx->buffer, buffer, 64), 64, ctx);
            buffer = (const char *) buffer + 64;
            len -= 64;
      } else {
         sha256_process_block(buffer, len & ~63, ctx);
         buffer = (const char *) buffer + (len & ~63);
         len &= 63;
      }
   }

   /* Move remaining bytes into internal buffer.  */
   if (len > 0) {
      size_t left_over = ctx->buflen;

      memcpy(&ctx->buffer[left_over], buffer, len);
      left_over += len;
      if (left_over >= 64) {
         sha256_process_block(ctx->buffer, 64, ctx);
         left_over -= 64;
         memcpy(ctx->buffer, &ctx->buffer[64], left_over);
      }
      ctx->buflen = left_over;
   }
}


/* Define our magic string to mark salt for SHA256 "encryption"
   replacement.  */
static const char sha256_salt_prefix[] = "$5$";

/* Prefix for optional rounds specification.  */
static const char sha256_rounds_prefix[] = "rounds=";

/* Maximum salt string length.  */
#define SALT_LEN_MAX 16
/* Default number of rounds if not explicitly specified.  */
#define ROUNDS_DEFAULT 5000
/* Minimum number of rounds.  */
#define ROUNDS_MIN 1000
/* Maximum number of rounds.  */
... 275 more lines ...
  66937   Mon Nov 15 16:46:41 2010 Reply Stefan Rittstefan.ritt@psi.chQuestionWindows2.8.0-2331Re: email format

Marty Jansen wrote:

 Hi,

 

In version 2.6.5-1844 we received email like picture below.

 

 Een ouder bericht is op vlap05.nmlan.net gewijzigd:

Logboek Documentatie
Author Marty Jansen
Type Werkinstructie
Category Servers
Subject Server Windows 2008 R2 role IIS toevoegen v02.doc
Logboek URL http://nmlanict:8088/Documentatie/7

02-11-2010
.\SenN\Proclib\Server Windows 2008 R2 role IIS toevoegen v01.doc
-----------------------------------------------------
05-11-2010
Server Windows 2008 R2 role IIS toevoegen v02.doc: De wijzigingen betreffen het verplaatsen van Inetpub van c:\ naar e:\
Op VLIS27 en VLSQL05 staat de inetpub nu op e:, op de VLSQL04 (NMLITE Testserver) staat de inetpub nog op c:

 

 

When upgraded to version 2.8.0-2331 we receive the email like below whitout the frame:

 

Een nieuw ELOG bericht is bezorgd:
 Logboek: NMLAN  Bericht ID: 927    Geef de tijd op: 5-11-2010 23:07:40
Author: Marty Jansen 
Type: QuickChange 
Category: Software 
Subject: Elog - Update 

Vanwege verbeterde mogelijkheden in de editor (fckeditor), ELOG geupdate van versie 2.6.5-1844 naar versie 2.8.0.-2331

ELOG V2.8.0-2331


Any idea how to get the HTML format email back?

Marty

 Sat Nov 6 14:47:16 2010

It looks strange but when I copy and past the message, like I did here,  the HTML format is OK, but not when I receive the email in Outlook. This used to be OK with the previous version.

Nothing has changed in Outlook

The email notification contains the basic HTML code and an (external) reference to the underlying CSS. I use for example Thunderbird instead of Outlook, and this program asks me if I should "show remote content". Only if I click yes, then the external CSS is loaded. Outlook might also have an option "view as web page" or so. The old format did not use full HTML and therefore was displayed correctly. This can be changed with the email encoding = ... option.

ELOG V3.1.5-3fb85fa6