bump
git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/bongo@2911 6952d904-891a-0410-993b-d76249ca496b
This commit is contained in:
parent
b882f7955e
commit
103a7acc29
13
dev-libs/log4c/files/log4c-fix-m4-quoting.patch
Normal file
13
dev-libs/log4c/files/log4c-fix-m4-quoting.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Index: log4c-1.2.1/log4c.m4
|
||||||
|
===================================================================
|
||||||
|
--- log4c-1.2.1.orig/log4c.m4
|
||||||
|
+++ log4c-1.2.1/log4c.m4
|
||||||
|
@@ -4,7 +4,7 @@
|
||||||
|
dnl AM_PATH_LOG4C([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||||
|
dnl Test for LOG4C, and define LOG4C_CFLAGS and LOG4C_LIBS
|
||||||
|
dnl
|
||||||
|
-AC_DEFUN(AM_PATH_LOG4C,
|
||||||
|
+AC_DEFUN([AM_PATH_LOG4C],
|
||||||
|
[dnl
|
||||||
|
dnl Get the cflags and libraries from the log4c-config script
|
||||||
|
dnl
|
107
mail-mta/bongo/bongo-0.6.0.ebuild
Normal file
107
mail-mta/bongo/bongo-0.6.0.ebuild
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
# Copyright 1999-2009 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
# $Header: $
|
||||||
|
|
||||||
|
|
||||||
|
EAPI="2"
|
||||||
|
|
||||||
|
#ESVN_REPO_URI="http://svn.gna.org/svn/${PN}/trunk"
|
||||||
|
|
||||||
|
inherit eutils multilib flag-o-matic cmake-utils
|
||||||
|
|
||||||
|
DESCRIPTION="A calendar and webmail application, which includes its own MTA"
|
||||||
|
|
||||||
|
SRC_URI="http://download.gna.org/bongo/release/${P}.tar.bz2"
|
||||||
|
HOMEPAGE="http://bongo-project.org/"
|
||||||
|
|
||||||
|
LICENSE="LGPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
|
||||||
|
IUSE=""
|
||||||
|
|
||||||
|
KEYWORDS=""
|
||||||
|
RESTRICT="stip"
|
||||||
|
|
||||||
|
# regular ebuild
|
||||||
|
PROVIDE="virtual/mta virtual/mda"
|
||||||
|
|
||||||
|
DEPEND="virtual/libc
|
||||||
|
>=dev-db/sqlite-3
|
||||||
|
dev-db/unixODBC
|
||||||
|
>=dev-lang/python-2.3
|
||||||
|
>=dev-libs/glib-2.10
|
||||||
|
>=dev-libs/gmime-2.0
|
||||||
|
dev-libs/libgcrypt
|
||||||
|
>=dev-libs/libical-0.40
|
||||||
|
dev-libs/log4c
|
||||||
|
net-libs/gnutls
|
||||||
|
dev-python/lxml
|
||||||
|
net-misc/curl
|
||||||
|
net-nds/openldap"
|
||||||
|
|
||||||
|
RDEPEND="${DEPEND}
|
||||||
|
>=net-mail/mailbase-0.00
|
||||||
|
!virtual/mta
|
||||||
|
!net-mail/mailwrapper"
|
||||||
|
|
||||||
|
mycmakeargs="-DBONGO_USER=bongo
|
||||||
|
-DCMAKE_BUILD_TYPE=Release
|
||||||
|
-DDEBUG=Off"
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
enewgroup bongo
|
||||||
|
enewuser bongo -1 -1 -1 bongo
|
||||||
|
# filter-ldflags -Wl,--as-needed --as-needed
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
epatch ${FILESDIR}/bongo-FORTIFY-1.patch
|
||||||
|
epatch ${FILESDIR}/bongo-0.6.0-missing_link-1.patch
|
||||||
|
epatch ${FILESDIR}/bongo-0.6.0-uninitialized-1.patch
|
||||||
|
epatch ${FILESDIR}/bongo-return_value-1.patch
|
||||||
|
epatch ${FILESDIR}/bongo-gentoo-1.patch
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cmake-utils_src_install
|
||||||
|
|
||||||
|
newinitd ${FILESDIR}/bongo.init bongo
|
||||||
|
newconfd ${FILESDIR}/bongo.conf.d bongo
|
||||||
|
newenvd ${FILESDIR}/70bongo 70bongo
|
||||||
|
|
||||||
|
dodir /var/lib/bongo
|
||||||
|
keepdir /var/lib/bongo
|
||||||
|
fowners bongo:bongo /var/lib/bongo
|
||||||
|
fperms 770 /var/lib/bongo
|
||||||
|
|
||||||
|
dodir /var/run/bongo
|
||||||
|
keepdir /var/run/bongo
|
||||||
|
fowners bongo:bongo /var/run/bongo
|
||||||
|
fperms 770 /var/run/bongo
|
||||||
|
|
||||||
|
|
||||||
|
dosym /usr/sbin/bongo-sendmail /usr/sbin/sendmail
|
||||||
|
dosym /usr/sbin/bongo-sendmail /usr/lib/sendmail
|
||||||
|
dosym /usr/sbin/bongo-sendmail /usr/bin/sendmail
|
||||||
|
dosym /usr/sbin/bongo-sendmail /usr/sbin/mailq
|
||||||
|
dosym /usr/sbin/bongo-sendmail /usr/sbin/newaliases
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
elog "Bongo must be setup."
|
||||||
|
elog "Please run:"
|
||||||
|
elog " emerge /usr/sbin/bongo-config install"
|
||||||
|
elog ""
|
||||||
|
elog "For more information on bongo-config run /usr/sbin/bongo-config --help"
|
||||||
|
elog ""
|
||||||
|
elog "After bongo is set up run /etc/init.d/bongo start to start the service"
|
||||||
|
elog ""
|
||||||
|
elog "The default login settings are as follows:"
|
||||||
|
elog "username: admin"
|
||||||
|
elog "password: bongo"
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_config() {
|
||||||
|
einfo "Setting up Bongo..."
|
||||||
|
/usr/sbin/bongo-config install
|
||||||
|
}
|
107
mail-mta/bongo/bongo-0.6.1.ebuild
Normal file
107
mail-mta/bongo/bongo-0.6.1.ebuild
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
# Copyright 1999-2009 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
# $Header: $
|
||||||
|
|
||||||
|
|
||||||
|
EAPI="2"
|
||||||
|
|
||||||
|
#ESVN_REPO_URI="http://svn.gna.org/svn/${PN}/trunk"
|
||||||
|
|
||||||
|
inherit eutils multilib flag-o-matic cmake-utils
|
||||||
|
|
||||||
|
DESCRIPTION="A calendar and webmail application, which includes its own MTA"
|
||||||
|
|
||||||
|
SRC_URI="http://download.gna.org/bongo/release/${P}.tar.bz2"
|
||||||
|
HOMEPAGE="http://bongo-project.org/"
|
||||||
|
|
||||||
|
LICENSE="LGPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
|
||||||
|
IUSE=""
|
||||||
|
|
||||||
|
KEYWORDS="~x86 ~amd64"
|
||||||
|
RESTRICT="stip"
|
||||||
|
|
||||||
|
# regular ebuild
|
||||||
|
PROVIDE="virtual/mta virtual/mda"
|
||||||
|
|
||||||
|
DEPEND="virtual/libc
|
||||||
|
>=dev-db/sqlite-3
|
||||||
|
dev-db/unixODBC
|
||||||
|
>=dev-lang/python-2.3
|
||||||
|
>=dev-libs/glib-2.10
|
||||||
|
>=dev-libs/gmime-2.0
|
||||||
|
dev-libs/libgcrypt
|
||||||
|
>=dev-libs/libical-0.40
|
||||||
|
dev-libs/log4c
|
||||||
|
net-libs/gnutls
|
||||||
|
dev-python/lxml
|
||||||
|
net-misc/curl
|
||||||
|
net-nds/openldap"
|
||||||
|
|
||||||
|
RDEPEND="${DEPEND}
|
||||||
|
>=net-mail/mailbase-0.00
|
||||||
|
!virtual/mta
|
||||||
|
!net-mail/mailwrapper"
|
||||||
|
|
||||||
|
mycmakeargs="-DBONGO_USER=bongo
|
||||||
|
-DCMAKE_BUILD_TYPE=Release
|
||||||
|
-DDEBUG=Off"
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
enewgroup bongo
|
||||||
|
enewuser bongo -1 -1 -1 bongo
|
||||||
|
# filter-ldflags -Wl,--as-needed --as-needed
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
epatch ${FILESDIR}/bongo-FORTIFY-1.patch
|
||||||
|
epatch ${FILESDIR}/bongo-0.6.0-missing_link-1.patch
|
||||||
|
epatch ${FILESDIR}/bongo-0.6.0-uninitialized-1.patch
|
||||||
|
epatch ${FILESDIR}/bongo-return_value-1.patch
|
||||||
|
epatch ${FILESDIR}/bongo-gentoo-1.patch
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cmake-utils_src_install
|
||||||
|
|
||||||
|
newinitd ${FILESDIR}/bongo.init bongo
|
||||||
|
newconfd ${FILESDIR}/bongo.conf.d bongo
|
||||||
|
newenvd ${FILESDIR}/70bongo 70bongo
|
||||||
|
|
||||||
|
dodir /var/lib/bongo
|
||||||
|
keepdir /var/lib/bongo
|
||||||
|
fowners bongo:bongo /var/lib/bongo
|
||||||
|
fperms 770 /var/lib/bongo
|
||||||
|
|
||||||
|
dodir /var/run/bongo
|
||||||
|
keepdir /var/run/bongo
|
||||||
|
fowners bongo:bongo /var/run/bongo
|
||||||
|
fperms 770 /var/run/bongo
|
||||||
|
|
||||||
|
|
||||||
|
dosym /usr/sbin/bongo-sendmail /usr/sbin/sendmail
|
||||||
|
dosym /usr/sbin/bongo-sendmail /usr/lib/sendmail
|
||||||
|
dosym /usr/sbin/bongo-sendmail /usr/bin/sendmail
|
||||||
|
dosym /usr/sbin/bongo-sendmail /usr/sbin/mailq
|
||||||
|
dosym /usr/sbin/bongo-sendmail /usr/sbin/newaliases
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
elog "Bongo must be setup."
|
||||||
|
elog "Please run:"
|
||||||
|
elog " emerge /usr/sbin/bongo-config install"
|
||||||
|
elog ""
|
||||||
|
elog "For more information on bongo-config run /usr/sbin/bongo-config --help"
|
||||||
|
elog ""
|
||||||
|
elog "After bongo is set up run /etc/init.d/bongo start to start the service"
|
||||||
|
elog ""
|
||||||
|
elog "The default login settings are as follows:"
|
||||||
|
elog "username: admin"
|
||||||
|
elog "password: bongo"
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_config() {
|
||||||
|
einfo "Setting up Bongo..."
|
||||||
|
/usr/sbin/bongo-config install
|
||||||
|
}
|
18
mail-mta/bongo/files/bongo-0.6.0-missing_link-1.patch
Normal file
18
mail-mta/bongo/files/bongo-0.6.0-missing_link-1.patch
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
Submitted By: Mario Fetka (mario dot fetka at gmail dot com)
|
||||||
|
Date: 2009-09-10
|
||||||
|
Initial Package Version: 0.6.0
|
||||||
|
Origin: me
|
||||||
|
Upstream Status: unknown
|
||||||
|
Description: add missing linking
|
||||||
|
|
||||||
|
diff -Naur bongo-0.6.0.orig/src/libs/cal/CMakeLists.txt bongo-0.6.0/src/libs/cal/CMakeLists.txt
|
||||||
|
--- bongo-0.6.0.orig/src/libs/cal/CMakeLists.txt 2009-09-10 12:54:44.920349087 +0000
|
||||||
|
+++ bongo-0.6.0/src/libs/cal/CMakeLists.txt 2009-09-10 12:55:41.133348481 +0000
|
||||||
|
@@ -22,6 +22,7 @@
|
||||||
|
target_link_libraries(bongocal
|
||||||
|
bongoxpl
|
||||||
|
bongoutil
|
||||||
|
+ bongojson
|
||||||
|
${LIBICAL_LIBRARIES}
|
||||||
|
)
|
||||||
|
|
19
mail-mta/bongo/files/bongo-0.6.0-uninitialized-1.patch
Normal file
19
mail-mta/bongo/files/bongo-0.6.0-uninitialized-1.patch
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
Submitted By: Mario Fetka (mario dot fetka at gmail dot com)
|
||||||
|
Date: 2009-09-10
|
||||||
|
Initial Package Version: 0.6.0
|
||||||
|
Origin: me
|
||||||
|
Upstream Status: unknown
|
||||||
|
Description: correct some uninitalzed vars
|
||||||
|
|
||||||
|
diff -Naur bongo-0.6.0.orig/src/agents/antispam/spamd.c bongo-0.6.0/src/agents/antispam/spamd.c
|
||||||
|
--- bongo-0.6.0.orig/src/agents/antispam/spamd.c 2009-09-10 12:59:50.614349037 +0000
|
||||||
|
+++ bongo-0.6.0/src/agents/antispam/spamd.c 2009-09-10 13:02:51.522348913 +0000
|
||||||
|
@@ -346,7 +346,7 @@
|
||||||
|
for (i=0; i < ASpam.spamd.hostlist->len; i++) {
|
||||||
|
char *hostitem = g_array_index(ASpam.spamd.hostlist, char*, i);
|
||||||
|
char *lHost = MemStrdup(hostitem);
|
||||||
|
- char *host;
|
||||||
|
+ char *host = NULL;
|
||||||
|
int port=SPAMD_DEFAULT_PORT, weight=SPAMD_DEFAULT_WEIGHT;
|
||||||
|
ParseHost(lHost, &host, &port, &weight);
|
||||||
|
ConnAddressPoolAddHost(&ASpam.spamd.hosts, host, port, weight);
|
779
mail-mta/bongo/files/diff.patch
Normal file
779
mail-mta/bongo/files/diff.patch
Normal file
@ -0,0 +1,779 @@
|
|||||||
|
Index: include/connio.h
|
||||||
|
===================================================================
|
||||||
|
--- include/connio.h (revision 1131)
|
||||||
|
+++ include/connio.h (working copy)
|
||||||
|
@@ -80,8 +80,11 @@
|
||||||
|
#define SSL_DISABLE_EMPTY_FRAGMENTS (1 << 4)
|
||||||
|
#define SSL_DONT_INSERT_EMPTY_FRAGMENTS (1 << 5)
|
||||||
|
|
||||||
|
-void CHOP_NEWLINE(unsigned char *s);
|
||||||
|
-void SET_POINTER_TO_VALUE(unsigned char *p, unsigned char *s); // FIXME: Unused?
|
||||||
|
+void CHOP_NEWLINE(char *s);
|
||||||
|
+#if 0
|
||||||
|
+//TODO: do we need this?
|
||||||
|
+void SET_POINTER_TO_VALUE(unsigned char *p, unsigned char *s);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#if defined (UNIX) || defined(S390RH) || defined(SOLARIS)
|
||||||
|
|
||||||
|
@@ -138,12 +141,12 @@
|
||||||
|
|
||||||
|
struct {
|
||||||
|
long type;
|
||||||
|
- const unsigned char *file;
|
||||||
|
+ const char *file;
|
||||||
|
} certificate;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
long type;
|
||||||
|
- const unsigned char *file;
|
||||||
|
+ const char *file;
|
||||||
|
} key;
|
||||||
|
} ConnSSLConfiguration;
|
||||||
|
|
||||||
|
@@ -227,9 +230,9 @@
|
||||||
|
|
||||||
|
#include <connio-trace.h>
|
||||||
|
|
||||||
|
-void ConnTcpWrite(Connection *c, char *b, size_t l, int *r);
|
||||||
|
-void ConnTcpRead(Connection *c, char *b, size_t l, int *r);
|
||||||
|
-void ConnTcpFlush(Connection *c, const char *b, const char *e, int *r);
|
||||||
|
+int ConnTcpWrite(Connection *c, char *b, size_t l, size_t *r);
|
||||||
|
+int ConnTcpRead(Connection *c, char *b, size_t l, size_t *r);
|
||||||
|
+int ConnTcpFlush(Connection *c, const char *b, const char *e, size_t *r);
|
||||||
|
void ConnTcpClose(Connection *c);
|
||||||
|
|
||||||
|
void ConnAddressPoolStartup(AddressPool *pool, unsigned long errorThreshold, unsigned long errorTimeThreshold);
|
||||||
|
@@ -304,10 +307,13 @@
|
||||||
|
int XplGetInterfaceList(void);
|
||||||
|
int XplDestroyInterfaceList(void);
|
||||||
|
|
||||||
|
+#if 0
|
||||||
|
+//TODO: Do we need these? They aren't used anywhere but connmgr */
|
||||||
|
int XplIPRead(void *sktCtx, unsigned char *Buf, int Len, int socketTimeout);
|
||||||
|
int XplIPReadSSL(void *sktCtx, unsigned char *Buf, int Len, int socketTimeout);
|
||||||
|
int XplIPWrite(void *sktCtx, unsigned char *Buf, int Len);
|
||||||
|
int XplIPWriteSSL(void *sktCtx, unsigned char *Buf, int Len);
|
||||||
|
+#endif
|
||||||
|
int XplIPConnectWithTimeout(IPSOCKET soc, struct sockaddr *addr, long addrSize, long timeout);
|
||||||
|
|
||||||
|
#endif /* _BONGO_CONNIO_H */
|
||||||
|
Index: src/libs/connio/connio.c
|
||||||
|
===================================================================
|
||||||
|
--- src/libs/connio/connio.c (revision 1131)
|
||||||
|
+++ src/libs/connio/connio.c (working copy)
|
||||||
|
@@ -114,7 +114,7 @@
|
||||||
|
gnutls_dh_params_init(&dh_params);
|
||||||
|
genparams = fopen(XPL_DEFAULT_DHPARAMS_PATH, "r");
|
||||||
|
if (genparams) {
|
||||||
|
- char tmpdata[2048];
|
||||||
|
+ unsigned char tmpdata[2048];
|
||||||
|
gnutls_datum dh_parameters;
|
||||||
|
|
||||||
|
dh_parameters.size = fread(tmpdata, 1, sizeof(tmpdata)-1, genparams);
|
||||||
|
@@ -137,7 +137,7 @@
|
||||||
|
gnutls_rsa_params_init(&rsa_params);
|
||||||
|
genparams = fopen(XPL_DEFAULT_RSAPARAMS_PATH, "r");
|
||||||
|
if (genparams) {
|
||||||
|
- char tmpdata[2048];
|
||||||
|
+ unsigned char tmpdata[2048];
|
||||||
|
gnutls_datum rsa_parameters;
|
||||||
|
|
||||||
|
rsa_parameters.size = fread(tmpdata, 1, sizeof(tmpdata)-1, genparams);
|
||||||
|
@@ -285,8 +285,8 @@
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ccode != -1) {
|
||||||
|
- ccode = sizeof(conn->socketAddress);
|
||||||
|
- IPgetsockname(conn->socket, (struct sockaddr *)&(conn->socketAddress), &ccode);
|
||||||
|
+ socklen_t len = sizeof(conn->socketAddress);
|
||||||
|
+ IPgetsockname(conn->socket, (struct sockaddr *)&(conn->socketAddress), &len);
|
||||||
|
} else {
|
||||||
|
IPclose(conn->socket);
|
||||||
|
conn->socket = -1;
|
||||||
|
@@ -335,6 +335,8 @@
|
||||||
|
{
|
||||||
|
int ccode;
|
||||||
|
|
||||||
|
+ UNUSED_PARAMETER(destination);
|
||||||
|
+
|
||||||
|
conn->socket = IPsocket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||||
|
if (conn->socket != -1) {
|
||||||
|
if (!saddr) {
|
||||||
|
@@ -583,7 +585,7 @@
|
||||||
|
|
||||||
|
int ConnAccept(Connection *Server, Connection **Client)
|
||||||
|
{
|
||||||
|
- int length;
|
||||||
|
+ socklen_t length;
|
||||||
|
Connection *c = ConnAlloc(TRUE);
|
||||||
|
|
||||||
|
if (c) {
|
||||||
|
@@ -609,7 +611,7 @@
|
||||||
|
int
|
||||||
|
ConnSend(Connection *Conn, char *Buffer, unsigned int Length)
|
||||||
|
{
|
||||||
|
- int count;
|
||||||
|
+ size_t count;
|
||||||
|
|
||||||
|
ConnTcpWrite(Conn, Buffer, Length, &count);
|
||||||
|
|
||||||
|
@@ -619,7 +621,7 @@
|
||||||
|
int
|
||||||
|
ConnReceive(Connection *Conn, char *Buffer, unsigned int Length)
|
||||||
|
{
|
||||||
|
- int count;
|
||||||
|
+ size_t count;
|
||||||
|
|
||||||
|
ConnTcpRead(Conn, Buffer, Length, &count);
|
||||||
|
|
||||||
|
@@ -639,13 +641,23 @@
|
||||||
|
int
|
||||||
|
ConnRead(Connection *Conn, char *Dest, int Length)
|
||||||
|
{
|
||||||
|
- int read;
|
||||||
|
+ size_t read;
|
||||||
|
+ size_t uLength;
|
||||||
|
+ int err;
|
||||||
|
+
|
||||||
|
Connection *c = Conn;
|
||||||
|
|
||||||
|
+ if (Length <= 0) {
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* since i know Length is greater than 0 i should be able to safely cast here */
|
||||||
|
+ uLength = Length;
|
||||||
|
+
|
||||||
|
read = c->receive.write - c->receive.read;
|
||||||
|
do {
|
||||||
|
if (read > 0) {
|
||||||
|
- if (read <= Length) {
|
||||||
|
+ if (read <= uLength) {
|
||||||
|
memcpy(Dest, c->receive.read, read);
|
||||||
|
|
||||||
|
c->receive.read = c->receive.write = c->receive.buffer;
|
||||||
|
@@ -655,14 +667,14 @@
|
||||||
|
return(read);
|
||||||
|
}
|
||||||
|
|
||||||
|
- memcpy(Dest, c->receive.read, Length);
|
||||||
|
+ memcpy(Dest, c->receive.read, uLength);
|
||||||
|
|
||||||
|
- c->receive.read += Length;
|
||||||
|
+ c->receive.read += uLength;
|
||||||
|
|
||||||
|
- return(Length);
|
||||||
|
+ return(uLength);
|
||||||
|
}
|
||||||
|
|
||||||
|
- ConnTcpRead(c, c->receive.buffer, CONN_TCP_MTU, &read);
|
||||||
|
+ err = ConnTcpRead(c, c->receive.buffer, CONN_TCP_MTU, &read);
|
||||||
|
if (read > 0) {
|
||||||
|
c->receive.read = c->receive.buffer;
|
||||||
|
c->receive.write = c->receive.buffer + read;
|
||||||
|
@@ -689,6 +701,7 @@
|
||||||
|
{
|
||||||
|
size_t buffered;
|
||||||
|
size_t remaining = Count;
|
||||||
|
+ int err;
|
||||||
|
char *d = Dest;
|
||||||
|
Connection *c = Conn;
|
||||||
|
|
||||||
|
@@ -721,7 +734,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
if (remaining < CONN_TCP_MTU) {
|
||||||
|
- ConnTcpRead(c, c->receive.write, c->receive.remaining, &buffered);
|
||||||
|
+ err = ConnTcpRead(c, c->receive.write, c->receive.remaining, &buffered);
|
||||||
|
|
||||||
|
if (buffered > 0) {
|
||||||
|
c->receive.write += buffered;
|
||||||
|
@@ -732,7 +745,7 @@
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
do {
|
||||||
|
- ConnTcpRead(c, d, remaining, &buffered);
|
||||||
|
+ err = ConnTcpRead(c, d, remaining, &buffered);
|
||||||
|
if (buffered > 0) {
|
||||||
|
d += buffered;
|
||||||
|
remaining -= buffered;
|
||||||
|
@@ -756,7 +769,8 @@
|
||||||
|
int
|
||||||
|
ConnReadLine(Connection *Conn, char *Line, int Length)
|
||||||
|
{
|
||||||
|
- int count;
|
||||||
|
+ size_t count;
|
||||||
|
+ int err;
|
||||||
|
char *cur;
|
||||||
|
char *limit;
|
||||||
|
char *dest;
|
||||||
|
@@ -844,7 +858,7 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- ConnTcpRead(c, c->receive.buffer, CONN_TCP_MTU, &count);
|
||||||
|
+ err = ConnTcpRead(c, c->receive.buffer, CONN_TCP_MTU, &count);
|
||||||
|
if (count > 0) {
|
||||||
|
cur = c->receive.read = c->receive.buffer;
|
||||||
|
limit = c->receive.write = cur + count;
|
||||||
|
@@ -860,11 +874,11 @@
|
||||||
|
return(dest - Line);
|
||||||
|
}
|
||||||
|
|
||||||
|
-
|
||||||
|
int
|
||||||
|
ConnReadAnswer(Connection *Conn, char *Line, int Length)
|
||||||
|
{
|
||||||
|
- int count;
|
||||||
|
+ size_t count;
|
||||||
|
+ int err;
|
||||||
|
char *cur;
|
||||||
|
char *limit;
|
||||||
|
char *dest;
|
||||||
|
@@ -974,7 +988,7 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- ConnTcpRead(c, c->receive.buffer, CONN_TCP_MTU, &count);
|
||||||
|
+ err = ConnTcpRead(c, c->receive.buffer, CONN_TCP_MTU, &count);
|
||||||
|
if (count > 0) {
|
||||||
|
cur = c->receive.read = c->receive.buffer;
|
||||||
|
limit = c->receive.write = cur + count;
|
||||||
|
@@ -1068,10 +1082,11 @@
|
||||||
|
while (found_end_of_line == FALSE) {
|
||||||
|
if (c->receive.read == c->receive.write) {
|
||||||
|
// we need to fetch more data since the buffers are empty - this blocks
|
||||||
|
- int count;
|
||||||
|
+ size_t count;
|
||||||
|
+ int err;
|
||||||
|
|
||||||
|
- ConnTcpRead(c, c->receive.buffer, CONN_TCP_MTU, &count);
|
||||||
|
- if (count <= 0) {
|
||||||
|
+ err = ConnTcpRead(c, c->receive.buffer, CONN_TCP_MTU, &count);
|
||||||
|
+ if ((err < 0) || (count == 0)) {
|
||||||
|
c->send.remaining = CONN_TCP_MTU;
|
||||||
|
c->send.read = c->send.write;
|
||||||
|
return(CONN_ERROR_NETWORK);
|
||||||
|
@@ -1128,6 +1143,7 @@
|
||||||
|
{
|
||||||
|
size_t buffered;
|
||||||
|
size_t remaining;
|
||||||
|
+ int err;
|
||||||
|
Connection *c = Conn;
|
||||||
|
|
||||||
|
remaining = Count;
|
||||||
|
@@ -1164,7 +1180,7 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- ConnTcpRead(c, c->receive.write, c->receive.remaining, &buffered);
|
||||||
|
+ err = ConnTcpRead(c, c->receive.write, c->receive.remaining, &buffered);
|
||||||
|
if (buffered > 0) {
|
||||||
|
c->receive.write += buffered;
|
||||||
|
c->receive.remaining -= buffered;
|
||||||
|
@@ -1184,6 +1200,7 @@
|
||||||
|
{
|
||||||
|
int written = 0;
|
||||||
|
size_t count;
|
||||||
|
+ int err;
|
||||||
|
char *cur;
|
||||||
|
char *limit;
|
||||||
|
BOOL finished = FALSE;
|
||||||
|
@@ -1274,7 +1291,7 @@
|
||||||
|
Src->receive.write[0] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
- ConnTcpRead(Src, Src->receive.write, Src->receive.remaining, &count);
|
||||||
|
+ err = ConnTcpRead(Src, Src->receive.write, Src->receive.remaining, &count);
|
||||||
|
if (count > 0) {
|
||||||
|
Src->receive.read = Src->receive.buffer;
|
||||||
|
Src->receive.write += count;
|
||||||
|
@@ -1293,15 +1310,17 @@
|
||||||
|
int
|
||||||
|
ConnReadToConn(Connection *Src, Connection *Dest, int Count)
|
||||||
|
{
|
||||||
|
- unsigned int sent;
|
||||||
|
+ size_t sent;
|
||||||
|
size_t buffered;
|
||||||
|
size_t remaining;
|
||||||
|
+ int err;
|
||||||
|
+
|
||||||
|
Connection *s = Src;
|
||||||
|
Connection *d = Dest;
|
||||||
|
|
||||||
|
if ((remaining = Count) > 0) {
|
||||||
|
- ConnTcpFlush(d, d->send.read, d->send.write, &sent);
|
||||||
|
- if (sent >= 0) {
|
||||||
|
+ err = ConnTcpFlush(d, d->send.read, d->send.write, &sent);
|
||||||
|
+ if (err == 0) {
|
||||||
|
d->send.read = d->send.write = d->send.buffer;
|
||||||
|
d->send.remaining = CONN_TCP_MTU;
|
||||||
|
|
||||||
|
@@ -1317,7 +1336,7 @@
|
||||||
|
buffered = s->receive.write - s->receive.read;
|
||||||
|
if (buffered > 0) {
|
||||||
|
if (remaining <= buffered) {
|
||||||
|
- ConnTcpWrite(d, s->receive.read, remaining, &sent);
|
||||||
|
+ err = ConnTcpWrite(d, s->receive.read, remaining, &sent);
|
||||||
|
if (sent == remaining) {
|
||||||
|
s->receive.read += sent;
|
||||||
|
if (s->receive.read == s->receive.write) {
|
||||||
|
@@ -1334,7 +1353,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((remaining > s->receive.remaining) && (s->receive.remaining < CONN_TCP_THRESHOLD)) {
|
||||||
|
- ConnTcpWrite(d, s->receive.read, buffered, &sent);
|
||||||
|
+ err = ConnTcpWrite(d, s->receive.read, buffered, &sent);
|
||||||
|
if (sent == buffered) {
|
||||||
|
remaining -= sent;
|
||||||
|
|
||||||
|
@@ -1348,7 +1367,7 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- ConnTcpRead(s, s->receive.write, s->receive.remaining, &buffered);
|
||||||
|
+ err = ConnTcpRead(s, s->receive.write, s->receive.remaining, &buffered);
|
||||||
|
if (buffered > 0) {
|
||||||
|
s->receive.write += buffered;
|
||||||
|
s->receive.remaining -= buffered;
|
||||||
|
@@ -1367,13 +1386,14 @@
|
||||||
|
ConnReadToConnUntilEOS(Connection *Src, Connection *Dest)
|
||||||
|
{
|
||||||
|
int written = 0;
|
||||||
|
- int count;
|
||||||
|
+ size_t count;
|
||||||
|
+ int err;
|
||||||
|
char *cur;
|
||||||
|
char *limit;
|
||||||
|
BOOL finished = FALSE;
|
||||||
|
|
||||||
|
- ConnTcpFlush(Dest, Dest->send.read, Dest->send.write, &count);
|
||||||
|
- if (count >= 0) {
|
||||||
|
+ err = ConnTcpFlush(Dest, Dest->send.read, Dest->send.write, &count);
|
||||||
|
+ if (err == 0) {
|
||||||
|
Dest->send.read = Dest->send.write = Dest->send.buffer;
|
||||||
|
Dest->send.remaining = CONN_TCP_MTU;
|
||||||
|
|
||||||
|
@@ -1410,10 +1430,13 @@
|
||||||
|
*cur++ = ' ';
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+
|
||||||
|
if (Src->receive.read < cur) {
|
||||||
|
- ConnTcpFlush(Dest, Src->receive.read, cur, &count);
|
||||||
|
- if ((cur - Src->receive.read) == count) {
|
||||||
|
+ int distance;
|
||||||
|
+
|
||||||
|
+ err = ConnTcpFlush(Dest, Src->receive.read, cur, &count);
|
||||||
|
+ distance = cur - Src->receive.read;
|
||||||
|
+ if ((distance > 0) && ((size_t)distance == count)) {
|
||||||
|
written += count;
|
||||||
|
|
||||||
|
if (!finished) {
|
||||||
|
@@ -1444,7 +1467,7 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- ConnTcpRead(Src, Src->receive.write, Src->receive.remaining, &count);
|
||||||
|
+ err = ConnTcpRead(Src, Src->receive.write, Src->receive.remaining, &count);
|
||||||
|
if (count > 0) {
|
||||||
|
Src->receive.read = Src->receive.buffer;
|
||||||
|
Src->receive.write += count;
|
||||||
|
@@ -1464,7 +1487,8 @@
|
||||||
|
ConnWrite(Connection *Conn, const char *Buffer, int Length)
|
||||||
|
{
|
||||||
|
const char *b;
|
||||||
|
- int i;
|
||||||
|
+ size_t i;
|
||||||
|
+ int err;
|
||||||
|
size_t r;
|
||||||
|
Connection *c = Conn;
|
||||||
|
|
||||||
|
@@ -1488,7 +1512,7 @@
|
||||||
|
|
||||||
|
c->send.write += c->send.remaining;
|
||||||
|
|
||||||
|
- ConnTcpFlush(c, c->send.read, c->send.write, &i);
|
||||||
|
+ err = ConnTcpFlush(c, c->send.read, c->send.write, &i);
|
||||||
|
if (i > 0) {
|
||||||
|
c->send.read = c->send.write = c->send.buffer;
|
||||||
|
c->send.remaining = CONN_TCP_MTU;
|
||||||
|
@@ -1503,7 +1527,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
do {
|
||||||
|
- ConnTcpFlush(c, b, b + r, &i);
|
||||||
|
+ err = ConnTcpFlush(c, b, b + r, &i);
|
||||||
|
if (i > 0) {
|
||||||
|
b += r;
|
||||||
|
r -= r;
|
||||||
|
@@ -1523,7 +1547,8 @@
|
||||||
|
int
|
||||||
|
ConnWriteFromFile(Connection *Conn, FILE *Source, int Count)
|
||||||
|
{
|
||||||
|
- int i;
|
||||||
|
+ size_t i;
|
||||||
|
+ int err;
|
||||||
|
size_t n;
|
||||||
|
size_t r;
|
||||||
|
Connection *c = Conn;
|
||||||
|
@@ -1547,7 +1572,7 @@
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
- ConnTcpFlush(c, c->send.read, c->send.write, &i);
|
||||||
|
+ err = ConnTcpFlush(c, c->send.read, c->send.write, &i);
|
||||||
|
if (i > 0) {
|
||||||
|
c->send.read = c->send.write = c->send.buffer;
|
||||||
|
c->send.remaining = CONN_TCP_MTU;
|
||||||
|
@@ -1565,7 +1590,8 @@
|
||||||
|
int
|
||||||
|
ConnWriteFile(Connection *Conn, FILE *Source)
|
||||||
|
{
|
||||||
|
- int i;
|
||||||
|
+ size_t i;
|
||||||
|
+ int err;
|
||||||
|
size_t n;
|
||||||
|
size_t r;
|
||||||
|
Connection *c = Conn;
|
||||||
|
@@ -1586,7 +1612,7 @@
|
||||||
|
|
||||||
|
n += c->send.write - c->send.read;
|
||||||
|
|
||||||
|
- ConnTcpFlush(c, c->send.read, c->send.write, &i);
|
||||||
|
+ err = ConnTcpFlush(c, c->send.read, c->send.write, &i);
|
||||||
|
if (i > 0) {
|
||||||
|
c->send.read = c->send.write = c->send.buffer;
|
||||||
|
c->send.remaining = r = CONN_TCP_MTU;
|
||||||
|
@@ -1605,6 +1631,8 @@
|
||||||
|
ConnWriteVF(Connection *c, const char *format, va_list ap)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
+ size_t unused;
|
||||||
|
+ int err;
|
||||||
|
|
||||||
|
do {
|
||||||
|
if (CONN_BUFSIZE < c->send.remaining) {
|
||||||
|
@@ -1641,8 +1669,8 @@
|
||||||
|
va_end(ap2);
|
||||||
|
}
|
||||||
|
|
||||||
|
- ConnTcpFlush(c, c->send.read, c->send.write, &i);
|
||||||
|
- if (i > 0) {
|
||||||
|
+ err = ConnTcpFlush(c, c->send.read, c->send.write, &unused);
|
||||||
|
+ if (unused > 0) {
|
||||||
|
c->send.read = c->send.write = c->send.buffer;
|
||||||
|
c->send.remaining = CONN_TCP_MTU;
|
||||||
|
|
||||||
|
@@ -1670,12 +1698,13 @@
|
||||||
|
int
|
||||||
|
ConnFlush(Connection *Conn)
|
||||||
|
{
|
||||||
|
- int count;
|
||||||
|
+ size_t count;
|
||||||
|
+ int err;
|
||||||
|
Connection *c = Conn;
|
||||||
|
|
||||||
|
- ConnTcpFlush(c, c->send.read, c->send.write, &count);
|
||||||
|
+ err = ConnTcpFlush(c, c->send.read, c->send.write, &count);
|
||||||
|
|
||||||
|
- if (count >= 0) {
|
||||||
|
+ if (err == 0) {
|
||||||
|
c->send.read += count;
|
||||||
|
if (c->send.read == c->send.write) {
|
||||||
|
c->send.read = c->send.write = c->send.buffer;
|
||||||
|
Index: src/libs/connio/unix-ip.c
|
||||||
|
===================================================================
|
||||||
|
--- src/libs/connio/unix-ip.c (revision 1131)
|
||||||
|
+++ src/libs/connio/unix-ip.c (working copy)
|
||||||
|
@@ -366,6 +366,8 @@
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if 0
|
||||||
|
+/*TODO: do we need this? This isn't used anywhere but connmgr */
|
||||||
|
int
|
||||||
|
XplIPRead(void *socket, unsigned char *Buf, int Len, int readTimeout)
|
||||||
|
{
|
||||||
|
@@ -405,8 +407,10 @@
|
||||||
|
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-
|
||||||
|
+#if 0
|
||||||
|
+/*TODO: do we need this? it isn't used anywhere but connmgr */
|
||||||
|
int
|
||||||
|
XplIPWrite(void * socket, unsigned char *Buf, int Len)
|
||||||
|
{
|
||||||
|
@@ -424,6 +428,7 @@
|
||||||
|
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
__inline static BOOL
|
||||||
|
MakeSocketNonBlocking(int soc)
|
||||||
|
Index: src/libs/connio/sockets.c
|
||||||
|
===================================================================
|
||||||
|
--- src/libs/connio/sockets.c (revision 1131)
|
||||||
|
+++ src/libs/connio/sockets.c (working copy)
|
||||||
|
@@ -7,9 +7,9 @@
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
void
|
||||||
|
-CHOP_NEWLINE(unsigned char *s)
|
||||||
|
+CHOP_NEWLINE(char *s)
|
||||||
|
{
|
||||||
|
- unsigned char *p;
|
||||||
|
+ char *p;
|
||||||
|
p = strchr(s, 0x0A);
|
||||||
|
if (p) {
|
||||||
|
*p = '\0';
|
||||||
|
@@ -20,6 +20,8 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if 0
|
||||||
|
+//do we need this?
|
||||||
|
void
|
||||||
|
SET_POINTER_TO_VALUE(unsigned char *p, unsigned char *s)
|
||||||
|
{
|
||||||
|
@@ -35,16 +37,19 @@
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-void
|
||||||
|
-ConnTcpFlush(Connection *c, const char *b, const char *e, int *r)
|
||||||
|
+int
|
||||||
|
+ConnTcpFlush(Connection *c, const char *b, const char *e, size_t *r)
|
||||||
|
{
|
||||||
|
+ int Result=0;
|
||||||
|
+
|
||||||
|
if (b < e) {
|
||||||
|
char *curPTR = (char *)b;
|
||||||
|
while (curPTR < e) {
|
||||||
|
- ConnTcpWrite(c, curPTR, e - curPTR, r);
|
||||||
|
+ Result = ConnTcpWrite(c, curPTR, e - curPTR, r);
|
||||||
|
if (*r > 0) {
|
||||||
|
- curPTR = curPTR + (int)*r;
|
||||||
|
+ curPTR = curPTR + *r;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
@@ -52,11 +57,14 @@
|
||||||
|
if (curPTR == e) {
|
||||||
|
*r = e - b;
|
||||||
|
} else {
|
||||||
|
- *r = -1;
|
||||||
|
+ *r = 0;
|
||||||
|
+ Result = -1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
*r = 0;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
@@ -88,104 +96,85 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-//#if defined(S390RH) || defined(SOLARIS)
|
||||||
|
-
|
||||||
|
-// TODO: is this correct for Solaris?
|
||||||
|
-
|
||||||
|
-void
|
||||||
|
-ConnTcpRead(Connection *c, char *b, size_t l, int *r)
|
||||||
|
+int
|
||||||
|
+ConnTcpRead(Connection *c, char *b, size_t l, size_t *r)
|
||||||
|
{
|
||||||
|
+ int Result=0;
|
||||||
|
+
|
||||||
|
struct pollfd pfd;
|
||||||
|
do {
|
||||||
|
pfd.fd = (int)c->socket;
|
||||||
|
pfd.events = POLLIN;
|
||||||
|
- *r = poll(&pfd, 1, c->receive.timeOut * 1000);
|
||||||
|
- if (*r > 0) {
|
||||||
|
+ Result = poll(&pfd, 1, c->receive.timeOut * 1000);
|
||||||
|
+ if (Result > 0) {
|
||||||
|
if ((pfd.revents & (POLLIN | POLLPRI))) {
|
||||||
|
do {
|
||||||
|
if (!c->ssl.enable) {
|
||||||
|
- *r = IPrecv((c)->socket, b, l, 0);
|
||||||
|
+ Result = IPrecv((c)->socket, b, l, 0);
|
||||||
|
} else {
|
||||||
|
- *r = gnutls_record_recv(c->ssl.context, (void *)b, l);
|
||||||
|
- if (*r < 0) {
|
||||||
|
- CONN_TRACE_ERROR(c, "RECV", *r);
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
+ Result = gnutls_record_recv(c->ssl.context, (void *)b, l);
|
||||||
|
}
|
||||||
|
- if (*r >= 0) {
|
||||||
|
- CONN_TRACE_DATA(c, CONN_TRACE_EVENT_READ, b, *r);
|
||||||
|
+ if (Result >= 0) {
|
||||||
|
+ CONN_TRACE_DATA(c, CONN_TRACE_EVENT_READ, b, Result);
|
||||||
|
+ /* we actually worked. reset Result to 0 indicating that */
|
||||||
|
+ /* Result is > 0 so i should be able to safely cast it here */
|
||||||
|
+ *r = (size_t)Result;
|
||||||
|
+ Result = 0;
|
||||||
|
break;
|
||||||
|
} else if (errno == EINTR) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
- CONN_TRACE_ERROR(c, "RECV", *r);
|
||||||
|
+ /* we failed with something other than eintr... we'll reset Result below */
|
||||||
|
+ CONN_TRACE_ERROR(c, "RECV", Result);
|
||||||
|
break;
|
||||||
|
} while (TRUE);
|
||||||
|
break;
|
||||||
|
} else if ((pfd.revents & (POLLERR | POLLHUP | POLLNVAL))) {
|
||||||
|
- CONN_TRACE_ERROR(c, "POLL EVENT", *r);
|
||||||
|
- *r = -2;
|
||||||
|
+ CONN_TRACE_ERROR(c, "POLL EVENT", Result);
|
||||||
|
+ *r = 0;
|
||||||
|
+ Result = -2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (errno == EINTR) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
- CONN_TRACE_ERROR(c, "POLL", *r);
|
||||||
|
- *r = -3;
|
||||||
|
+ CONN_TRACE_ERROR(c, "POLL", Result);
|
||||||
|
+ Result = -3;
|
||||||
|
+ *r = 0;
|
||||||
|
break;
|
||||||
|
} while (TRUE);
|
||||||
|
+
|
||||||
|
+ return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
-void
|
||||||
|
-ConnTcpWrite(Connection *c, char *b, size_t l, int *r)
|
||||||
|
+int
|
||||||
|
+ConnTcpWrite(Connection *c, char *b, size_t l, size_t *r)
|
||||||
|
{
|
||||||
|
+ int Result=0;
|
||||||
|
+
|
||||||
|
do {
|
||||||
|
if (!c->ssl.enable) {
|
||||||
|
- *r = IPsend(c->socket, b, l, MSG_NOSIGNAL);
|
||||||
|
+ Result = IPsend(c->socket, b, l, MSG_NOSIGNAL);
|
||||||
|
} else {
|
||||||
|
- *r = gnutls_record_send(c->ssl.context, (void *)b, l);
|
||||||
|
+ Result = gnutls_record_send(c->ssl.context, (void *)b, l);
|
||||||
|
}
|
||||||
|
- if (*r >= 0) {
|
||||||
|
- CONN_TRACE_DATA(c, CONN_TRACE_EVENT_WRITE, b, *r);
|
||||||
|
+ if (Result >= 0) {
|
||||||
|
+ CONN_TRACE_DATA(c, CONN_TRACE_EVENT_WRITE, b, Result);
|
||||||
|
+ /* we actually worked. reset Result to 0 indicating that */
|
||||||
|
+ /* Result is > 0 so i should be able to safely cast here */
|
||||||
|
+ *r = Result;
|
||||||
|
+ Result = 0;
|
||||||
|
break;
|
||||||
|
} else if (errno == EINTR) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
- CONN_TRACE_ERROR(c, "POLL", *r);
|
||||||
|
- *r = -1;
|
||||||
|
+ CONN_TRACE_ERROR(c, "POLL", Result);
|
||||||
|
+ Result = -1;
|
||||||
|
+ *r = 0;
|
||||||
|
break;
|
||||||
|
} while (TRUE);
|
||||||
|
-}
|
||||||
|
|
||||||
|
-//#else
|
||||||
|
-#if 0
|
||||||
|
-
|
||||||
|
-void
|
||||||
|
-ConnTcpRead(Connection *c, char *b, size_t l, int *r)
|
||||||
|
-{
|
||||||
|
- fd_set rfds;
|
||||||
|
- struct timeval timeout;
|
||||||
|
- FD_ZERO(&rfds);
|
||||||
|
- FD_SET(c->socket, &rfds);
|
||||||
|
- timeout.tv_usec = 0;
|
||||||
|
- timeout.tv_sec = c->receive.timeOut;
|
||||||
|
- *r = select(FD_SETSIZE, &rfds, NULL, NULL, &timeout);
|
||||||
|
- if (*r > 0) {
|
||||||
|
- *r = recv(c->socket, b, l, 0);
|
||||||
|
- CONN_TRACE_DATA_AND_ERROR(c, CONN_TRACE_EVENT_READ, b, *r, "RECV");
|
||||||
|
- } else {
|
||||||
|
- CONN_TRACE_ERROR(c, "SELECT", *r);
|
||||||
|
- *r = -1;
|
||||||
|
- }
|
||||||
|
+ return Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
-void
|
||||||
|
-ConnTcpWrite(Connection *c, char *b, size_t l, int *r)
|
||||||
|
-{
|
||||||
|
- *r = IPsend(c->socket, b, l, 0);
|
||||||
|
- CONN_TRACE_DATA_AND_ERROR(c, CONN_TRACE_EVENT_WRITE, b, *r, "SEND");
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-#endif
|
||||||
|
Index: src/libs/connio/CMakeLists.txt
|
||||||
|
===================================================================
|
||||||
|
--- src/libs/connio/CMakeLists.txt (revision 1131)
|
||||||
|
+++ src/libs/connio/CMakeLists.txt (working copy)
|
||||||
|
@@ -1,10 +1,10 @@
|
||||||
|
-#StrictCompile()
|
||||||
|
+StrictCompile()
|
||||||
|
|
||||||
|
add_library(bongoconnio SHARED
|
||||||
|
+ sockets.c
|
||||||
|
connio.c
|
||||||
|
trace.c
|
||||||
|
addrpool.c
|
||||||
|
- sockets.c
|
||||||
|
unix-ip.c
|
||||||
|
)
|
||||||
|
|
||||||
|
Index: src/libs/nmap/nmap.c
|
||||||
|
===================================================================
|
||||||
|
--- src/libs/nmap/nmap.c (revision 1131)
|
||||||
|
+++ src/libs/nmap/nmap.c (working copy)
|
||||||
|
@@ -112,7 +112,8 @@
|
||||||
|
__inline static unsigned char *
|
||||||
|
FindEndOfLine(Connection *conn)
|
||||||
|
{
|
||||||
|
- int count;
|
||||||
|
+ size_t count;
|
||||||
|
+ int err;
|
||||||
|
char *newLine;
|
||||||
|
|
||||||
|
Connection *c = conn;
|
||||||
|
@@ -126,7 +127,7 @@
|
||||||
|
|
||||||
|
if (count < CONN_TCP_MTU) {
|
||||||
|
if (count == 0) {
|
||||||
|
- ConnTcpRead(c, c->receive.buffer, CONN_TCP_MTU, &count);
|
||||||
|
+ err = ConnTcpRead(c, c->receive.buffer, CONN_TCP_MTU, &count);
|
||||||
|
if (count > 0) {
|
||||||
|
c->receive.read = c->receive.buffer;
|
||||||
|
c->receive.write = c->receive.buffer + count;
|
||||||
|
@@ -143,7 +144,7 @@
|
||||||
|
c->receive.read = c->receive.buffer;
|
||||||
|
c->receive.write = c->receive.buffer + count;
|
||||||
|
c->receive.remaining = CONN_TCP_MTU - count;
|
||||||
|
- ConnTcpRead(c, c->receive.write, c->receive.remaining, &count);
|
||||||
|
+ err = ConnTcpRead(c, c->receive.write, c->receive.remaining, &count);
|
||||||
|
if (count > 0) {
|
||||||
|
c->receive.write += count;
|
||||||
|
c->receive.remaining -= count;
|
Loading…
Reference in New Issue
Block a user