Hello,

I've written the following function to log our internal UUID to access.log:

int
LogAccessHttp::marshal_proxy_uuid(char *buf)
{
  const char *str = NULL;
  int len = INK_MIN_ALIGN;

  if (buf) {
    if ( m_http_sm->magic == HTTP_SM_MAGIC_ALIVE ) {
      str = m_http_sm->get_uuid();
    } else {
      str = "-";
    }
    len = LogAccess::strlen(str);
    Debug("Azion", "Logando UUID [%d:%s]", len, str);
    marshal_str(buf, str, len);
  }
  return len;
}

The debug message always logs 40 for the length and the correct UUID,
however, on production, sometimes it logs the correct information,
sometimes it logs garbage like:

7022d7ceH�5T
1534af18I�5T
3bbb55ccK�5T
f3a9bcf5R�5T

(Notice that the last 3 bytes are always the same)

Is there any gotcha I should be aware of when printing the log? Am I doing
something wrong on the serializer?

Best regards,
Acácio Centeno
Software Engineering
Azion Technologies
Porto Alegre, Brasil +55 51 3012 3005 | +55 51 8118 9947
Miami, USA +1 305 704 8816

Quaisquer informações contidas neste e-mail e anexos podem ser
confidenciais e privilegiadas, protegidas por sigilo legal. Qualquer forma
de utilização deste documento depende de autorização do emissor, sujeito as
penalidades cabíveis.

Any information in this e-mail and attachments may be confidential and
privileged, protected by legal confidentiality. The use of this document
require authorization by the issuer, subject to penalties.

Reply via email to