fix error handling
authorLennart Poettering <lennart@poettering.net>
Sun, 28 Oct 2007 16:35:09 +0000 (16:35 +0000)
committerLennart Poettering <lennart@poettering.net>
Sun, 28 Oct 2007 16:35:09 +0000 (16:35 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1965 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/pulsecore/protocol-simple.c
src/pulsecore/socket-client.c

index da5f24e..64e2a81 100644 (file)
@@ -69,7 +69,7 @@ typedef struct connection {
 PA_DECLARE_CLASS(connection);
 #define CONNECTION(o) (connection_cast(o))
 static PA_DEFINE_CHECK_TYPE(connection, pa_msgobject);
-                     
+
 struct pa_protocol_simple {
     pa_module *module;
     pa_core *core;
@@ -108,7 +108,7 @@ static void connection_unlink(connection *c) {
 
     if (!c->protocol)
         return;
-    
+
     if (c->sink_input) {
         pa_sink_input_unlink(c->sink_input);
         pa_sink_input_unref(c->sink_input);
@@ -130,7 +130,7 @@ static void connection_unlink(connection *c) {
         pa_iochannel_free(c->io);
         c->io = NULL;
     }
-    
+
     pa_assert_se(pa_idxset_remove_by_data(c->protocol->connections, c, NULL) == c);
     c->protocol = NULL;
     connection_unref(c);
@@ -141,7 +141,7 @@ static void connection_free(pa_object *o) {
     pa_assert(c);
 
     connection_unref(c);
-    
+
     if (c->playback.current_memblock)
         pa_memblock_unref(c->playback.current_memblock);
 
@@ -185,7 +185,7 @@ static int do_read(connection *c) {
 
     if (r <= 0) {
 
-        if (errno == EINTR || errno == EAGAIN)
+        if (r < 0 && (errno == EINTR || errno == EAGAIN))
             return 0;
 
         pa_log_debug("read(): %s", r == 0 ? "EOF" : pa_cstrerror(errno));
@@ -284,7 +284,7 @@ static int connection_process_msg(pa_msgobject *o, int code, void*userdata, int6
         case CONNECTION_MESSAGE_REQUEST_DATA:
             do_work(c);
             break;
-            
+
         case CONNECTION_MESSAGE_POST_DATA:
 /*             pa_log("got data %u", chunk->length); */
             pa_memblockq_push_align(c->output_memblockq, chunk);
@@ -319,7 +319,7 @@ static int sink_input_process_msg(pa_msgobject *o, int code, void *userdata, int
             pa_memblockq_push_align(c->input_memblockq, chunk);
 
 /*             pa_log("got data, %u", pa_memblockq_get_length(c->input_memblockq)); */
-            
+
             return 0;
         }
 
@@ -634,4 +634,3 @@ void pa_protocol_simple_free(pa_protocol_simple *p) {
 
     pa_xfree(p);
 }
-
index 6748c28..5b5bc5c 100644 (file)
@@ -134,7 +134,7 @@ static void do_call(pa_socket_client *c) {
     pa_iochannel *io = NULL;
     int error;
     socklen_t lerror;
-    
+
     pa_assert(c);
     pa_assert(PA_REFCNT_VALUE(c) >= 1);
     pa_assert(c->callback);
@@ -156,7 +156,7 @@ static void do_call(pa_socket_client *c) {
     }
 
     if (error != 0) {
-        pa_log_debug("connect(): %s", pa_cstrerror(errno));
+        pa_log_debug("connect(): %s", pa_cstrerror(error));
         errno = error;
         goto finish;
     }
@@ -179,7 +179,7 @@ finish:
 
 static void connect_fixed_cb(pa_mainloop_api *m, pa_defer_event *e, void *userdata) {
     pa_socket_client *c = userdata;
-    
+
     pa_assert(m);
     pa_assert(c);
     pa_assert(PA_REFCNT_VALUE(c) >= 1);
@@ -196,13 +196,13 @@ static void connect_io_cb(pa_mainloop_api*m, pa_io_event *e, int fd, PA_GCC_UNUS
     pa_assert(PA_REFCNT_VALUE(c) >= 1);
     pa_assert(c->io_event == e);
     pa_assert(fd >= 0);
-    
+
     do_call(c);
 }
 
 static int do_connect(pa_socket_client *c, const struct sockaddr *sa, socklen_t len) {
     int r;
-    
+
     pa_assert(c);
     pa_assert(PA_REFCNT_VALUE(c) >= 1);
     pa_assert(sa);
@@ -230,15 +230,15 @@ static int do_connect(pa_socket_client *c, const struct sockaddr *sa, socklen_t
 
 pa_socket_client* pa_socket_client_new_ipv4(pa_mainloop_api *m, uint32_t address, uint16_t port) {
     struct sockaddr_in sa;
-    
+
     pa_assert(m);
     pa_assert(port > 0);
-    
+
     memset(&sa, 0, sizeof(sa));
     sa.sin_family = AF_INET;
     sa.sin_port = htons(port);
     sa.sin_addr.s_addr = htonl(address);
-    
+
     return pa_socket_client_new_sockaddr(m, (struct sockaddr*) &sa, sizeof(sa));
 }
 
@@ -246,7 +246,7 @@ pa_socket_client* pa_socket_client_new_ipv4(pa_mainloop_api *m, uint32_t address
 
 pa_socket_client* pa_socket_client_new_unix(pa_mainloop_api *m, const char *filename) {
     struct sockaddr_un sa;
-    
+
     pa_assert(m);
     pa_assert(filename);
 
@@ -307,11 +307,11 @@ static int sockaddr_prepare(pa_socket_client *c, const struct sockaddr *sa, size
 
 pa_socket_client* pa_socket_client_new_sockaddr(pa_mainloop_api *m, const struct sockaddr *sa, size_t salen) {
     pa_socket_client *c;
-    
+
     pa_assert(m);
     pa_assert(sa);
     pa_assert(salen > 0);
-    
+
     pa_assert_se(c = pa_socket_client_new(m));
 
     if (sockaddr_prepare(c, sa, salen) < 0)
@@ -375,7 +375,7 @@ pa_socket_client* pa_socket_client_new_ipv6(pa_mainloop_api *m, uint8_t address[
     pa_assert(m);
     pa_assert(address);
     pa_assert(port > 0);
-    
+
     memset(&sa, 0, sizeof(sa));
     sa.sin6_family = AF_INET6;
     sa.sin6_port = htons(port);
@@ -390,7 +390,7 @@ static void asyncns_cb(pa_mainloop_api*m, pa_io_event *e, int fd, PA_GCC_UNUSED
     pa_socket_client *c = userdata;
     struct addrinfo *res = NULL;
     int ret;
-        
+
     pa_assert(m);
     pa_assert(c);
     pa_assert(PA_REFCNT_VALUE(c) >= 1);
@@ -432,7 +432,7 @@ fail:
 
 static void timeout_cb(pa_mainloop_api *m, pa_time_event *e, const struct timeval *tv, void *userdata) {
     pa_socket_client *c = userdata;
-        
+
     pa_assert(m);
     pa_assert(e);
     pa_assert(tv);
@@ -460,7 +460,7 @@ static void start_timeout(pa_socket_client *c) {
 pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char*name, uint16_t default_port) {
     pa_socket_client *c = NULL;
     pa_parsed_address a;
-    
+
     pa_assert(m);
     pa_assert(name);