import www/cntlm, from maintainer David Coppa
Cntlm is an http proxy server, written in pure C, that allows you to authenticate via the proprietary NTLM protocol, so you can use web sites and web proxies that require NTLM/NTLMv2 authorization.
This commit is contained in:
parent
4a57ac0ce3
commit
70b63cddd0
22
www/cntlm/Makefile
Normal file
22
www/cntlm/Makefile
Normal file
@ -0,0 +1,22 @@
|
||||
# $OpenBSD: Makefile,v 1.1.1.1 2009/10/08 19:13:09 sthen Exp $
|
||||
|
||||
COMMENT = fast NTLM/NTLMv2 authenticating HTTP proxy
|
||||
DISTNAME = cntlm-0.35.1
|
||||
CATEGORIES = www
|
||||
MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=cntlm/}
|
||||
HOMEPAGE = http://cntlm.sourceforge.net/
|
||||
MAINTAINER = David Coppa <dcoppa@gmail.com>
|
||||
|
||||
# GPLv2+
|
||||
PERMIT_PACKAGE_CDROM = Yes
|
||||
PERMIT_PACKAGE_FTP = Yes
|
||||
PERMIT_DISTFILES_CDROM =Yes
|
||||
PERMIT_DISTFILES_FTP = Yes
|
||||
|
||||
WANTLIB = c pthread
|
||||
|
||||
CONFIGURE_STYLE = simple
|
||||
ALL_TARGET = cntlm
|
||||
NO_REGRESS = Yes
|
||||
|
||||
.include <bsd.port.mk>
|
5
www/cntlm/distinfo
Normal file
5
www/cntlm/distinfo
Normal file
@ -0,0 +1,5 @@
|
||||
MD5 (cntlm-0.35.1.tar.gz) = JUfHOhFZBi/aoYd8wDoi9g==
|
||||
RMD160 (cntlm-0.35.1.tar.gz) = ZaK5em7INAtBrL0PKdwQlhSKAqw=
|
||||
SHA1 (cntlm-0.35.1.tar.gz) = S/n3Ww9f20RptegQE8QKwWbJ0jU=
|
||||
SHA256 (cntlm-0.35.1.tar.gz) = ez+3GE5yzD8XQ7uOUDpTBelkWLxjCn4ev8nzwH/6bF4=
|
||||
SIZE (cntlm-0.35.1.tar.gz) = 74188
|
46
www/cntlm/patches/patch-Makefile
Normal file
46
www/cntlm/patches/patch-Makefile
Normal file
@ -0,0 +1,46 @@
|
||||
$OpenBSD: patch-Makefile,v 1.1.1.1 2009/10/08 19:13:09 sthen Exp $
|
||||
--- Makefile.orig Tue Nov 20 17:18:24 2007
|
||||
+++ Makefile Thu Oct 8 05:03:34 2009
|
||||
@@ -2,9 +2,9 @@
|
||||
# You can tweak these three variables to make things install where you
|
||||
# like, but do not touch more unless you know what you are doing. ;)
|
||||
#
|
||||
-SYSCONFDIR=/usr/local/etc
|
||||
-BINDIR=/usr/local/bin
|
||||
-MANDIR=/usr/local/man
|
||||
+SYSCONFDIR=${DESTDIR}/etc/${NAME}
|
||||
+BINDIR=${PREFIX}/bin
|
||||
+MANDIR=${PREFIX}/man
|
||||
|
||||
#
|
||||
# Careful now...
|
||||
@@ -13,8 +13,8 @@ MANDIR=/usr/local/man
|
||||
#
|
||||
CC=gcc
|
||||
OBJS=utils.o ntlm.o xcrypt.o config.o socket.o acl.o auth.o http.o proxy.o
|
||||
-CFLAGS=$(FLAGS) -std=c99 -Wall -pedantic -O3 -D__BSD_VISIBLE -D_ALL_SOURCE -D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=200112 -D_ISOC99_SOURCE -D_REENTRANT -DVERSION=\"`cat VERSION`\"
|
||||
-LDFLAGS=-lpthread
|
||||
+CFLAGS=$(FLAGS) -std=c99 -Wall -pedantic -D__BSD_VISIBLE -D_ALL_SOURCE -D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=200112 -D_ISOC99_SOURCE -D_REENTRANT -DVERSION=\"`cat VERSION`\"
|
||||
+LDFLAGS=-pthread
|
||||
NAME=cntlm
|
||||
VER=`cat VERSION`
|
||||
DIR=`pwd`
|
||||
@@ -42,12 +42,13 @@ install: $(NAME)
|
||||
install -O root -G system -M 644 -f $(MANDIR)/man1 doc/$(NAME).1; \
|
||||
install -O root -G system -M 600 -c $(SYSCONFDIR) doc/$(NAME).conf; \
|
||||
else \
|
||||
- install -D -o root -g root -m 755 -s $(NAME) $(BINDIR)/$(NAME); \
|
||||
- install -D -o root -g root -m 644 doc/$(NAME).1 $(MANDIR)/man1/$(NAME).1; \
|
||||
- [ -f $(SYSCONFDIR)/$(NAME).conf -o -z "$(SYSCONFDIR)" ] \
|
||||
- || install -D -o root -g root -m 600 doc/$(NAME).conf $(SYSCONFDIR)/$(NAME).conf; \
|
||||
+ install -d -m 0755 ${BINDIR}; \
|
||||
+ install -o root -g bin -m 0555 -s ${NAME} ${BINDIR}/${NAME}; \
|
||||
+ install -d -m 0755 ${MANDIR}/man1; \
|
||||
+ install -o root -g bin -m 0444 doc/${NAME}.1 ${MANDIR}/man1/${NAME}.1; \
|
||||
+ install -d -m 0755 ${PREFIX}/share/examples/${NAME}; \
|
||||
+ install -o root -g bin -m 0444 doc/${NAME}.conf ${PREFIX}/share/examples/${NAME}/${NAME}.conf; \
|
||||
fi
|
||||
- @echo; echo "Cntlm will look for configuration in $(SYSCONFDIR)/$(NAME).conf"
|
||||
|
||||
rpm:
|
||||
if [ `id -u` = 0 ]; then \
|
11
www/cntlm/patches/patch-acl_c
Normal file
11
www/cntlm/patches/patch-acl_c
Normal file
@ -0,0 +1,11 @@
|
||||
$OpenBSD: patch-acl_c,v 1.1.1.1 2009/10/08 19:13:09 sthen Exp $
|
||||
--- acl.c.orig Thu Oct 8 03:32:08 2009
|
||||
+++ acl.c Thu Oct 8 03:32:21 2009
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <syslog.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
+#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
20
www/cntlm/patches/patch-ntlm_c
Normal file
20
www/cntlm/patches/patch-ntlm_c
Normal file
@ -0,0 +1,20 @@
|
||||
$OpenBSD: patch-ntlm_c,v 1.1.1.1 2009/10/08 19:13:09 sthen Exp $
|
||||
--- ntlm.c.orig Thu Oct 8 08:04:39 2009
|
||||
+++ ntlm.c Thu Oct 8 08:05:27 2009
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
+#include <inttypes.h>
|
||||
|
||||
#include "ntlm.h"
|
||||
#include "swap.h"
|
||||
@@ -75,7 +76,7 @@ static void ntlm2_calc_resp(char **nthash, int *ntlen,
|
||||
|
||||
if (0 && debug) {
|
||||
tmp = printmem(nonce, 8, 7);
|
||||
- printf("NTLMv2:\n\t Nonce: %s\n\tTimestamp: %lld\n", tmp, tw);
|
||||
+ printf("NTLMv2:\n\t Nonce: %s\n\tTimestamp: %"PRId64"\n", tmp, tw);
|
||||
free(tmp);
|
||||
}
|
||||
|
64
www/cntlm/patches/patch-proxy_c
Normal file
64
www/cntlm/patches/patch-proxy_c
Normal file
@ -0,0 +1,64 @@
|
||||
$OpenBSD: patch-proxy_c,v 1.1.1.1 2009/10/08 19:13:09 sthen Exp $
|
||||
--- proxy.c.orig Thu Nov 15 18:08:06 2007
|
||||
+++ proxy.c Thu Oct 8 08:08:07 2009
|
||||
@@ -530,6 +530,7 @@ bailout:
|
||||
int make_connect(int sd, const char *thost) {
|
||||
rr_data_t data1, data2;
|
||||
int ret, closed;
|
||||
+ hlist_t tl;
|
||||
|
||||
if (!sd || !thost || !strlen(thost))
|
||||
return -1;
|
||||
@@ -540,9 +541,18 @@ int make_connect(int sd, const char *thost) {
|
||||
data1->req = 1;
|
||||
data1->method = strdup("CONNECT");
|
||||
data1->url = strdup(thost);
|
||||
- data1->http = strdup("0");
|
||||
+ data1->http = strdup("1");
|
||||
data1->headers = hlist_mod(data1->headers, "Proxy-Connection", "Keep-Alive", 1);
|
||||
|
||||
+ /*
|
||||
+ * Header replacement
|
||||
+ */
|
||||
+ tl = header_list;
|
||||
+ while (tl) {
|
||||
+ data1->headers = hlist_mod(data1->headers, tl->key, tl->value, 1);
|
||||
+ tl = tl->next;
|
||||
+ }
|
||||
+
|
||||
if (debug)
|
||||
printf("Starting authentication...\n");
|
||||
|
||||
@@ -916,7 +926,7 @@ void *proxy_thread(void *client) {
|
||||
char *tmp, *buf, *pos, *dom;
|
||||
struct auth_s *tcreds; /* Per-thread credentials; for NTLM-to-basic */
|
||||
|
||||
- int cd = (int)client;
|
||||
+ int cd = (int)(uintptr_t)client;
|
||||
int authok = 0;
|
||||
int sd = 0;
|
||||
|
||||
@@ -1387,7 +1397,7 @@ void *tunnel_thread(void *client) {
|
||||
}
|
||||
|
||||
void *socks5_thread(void *client) {
|
||||
- int cd = (int)client;
|
||||
+ int cd = (int)(uintptr_t)client;
|
||||
char *tmp, *thost, *tport, *uname, *upass;
|
||||
unsigned char *bs, *auths, *addr;
|
||||
unsigned short port;
|
||||
@@ -2618,11 +2628,11 @@ int main(int argc, char **argv) {
|
||||
|
||||
if (plist_in(proxyd_list, i)) {
|
||||
if (!serialize)
|
||||
- tid = pthread_create(&pthr, &pattr, proxy_thread, (void *)cd);
|
||||
+ tid = pthread_create(&pthr, &pattr, proxy_thread, (void *)(uintptr_t)cd);
|
||||
else
|
||||
- proxy_thread((void *)cd);
|
||||
+ proxy_thread((void *)(uintptr_t)cd);
|
||||
} else if (plist_in(socksd_list, i)) {
|
||||
- tid = pthread_create(&pthr, &pattr, socks5_thread, (void *)cd);
|
||||
+ tid = pthread_create(&pthr, &pattr, socks5_thread, (void *)(uintptr_t)cd);
|
||||
} else {
|
||||
data = (struct thread_arg_s *)new(sizeof(struct thread_arg_s));
|
||||
data->fd = cd;
|
11
www/cntlm/patches/patch-socket_c
Normal file
11
www/cntlm/patches/patch-socket_c
Normal file
@ -0,0 +1,11 @@
|
||||
$OpenBSD: patch-socket_c,v 1.1.1.1 2009/10/08 19:13:09 sthen Exp $
|
||||
--- socket.c.orig Thu Oct 8 03:31:49 2009
|
||||
+++ socket.c Thu Oct 8 03:32:04 2009
|
||||
@@ -19,6 +19,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
18
www/cntlm/patches/patch-utils_h
Normal file
18
www/cntlm/patches/patch-utils_h
Normal file
@ -0,0 +1,18 @@
|
||||
$OpenBSD: patch-utils_h,v 1.1.1.1 2009/10/08 19:13:09 sthen Exp $
|
||||
--- utils.h.orig Thu Oct 8 03:31:13 2009
|
||||
+++ utils.h Thu Oct 8 03:31:43 2009
|
||||
@@ -23,13 +23,13 @@
|
||||
#define _UTILS_H
|
||||
|
||||
#include <pthread.h>
|
||||
+#include <sys/param.h>
|
||||
#include "config/config.h"
|
||||
|
||||
#define BUFSIZE 1024
|
||||
#define MINIBUF_SIZE 50
|
||||
#define VAL(var, type, offset) *((type *)(var+offset))
|
||||
#define MEM(var, type, offset) (type *)(var+offset)
|
||||
-#define MIN(a, b) ((a) < (b) ? (a) : (b))
|
||||
|
||||
/*
|
||||
* Two single-linked list types. First is for storing headers,
|
3
www/cntlm/pkg/DESCR
Normal file
3
www/cntlm/pkg/DESCR
Normal file
@ -0,0 +1,3 @@
|
||||
Cntlm is an http proxy server, written in pure C, that allows you to
|
||||
authenticate via the proprietary NTLM protocol, so you can use web
|
||||
sites and web proxies that require NTLM/NTLMv2 authorization.
|
7
www/cntlm/pkg/PLIST
Normal file
7
www/cntlm/pkg/PLIST
Normal file
@ -0,0 +1,7 @@
|
||||
@comment $OpenBSD: PLIST,v 1.1.1.1 2009/10/08 19:13:09 sthen Exp $
|
||||
@bin bin/cntlm
|
||||
@man man/man1/cntlm.1
|
||||
share/examples/cntlm/
|
||||
@sample ${SYSCONFDIR}/cntlm/
|
||||
share/examples/cntlm/cntlm.conf
|
||||
@sample ${SYSCONFDIR}/cntlm/cntlm.conf
|
Loading…
Reference in New Issue
Block a user