-/*
- * Copyright (C) 1995-2007, Index Data ApS
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2011 Index Data
* See the file LICENSE for details.
- *
- * $Id: http.c,v 1.3 2007-09-06 17:11:59 mike Exp $
*/
-
/**
* \file http.c
* \brief Implements HTTP decoding
*/
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
-#include <ctype.h>
#include <yaz/odr.h>
#include <yaz/yaz-version.h>
#include <yaz/yaz-iconv.h>
+#include <yaz/matchstr.h>
#include <yaz/zgdu.h>
#ifdef WIN32
/* chunk length .. */
int chunk_len = 0;
for (; i < o->size-2; i++)
- if (isdigit(o->buf[i]))
+ if (yaz_isdigit(o->buf[i]))
chunk_len = chunk_len * 16 +
(o->buf[i] - '0');
- else if (isupper(o->buf[i]))
+ else if (yaz_isupper(o->buf[i]))
chunk_len = chunk_len * 16 +
(o->buf[i] - ('A'-10));
- else if (islower(o->buf[i]))
+ else if (yaz_islower(o->buf[i]))
chunk_len = chunk_len * 16 +
(o->buf[i] - ('a'-10));
else
if (username == 0)
return;
+ if (password == 0)
+ password = "";
len = strlen(username) + strlen(password);
- tmp = odr_malloc(o, len+2);
+ tmp = (char *) odr_malloc(o, len+2);
sprintf(tmp, "%s:%s", username, password);
- buf = odr_malloc(o, (len+1) * 8/6 + 12);
+ buf = (char *) odr_malloc(o, (len+1) * 8/6 + 12);
strcpy(buf, "Basic ");
yaz_base64encode(tmp, &buf[strlen(buf)]);
z_HTTP_header_add(o, hp, "Authorization", buf);
if (code != 200)
{
hres->content_buf = (char*) odr_malloc(o, 400);
- sprintf (hres->content_buf,
- "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n"
- "<HTML>\n"
- " <HEAD>\n"
- " <TITLE>YAZ " YAZ_VERSION "</TITLE>\n"
- " </HEAD>\n"
- " <BODY>\n"
- " <P><A HREF=\"http://www.indexdata.dk/yaz/\">YAZ</A> "
- YAZ_VERSION "</P>\n"
- " <P>Error: %d</P>\n"
- " <P>Description: %.50s</P>\n"
- " </BODY>\n"
- "</HTML>\n",
- code, z_HTTP_errmsg(code));
+ sprintf(hres->content_buf,
+ "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\""
+ " \"http://www.w3.org/TR/html4/strict.dtd\">\n"
+ "<HTML>\n"
+ " <HEAD>\n"
+ " <TITLE>YAZ " YAZ_VERSION "</TITLE>\n"
+ " </HEAD>\n"
+ " <BODY>\n"
+ " <P><A HREF=\"http://www.indexdata.com/yaz/\">YAZ</A> "
+ YAZ_VERSION "</P>\n"
+ " <P>Error: %d</P>\n"
+ " <P>Description: %.50s</P>\n"
+ " </BODY>\n"
+ "</HTML>\n",
+ code, z_HTTP_errmsg(code));
hres->content_len = strlen(hres->content_buf);
z_HTTP_header_add(o, &hres->headers, "Content-Type", "text/html");
}
/*
* Local variables:
* c-basic-offset: 4
+ * c-file-style: "Stroustrup"
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab