You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kg...@apache.org on 2012/08/10 20:15:36 UTC

svn commit: r1371800 - in /qpid/proton/branches/driver_abstraction: examples/mailbox/post examples/mailbox/server proton-c/src/driver.c proton-c/src/driver_impl.h proton-c/src/drivers/openssl.c proton-c/src/drivers/poll.c proton-c/src/drivers/select.c

Author: kgiusti
Date: Fri Aug 10 18:15:35 2012
New Revision: 1371800

URL: http://svn.apache.org/viewvc?rev=1371800&view=rev
Log:
checkpoint - still debugging...

Modified:
    qpid/proton/branches/driver_abstraction/examples/mailbox/post
    qpid/proton/branches/driver_abstraction/examples/mailbox/server
    qpid/proton/branches/driver_abstraction/proton-c/src/driver.c
    qpid/proton/branches/driver_abstraction/proton-c/src/driver_impl.h
    qpid/proton/branches/driver_abstraction/proton-c/src/drivers/openssl.c
    qpid/proton/branches/driver_abstraction/proton-c/src/drivers/poll.c
    qpid/proton/branches/driver_abstraction/proton-c/src/drivers/select.c

Modified: qpid/proton/branches/driver_abstraction/examples/mailbox/post
URL: http://svn.apache.org/viewvc/qpid/proton/branches/driver_abstraction/examples/mailbox/post?rev=1371800&r1=1371799&r2=1371800&view=diff
==============================================================================
--- qpid/proton/branches/driver_abstraction/examples/mailbox/post (original)
+++ qpid/proton/branches/driver_abstraction/examples/mailbox/post Fri Aug 10 18:15:35 2012
@@ -109,6 +109,25 @@ class PostClient(object):
         pn_link_open(self.link)
 
 
+    def teardown(self):
+        """ Perform a clean disconnect from the server, and release the
+        resources created in setup()
+        """
+        self.log("Shutting down the connection cleanly...")
+        pn_connection_close(self.conn)
+
+        # now wait for the connector to close
+        while not pn_connector_closed(self.cxtr):
+            self.wait()
+
+        #pn_sasl_free(self.sasl);
+        pn_link_free(self.link);
+        pn_session_free(self.ssn);
+        pn_connection_free(self.conn);
+        pn_connector_free(self.cxtr);
+        self.log("...Shutdown complete!")
+
+
     def wait(self):
         """ Wait for an event to process.
         """
@@ -214,14 +233,14 @@ def main():
         sender.settle()
 
     # done sending, now block until any pending deliveries are settled
+    sender.log("Done sending messages, waiting for deliveries to settle...");
     while pn_unsettled(sender.link) > 0 and not sender.closed():
         sender.wait()
         sender.settle()
 
-    # we're done, close and wait for the remote to close also
-    pn_connection_close(sender.conn)
-    while not (pn_connection_state(sender.conn) & PN_REMOTE_CLOSED):
-        sender.wait()
+    # We're done - now clean up the connection:
+    sender.teardown()
+
     return 0
 
 

Modified: qpid/proton/branches/driver_abstraction/examples/mailbox/server
URL: http://svn.apache.org/viewvc/qpid/proton/branches/driver_abstraction/examples/mailbox/server?rev=1371800&r1=1371799&r2=1371800&view=diff
==============================================================================
--- qpid/proton/branches/driver_abstraction/examples/mailbox/server (original)
+++ qpid/proton/branches/driver_abstraction/examples/mailbox/server Fri Aug 10 18:15:35 2012
@@ -36,7 +36,7 @@ class Options(object):
     def __init__(self):
         parser = OptionParser(usage="usage: %prog [options] <server-address>")
         parser.add_option("-v", "--verbose",
-                          action="store_false", dest="verbose", default=True,
+                          action="store_true", dest="verbose",
                           help="print status messages to stdout")
         # SSL configuration
         parser.add_option("--ssl-cert-file", type="str", metavar="<file>",
@@ -95,7 +95,7 @@ class MailboxServer(object):
         self.require_encryption = require_encryption
 
         self.mailboxes = {}
-        self.verbose = False
+        self.logging = False
         self.counter = 0
 
 

Modified: qpid/proton/branches/driver_abstraction/proton-c/src/driver.c
URL: http://svn.apache.org/viewvc/qpid/proton/branches/driver_abstraction/proton-c/src/driver.c?rev=1371800&r1=1371799&r2=1371800&view=diff
==============================================================================
--- qpid/proton/branches/driver_abstraction/proton-c/src/driver.c (original)
+++ qpid/proton/branches/driver_abstraction/proton-c/src/driver.c Fri Aug 10 18:15:35 2012
@@ -119,7 +119,7 @@ pn_listener_t *pn_listener_fd(pn_driver_
   l->context = context;
   l->ssl = NULL;
 
-  pn_listener_impl_init(l);
+  pn_listener_poller_init(l);
 
   pn_driver_add_listener(driver, l);
   return l;
@@ -189,7 +189,7 @@ void pn_listener_free(pn_listener_t *l)
 
   if (l->driver) pn_driver_remove_listener(l->driver, l);
   pn_listener_free_ssl(l);
-  pn_listener_impl_destroy(l);
+  pn_listener_poller_destroy(l);
   free(l);
 }
 
@@ -300,7 +300,7 @@ pn_connector_t *pn_connector_fd(pn_drive
   c->listener = NULL;
   c->ssl = NULL;
 
-  pn_connector_impl_init(c);
+  pn_connector_poller_init(c);
 
   pn_connector_trace(c, driver->trace);
 
@@ -373,7 +373,7 @@ void pn_connector_free(pn_connector_t *c
 
   if (ctor->driver) pn_driver_remove_connector(ctor->driver, ctor);
 
-  pn_connector_impl_destroy(ctor);
+  pn_connector_poller_destroy(ctor);
   ctor->connection = NULL;
   ctor->transport = NULL;
   pn_sasl_free(ctor->sasl);
@@ -640,7 +640,7 @@ pn_driver_t *pn_driver()
     perror("Can't create control pipe");
   }
 
-  pn_driver_impl_init(d);
+  pn_driver_poller_init(d);
 
   return d;
 }
@@ -661,7 +661,7 @@ void pn_driver_free(pn_driver_t *d)
   while (d->listener_head)
     pn_listener_free(d->listener_head);
 
-  pn_driver_impl_destroy(d);
+  pn_driver_poller_destroy(d);
   free(d);
 }
 
@@ -677,7 +677,7 @@ void pn_driver_wait(pn_driver_t *d, int 
 {
   // if SSL/TlS has data available, no need to wait for I/O
   if (!pn_driver_ssl_data_ready(d)) {
-      pn_driver_impl_wait(d, timeout);
+      pn_driver_poller_wait(d, timeout);
   }
   d->listener_next = d->listener_head;
   d->connector_next = d->connector_head;

Modified: qpid/proton/branches/driver_abstraction/proton-c/src/driver_impl.h
URL: http://svn.apache.org/viewvc/qpid/proton/branches/driver_abstraction/proton-c/src/driver_impl.h?rev=1371800&r1=1371799&r2=1371800&view=diff
==============================================================================
--- qpid/proton/branches/driver_abstraction/proton-c/src/driver_impl.h (original)
+++ qpid/proton/branches/driver_abstraction/proton-c/src/driver_impl.h Fri Aug 10 18:15:35 2012
@@ -37,13 +37,12 @@ struct pn_driver_t {
   int ctrl[2]; //pipe for updating selectable status
   pn_trace_t trace;
 
-  struct pn_driver_impl_t   *impl;
+  struct pn_driver_poller_t   *poller;
 };
 
-int pn_driver_impl_init( struct pn_driver_t * );
-void pn_driver_impl_destroy( struct pn_driver_t * );
+int pn_driver_poller_init( struct pn_driver_t * );
+void pn_driver_poller_destroy( struct pn_driver_t * );
 
-struct pn_listener_ssl_impl_t;
 
 struct pn_listener_t {
   pn_driver_t *driver;
@@ -53,12 +52,12 @@ struct pn_listener_t {
   int fd;
   void *context;
 
-  struct pn_listener_impl_t *impl;
-  struct pn_listener_ssl_impl_t *ssl;
+  struct pn_listener_poller_t *poller;
+  struct pn_listener_ssl_t *ssl;
 };
 
-int pn_listener_impl_init( struct pn_listener_t *);
-void pn_listener_impl_destroy( struct pn_listener_t *);
+int pn_listener_poller_init( struct pn_listener_t *);
+void pn_listener_poller_destroy( struct pn_listener_t *);
 
 
 #define PN_CONNECTOR_IO_BUF_SIZE (4*1024)
@@ -66,7 +65,6 @@ void pn_listener_impl_destroy( struct pn
 #define PN_SEL_RD (0x0001)
 #define PN_SEL_WR (0x0002)
 
-struct pn_listener_ssl_impl_t;
 
 struct pn_connector_t {
   pn_driver_t *driver;
@@ -102,13 +100,13 @@ struct pn_connector_t {
   pn_listener_t *listener;
   void *context;
 
-  struct pn_connector_impl_t *impl;
-  struct pn_connector_ssl_impl_t *ssl;
+  struct pn_connector_poller_t *poller;
+  struct pn_connector_ssl_t *ssl;
 };
 
-int pn_connector_impl_init( struct pn_connector_t *);
-void pn_connector_impl_destroy( struct pn_connector_t *);
-void pn_driver_impl_wait(struct pn_driver_t *, int timeout_ms);
+int pn_connector_poller_init( struct pn_connector_t *);
+void pn_connector_poller_destroy( struct pn_connector_t *);
+void pn_driver_poller_wait(struct pn_driver_t *, int timeout_ms);
 int pn_io_handler(pn_connector_t *);
 int pn_null_io_handler(pn_connector_t *);
 void pn_connector_process_output(pn_connector_t *);

Modified: qpid/proton/branches/driver_abstraction/proton-c/src/drivers/openssl.c
URL: http://svn.apache.org/viewvc/qpid/proton/branches/driver_abstraction/proton-c/src/drivers/openssl.c?rev=1371800&r1=1371799&r2=1371800&view=diff
==============================================================================
--- qpid/proton/branches/driver_abstraction/proton-c/src/drivers/openssl.c (original)
+++ qpid/proton/branches/driver_abstraction/proton-c/src/drivers/openssl.c Fri Aug 10 18:15:35 2012
@@ -43,16 +43,16 @@
 
 static int ssl_initialized;
 
-struct pn_listener_ssl_impl_t {
+struct pn_listener_ssl_t {
     SSL_CTX *ctx;
     bool allow_unsecured;
     bool ca_db;
     char *keyfile_pw;
 };
-typedef struct pn_listener_ssl_impl_t pn_listener_ssl_impl_t;
+typedef struct pn_listener_ssl_t pn_listener_ssl_t;
 
 
-struct pn_connector_ssl_impl_t {
+struct pn_connector_ssl_t {
 
     enum { SSL_CLIENT, SSL_SERVER } mode;
     SSL_CTX *ctx;   // NULL if mode=SSL_SERVER - uses listener's ctx
@@ -61,7 +61,7 @@ struct pn_connector_ssl_impl_t {
     char *keyfile_pw;
     bool read_stalled;  // SSL has data to read, but client buffer is full.
 };
-typedef struct pn_connector_ssl_impl_t pn_connector_ssl_impl_t;
+typedef struct pn_connector_ssl_t pn_connector_ssl_t;
 
 /* */
 static int keyfile_pw_cb(char *buf, int size, int rwflag, void *userdata);
@@ -135,13 +135,13 @@ int pn_listener_ssl_server_init(pn_liste
                                 const char *password,
                                 const char *certificate_db)
 {
-    listener->ssl = calloc(1, sizeof(pn_listener_ssl_impl_t));
+    listener->ssl = calloc(1, sizeof(pn_listener_ssl_t));
     // note: see pn_listener_free_ssl for cleanup/deallocation
     if (!listener->ssl) {
         perror("calloc()");
         return -1;
     }
-    pn_listener_ssl_impl_t *impl = listener->ssl;
+    pn_listener_ssl_t *impl = listener->ssl;
 
     if (!ssl_initialized) {
         ssl_initialized = 1;
@@ -200,12 +200,12 @@ int pn_connector_ssl_client_init(pn_conn
     if (connector->listener)
         return -1;   // not for listener-based connectors
 
-    connector->ssl = calloc(1, sizeof(pn_connector_ssl_impl_t));
+    connector->ssl = calloc(1, sizeof(pn_connector_ssl_t));
     if (!connector->ssl) {
         perror("calloc()");
         return -1;
     }
-    pn_connector_ssl_impl_t *impl = connector->ssl;
+    pn_connector_ssl_t *impl = connector->ssl;
 
     impl->mode = SSL_CLIENT;
 
@@ -256,7 +256,7 @@ int pn_connector_ssl_set_client_auth(pn_
 {
     // @todo check state to verify not yet connected!
 
-    pn_connector_ssl_impl_t *impl = connector->ssl;
+    pn_connector_ssl_t *impl = connector->ssl;
 
     if (!impl || impl->mode != SSL_CLIENT) {
         fprintf(stderr, "Error: connector not configured as SSL client.\n");
@@ -286,7 +286,7 @@ int pn_connector_ssl_set_client_auth(pn_
 int pn_connector_ssl_authenticate_client(pn_connector_t *connector,
                                          const char *trusted_CAs_file)
 {
-    pn_connector_ssl_impl_t *impl = connector->ssl;
+    pn_connector_ssl_t *impl = connector->ssl;
 
     if (!impl || impl->mode != SSL_SERVER) {
         fprintf(stderr, "Error: connector not configured as SSL server.\n");
@@ -325,7 +325,7 @@ int pn_driver_ssl_data_ready( pn_driver_
     pn_connector_t *c = d->connector_head;
     while (c) {
         if (!c->closed && c->ssl) {
-            pn_connector_ssl_impl_t *impl = c->ssl;
+            pn_connector_ssl_t *impl = c->ssl;
             if (impl->read_stalled && (c->input_size < PN_CONNECTOR_IO_BUF_SIZE)) {
                 impl->read_stalled = 0;
                 c->pending_read = true;
@@ -343,12 +343,12 @@ int pn_listener_init_ssl_client( pn_list
     if (!l->ssl) return 0;
     assert(!c->ssl);
 
-    c->ssl = calloc(1, sizeof(pn_connector_ssl_impl_t));
+    c->ssl = calloc(1, sizeof(pn_connector_ssl_t));
     if (!c->ssl) {
         perror("calloc()");
         return -1;
     }
-    pn_connector_ssl_impl_t *impl = c->ssl;
+    pn_connector_ssl_t *impl = c->ssl;
 
     impl->mode = SSL_SERVER;
     impl->ctx = NULL;    // share the acceptor's context
@@ -383,7 +383,7 @@ void pn_connector_shutdown_ssl( pn_conne
 void pn_listener_free_ssl( pn_listener_t *l )
 {
     if (l->ssl) {
-        pn_listener_ssl_impl_t *impl = l->ssl;
+        pn_listener_ssl_t *impl = l->ssl;
         // note: ctx is referenced counted - will not actually free until all child SSL
         // connections are freed.
         if (impl->ctx) SSL_CTX_free(impl->ctx);
@@ -400,7 +400,7 @@ void pn_listener_free_ssl( pn_listener_t
 void pn_connector_free_ssl( pn_connector_t *c )
 {
     if (c->ssl) {
-        pn_connector_ssl_impl_t *impl = c->ssl;
+        pn_connector_ssl_t *impl = c->ssl;
         if (impl->ssl) SSL_free(impl->ssl);
         if (impl->sbio) BIO_free(impl->sbio);
         if (impl->ctx) SSL_CTX_free(impl->ctx);
@@ -546,7 +546,7 @@ static int handle_check_for_ssl( pn_conn
 static int start_ssl_connect(pn_connector_t *client)
 {
     fprintf(stderr, "start_ssl_connect()\n");
-    pn_connector_ssl_impl_t *impl = client->ssl;
+    pn_connector_ssl_t *impl = client->ssl;
     if (!impl) return -1;
 
     impl->ssl = SSL_new(impl->ctx);
@@ -568,7 +568,7 @@ static int start_ssl_connect(pn_connecto
 int handle_ssl_connect( pn_connector_t *client )
 {
     fprintf(stderr, "handle_ssl_connect()\n");
-    pn_connector_ssl_impl_t *impl = client->ssl;
+    pn_connector_ssl_t *impl = client->ssl;
     if (!impl) return -1;
 
     int rc = SSL_connect( impl->ssl );
@@ -604,9 +604,9 @@ int handle_ssl_connect( pn_connector_t *
 
 static int start_ssl_accept(pn_connector_t *client)
 {
-    pn_connector_ssl_impl_t *impl = client->ssl;
+    pn_connector_ssl_t *impl = client->ssl;
     if (!impl) return -1;
-    pn_listener_ssl_impl_t *parent = client->listener->ssl;
+    pn_listener_ssl_t *parent = client->listener->ssl;
     if (!parent) return -1;
 
     impl->sbio = BIO_new_socket(client->fd, BIO_NOCLOSE);
@@ -618,7 +618,7 @@ static int start_ssl_accept(pn_connector
 
 static int handle_ssl_accept(pn_connector_t *client)
 {
-    pn_connector_ssl_impl_t *impl = client->ssl;
+    pn_connector_ssl_t *impl = client->ssl;
     if (!impl) return -1;
 
     int rc = SSL_accept(impl->ssl);
@@ -667,7 +667,7 @@ int handle_ssl_connection_up( pn_connect
     int need_read = 0;
     int need_write = 0;
     int input_space;
-    pn_connector_ssl_impl_t *impl = c->ssl;
+    pn_connector_ssl_t *impl = c->ssl;
     assert(impl);
 
     printf("handle_ssl_connection_up  OUT=%d\n", (int)c->output_size);
@@ -778,7 +778,7 @@ static int start_ssl_shutdown( pn_connec
 static int handle_ssl_shutdown( pn_connector_t *c )
 {
     int rc;
-    pn_connector_ssl_impl_t *impl = c->ssl;
+    pn_connector_ssl_t *impl = c->ssl;
     if (!impl) return -1;
 
     printf("handle_ssl_shutdown...\n");
@@ -798,6 +798,7 @@ static int handle_ssl_shutdown( pn_conne
         break;
     default: // whatever- consider us closed
     case SSL_ERROR_NONE:
+        printf("  shutdown code=%d\n", SSL_get_error(impl->ssl,rc));
         // shutdown completed
         pn_connector_close( c );
         return 0;

Modified: qpid/proton/branches/driver_abstraction/proton-c/src/drivers/poll.c
URL: http://svn.apache.org/viewvc/qpid/proton/branches/driver_abstraction/proton-c/src/drivers/poll.c?rev=1371800&r1=1371799&r2=1371800&view=diff
==============================================================================
--- qpid/proton/branches/driver_abstraction/proton-c/src/drivers/poll.c (original)
+++ qpid/proton/branches/driver_abstraction/proton-c/src/drivers/poll.c Fri Aug 10 18:15:35 2012
@@ -28,98 +28,98 @@
 #include <poll.h>
 #include <unistd.h>
 
-typedef struct pn_driver_impl_t {
+typedef struct pn_driver_poller_t {
   size_t capacity;
   struct pollfd *fds;
   size_t nfds;
-} pn_driver_impl_t;
+} pn_driver_poller_t;
 
-typedef struct pn_listener_impl_t {
+typedef struct pn_listener_poller_t {
     int idx;
-} pn_listener_impl_t;
+} pn_listener_poller_t;
 
-typedef struct pn_connector_impl_t {
+typedef struct pn_connector_poller_t {
     int idx;
-} pn_connector_impl_t;
+} pn_connector_poller_t;
 
 
-int pn_driver_impl_init( struct pn_driver_t *d )
+int pn_driver_poller_init( struct pn_driver_t *d )
 {
-    d->impl = calloc(1, sizeof(pn_driver_impl_t));
-    if (!d->impl) {
-        perror("Unable to allocate select() driver_impl:");
+    d->poller = calloc(1, sizeof(pn_driver_poller_t));
+    if (!d->poller) {
+        perror("Unable to allocate poll() driver poller:");
         return -1;
     }
     return 0;
 }
 
-void pn_driver_impl_destroy( struct pn_driver_t *d )
+void pn_driver_poller_destroy( struct pn_driver_t *d )
 {
-    if (d->impl) {
-        if (d->impl->fds) free(d->impl->fds);
-        free(d->impl);
+    if (d->poller) {
+        if (d->poller->fds) free(d->poller->fds);
+        free(d->poller);
     }
-    d->impl = NULL;
+    d->poller = NULL;
 }
 
 
-int pn_listener_impl_init( struct pn_listener_t *l )
+int pn_listener_poller_init( struct pn_listener_t *l )
 {
-    l->impl = calloc(1, sizeof(pn_listener_impl_t));
-    if (!l->impl) {
-        perror("Unable to allocate poll() listener_impl:");
+    l->poller = calloc(1, sizeof(pn_listener_poller_t));
+    if (!l->poller) {
+        perror("Unable to allocate poll() listener_poller:");
         return -1;
     }
     return 0;
 }
 
-void pn_listener_impl_destroy( struct pn_listener_t *l )
+void pn_listener_poller_destroy( struct pn_listener_t *l )
 {
-    if (l->impl) free(l->impl);
-    l->impl = NULL;
+    if (l->poller) free(l->poller);
+    l->poller = NULL;
 }
 
 
-int pn_connector_impl_init( struct pn_connector_t *c )
+int pn_connector_poller_init( struct pn_connector_t *c )
 {
-    c->impl = calloc(1, sizeof(pn_connector_impl_t));
-    if (!c->impl) {
-        perror("Unable to allocate poll() connector_impl:");
+    c->poller = calloc(1, sizeof(pn_connector_poller_t));
+    if (!c->poller) {
+        perror("Unable to allocate poll() connector_poller:");
         return -1;
     }
     return 0;
 }
 
-void pn_connector_impl_destroy( struct pn_connector_t *c )
+void pn_connector_poller_destroy( struct pn_connector_t *c )
 {
-    if (c->impl) free(c->impl);
-    c->impl = NULL;
+    if (c->poller) free(c->poller);
+    c->poller = NULL;
 }
 
 
-void pn_driver_impl_wait(pn_driver_t *d, int timeout)
+void pn_driver_poller_wait(pn_driver_t *d, int timeout)
 {
-  pn_driver_impl_t *impl = d->impl;
+  pn_driver_poller_t *poller = d->poller;
   size_t size = d->listener_count + d->connector_count;
-  while (impl->capacity < size + 1) {
-    impl->capacity = impl->capacity ? 2*impl->capacity : 16;
-    impl->fds = realloc(impl->fds, impl->capacity*sizeof(struct pollfd));
+  while (poller->capacity < size + 1) {
+    poller->capacity = poller->capacity ? 2*poller->capacity : 16;
+    poller->fds = realloc(poller->fds, poller->capacity*sizeof(struct pollfd));
   }
 
-  impl->nfds = 0;
+  poller->nfds = 0;
 
-  impl->fds[impl->nfds].fd = d->ctrl[0];
-  impl->fds[impl->nfds].events = POLLIN;
-  impl->fds[impl->nfds].revents = 0;
-  impl->nfds++;
+  poller->fds[poller->nfds].fd = d->ctrl[0];
+  poller->fds[poller->nfds].events = POLLIN;
+  poller->fds[poller->nfds].revents = 0;
+  poller->nfds++;
 
   pn_listener_t *l = d->listener_head;
   for (int i = 0; i < d->listener_count; i++) {
-    impl->fds[impl->nfds].fd = l->fd;
-    impl->fds[impl->nfds].events = POLLIN;
-    impl->fds[impl->nfds].revents = 0;
-    l->impl->idx = impl->nfds;
-    impl->nfds++;
+    poller->fds[poller->nfds].fd = l->fd;
+    poller->fds[poller->nfds].events = POLLIN;
+    poller->fds[poller->nfds].revents = 0;
+    l->poller->idx = poller->nfds;
+    poller->nfds++;
     l = l->listener_next;
   }
 
@@ -127,19 +127,19 @@ void pn_driver_impl_wait(pn_driver_t *d,
   for (int i = 0; i < d->connector_count; i++)
   {
     if (!c->closed) {
-      impl->fds[impl->nfds].fd = c->fd;
-      impl->fds[impl->nfds].events = (c->status & PN_SEL_RD ? POLLIN : 0) |
+      poller->fds[poller->nfds].fd = c->fd;
+      poller->fds[poller->nfds].events = (c->status & PN_SEL_RD ? POLLIN : 0) |
         (c->status & PN_SEL_WR ? POLLOUT : 0);
-      impl->fds[impl->nfds].revents = 0;
-      c->impl->idx = impl->nfds;
-      impl->nfds++;
+      poller->fds[poller->nfds].revents = 0;
+      c->poller->idx = poller->nfds;
+      poller->nfds++;
     }
     c = c->connector_next;
   }
 
-  DIE_IFE(poll(impl->fds, impl->nfds, d->closed_count > 0 ? 0 : timeout));
+  DIE_IFE(poll(poller->fds, poller->nfds, d->closed_count > 0 ? 0 : timeout));
 
-  if (impl->fds[0].revents & POLLIN) {
+  if (poller->fds[0].revents & POLLIN) {
     //clear the pipe
     char buffer[512];
     while (read(d->ctrl[0], buffer, 512) == 512);
@@ -147,8 +147,8 @@ void pn_driver_impl_wait(pn_driver_t *d,
 
   l = d->listener_head;
   while (l) {
-    int idx = l->impl->idx;
-    l->pending = (idx && impl->fds[idx].revents & POLLIN);
+    int idx = l->poller->idx;
+    l->pending = (idx && poller->fds[idx].revents & POLLIN);
     l = l->listener_next;
   }
 
@@ -159,9 +159,9 @@ void pn_driver_impl_wait(pn_driver_t *d,
       c->pending_write = false;
       c->pending_tick = false;
     } else {
-      int idx = c->impl->idx;
-      c->pending_read = (idx && impl->fds[idx].revents & POLLIN);
-      c->pending_write = (idx && impl->fds[idx].revents & POLLOUT);
+      int idx = c->poller->idx;
+      c->pending_read = (idx && poller->fds[idx].revents & POLLIN);
+      c->pending_write = (idx && poller->fds[idx].revents & POLLOUT);
     }
     c = c->connector_next;
   }

Modified: qpid/proton/branches/driver_abstraction/proton-c/src/drivers/select.c
URL: http://svn.apache.org/viewvc/qpid/proton/branches/driver_abstraction/proton-c/src/drivers/select.c?rev=1371800&r1=1371799&r2=1371800&view=diff
==============================================================================
--- qpid/proton/branches/driver_abstraction/proton-c/src/drivers/select.c (original)
+++ qpid/proton/branches/driver_abstraction/proton-c/src/drivers/select.c Fri Aug 10 18:15:35 2012
@@ -28,72 +28,72 @@
 #include <sys/select.h>
 #include <unistd.h>
 
-typedef struct pn_driver_impl_t {
+typedef struct pn_driver_poller_t {
   fd_set readfds;
   fd_set writefds;
   int max_fds;
-} pn_driver_impl_t;
+} pn_driver_poller_t;
 
-// pn_listener_impl_t not used
-// pn_connector_impl_t not used
+// pn_listener_poller_t not used
+// pn_connector_poller_t not used
 
 
 
 
-int pn_driver_impl_init( struct pn_driver_t *d )
+int pn_driver_poller_init( struct pn_driver_t *d )
 {
-    d->impl = calloc(1, sizeof(pn_driver_impl_t));
-    if (!d->impl) {
-        perror("Unable to allocate select() driver_impl:");
+    d->poller = calloc(1, sizeof(pn_driver_poller_t));
+    if (!d->poller) {
+        perror("Unable to allocate select() driver_poller:");
         return -1;
     }
     return 0;
 }
 
-void pn_driver_impl_destroy( struct pn_driver_t *d )
+void pn_driver_poller_destroy( struct pn_driver_t *d )
 {
-    if (d->impl) free(d->impl);
-    d->impl = NULL;
+    if (d->poller) free(d->poller);
+    d->poller = NULL;
 }
 
 
-int pn_listener_impl_init( struct pn_listener_t *l )
+int pn_listener_poller_init( struct pn_listener_t *l )
 {
-    l->impl = NULL; // not used
+    l->poller = NULL; // not used
     return 0;
 }
 
-void pn_listener_impl_destroy( struct pn_listener_t *l )
+void pn_listener_poller_destroy( struct pn_listener_t *l )
 {
 }
 
 
-int pn_connector_impl_init( struct pn_connector_t *c )
+int pn_connector_poller_init( struct pn_connector_t *c )
 {
-    c->impl = NULL; // not used
+    c->poller = NULL; // not used
     return 0;
 }
 
-void pn_connector_impl_destroy( struct pn_connector_t *c )
+void pn_connector_poller_destroy( struct pn_connector_t *c )
 {
 }
 
 
-void pn_driver_impl_wait(pn_driver_t *d, int timeout)
+void pn_driver_poller_wait(pn_driver_t *d, int timeout)
 {
-  pn_driver_impl_t *impl = d->impl;
+  pn_driver_poller_t *poller = d->poller;
 
   // setup the select
-  FD_ZERO(&impl->readfds);
-  FD_ZERO(&impl->writefds);
+  FD_ZERO(&poller->readfds);
+  FD_ZERO(&poller->writefds);
 
-  FD_SET(d->ctrl[0], &impl->readfds);
-  impl->max_fds = d->ctrl[0];
+  FD_SET(d->ctrl[0], &poller->readfds);
+  poller->max_fds = d->ctrl[0];
 
   pn_listener_t *l = d->listener_head;
   for (int i = 0; i < d->listener_count; i++) {
-      FD_SET(l->fd, &impl->readfds);
-      if (l->fd > impl->max_fds) impl->max_fds = l->fd;
+      FD_SET(l->fd, &poller->readfds);
+      if (l->fd > poller->max_fds) poller->max_fds = l->fd;
       l = l->listener_next;
   }
 
@@ -101,10 +101,10 @@ void pn_driver_impl_wait(pn_driver_t *d,
   for (int i = 0; i < d->connector_count; i++) {
       if (!c->closed && (c->status & (PN_SEL_RD|PN_SEL_WR))) {
           if (c->status & PN_SEL_RD)
-              FD_SET(c->fd, &impl->readfds);
+              FD_SET(c->fd, &poller->readfds);
           if (c->status & PN_SEL_WR)
-              FD_SET(c->fd, &impl->writefds);
-          if (c->fd > impl->max_fds) impl->max_fds = c->fd;
+              FD_SET(c->fd, &poller->writefds);
+          if (c->fd > poller->max_fds) poller->max_fds = c->fd;
       }
       c = c->connector_next;
   }
@@ -116,12 +116,12 @@ void pn_driver_impl_wait(pn_driver_t *d,
       to.tv_usec = (timeout - (to.tv_sec * 1000)) * 1000;
   }
 
-  int nfds = select(impl->max_fds + 1, &impl->readfds, &impl->writefds, NULL, timeout < 0 ? NULL : &to);
+  int nfds = select(poller->max_fds + 1, &poller->readfds, &poller->writefds, NULL, timeout < 0 ? NULL : &to);
   DIE_IFE(nfds);
 
   if (nfds > 0) {
 
-      if (FD_ISSET(d->ctrl[0], &impl->readfds)) {
+      if (FD_ISSET(d->ctrl[0], &poller->readfds)) {
           //clear the pipe
           char buffer[512];
           while (read(d->ctrl[0], buffer, 512) == 512);
@@ -129,7 +129,7 @@ void pn_driver_impl_wait(pn_driver_t *d,
 
       pn_listener_t *l = d->listener_head;
       while (l) {
-          l->pending = FD_ISSET(l->fd, &impl->readfds);
+          l->pending = FD_ISSET(l->fd, &poller->readfds);
           l = l->listener_next;
       }
 
@@ -140,8 +140,8 @@ void pn_driver_impl_wait(pn_driver_t *d,
               c->pending_write = false;
               c->pending_tick = false;
           } else {
-              c->pending_read = FD_ISSET(c->fd, &impl->readfds);
-              c->pending_write = FD_ISSET(c->fd, &impl->writefds);
+              c->pending_read = FD_ISSET(c->fd, &poller->readfds);
+              c->pending_write = FD_ISSET(c->fd, &poller->writefds);
           }
           c = c->connector_next;
       }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org