[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] fix the cpuworker circ-had-vanished bug (maybe)
Update of /home/or/cvsroot/src/common
In directory moria.mit.edu:/home2/arma/work/onion/cvs/src/common
Modified Files:
tortls.c util.c util.h
Log Message:
fix the cpuworker circ-had-vanished bug (maybe)
still several (many) tls-related bugs outstanding.
Index: tortls.c
===================================================================
RCS file: /home/or/cvsroot/src/common/tortls.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- tortls.c 11 Sep 2003 23:26:31 -0000 1.8
+++ tortls.c 14 Sep 2003 02:58:47 -0000 1.9
@@ -421,7 +421,7 @@
time_t now;
crypto_pk_env_t *r = NULL;
if (!(cert = SSL_get_peer_certificate(tls->ssl)))
- return 0;
+ return NULL;
now = time(NULL);
if (X509_cmp_time(X509_get_notBefore(cert), &now) > 0)
@@ -453,3 +453,4 @@
RSA_free(rsa);
return r;
}
+
Index: util.c
===================================================================
RCS file: /home/or/cvsroot/src/common/util.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- util.c 20 Aug 2003 23:05:19 -0000 1.16
+++ util.c 14 Sep 2003 02:58:47 -0000 1.17
@@ -103,6 +103,21 @@
return count;
}
+/* a wrapper for read(2) that makes sure to read all count bytes.
+ * Only use if fd is a blocking socket. */
+int read_all(int fd, void *buf, size_t count) {
+ int numread = 0;
+ int result;
+
+ while(numread != count) {
+ result = read(fd, buf+numread, count-numread);
+ if(result<=0)
+ return -1;
+ numread += result;
+ }
+ return count;
+}
+
void set_socket_nonblocking(int socket)
{
#ifdef MS_WINDOWS
Index: util.h
===================================================================
RCS file: /home/or/cvsroot/src/common/util.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- util.h 20 Aug 2003 23:05:19 -0000 1.10
+++ util.h 14 Sep 2003 02:58:47 -0000 1.11
@@ -52,6 +52,7 @@
int tv_cmp(struct timeval *a, struct timeval *b);
int write_all(int fd, const void *buf, size_t count);
+int read_all(int fd, void *buf, size_t count);
void set_socket_nonblocking(int socket);