HOST MACHINE and OPERATING SYSTEM:
Intel x86_64 and OpenSuse 11.0
TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
COMPILER NAME AND VERSION (AND PATCHLEVEL):
gcc ver: 4.2.1
THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
specific file, simply state which one]:
config-linux.h
THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you
use a link to a platform-specific file, simply state which one
(unless this isn't used in this case, e.g., with Microsoft Visual
C++)]:
CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/
default.features
(used by MPC when you generate your own makefiles):
AREA/CLASS/EXAMPLE AFFECTED:
DOES THE PROBLEM AFFECT:
COMPILATION?
LINKING?
On Unix systems, did you run make realclean first?
EXECUTION?
OTHER (please specify)?
[Please indicate whether ACE, your application, or both are affected.]
SYNOPSIS:
[Brief description of the problem]
DESCRIPTION:
I'm trying to enable TCP_NODELAY using: peer->set_option
(ACE_IPPROTO_TCP, TCP_NODELAY, (void*)&no_delay, sizeof(no_delay) );
I get the following error: 'TCP_NODELAY' was not declared in this
scope.
The documentation online states that this is declared in os_tcp.h
but I cannot find the file in ace/ directory.
including netinet/tcp.h resolves the compiler error but shouldn't
there be an include in ace/ ?
REPEAT BY:
SAMPLE FIX/WORKAROUND:
Regards,
Arif Khan
Thanks for using the PRF!
> ACE VERSION: 5.6
You're using an older version of ACE. Please upgrade to ACE+TAO+CIAO
x.6.8 (i.e., ACE 5.6.8, TAO 1.6.8, and CIAO 0.6.8), which you can
download from
http://download.dre.vanderbilt.edu
under the heading: "Latest Micro Release Kit."
The DOC groups at Washington University, UC Irvine, and Vanderbilt
University only provide "best effort" support for non-sponsors for the
latest release, as described in
http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/docs/ACE-bug-process.html
Thus, if you need more "predictable" help for earlier versions of
ACE+TAO, I recommend that you check out
http://www.dre.vanderbilt.edu/support.html
for a list of companies that will provide you with ACE+TAO commercial
support.
You're not including the right ACE header file.
> The documentation online states that this is declared in os_tcp.h
>but I cannot find the file in ace/ directory.
> including netinet/tcp.h resolves the compiler error but shouldn't
>there be an include in ace/ ?
The following tests in ACE_ROOT/tests us TCP_NODELAY:
Proactor_Test.cpp
Proactor_Test_IPV6.cpp
I suggest you take a look at the ACE headers they include to access
TCP_NODELAY.
Thanks,
Doug
--
Dr. Douglas C. Schmidt Professor and Associate Chair
Electrical Engineering and Computer Science TEL: (615) 343-8197
Vanderbilt University WEB: www.dre.vanderbilt.edu/~schmidt
Nashville, TN 37203 NET: d.sc...@vanderbilt.edu
Thank you for the prompt reply and thanks for pointing out the files
to look at. It turns out that the definition for TCP_NODELAY is in
fact present in my version of ACE (5.6 release Sep 03 2007) I was not
looking in the right place. The correct location being: ace/os_include/
netinet/os_tcp.h.
In any event I've updated my version to 5.6.8 but I wanted to share
the info just in case.
Thanks,
Arif Khan