aboutsummaryrefslogtreecommitdiffstats
path: root/src/inputStream_http_auth.h
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-10-26 19:32:43 +0100
committerMax Kellermann <max@duempel.org>2008-10-26 19:32:43 +0100
commit3609de8685cfdfbf2d01fb8bbff02a78d9c07d06 (patch)
treee5573fbdbb7a392abbb163a73318874ed615e03c /src/inputStream_http_auth.h
parent6b09e4daefec2db743e4a0a9d7ff4ad86004d036 (diff)
downloadmpd-3609de8685cfdfbf2d01fb8bbff02a78d9c07d06.tar.gz
mpd-3609de8685cfdfbf2d01fb8bbff02a78d9c07d06.tar.xz
mpd-3609de8685cfdfbf2d01fb8bbff02a78d9c07d06.zip
http: use libcurl
MPD's HTTP client code has always been broken, no matter how effort was put into fixing it. Replace it with libcurl, which is known to be quite stable. This adds a fat library dependency, but only for people who need streaming.
Diffstat (limited to '')
-rw-r--r--src/inputStream_http_auth.h102
1 files changed, 0 insertions, 102 deletions
diff --git a/src/inputStream_http_auth.h b/src/inputStream_http_auth.h
deleted file mode 100644
index 6aed1f36e..000000000
--- a/src/inputStream_http_auth.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* the Music Player Daemon (MPD)
- * Copyright (C) 2003-2007 by Warren Dukes (warren.dukes@gmail.com)
- * This project's homepage is: http://www.musicpd.org
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/* This file is only included by inputStream_http.c */
-#ifndef INPUT_STREAM_HTTP_AUTH_H
-#define INPUT_STREAM_HTTP_AUTH_H
-
-#include "utils.h"
-
-#include <string.h>
-
-/* base64 code taken from xmms */
-
-#define BASE64_LENGTH(len) (4 * (((len) + 2) / 3))
-
-static char *base64dup(char *s)
-{
- int i;
- int len = strlen(s);
- char *ret = xcalloc(BASE64_LENGTH(len) + 1, 1);
- unsigned char *p = (unsigned char *)ret;
-
- static const char tbl[64] = {
- 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
- 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
- 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
- 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
- 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
- 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
- 'w', 'x', 'y', 'z', '0', '1', '2', '3',
- '4', '5', '6', '7', '8', '9', '+', '/'
- };
-
- /* Transform the 3x8 bits to 4x6 bits, as required by base64. */
- for (i = 0; i < len; i += 3) {
- *p++ = tbl[s[0] >> 2];
- *p++ = tbl[((s[0] & 3) << 4) + (s[1] >> 4)];
- *p++ = tbl[((s[1] & 0xf) << 2) + (s[2] >> 6)];
- *p++ = tbl[s[2] & 0x3f];
- s += 3;
- }
- /* Pad the result if necessary... */
- if (i == len + 1)
- *(p - 1) = '=';
- else if (i == len + 2)
- *(p - 1) = *(p - 2) = '=';
- /* ...and zero-terminate it. */
- *p = '\0';
-
- return ret;
-}
-
-static char *auth_string(const char *header,
- const char *user, const char *password)
-{
- char *ret = NULL;
- int templen;
- char *temp;
- char *temp64;
-
- if (!user || !password)
- return NULL;
-
- templen = strlen(user) + strlen(password) + 2;
- temp = xmalloc(templen);
- strcpy(temp, user);
- strcat(temp, ":");
- strcat(temp, password);
- temp64 = base64dup(temp);
- free(temp);
-
- ret = xmalloc(strlen(temp64) + strlen(header) + 3);
- strcpy(ret, header);
- strcat(ret, temp64);
- strcat(ret, "\r\n");
- free(temp64);
-
- return ret;
-}
-
-#define PROXY_AUTH_HEADER "Proxy-Authorization: Basic "
-#define HTTP_AUTH_HEADER "Authorization: Basic "
-
-#define proxy_auth_string(x, y) auth_string(PROXY_AUTH_HEADER, x, y)
-#define http_auth_string(x, y) auth_string(HTTP_AUTH_HEADER, x, y)
-
-#endif /* INPUT_STREAM_HTTP_AUTH_H */