OSDN Git Service

*** empty log message ***
authorkoinec <>
Tue, 17 Nov 2009 12:48:37 +0000 (12:48 +0000)
committerkoinec <>
Tue, 17 Nov 2009 12:48:37 +0000 (12:48 +0000)
deamon/drd64_marshald.h
deamon/drd64_marshald_cmd_attach_request.c
deamon/drd64_marshald_dispatch.c
deamon/drd64_server_socket.c

index d9db324..0749777 100644 (file)
@@ -54,6 +54,7 @@ Comment:
 #include<sys/select.h>
 #include<sys/un.h>
 #include<netinet/in.h>
+#include<netinet/tcp.h>
 #include"../include/drd64_types.h"
 #include"../include/drd64_defines.h"
 #include"../include/drd64_conf.h"
index c852632..597d1aa 100644 (file)
@@ -105,8 +105,13 @@ int
        p_attach->i_connect_id                  = p_phead->i_connect_id;
 
        i_fds = p_cinfo->i_src_socket;
+       /*i_wlen  = send( i_fds, (void *)p_phead,
+                                               DRD64_PacketSize(p_phead), 0x00 );*/
        i_wlen  = send( i_fds, (void *)p_phead,
-                                               DRD64_PacketSize(p_phead), 0x00 );
+                                               sizeof( Drd64_PacketHeader), 0x00 );
+       DRD64_DEBUG_PRINT("send",i_wlen,"FD",i_fds,"errno",errno);
+       i_wlen  += send( i_fds, (void *)p_attach,
+                                               p_phead->i_datalen, 0x00 );
        DRD64_DEBUG_PRINT("send",i_wlen,"FD",i_fds,"errno",errno);
 
        if( i_wlen != DRD64_PacketSize(p_phead) )
index dee4fd7..09a5447 100644 (file)
@@ -258,6 +258,7 @@ int
        int     i_cnt;
        int             i_result;
        int             i_err;
+       int             i_flag;
        int             i_pid;
        int             i_resume_flag;
        int     i_socket_new;
@@ -295,6 +296,12 @@ int
                        DRD64_DEBUG_SYSCALL("accept(New Comm.)",i_socket_new,errno);
 
                        if( -1 != i_socket_new )    {
+
+                               i_flag  = 1;
+                               i_err = setsockopt(i_socket_new, IPPROTO_TCP, TCP_NODELAY,
+                                                                               (char *)&i_flag, sizeof(int));
+                               if( 0 > i_err ) { puts("opt err"); }
+
                                if( i_socket_new >= i_selects_max )
                                        { i_selects_max = i_socket_new + 1; }
 
index 5c9e92d..2ff5adf 100644 (file)
@@ -136,6 +136,7 @@ int
 {
        int                                             i_socket_inet;
        int                                             i_err;
+       int                                             i_flag;
        struct  sockaddr_in             t_sin;
 
        i_socket_inet   = socket( PF_INET, SOCK_STREAM, 0 );
@@ -154,6 +155,11 @@ int
                if( INADDR_NONE == t_sin.sin_addr.s_addr )      { return -2; }
        }
 
+       i_flag  = 1;
+       i_err   = setsockopt(i_socket_inet, IPPROTO_TCP, TCP_NODELAY,
+                                                                               (char *)&i_flag, sizeof(int));
+       if( 0 > i_err )         { puts("opt err"); return -1;} 
+
        i_err = bind( i_socket_inet,
                                        (struct sockaddr *)&t_sin,
                                        sizeof( struct sockaddr_in ) );