Hi,

fine, that it works now.

I already tried to put everything tntnet knows into the error message. Tntnet uses more than just the url for mapping. You can add vhost dependent url mappings and so tntnet adds the information about the vhost used for that request. The vhost is the content of the "Host"-header.

The error message is just a result of searching for url mappings and tntnet do not find any. What should it then complain? It just knows, that it do not have any more mappings to try.

For problems like that you can add debug logging for category "tntnet.dispatcher". This logs out every mapping it tries and the result of it.

The problem with "unknown group tntnet" is that you have a setting for group in your configuration. Note that you can specify the unix user and group id in the configuration under which tntnet should run.

A server is not allowed to listen to ports below 1024 when it is not root user. But a server should not run under root user. The solution is to start as root user, listen on the needed port (80 in case of a web server) and then dropping privileges by changing the user and group using setuid and setgud. Changing user and group is only possible when running under root. And hence tntnet just ignores the user and group settings when starting under a different user id. In your case you should either create a user tntnet and group tntnet or just change the user and group settings in your tntnet.xml.


Tommi

Am 22.10.2016 um 12:13 schrieb Raphael Fuchs:
Hi all,

I figured it out, it was a problem with the url-mapping.

My server can reply Hallo Welt! now :)

@tommi
- Would it be possible to extend the error message in this case to show that it is the mapping which is not good? - Also calc works on port 8000 but if I change the port to 80 and do sudo ./calc I only get a lot of "unknown group tntnet" outputs. Do you know why this is?

Thank you!

Cheers,
Raphael


2016-10-21 23:08 GMT+02:00 Raphael Fuchs <[email protected] <mailto:[email protected]>>:

    Hi Oliver,

    thanks for the reply!

    My problem is that all the examples are complaining about vhost.

    ./calc
    2016-10-21 23:06:24.02083 [859.140656046274368] INFO
    tntnet.listener - listen ip= port=8000
    2016-10-21 23:06:24.02088 [859.140656046274368] INFO
    tntnet.tntnet.impl - create 5 worker threads
    2016-10-21 23:06:28.60607 [859.140656010077952] INFO tntnet.worker
    - request GET /asdf from client 178.203.235.33 user-Agent
    "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101
    Firefox/49.0" user ""
    2016-10-21 23:06:28.60676 [859.140656010077952] WARN tntnet.worker
    - http-Error: 404 Not Found: vhost: www.cauao.com:8000
    <http://www.cauao.com:8000> /asdf

    Do you perhaps have a small program that works for you available?

    Cheers
    Raphael



    2016-10-21 22:53 GMT+02:00 Oliver Rath <[email protected]
    <mailto:[email protected]>>:

        Hi Raphael,

        my solution was to avoid autoproject functionality :-/

        Regards,
        Oliver

        Am 21.10.2016 um 22:12 schrieb Raphael Fuchs:
        > Hello Oliver, hello Tommi,
        >
        > I am having the same problem here:
        >
        > 2016-10-21 22:09:28.03325 [24819.139686560294720] INFO
        tntnet.listener -
        > listen ip= port=8000
        > 2016-10-21 22:09:28.03330 [24819.139686560294720] INFO
        > tntnet.tntnet.impl - create 5 worker threads
        > 2016-10-21 22:10:50.98969 [24819.139686492628736] INFO
        tntnet.worker -
        > request GET /asdf from client 178.203.235.33 user-Agent
        "Mozilla/5.0
        > (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101
        Firefox/49.0" user ""
        > 2016-10-21 22:10:50.99020 [24819.139686492628736] INFO
        tntnet.comploader
        > - load library "hello"
        > 2016-10-21 22:10:50.99046 [24819.139686492628736] INFO
        tntnet.comploader
        > - library ".libs/hello.so"
        > 2016-10-21 22:10:50.99069 [24819.139686492628736] WARN
        tntnet.worker -
        > http-Error: 404 Not Found: vhost: www.cauao.com:8000
        <http://www.cauao.com:8000>
        > <http://www.cauao.com:8000> /asdf
        >
        > Oliver: how did you fix the problem?
        >
        > Thank you!
        > Raphael
        >
        >
        >
        > 2014-12-28 20:39 GMT+01:00 Oliver Rath <[email protected]
        <mailto:[email protected]>
        > <mailto:[email protected] <mailto:[email protected]>>>:
        >
        >     Hi list,
        >
        >     ive started a new (test-)project with tntnet, doing:
        >
        >     oliver@w510:~$ tntnet-config --autoproject=tnttest
        >
        >     Sample tntnet-project "tnttest" created.
        >     Make sure, you have autoconf and automake installed.
        >     To build change to the directory "tnttest" and run
        ./autogen.sh &&
        >     ./configure && make.
        >     To run the application execute "tntnet" in tnttest/webapp.
        >     To view the page navigate your browser to
        "http://localhost:8000/";.
        >
        >     oliver@w510:~$ cd tnttest/
        >     oliver@w510:~/tnttest$ ./autogen.sh
        > configure.ac:14 <http://configure.ac:14>
        <http://configure.ac:14>: installing './compile'
        > configure.ac:14 <http://configure.ac:14>
        <http://configure.ac:14>: installing './config.guess'
        > configure.ac:14 <http://configure.ac:14>
        <http://configure.ac:14>: installing './config.sub'
        > configure.ac:2 <http://configure.ac:2>
        <http://configure.ac:2>: installing './install-sh'
        > configure.ac:2 <http://configure.ac:2>
        <http://configure.ac:2>: installing './missing'
        >  Makefile.am: installing './INSTALL'
        >     Makefile.am: installing './COPYING' using GNU General
        Public License
        >     v3 file
        >     Makefile.am:     Consider adding the COPYING file to the
        version control
        >     system
        >     Makefile.am:     for your code, to avoid questions about
        which license
        >     your project uses
        >     lib/Makefile.am: installing './depcomp'
        >     oliver@w510:~/tnttest$ ./configure
        >     checking for a BSD-compatible install... /usr/bin/install -c
        >     checking whether build environment is sane... yes
        >     checking for a thread-safe mkdir -p... /bin/mkdir -p
        >     checking for gawk... gawk
        >     checking whether make sets $(MAKE)... yes
        >     checking whether make supports nested variables... yes
        >     checking for g++... g++
        >     checking whether the C++ compiler works... yes
        >     checking for C++ compiler default output file name... a.out
        >     checking for suffix of executables...
        >     checking whether we are cross compiling... no
        >     checking for suffix of object files... o
        >     checking whether we are using the GNU C++ compiler... yes
        >     checking whether g++ accepts -g... yes
        >     checking for style of include used by make... GNU
        >     checking dependency style of g++... gcc3
        >     checking build system type... x86_64-unknown-linux-gnu
        >     checking host system type... x86_64-unknown-linux-gnu
        >     checking how to print strings... printf
        >     checking for gcc... gcc
        >     checking whether we are using the GNU C compiler... yes
        >     checking whether gcc accepts -g... yes
        >     checking for gcc option to accept ISO C89... none needed
        >     checking whether gcc understands -c and -o together... yes
        >     checking dependency style of gcc... gcc3
        >     checking for a sed that does not truncate output... /bin/sed
        >     checking for grep that handles long lines and -e...
        /bin/grep
        >     checking for egrep... /bin/grep -E
        >     checking for fgrep... /bin/grep -F
        >     checking for ld used by gcc... /usr/bin/ld
        >     checking if the linker (/usr/bin/ld) is GNU ld... yes
        >     checking for BSD- or MS-compatible name lister (nm)...
        /usr/bin/nm -B
        >     checking the name lister (/usr/bin/nm -B) interface...
        BSD nm
        >     checking whether ln -s works... yes
        >     checking the maximum length of command line arguments...
        1572864
        >     checking whether the shell understands some XSI
        constructs... yes
        >     checking whether the shell understands "+="... yes
        >     checking how to convert x86_64-unknown-linux-gnu file
        names to
        >     x86_64-unknown-linux-gnu format... func_convert_file_noop
        >     checking how to convert x86_64-unknown-linux-gnu file
        names to toolchain
        >     format... func_convert_file_noop
        >     checking for /usr/bin/ld option to reload object files... -r
        >     checking for objdump... objdump
        >     checking how to recognize dependent libraries... pass_all
        >     checking for dlltool... no
        >     checking how to associate runtime and link libraries...
        printf %s\n
        >     checking for ar... ar
        >     checking for archiver @FILE support... @
        >     checking for strip... strip
        >     checking for ranlib... ranlib
        >     checking command to parse /usr/bin/nm -B output from gcc
        object... ok
        >     checking for sysroot... no
        >     checking for mt... mt
        >     checking if mt is a manifest tool... no
        >     checking how to run the C preprocessor... gcc -E
        >     checking for ANSI C header files... yes
        >     checking for sys/types.h... yes
        >     checking for sys/stat.h... yes
        >     checking for stdlib.h... yes
        >     checking for string.h... yes
        >     checking for memory.h... yes
        >     checking for strings.h... yes
        >     checking for inttypes.h... yes
        >     checking for stdint.h... yes
        >     checking for unistd.h... yes
        >     checking for dlfcn.h... yes
        >     checking for objdir... .libs
        >     checking if gcc supports -fno-rtti -fno-exceptions... no
        >     checking for gcc option to produce PIC... -fPIC -DPIC
        >     checking if gcc PIC flag -fPIC -DPIC works... yes
        >     checking if gcc static flag -static works... yes
        >     checking if gcc supports -c -o file.o... yes
        >     checking if gcc supports -c -o file.o... (cached) yes
        >     checking whether the gcc linker (/usr/bin/ld -m
        elf_x86_64) supports
        >     shared libraries... yes
        >     checking whether -lc should be explicitly linked in... no
        >     checking dynamic linker characteristics... GNU/Linux ld.so
        >     checking how to hardcode library paths into programs...
        immediate
        >     checking whether stripping libraries is possible... yes
        >     checking if libtool supports shared libraries... yes
        >     checking whether to build shared libraries... yes
        >     checking whether to build static libraries... yes
        >     checking how to run the C++ preprocessor... g++ -E
        >     checking for ld used by g++... /usr/bin/ld -m elf_x86_64
        >     checking if the linker (/usr/bin/ld -m elf_x86_64) is
        GNU ld... yes
        >     checking whether the g++ linker (/usr/bin/ld -m
        elf_x86_64) supports
        >     shared libraries... yes
        >     checking for g++ option to produce PIC... -fPIC -DPIC
        >     checking if g++ PIC flag -fPIC -DPIC works... yes
        >     checking if g++ static flag -static works... yes
        >     checking if g++ supports -c -o file.o... yes
        >     checking if g++ supports -c -o file.o... (cached) yes
        >     checking whether the g++ linker (/usr/bin/ld -m
        elf_x86_64) supports
        >     shared libraries... yes
        >     checking dynamic linker characteristics... (cached)
        GNU/Linux ld.so
        >     checking how to hardcode library paths into programs...
        immediate
        >     checking whether ln -s works... yes
        >     checking whether make sets $(MAKE)... (cached) yes
        >     checking tnt/tntnet.h usability... yes
        >     checking tnt/tntnet.h presence... yes
        >     checking for tnt/tntnet.h... yes
        >     checking for ecppc... ecppc
        >     checking for tntnet-config... tntnet-config
        >     checking that generated files are newer than
        configure... done
        >     configure: creating ./config.status
        >     config.status: creating Makefile
        >     config.status: creating include/Makefile
        >     config.status: creating lib/Makefile
        >     config.status: creating webapp/Makefile
        >     config.status: creating lib/config.h
        >     config.status: executing depfiles commands
        >     config.status: executing libtool commands
        >     oliver@w510:~/tnttest$ make
        >     Making all in include
        >     make[1]: Betrete Verzeichnis '/home/oliver/tnttest/include'
        >     make[1]: Für das Ziel »all« ist nichts zu tun.
        >     make[1]: Verlasse Verzeichnis '/home/oliver/tnttest/include'
        >     Making all in lib
        >     make[1]: Betrete Verzeichnis '/home/oliver/tnttest/lib'
        >     make  all-am
        >     make[2]: Betrete Verzeichnis '/home/oliver/tnttest/lib'
        >     /bin/bash ../libtool  --tag=CXX  --mode=compile g++
        -DHAVE_CONFIG_H
        >     -I.  -I../src -I../include   -g -O2 -MT foo.lo -MD -MP
        -MF .deps/foo.Tpo
        >     -c -o foo.lo foo.cpp
        >     libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../src
        -I../include -g -O2
        >     -MT foo.lo -MD -MP -MF .deps/foo.Tpo -c foo.cpp  -fPIC
        -DPIC -o
        >     .libs/foo.o
        >     libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../src
        -I../include -g -O2
        >     -MT foo.lo -MD -MP -MF .deps/foo.Tpo -c foo.cpp -o foo.o
        >/dev/null 2>&1
        >     mv -f .deps/foo.Tpo .deps/foo.Plo
        >     /bin/bash ../libtool  --tag=CXX  --mode=link g++  -g
        -O2   -o
        > libtnttest.la <http://libtnttest.la> <http://libtnttest.la>
        -rpath /usr/local/lib foo.lo
        >     libtool: link: g++  -fPIC -DPIC -shared -nostdlib
> /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o
        >     /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbeginS.o .libs/foo.o
        >     -L/usr/lib/gcc/x86_64-linux-gnu/4.8
> -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu
        >     -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib
        >     -L/lib/x86_64-linux-gnu -L/lib/../lib
        -L/usr/lib/x86_64-linux-gnu
        >     -L/usr/lib/../lib
        -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. -lstdc++
        >     -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.8/crtendS.o
> /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o
        >     -O2   -Wl,-soname -Wl,libtnttest.so.0 -o
        .libs/libtnttest.so.0.0.0
        >     libtool: link: (cd ".libs" && rm -f "libtnttest.so.0" &&
        ln -s
        >     "libtnttest.so.0.0.0" "libtnttest.so.0")
        >     libtool: link: (cd ".libs" && rm -f "libtnttest.so" && ln -s
        >     "libtnttest.so.0.0.0" "libtnttest.so")
        >     libtool: link: ar cru .libs/libtnttest.a  foo.o
        >     libtool: link: ranlib .libs/libtnttest.a
        >     libtool: link: ( cd ".libs" && rm -f "libtnttest.la
        <http://libtnttest.la>
        >     <http://libtnttest.la>" && ln -s
        >     "../libtnttest.la <http://libtnttest.la>
        <http://libtnttest.la>" "libtnttest.la <http://libtnttest.la>
        >     <http://libtnttest.la>" )
        >     make[2]: Verlasse Verzeichnis '/home/oliver/tnttest/lib'
        >     make[1]: Verlasse Verzeichnis '/home/oliver/tnttest/lib'
        >     Making all in webapp
        >     make[1]: Betrete Verzeichnis '/home/oliver/tnttest/webapp'
        >     ecppc -I ../web -o tnttest.cpp tnttest.ecpp
        >     /bin/bash ../libtool  --tag=CXX  --mode=compile g++
        -DHAVE_CONFIG_H -I.
        >     -I../lib  -I../include   -g -O2 -MT tnttest.lo -MD -MP -MF
        >     .deps/tnttest.Tpo -c -o tnttest.lo tnttest.cpp
        >     libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../lib
        -I../include -g -O2
        >     -MT tnttest.lo -MD -MP -MF .deps/tnttest.Tpo -c
        tnttest.cpp  -fPIC -DPIC
        >     -o .libs/tnttest.o
        >     libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../lib
        -I../include -g -O2
        >     -MT tnttest.lo -MD -MP -MF .deps/tnttest.Tpo -c
        tnttest.cpp -o tnttest.o
        >     >/dev/null 2>&1
        >     mv -f .deps/tnttest.Tpo .deps/tnttest.Plo
        >     /bin/bash ../libtool  --tag=CXX  --mode=link g++  -g -O2
        -module
        >     -ltntnet  -o tnttest.la <http://tnttest.la>
        <http://tnttest.la> -rpath
        >     /usr/local/lib/tnttest tnttest.lo
        >     ../lib/libtnttest.la <http://libtnttest.la>
        <http://libtnttest.la>
        >     libtool: link: g++  -fPIC -DPIC -shared -nostdlib
> /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o
        >     /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbeginS.o
        .libs/tnttest.o
        >     -Wl,-rpath -Wl,/home/oliver/tnttest/lib/.libs -ltntnet
        >     ../lib/.libs/libtnttest.so
        -L/usr/lib/gcc/x86_64-linux-gnu/4.8
> -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu
        >     -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib
        >     -L/lib/x86_64-linux-gnu -L/lib/../lib
        -L/usr/lib/x86_64-linux-gnu
        >     -L/usr/lib/../lib
        -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. -lstdc++
        >     -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.8/crtendS.o
> /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o
        >     -O2   -Wl,-soname -Wl,tnttest.so.0 -o .libs/tnttest.so.0.0.0
        >     libtool: link: (cd ".libs" && rm -f "tnttest.so.0" && ln -s
        >     "tnttest.so.0.0.0" "tnttest.so.0")
        >     libtool: link: (cd ".libs" && rm -f "tnttest.so" && ln -s
        >     "tnttest.so.0.0.0" "tnttest.so")
        >     libtool: link: ar cru .libs/tnttest.a tnttest.o
        >     libtool: link: ranlib .libs/tnttest.a
        >     libtool: link: ( cd ".libs" && rm -f "tnttest.la
        <http://tnttest.la>
        >     <http://tnttest.la>" && ln -s
        >     "../tnttest.la <http://tnttest.la> <http://tnttest.la>"
        "tnttest.la <http://tnttest.la> <http://tnttest.la>" )
        >     ( /bin/bash tntnet-config --config=calc|awk
        '/<\/tntnet>/{print "
        >     <compPath>\n <entry>.libs</entry>\n </compPath>"} {print}' )
        >     >tntnet.xml
        >     rm tnttest.cpp
        >     make[1]: Verlasse Verzeichnis '/home/oliver/tnttest/webapp'
        >     make[1]: Betrete Verzeichnis '/home/oliver/tnttest'
        >     make[1]: Für das Ziel »all-am« ist nichts zu tun.
        >     make[1]: Verlasse Verzeichnis '/home/oliver/tnttest'
        >     oliver@w510:~/tnttest$ cd webapp/
        >     oliver@w510:~/tnttest/webapp$ tntnet
        >     2014-12-28 20:36:57.49836 [24706.139660018718592] INFO
        tntnet.listener -
        >     listen ip= port=8000
        >     2014-12-28 20:36:57.49852 [24706.139660018718592] INFO
        tntnet.tntnet -
        >     create 5 worker threads
        >     2014-12-28 20:37:02.56919 [24706.139659976460032] INFO
        tntnet.worker -
        >     request GET / from client 127.0.0.1 user-Agent
        "Mozilla/5.0 (X11;
        >     Ubuntu; Linux x86_64; rv:34.0) Gecko/20100101
        Firefox/34.0" user ""
        >     2014-12-28 20:37:02.56970 [24706.139659976460032] INFO
        tntnet.comploader
        >     - load library "calc"
        >     2014-12-28 20:37:02.56981 [24706.139659976460032] WARN
        tntnet.comploader
        >     - failed to load library ".libs/calc"
        >     2014-12-28 20:37:02.56988 [24706.139659976460032] WARN
        tntnet.comploader
        >     - failed to load library "./calc"
        >     2014-12-28 20:37:02.56994 [24706.139659976460032] WARN
        tntnet.comploader
        >     - failed to load library "/usr/local/lib/tntnet/calc"
        >     2014-12-28 20:37:02.57022 [24706.139659976460032] WARN
        tntnet.comploader
        >     - failed to load library "calc"
        >     2014-12-28 20:37:02.57035 [24706.139659976460032] WARN
        tntnet.worker -
        >     library calc not found
        >     2014-12-28 20:37:02.57042 [24706.139659976460032] INFO
        tntnet.comploader
        >     - load library "calc"
        >     2014-12-28 20:37:02.57048 [24706.139659976460032] WARN
        tntnet.comploader
        >     - failed to load library ".libs/calc"
        >     2014-12-28 20:37:02.57052 [24706.139659976460032] WARN
        tntnet.comploader
        >     - failed to load library "./calc"
        >     2014-12-28 20:37:02.57058 [24706.139659976460032] WARN
        tntnet.comploader
        >     - failed to load library "/usr/local/lib/tntnet/calc"
        >     2014-12-28 20:37:02.57078 [24706.139659976460032] WARN
        tntnet.comploader
        >     - failed to load library "calc"
        >     2014-12-28 20:37:02.57096 [24706.139659976460032] WARN
        tntnet.worker -
        >     library calc not found
        >     2014-12-28 20:37:02.57108 [24706.139659976460032] WARN
        tntnet.worker -
        >     http-Error: 404 Not Found: vhost: 127.0.0.1:8000
        <http://127.0.0.1:8000>
        >     <http://127.0.0.1:8000> /
        >
        >
        >
        >     The last lines results in using http://127.0.0.1:8000/
        in firefox on the
        >     same computer.
        >
        >     Whats wrong here?
        >
        >     Tfh!
        >     Oliver
        >
        >
> ------------------------------------------------------------------------------
        >     Dive into the World of Parallel Programming! The Go
        Parallel Website,
        >     sponsored by Intel and developed in partnership with
        Slashdot Media,
        >     is your
        >     hub for all things parallel software development, from
        weekly thought
        >     leadership blogs to news, videos, case studies,
        tutorials and more.
        >     Take a
        >     look and join the conversation now.
        > http://goparallel.sourceforge.net
        <http://goparallel.sourceforge.net>
        <http://goparallel.sourceforge.net
        <http://goparallel.sourceforge.net>>
        >     _______________________________________________
        >     Tntnet-general mailing list
        > [email protected]
        <mailto:[email protected]>
        >     <mailto:[email protected]
        <mailto:[email protected]>>
        > https://lists.sourceforge.net/lists/listinfo/tntnet-general
        <https://lists.sourceforge.net/lists/listinfo/tntnet-general>
> <https://lists.sourceforge.net/lists/listinfo/tntnet-general
        <https://lists.sourceforge.net/lists/listinfo/tntnet-general>>
        >
        >





------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


_______________________________________________
Tntnet-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tntnet-general


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Tntnet-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tntnet-general

Reply via email to