]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@2134 29311d96-e01e-0410-9327-a35deaa...
authorpatiencew <patiencew@29311d96-e01e-0410-9327-a35deaab8ce9>
Wed, 28 Nov 2007 17:09:39 +0000 (17:09 +0000)
committerpatiencew <patiencew@29311d96-e01e-0410-9327-a35deaab8ce9>
Wed, 28 Nov 2007 17:09:39 +0000 (17:09 +0000)
trunk/ceph/kernel/test/ktcp.c
trunk/ceph/kernel/test/userclient.c

index b96f506817c081f128f8ae11350341b58edbe999..5471b45789e571053e650691321f36423eae5129 100644 (file)
@@ -55,10 +55,10 @@ static void ceph_state_change(struct sock *sk)
 }
 
 /* make a socket active by setting up the call back functions */
-int add_sock_callbacks(struct socket *sock, struct ceph_connection *con)
+int add_sock_callbacks(struct socket *sock, void *user_data)
 {
         struct sock *sk = sock->sk;
-        sk->sk_user_data = con;
+        sk->sk_user_data = user_data;
         printk(KERN_INFO "Entered add_sock_callbacks\n");
 
         /* Install callbacks */
@@ -85,7 +85,7 @@ int _kconnect(struct ceph_connection *con)
         }
 
         /* setup callbacks */
-        add_sock_callbacks(con->sock, con);
+        add_sock_callbacks(con->sock, (void *)con);
 
 
         ret = con->sock->ops->connect(con->sock, paddr,
@@ -155,6 +155,7 @@ int _klisten(struct ceph_messenger *msgr)
                msgr->listen_sock = NULL;
                goto err;
        }
+        add_sock_callbacks(msgr->listen_sock, (void *)msgr);
        return ret;
 err:
        sock_release(sock);
@@ -177,16 +178,15 @@ int _kaccept(struct socket *sock, struct ceph_connection *con)
                 goto done;
         }
 
-        /* setup callbacks */
-        add_sock_callbacks(con->sock, con);
-
-
         ret = sock->ops->accept(sock, con->sock, O_NONBLOCK);
-       /* ret = kernel_accept(sock, &new_sock, sock->file->f_flags); */
         if (ret < 0) {
                printk(KERN_INFO "accept error: %d\n", ret);
                goto err;
        }
+
+        /* setup callbacks */
+        add_sock_callbacks(con->sock, (void *)con);
+
        con->sock->ops = sock->ops;
        con->sock->type = sock->type;
        ret = con->sock->ops->getname(con->sock, paddr, &len, 2);
index 2a72b8cceae9670152472ffecedc6ab09f582b73..389b806032e7131154779b15cc2f2dd813da185e 100644 (file)
@@ -1,46 +1,48 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
 #include <netdb.h> 
+#include <arpa/inet.h>
+#include <netinet/in.h> 
 
-int main(int argc, char *argv[])
+int main(int argc, char **argv) 
 {
-       int sd, port,len;
+       int port, sd, len;
+       struct hostent *host;
+       struct in_addr h_addr;
        struct sockaddr_in saddr;
-       struct hostent *server;
        char buf[256];
 
-       if (argc < 3) {
+
+       if (argc != 3) {
                fprintf(stderr,"usage %s hostname port\n", argv[0]);
                exit(1);
        }
+       if ((host = gethostbyname(argv[1])) == NULL) {
+               fprintf(stderr, "nslookup failed on '%s'\n", argv[1]);
+               exit(1);
+       }
+       h_addr.s_addr = *((unsigned long *) host->h_addr_list[0]);
+       fprintf(stdout, "%s\n", inet_ntoa(h_addr));
        port = atoi(argv[2]);
        printf("port num = %d\n", port);
+
        sd = socket(AF_INET, SOCK_STREAM, 0);
        if (sd < 0) {
                fprintf(stderr,"socket open error");
                exit(1);
        }
-       server = gethostbyname(argv[1]);
-       printf("server name  = %s\n", server->h_name);
-       printf("server ip  = %s\n", *(server->h_addr));
-       if (server == NULL) {
-               fprintf(stderr,"get host error\n");
-               exit(1);
-       }
-       bzero((char *) &saddr, sizeof(saddr));
-       saddr.sin_family = AF_INET;
-       bcopy((char *)server->h_addr, (char *)&saddr.sin_addr.s_addr, 
-                       server->h_length);
-       saddr.sin_port = htons(port);
-       if (connect(sd,(struct sockaddr *)&saddr,sizeof(saddr)) < 0) {
-               fprintf(stderr,"connection error\n");
-               exit(1);        
-       }
-       printf("connected to kernel server\n");
+       printf("created socket\n");
+        bzero((char *) &saddr, sizeof(saddr));
+        saddr.sin_family = AF_INET;
+        bcopy((char *)host->h_addr, (char *)&saddr.sin_addr.s_addr,
+                        host->h_length);
+        saddr.sin_port = htons(port);
+        if (connect(sd,(struct sockaddr *)&saddr,sizeof(saddr)) < 0) {
+                fprintf(stderr,"connection error\n");
+                exit(1);
+        }
+        printf("connected to kernel host\n");
         bzero(buf,256);
         len = read(sd,buf,255);
         if (len < 0) {
@@ -49,21 +51,21 @@ int main(int argc, char *argv[])
         }
         printf("Message received: %s\n",buf);
 
-       printf("Please enter the message: ");
-       bzero(buf,256);
-       fgets(buf,255,stdin);
-       len = write(sd,buf,strlen(buf));
-       if (len < 0) {
-               fprintf(stderr,"write error\n");
-               exit(1);        
-       }
-       bzero(buf,256);
-       len = read(sd,buf,255);
-       if (len < 0) {
-               fprintf(stderr,"write error\n");
-               exit(1);        
-       }
-       printf("received message %s\n",buf);
+        printf("Please enter the message: ");
+        bzero(buf,256);
+        fgets(buf,255,stdin);
+        len = write(sd,buf,strlen(buf));
+        if (len < 0) {
+                fprintf(stderr,"write error\n");
+                exit(1);
+        }
+        bzero(buf,256);
+        len = read(sd,buf,255);
+        if (len < 0) {
+                fprintf(stderr,"write error\n");
+                exit(1);
+        }
+        printf("received message %s\n",buf);
        close(sd);
        exit(0);
 }