cppcms-users Mailing List for CppCMS C++ Web Framework (Page 139)
Brought to you by:
artyom-beilis
You can subscribe to this list here.
2009 |
Jan
|
Feb
(22) |
Mar
|
Apr
(3) |
May
|
Jun
(4) |
Jul
|
Aug
|
Sep
|
Oct
(15) |
Nov
(16) |
Dec
(13) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
(4) |
Feb
|
Mar
(8) |
Apr
(8) |
May
(8) |
Jun
(36) |
Jul
(63) |
Aug
(126) |
Sep
(47) |
Oct
(66) |
Nov
(46) |
Dec
(42) |
2011 |
Jan
(87) |
Feb
(24) |
Mar
(54) |
Apr
(21) |
May
(22) |
Jun
(18) |
Jul
(22) |
Aug
(101) |
Sep
(57) |
Oct
(33) |
Nov
(34) |
Dec
(66) |
2012 |
Jan
(64) |
Feb
(76) |
Mar
(73) |
Apr
(105) |
May
(93) |
Jun
(83) |
Jul
(84) |
Aug
(88) |
Sep
(57) |
Oct
(59) |
Nov
(35) |
Dec
(49) |
2013 |
Jan
(67) |
Feb
(17) |
Mar
(49) |
Apr
(64) |
May
(87) |
Jun
(64) |
Jul
(93) |
Aug
(23) |
Sep
(15) |
Oct
(16) |
Nov
(62) |
Dec
(73) |
2014 |
Jan
(5) |
Feb
(23) |
Mar
(21) |
Apr
(11) |
May
(1) |
Jun
(19) |
Jul
(27) |
Aug
(16) |
Sep
(5) |
Oct
(37) |
Nov
(12) |
Dec
(9) |
2015 |
Jan
(7) |
Feb
(7) |
Mar
(44) |
Apr
(28) |
May
(5) |
Jun
(12) |
Jul
(8) |
Aug
|
Sep
(39) |
Oct
(34) |
Nov
(30) |
Dec
(34) |
2016 |
Jan
(66) |
Feb
(23) |
Mar
(33) |
Apr
(15) |
May
(11) |
Jun
(15) |
Jul
(26) |
Aug
(4) |
Sep
(1) |
Oct
(30) |
Nov
(10) |
Dec
|
2017 |
Jan
(52) |
Feb
(9) |
Mar
(24) |
Apr
(16) |
May
(9) |
Jun
(12) |
Jul
(33) |
Aug
(8) |
Sep
|
Oct
(1) |
Nov
(2) |
Dec
(6) |
2018 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
(14) |
Jun
(1) |
Jul
(9) |
Aug
(1) |
Sep
(13) |
Oct
(8) |
Nov
(2) |
Dec
(2) |
2019 |
Jan
(1) |
Feb
(1) |
Mar
(3) |
Apr
(3) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
|
2020 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(9) |
Jul
(6) |
Aug
(25) |
Sep
(10) |
Oct
(10) |
Nov
(6) |
Dec
|
2021 |
Jan
|
Feb
|
Mar
(7) |
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
(9) |
Oct
(1) |
Nov
|
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Artyom <art...@ya...> - 2010-04-30 12:40:37
|
Hello, > Hi Artyom, > > I tried your chat example with dojo and it works. > However, when I send plain text from dojo > and not form post with form=some text i get "502 Bad > Gateway" error. Ok, indeed there was an issue - I didn't written any response for POST. Actually the response was empty. Fixed in hello_world.cpp in trunk. I had to notice an application that output completed (if I do not write anything...) So just run svn update. > > here is the post request: > > Host localhost:8080 > User-Agent Mozilla/5.0 (X11; U; Linux > i686; en-US; rv:1.9.2.3) > Gecko/20100407 Ubuntu/9.10 (karmic) Firefox/3.6.3 > Accept > text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 > Accept-Language en,bg;q=0.7,en-us;q=0.3 > Accept-Encoding gzip,deflate > Accept-Charset > ISO-8859-1,utf-8;q=0.7,*;q=0.7 > Keep-Alive 115 > Connection keep-alive > Content-Type > application/x-www-form-urlencoded;charset=utf-8 > Referer http://localhost:8080/hello_world/chat > Content-Length 7 > Cookie test=1270049271 > > here is the content "sssssss" > Few notes: 1st you need to send POST request in form message=ssssss (meaning it expects "Form" behavior" > > Also, sometimes when i click multiple times on my test > cppcms > application, I get "Segmentation Fault" and my cppcms > application > stops? Can you bring me the backtrace of segmentation fault? You can do it with GDB gdb your_app > r Crashes > bt > > Another problem is that I can't make the session work even > from your > hello_world example. It always refreshes the time? Do you have any session backend defined? Give me the content of "session" object of the configuration? At least default build of hello world - going to http://localhost:8080/hello/session Make sure you are using latest CppCMS version. Also check if make test passes all tests, if not which one fail? > > Greetings, > Stanimir > > Best, Artyom |
From: Stanimir M. <sta...@zo...> - 2010-04-30 09:44:18
|
Hi Artyom, I tried your chat example with dojo and it works. However, when I send plain text from dojo and not form post with form=some text i get "502 Bad Gateway" error. here is the post request: Host localhost:8080 User-Agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100407 Ubuntu/9.10 (karmic) Firefox/3.6.3 Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language en,bg;q=0.7,en-us;q=0.3 Accept-Encoding gzip,deflate Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive 115 Connection keep-alive Content-Type application/x-www-form-urlencoded;charset=utf-8 Referer http://localhost:8080/hello_world/chat Content-Length 7 Cookie test=1270049271 here is the content "sssssss" Also, sometimes when i click multiple times on my test cppcms application, I get "Segmentation Fault" and my cppcms application stops? Another problem is that I can't make the session work even from your hello_world example. It always refreshes the time? Greetings, Stanimir |
From: Artyom <art...@ya...> - 2010-04-17 14:11:52
|
Hello CppCMS Users, CppCMS 0.0.6 was released. It includes important bug fix that causes random CppCMS service crash (abort) when using aes-encrypted cookies session storage backend. It is important to upgrade to this version if you are using this backend. Thanks to _Bharath K._ for detailed bug report. Artyom |
From: Artyom <art...@ya...> - 2010-04-09 15:48:46
|
Ok, I see, you have a point... Indeed it either should be json::text and accept text only or json::value and accept values as well. In any case... My json parser receives superset of json. It allows C++ style comments // and allows additional commas like {"foo","bar",} So I reverted the change in trunk... it receives values back again Artyom --- On Fri, 4/9/10, Daniel Vallejos <chi...@gm...> wrote: > From: Daniel Vallejos <chi...@gm...> > Subject: Re: [Cppcms-users] Small issues in cppcms 1.x.x > To: "Artyom" <art...@ya...> > Cc: cpp...@li... > Date: Friday, April 9, 2010, 6:32 PM > Hello Artyom, > > The RFC says: > > A JSON text is a serialized > object or array. > > JSON-text > = object / array > > Then, you are right, JSON-text is an Object or Array only. > > But, the RFC says about Values: > > 2.1. Values > > A JSON value > MUST be an object, array, number, or string, or one of > the following > three literal names: > > false null > true > > Therefore the string "Hello World" is a valid Json Value > syntax. I think > that the cppcms::json::value parser should accept a valid > Json Value > syntax. > > If you had a class "cppcms::json::json_text" or similar, > the parser of > this type should only accept Object or Array syntax. As you > have pointed > out. > > Daniel. > > > > On Thu, 2010-04-08 at 13:43 -0700, Artyom wrote: > > Ok I've got confuses with data on json.org site. > > > > > 3) Json parser. The json parser fail to parse a > simple > > > string. I expect > > > that the following code snippet print "ok", but I > get > > > "err". > > > > > > string > json_str("\"Hello > > > World\"); > > > > cppcms::json::value v; > > > > stringstream ss; > > > ss << > json_str; > > > > > > > The string "Hello World" is not valid json. See > RFC-4627 > > > > http://www.ietf.org/rfc/rfc4627.txt > > > > Json is either Object or Array, single values is not > valid JSON. > > I reverted incorrect changes. Json parses should not > accept such strings. > > > > Artyom > > > > > > > > > |
From: Daniel V. <chi...@gm...> - 2010-04-09 15:32:12
|
Hello Artyom, The RFC says: A JSON text is a serialized object or array. JSON-text = object / array Then, you are right, JSON-text is an Object or Array only. But, the RFC says about Values: 2.1. Values A JSON value MUST be an object, array, number, or string, or one of the following three literal names: false null true Therefore the string "Hello World" is a valid Json Value syntax. I think that the cppcms::json::value parser should accept a valid Json Value syntax. If you had a class "cppcms::json::json_text" or similar, the parser of this type should only accept Object or Array syntax. As you have pointed out. Daniel. On Thu, 2010-04-08 at 13:43 -0700, Artyom wrote: > Ok I've got confuses with data on json.org site. > > > 3) Json parser. The json parser fail to parse a simple > > string. I expect > > that the following code snippet print "ok", but I get > > "err". > > > > string json_str("\"Hello > > World\"); > > cppcms::json::value v; > > stringstream ss; > > ss << json_str; > > > > The string "Hello World" is not valid json. See RFC-4627 > > http://www.ietf.org/rfc/rfc4627.txt > > Json is either Object or Array, single values is not valid JSON. > I reverted incorrect changes. Json parses should not accept such strings. > > Artyom > > > |
From: Artyom <art...@ya...> - 2010-04-08 20:43:30
|
Ok I've got confuses with data on json.org site. > 3) Json parser. The json parser fail to parse a simple > string. I expect > that the following code snippet print "ok", but I get > "err". > > string json_str("\"Hello > World\"); > cppcms::json::value v; > stringstream ss; > ss << json_str; > The string "Hello World" is not valid json. See RFC-4627 http://www.ietf.org/rfc/rfc4627.txt Json is either Object or Array, single values is not valid JSON. I reverted incorrect changes. Json parses should not accept such strings. Artyom |
From: Artyom <art...@ya...> - 2010-03-31 17:51:36
|
Hello, > > 3) Json parser. The json parser fail to parse a simple > string. I expect > that the following code snippet print "ok", but I get > "err". > > string json_str("\"Hello > World\"); > cppcms::json::value v; > stringstream ss; > ss << json_str; > > v.load(ss,true); > if( v.type() == > cppcms::json::is_string ) { > cout > << "ok" << endl; > } > else if (v.type() == > cppcms::json::is_undefined ) { > cout > << "err" << endl; > } > This issue was fixed in trunk among some other JSON issues. Now values are correctly handled according to JSON specifications. Artyom |
From: Daniel V. <chi...@gm...> - 2010-03-16 07:03:50
|
On Mon, 2010-03-15 at 22:45 -0700, Artyom wrote: > > Hello Artyom > > > >I think that boost::variant type fits exactly as base class for > > cppcms::json::value. > > > > I think that one pro of this approach is that boost::variant interface > > is more familiar and has good visitor interface. > > > > You think about that? > > > > This break your ABI requirerements? > > Exactly. See http://cppcms.sourceforge.net/wikipp/en/page/cppcms_1x_coding_standards#abi_boost > > I can't use Boost libraries in CppCMS interfaces for very simple > reason: they ABI can be easily broken even with simple define addition > in headers. For example boost::shared_ptr changes its strucutres layout > with special define. > > So I can't use Boost in iterfaces. 2nd issue is that AFAIK boost::variant > does not have virtual descructor so deriving from it is bad idea. As a comment I think no virtual destructor is OK in this case because the derivation has no useful polymorphic usage. But you are right. > However I use exactly boost::variant in implementation of cppcms::json. > > > Another question. You define json::object as std::map, which it has > > O(log n) complexity for access > > > > Why you not use boost::unordered_map which it has O(n) complexity? As you can see I made a mistake, unorderer_map has constant mean complexity. > Same reason as above, untill std::unordered_map would be availible > in major compilers I would use std::map. > > Also, please note, that for relatively small maps, std::map would be > even faster (and this is the case in most json objects). Very good rationale point. You convinced me in all points. > Artyom > > Please, register to mailing list so I would not have to moderate > incoming messages. > > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users |
From: Artyom <art...@ya...> - 2010-03-16 05:45:30
|
> Hello Artyom > >I think that boost::variant type fits exactly as base class for > cppcms::json::value. > > I think that one pro of this approach is that boost::variant interface > is more familiar and has good visitor interface. > > You think about that? > > This break your ABI requirerements? Exactly. See http://cppcms.sourceforge.net/wikipp/en/page/cppcms_1x_coding_standards#abi_boost I can't use Boost libraries in CppCMS interfaces for very simple reason: they ABI can be easily broken even with simple define addition in headers. For example boost::shared_ptr changes its strucutres layout with special define. So I can't use Boost in iterfaces. 2nd issue is that AFAIK boost::variant does not have virtual descructor so deriving from it is bad idea. However I use exactly boost::variant in implementation of cppcms::json. > Another question. You define json::object as std::map, which it has > O(log n) complexity for access > > Why you not use boost::unordered_map which it has O(n) complexity? Same reason as above, untill std::unordered_map would be availible in major compilers I would use std::map. Also, please note, that for relatively small maps, std::map would be even faster (and this is the case in most json objects). Artyom Please, register to mailing list so I would not have to moderate incoming messages. |
From: Daniel V. <chi...@gm...> - 2010-03-16 00:32:01
|
Hello Artyom I think that boost::variant type fits exactly as base class for cppcms::json::value. I think that one pro of this approach is that boost::variant interface is more familiar and has good visitor interface. You think about that? This break your ABI requirerements? Another question. You define json::object as std::map, which it has O(log n) complexity for access Why you don't use boost::unordered_map which it has O(n) complexity? Thank you! |
From: Artyom <art...@ya...> - 2010-03-15 07:41:11
|
Hello Daniel > I know that is a pre-release version, but I write this report for help. Thanks, this is what exactly I need. > 1) I need add #include <stdint.h> in "session_posix_file_storage.cpp" > for build the framework. Thanks, Fixed in svn > 2) Is function request().http_authrization() correct spelled (whitout > "a")? Thanks, Fixed in svn > 3) Json parser. The json parser fail to parse a simple string. I expect > that the following code snippet print "ok", but I get "err". > > string json_str("\"Hello World\"); > cppcms::json::value v; > stringstream ss; > ss << json_str; > > v.load(ss,true); > if( v.type() == cppcms::json::is_string ) { > cout << "ok" << endl; > } > else if (v.type() == cppcms::json::is_undefined ) { > cout << "err" << endl; > } > > Thanks. Ok, good point, my bad. You made me re-read JSON specs and I figured out that I missed something. I assumed that valid JSON is either object or array, but according to spec sinlge value is valid JSON as well. I'll fix it ASAP. Thank you. Artyom |
From: Artyom <art...@ya...> - 2010-03-15 07:22:51
|
Hello Daniel > Hello. > > In cppcms 0.0.5 I do > > std::string postdata = > env->getPostData(); > > to get post data. > > I can't find equivalent function in cppcms 1.x.x. > > What is the equivalent method to get post data in cppcms > 1.x.x ? class cppcms::http::request has a member raw_post_data() that returns std::pair<void *,size_t>; So you can write: std::pair<void *,size_t> data = request().raw_post_data(); std::string postdata(reinterpret_cast<char *>(data.first),data.second); Please note: this would not when content-type is "multipart/form-data" i.e. file upload, files data can be accessed via file interface and http::request::post() (files upload is not-implemented yet). Rationale: files maybe too big to put into process memory. Artyom |
From: Daniel V. <dan...@du...> - 2010-03-15 07:05:10
|
Hello! I test successfully cppcms 1.0.0. I know that is a pre-release version, but I write this report for help. My environment is g++ (Ubuntu 4.4.3-3ubuntu1). But I get the following small issues. 1) I need add #include <stdint.h> in "session_posix_file_storage.cpp" for build the framework. 2) Is function request().http_authrization() correct spelled (whitout "a")? 3) Json parser. The json parser fail to parse a simple string. I expect that the following code snippet print "ok", but I get "err". string json_str("\"Hello World\"); cppcms::json::value v; stringstream ss; ss << json_str; v.load(ss,true); if( v.type() == cppcms::json::is_string ) { cout << "ok" << endl; } else if (v.type() == cppcms::json::is_undefined ) { cout << "err" << endl; } Thanks. |
From: Daniel V. <chi...@gm...> - 2010-03-15 05:26:37
|
Hello. In cppcms 0.0.5 I do std::string postdata = env->getPostData(); to get post data. I can't find equivalent function in cppcms 1.x.x. What is the equivalent method to get post data in cppcms 1.x.x ? Thanks. |
From: Artyom <art...@ya...> - 2010-01-27 08:04:47
|
Hello, I'm getting closer and closer to Alpha release of CppCMS 1.x.x. One of the milestones for CppCMS 1.x.x is support of Windows and MSVC. The project already runs fine under: - Linux 32/64 bit with GCC and Intel compilers. - Open Solaris with Sun Studio - Cygwin with gcc-3.4 - Windows/MinGW with gcc-4.4 But it crashes and have numerous issues with MSVC builds. Unfortunately I'm not much experienced with Microsoft Tools, so if there anybody in mailing list that knows how to deal with MS tools, CMake and can help me with solving it's issues I would be really grateful. Artyom |
From: Artyom <art...@ya...> - 2010-01-11 21:11:14
|
Hello All, CppCMS v0.0.5 released, Changelog: Security Bugs: * Workaround of CgiCC bug that may cause process shutdown in case of huge POST requests - DoS. * Fixed generation of session ids that could create session ids with very low entropy – guessable SID. Bugs: * Fixed: incorrect update of "exposed" session values, when renewing session life time. * Fixed: bug that prevent using FastCGI/SCGI over TCP. * Fixed: build fault when using --boost-suffix configure option * Fixed: incorrect generation of status headers in case of errors. * Fixed: build issues with gcc-4.4.1 * Fixed: various issues with for Intel Compiler support. Improvements: * Removed all unnecessary classes from views – compilation time speedup up to 3.2 times (of views) |
From: Artyom <art...@ya...> - 2010-01-09 20:19:57
|
Hello, > > when try > file_server the > void file_server::serve_file(std::string file_name) > not work > well > the file_name get not a vaild path it is a slash > code > eg. > file_name = "�������|��|" > Unfortunalty I can't read the text you had given, What is the text encoding? What is written there? Also, note, Windows has not UTF-8 support for Unicode path names, so at this point only local 8-bit encodings are supported. Artyom P.S.: What compiler do you use? P.P.S.: Be aware that CppCMS 1.x.x is very unstable version and it is very likely that you would observe lots of bugs.. |
From: sguzwf <sg...@gm...> - 2010-01-05 16:14:24
|
when try file_server the void file_server::serve_file(std::string file_name) not work well the file_name get not a vaild path it is a slash code eg. file_name = "|" 2010-01-06 sguzwf |
From: Artyom <art...@ya...> - 2009-12-31 14:21:53
|
Hello, > > hello.fcgi builds without error, and cppcms_run starts the > application and > webserver processes OK. Can you provide output of the script when you run hello world example, and exact command you are running. > > But when I go to access /hello.fcgi with a browser, nginx > returns a 502 Bad > Gateway error. > > What am I doing wrong? - What version of CppCMS are you using? - What is the content of configuration file? - What operating system and its version are you running? Artyom P.S.: Please subscribe to mailing list so I would not have to approve messages. |
From: <ni...@in...> - 2009-12-31 14:00:45
|
I have followed the instructions for building and configuring the hello.fcgi example. hello.fcgi builds without error, and cppcms_run starts the application and webserver processes OK. But when I go to access /hello.fcgi with a browser, nginx returns a 502 Bad Gateway error. What am I doing wrong? Mick |
From: Artyom <art...@ya...> - 2009-12-30 20:47:44
|
Hello, I want to release in several days new CppCMS 0.0.5 version that includes mostly bug-fixes: So far: ======= Security Fix: ------------- - fixed generation of session ids that could create session ids with very low entropy -- guessable SID. Bugs: ----- - Fixed: various issues with for Intel Compiler support. - Fixed: Incorrect update of "exposed" session values, when renewing session life time. - Fixed: but that prevent using FastCGI/SCGI over TCP. - Fixed: incorrect generation of status headers in case of errors. - Fixed: build issues with gcc-4.4.1 - Fixed: build fault when using --boost-suffix configure option Improvments: ------------ - Removed all unsassary classes from views -- compilation time speedup up to 3.2 times (of views) ----------------------------- Before I release this version I would like to get some more compains and problems... So if you have any, please, report. Artyom |
From: Artyom <art...@ya...> - 2009-12-30 20:34:57
|
Hello, Thanks a lot for bug report. Confirmed, fixed in trunk: changeset 969 For details see: http://cppcms.svn.sourceforge.net/viewvc/cppcms/framework/trunk/configure.in?r1=711&r2=969 It can be easily fixed as adding "$" in configure.in script It happens only when building with custom boost suffix. Best, Artyom. --- On Wed, 12/30/09, Francesco Argese <ke...@gm...> wrote: > From: Francesco Argese <ke...@gm...> > Subject: [Cppcms-users] error while linking hello_world.fcgi > To: cpp...@li... > Date: Wednesday, December 30, 2009, 3:13 PM > Hi all, > I'm new to the list. During compilation I > have found a problem and resolved with a simple change. I > don't know the reason and I want to share with you this > problem hoping that it could be useful in future. > > The error is shown during 'make' phase > and regards compilation of hello_world.fcgi. Below [1] is > reported the error output. It seems that it doesn't > find libraries and probably it is necessary a little change > in Makefile.in file. > > I have resolved the problem changing the > following Makefile variable as reported > here:hello_world_fcgi_LDADD = libcppcms.la > transtext/libcppcmstranstext.la > /usr/lib/libcgicc.la > /usr/lib/libfcgi++.la /usr/lib/libboost_signals-mt.so > /usr/lib/libboost_system-mt.so /usr/lib/libdl.so > /usr/lib/libboost_regex-mt.so > > I have Ubuntu 9.10 and all the libraries > suggested in tutorial. Libtool version is 2.2.6. > Hoping that this could be useful... > HiFrancesco Argese > > P.S.: Idea beyond CppCMS look > great! > [1] Error log/bin/bash ./libtool > --tag=CXX --mode=link g++ -g -O2 -o hello_world.fcgi > hello_world_fcgi-hello_world.o > hello_world_fcgi-hello_world_view1.o > hello_world_fcgi-hello_world_view2.o libcppcms.la > transtext/libcppcmstranstext.la > > g++ -g -O2 -o .libs/hello_world.fcgi > hello_world_fcgi-hello_world.o > hello_world_fcgi-hello_world_view1.o > hello_world_fcgi-hello_world_view2.o ./.libs/libcppcms.so > transtext/.libs/libcppcmstranstext.sohello_world_fcgi-hello_world.o: > In function `my_hello_world::png()': > > /home/argesino/Development/CppCMS/cppcms-0.0.4/hello_world.cpp:35: > undefined reference to > `cgicc::HTTPContentHeader::HTTPContentHeader(std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > const&)' > > ./.libs/libcppcms.so: undefined reference to > `cgicc::HTTPHTMLHeader::HTTPHTMLHeader()'./.libs/libcppcms.so: > undefined reference to > `boost::signals::detail::named_slot_map::begin()'./.libs/libcppcms.so: > undefined reference to > `boost::signals::detail::call_notification::~call_notification()' > > ./.libs/libcppcms.so: undefined reference to > `cgicc::operator<<(std::basic_ostream<char, > std::char_traits<char> >&, cgicc::MStreamable > const&)'./.libs/libcppcms.so: undefined > reference to > `cgicc::Cgicc::getElement(std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > const&) const' > > ./.libs/libcppcms.so: undefined reference to > `cgicc::HTTPCookie::render(std::basic_ostream<char, > std::char_traits<char> >&) > const'./.libs/libcppcms.so: undefined > reference to > `boost::signals::detail::signal_base::~signal_base()' > > ./.libs/libcppcms.so: undefined reference to > `cgicc::Cgicc::~Cgicc()'./.libs/libcppcms.so: > undefined reference to > `cgicc::CgiInput::~CgiInput()'./.libs/libcppcms.so: > undefined reference to > `cgicc::HTTPCookie::HTTPCookie(cgicc::HTTPCookie > const&)' > > ./.libs/libcppcms.so: undefined reference to `typeinfo > for cgicc::HTTPCookie'./.libs/libcppcms.so: > undefined reference to > `boost::match_results<__gnu_cxx::__normal_iterator<char > const*, std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > >, > std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char > const*, std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > > > > > >::maybe_assign(boost::match_results<__gnu_cxx::__normal_iterator<char > const*, std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > >, > std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char > const*, std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > > > > > const&)' > > ./.libs/libcppcms.so: undefined reference to > `fcgi_streambuf::fcgi_streambuf(FCGX_Stream*)'./.libs/libcppcms.so: > undefined reference to > `boost::re_detail::get_mem_block()'./.libs/libcppcms.so: > undefined reference to > `boost::re_detail::get_default_error_string(boost::regex_constants::error_type)' > > ./.libs/libcppcms.so: undefined reference to > `cgicc::Cgicc::Cgicc(cgicc::CgiInput*)'./.libs/libcppcms.so: > undefined reference to `vtable for > cgicc::CgiInput'./.libs/libcppcms.so: > undefined reference to > `cgicc::HTTPStatusHeader::HTTPStatusHeader(int, > std::basic_string<char, std::char_traits<char>, > std::allocator<char> > const&)' > > ./.libs/libcppcms.so: undefined reference to > `FCGX_Init'./.libs/libcppcms.so: undefined > reference to > `boost::signals::trackable::~trackable()'./.libs/libcppcms.so: > undefined reference to > `boost::re_detail::put_mem_block(void*)' > > ./.libs/libcppcms.so: undefined reference to > `FCGX_GetParam'./.libs/libcppcms.so: > undefined reference to > `boost::signals::detail::named_slot_map::end()'./.libs/libcppcms.so: > undefined reference to `typeinfo for > cgicc::CgiInput' > > ./.libs/libcppcms.so: undefined reference to > `boost::re_detail::raise_runtime_error(std::runtime_error > const&)'./.libs/libcppcms.so: undefined > reference to `cgicc::HTTPCookie::~HTTPCookie()' > > ./.libs/libcppcms.so: undefined reference to > `boost::re_detail::cpp_regex_traits_implementation<char>::transform_primary(char > const*, char const*) > const'./.libs/libcppcms.so: undefined > reference to `FCGX_GetStr' > > ./.libs/libcppcms.so: undefined reference to > `boost::re_detail::perl_matcher<char const*, > std::allocator<boost::sub_match<char const*> >, > boost::regex_traits<char, > boost::cpp_regex_traits<char> > > >::construct_init(boost::basic_regex<char, > boost::regex_traits<char, > boost::cpp_regex_traits<char> > > const&, > boost::regex_constants::_match_flags)' > > ./.libs/libcppcms.so: undefined reference to > `cgicc::HTTPStatusHeader::~HTTPStatusHeader()'./.libs/libcppcms.so: > undefined reference to > `FCGX_InitRequest'./.libs/libcppcms.so: > undefined reference to > `boost::re_detail::cpp_regex_traits_implementation<char>::transform(char > const*, char const*) const' > > ./.libs/libcppcms.so: undefined reference to > `fcgi_streambuf::~fcgi_streambuf()'./.libs/libcppcms.so: > undefined reference to `boost::match_results<char const*, > std::allocator<boost::sub_match<char const*> > > >::maybe_assign(boost::match_results<char const*, > std::allocator<boost::sub_match<char const*> > > > const&)' > > ./.libs/libcppcms.so: undefined reference to > `cgicc::HTTPCookie::HTTPCookie(std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > const&, std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > const&, std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > const&, std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > const&, unsigned long, std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > const&, bool)' > > ./.libs/libcppcms.so: undefined reference to > `cgicc::HTTPCookie::~HTTPCookie()'./.libs/libcppcms.so: > undefined reference to > `cgicc::HTTPCookie::HTTPCookie(std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > const&, std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > const&, std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > const&, std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > const&, unsigned long, std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > const&, bool)' > > ./.libs/libcppcms.so: undefined reference to > `boost::re_detail::verify_options(unsigned int, > boost::regex_constants::_match_flags)'./.libs/libcppcms.so: > undefined reference to `FCGX_Finish_r' > > ./.libs/libcppcms.so: undefined reference to > `boost::signals::detail::call_notification::call_notification(boost::shared_ptr<boost::signals::detail::signal_base_impl> > const&)'./.libs/libcppcms.so: undefined > reference to `FCGX_OpenSocket' > > ./.libs/libcppcms.so: undefined reference to > `boost::basic_regex<char, boost::regex_traits<char, > boost::cpp_regex_traits<char> > > >::do_assign(char const*, char const*, unsigned > int)' > ./.libs/libcppcms.so: undefined reference to > `dlopen' > ./.libs/libcppcms.so: undefined reference to > `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char > const*, std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > >, > std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char > const*, std::basic_string<char, > std::char_traits<char>, std::allocator<char> > > > > >, boost::regex_traits<char, > boost::cpp_regex_traits<char> > > >::construct_init(boost::basic_regex<char, > boost::regex_traits<char, > boost::cpp_regex_traits<char> > > const&, > boost::regex_constants::_match_flags)' > > ./.libs/libcppcms.so: undefined reference to > `FCGX_Accept_r'./.libs/libcppcms.so: > undefined reference to > `dlclose'./.libs/libcppcms.so: undefined > reference to > `boost::signals::detail::signal_base::signal_base(boost::function2<bool, > boost::signals::detail::stored_group, > boost::signals::detail::stored_group> const&, > boost::any const&)' > > collect2: ld returned 1 exit status > > > -----Inline Attachment Follows----- > > ------------------------------------------------------------------------------ > This SF.Net email is sponsored by the Verizon Developer > Community > Take advantage of Verizon's best-in-class app development > support > A streamlined, 14 day to market process makes app > distribution fast and easy > Join now and get one step closer to millions of Verizon > customers > http://p.sf.net/sfu/verizon-dev2dev > -----Inline Attachment Follows----- > > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > |
From: Francesco A. <ke...@gm...> - 2009-12-30 13:13:26
|
Hi all, I'm new to the list. During compilation I have found a problem and resolved with a simple change. I don't know the reason and I want to share with you this problem hoping that it could be useful in future. The error is shown during 'make' phase and regards compilation of hello_world.fcgi. Below [1] is reported the error output. It seems that it doesn't find libraries and probably it is necessary a little change in Makefile.in file. I have resolved the problem changing the following Makefile variable as reported here: hello_world_fcgi_LDADD = libcppcms.la transtext/libcppcmstranstext.la/usr/lib/ libcgicc.la /usr/lib/libfcgi++.la /usr/lib/libboost_signals-mt.so /usr/lib/libboost_system-mt.so /usr/lib/libdl.so /usr/lib/libboost_regex-mt.so I have Ubuntu 9.10 and all the libraries suggested in tutorial. Libtool version is 2.2.6. Hoping that this could be useful... Hi Francesco Argese P.S.: Idea beyond CppCMS look great! [1] Error log /bin/bash ./libtool --tag=CXX --mode=link g++ -g -O2 -o hello_world.fcgi hello_world_fcgi-hello_world.o hello_world_fcgi-hello_world_view1.o hello_world_fcgi-hello_world_view2.o libcppcms.la transtext/ libcppcmstranstext.la g++ -g -O2 -o .libs/hello_world.fcgi hello_world_fcgi-hello_world.o hello_world_fcgi-hello_world_view1.o hello_world_fcgi-hello_world_view2.o ./.libs/libcppcms.so transtext/.libs/libcppcmstranstext.so hello_world_fcgi-hello_world.o: In function `my_hello_world::png()': /home/argesino/Development/CppCMS/cppcms-0.0.4/hello_world.cpp:35: undefined reference to `cgicc::HTTPContentHeader::HTTPContentHeader(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' ./.libs/libcppcms.so: undefined reference to `cgicc::HTTPHTMLHeader::HTTPHTMLHeader()' ./.libs/libcppcms.so: undefined reference to `boost::signals::detail::named_slot_map::begin()' ./.libs/libcppcms.so: undefined reference to `boost::signals::detail::call_notification::~call_notification()' ./.libs/libcppcms.so: undefined reference to `cgicc::operator<<(std::basic_ostream<char, std::char_traits<char> >&, cgicc::MStreamable const&)' ./.libs/libcppcms.so: undefined reference to `cgicc::Cgicc::getElement(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' ./.libs/libcppcms.so: undefined reference to `cgicc::HTTPCookie::render(std::basic_ostream<char, std::char_traits<char> >&) const' ./.libs/libcppcms.so: undefined reference to `boost::signals::detail::signal_base::~signal_base()' ./.libs/libcppcms.so: undefined reference to `cgicc::Cgicc::~Cgicc()' ./.libs/libcppcms.so: undefined reference to `cgicc::CgiInput::~CgiInput()' ./.libs/libcppcms.so: undefined reference to `cgicc::HTTPCookie::HTTPCookie(cgicc::HTTPCookie const&)' ./.libs/libcppcms.so: undefined reference to `typeinfo for cgicc::HTTPCookie' ./.libs/libcppcms.so: undefined reference to `boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::maybe_assign(boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > const&)' ./.libs/libcppcms.so: undefined reference to `fcgi_streambuf::fcgi_streambuf(FCGX_Stream*)' ./.libs/libcppcms.so: undefined reference to `boost::re_detail::get_mem_block()' ./.libs/libcppcms.so: undefined reference to `boost::re_detail::get_default_error_string(boost::regex_constants::error_type)' ./.libs/libcppcms.so: undefined reference to `cgicc::Cgicc::Cgicc(cgicc::CgiInput*)' ./.libs/libcppcms.so: undefined reference to `vtable for cgicc::CgiInput' ./.libs/libcppcms.so: undefined reference to `cgicc::HTTPStatusHeader::HTTPStatusHeader(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' ./.libs/libcppcms.so: undefined reference to `FCGX_Init' ./.libs/libcppcms.so: undefined reference to `boost::signals::trackable::~trackable()' ./.libs/libcppcms.so: undefined reference to `boost::re_detail::put_mem_block(void*)' ./.libs/libcppcms.so: undefined reference to `FCGX_GetParam' ./.libs/libcppcms.so: undefined reference to `boost::signals::detail::named_slot_map::end()' ./.libs/libcppcms.so: undefined reference to `typeinfo for cgicc::CgiInput' ./.libs/libcppcms.so: undefined reference to `boost::re_detail::raise_runtime_error(std::runtime_error const&)' ./.libs/libcppcms.so: undefined reference to `cgicc::HTTPCookie::~HTTPCookie()' ./.libs/libcppcms.so: undefined reference to `boost::re_detail::cpp_regex_traits_implementation<char>::transform_primary(char const*, char const*) const' ./.libs/libcppcms.so: undefined reference to `FCGX_GetStr' ./.libs/libcppcms.so: undefined reference to `boost::re_detail::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)' ./.libs/libcppcms.so: undefined reference to `cgicc::HTTPStatusHeader::~HTTPStatusHeader()' ./.libs/libcppcms.so: undefined reference to `FCGX_InitRequest' ./.libs/libcppcms.so: undefined reference to `boost::re_detail::cpp_regex_traits_implementation<char>::transform(char const*, char const*) const' ./.libs/libcppcms.so: undefined reference to `fcgi_streambuf::~fcgi_streambuf()' ./.libs/libcppcms.so: undefined reference to `boost::match_results<char const*, std::allocator<boost::sub_match<char const*> > >::maybe_assign(boost::match_results<char const*, std::allocator<boost::sub_match<char const*> > > const&)' ./.libs/libcppcms.so: undefined reference to `cgicc::HTTPCookie::HTTPCookie(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)' ./.libs/libcppcms.so: undefined reference to `cgicc::HTTPCookie::~HTTPCookie()' ./.libs/libcppcms.so: undefined reference to `cgicc::HTTPCookie::HTTPCookie(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)' ./.libs/libcppcms.so: undefined reference to `boost::re_detail::verify_options(unsigned int, boost::regex_constants::_match_flags)' ./.libs/libcppcms.so: undefined reference to `FCGX_Finish_r' ./.libs/libcppcms.so: undefined reference to `boost::signals::detail::call_notification::call_notification(boost::shared_ptr<boost::signals::detail::signal_base_impl> const&)' ./.libs/libcppcms.so: undefined reference to `FCGX_OpenSocket' ./.libs/libcppcms.so: undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)' ./.libs/libcppcms.so: undefined reference to `dlopen' ./.libs/libcppcms.so: undefined reference to `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)' ./.libs/libcppcms.so: undefined reference to `FCGX_Accept_r' ./.libs/libcppcms.so: undefined reference to `dlclose' ./.libs/libcppcms.so: undefined reference to `boost::signals::detail::signal_base::signal_base(boost::function2<bool, boost::signals::detail::stored_group, boost::signals::detail::stored_group> const&, boost::any const&)' collect2: ld returned 1 exit status |
From: Artyom <art...@ya...> - 2009-12-06 19:56:22
|
Hi, > It seems that I overlooked that in the tutorial? I did not > know that this > value exists. I think I didn't mentioned it in tutorial only in referece. It is quite fine tuning parameter. Probably a page on high performance system configuration should be written. > No, the problem was the buffer. I changed it to 100 and now > there is no such > problem. Thank you very much for that hint! It works great > now. It runs > incredible faster then before. These are just one of many points that are risen when you do benchmarking. > > P.s. Unfortunately I still can't reach the primary page for > the wiki, so I > can't change content there. > I have some problems with server recently, I hope that I would have a time to setup VPS for better hosting then home ADSL line, because downtime issues quite bothering me recently. Best, Artyom |
From: Markus R. <us...@ma...> - 2009-12-06 19:08:57
|
Artyom wrote: > Ok, first of all what "server.*" configuration are you using > What Server API do you use, what model threaded or prefork? > How many threads processed do you define? Sorry, I forgot to mention that. I tested with prefork and thread with up to 50 processes/threads. > What buffer parameter do you use? It seems that I overlooked that in the tutorial? I did not know that this value exists. > I would recommend: > > Make "server.buffer" parameter big as twice as exepected > cuncurrent requests no. > > Also provide reasonable number for "server.threads" or "server.procs" > according to the mode you use. > > The default workers number is 5 which may explain the issue. No, the problem was the buffer. I changed it to 100 and now there is no such problem. Thank you very much for that hint! It works great now. It runs incredible faster then before. thanks Markus P.s. Unfortunately I still can't reach the primary page for the wiki, so I can't change content there. -- http://www.markus-raab.org | Takt ist etwas, das niemand bemerkt, wenn -o) | man es hat, das aber jeder bemerkt, wenn Kernel 2.6.24-1-a /\ | man es einmal nicht hat. Gina Lollobrigida on a x86_64 _\_v | |