Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

TCP_NODELAY not defined error when compiling

660 views
Skip to first unread message

Arif

unread,
Mar 31, 2009, 11:02:56 AM3/31/09
to
ACE VERSION: 5.6

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

Douglas C. Schmidt

unread,
Mar 31, 2009, 12:31:50 PM3/31/09
to sl300g...@gmail.com, ace-...@cse.wustl.edu
Hi,

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

Arif

unread,
Mar 31, 2009, 1:19:11 PM3/31/09
to
On Mar 31, 12:31 pm, schm...@dre.vanderbilt.edu (Douglas C. Schmidt)
wrote:

> Hi,
>
> 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-proc...
> Nashville, TN 37203                          NET: d.schm...@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

0 new messages