diff options
| author | Lennart Poettering <lennart@poettering.net> | 2007-10-28 16:35:09 +0000 | 
|---|---|---|
| committer | Lennart Poettering <lennart@poettering.net> | 2007-10-28 16:35:09 +0000 | 
| commit | b718d18a2391726758e60862bfb6b6ee1b848daf (patch) | |
| tree | 489c327c1150d01b9468d6a7464a1d5cd012d2f4 | |
| parent | daa2863daf54bd34ee895d8d514bf58ab64a6af9 (diff) | |
fix error handling
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1965 fefdeb5f-60dc-0310-8127-8f9354f1896f
| -rw-r--r-- | src/pulsecore/protocol-simple.c | 15 | ||||
| -rw-r--r-- | src/pulsecore/socket-client.c | 30 | 
2 files changed, 22 insertions, 23 deletions
| diff --git a/src/pulsecore/protocol-simple.c b/src/pulsecore/protocol-simple.c index da5f24e7..64e2a81c 100644 --- a/src/pulsecore/protocol-simple.c +++ b/src/pulsecore/protocol-simple.c @@ -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);  } - diff --git a/src/pulsecore/socket-client.c b/src/pulsecore/socket-client.c index 6748c285..5b5bc5ca 100644 --- a/src/pulsecore/socket-client.c +++ b/src/pulsecore/socket-client.c @@ -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); | 
