Made new changes, but still same issue:
FILE *fd;
char* ptr1=nxb_alloc_obj(req->nxb, 528860);
//char buff[528860];
//memset(buff,0,sizeof(buff));
fd = fopen("/root/out.jpg", "rb");
fread(ptr1,1,528860,fd);
nxb_make_room(req->nxb, 528860);
nxb_append_char_fast(req->nxb, *ptr1);
resp->content_type="image/jpg";
resp->content=(const char*) req->nxb;
resp->content_length=528860;
int result_size=528860;
char* result=nxb_finish_stream(req->nxb, &result_size);
close(fd);
// resp->content="<p>Hello, world!</p>";
// resp->content_length=sizeof("<p>Hello, world!</p>")-1;
return NXWEB_OK;
However, process crashes, after 900+ queries:
rt_sigaction(SIGTERM, {0x7fd04856f000, [TERM], SA_RESTORER|SA_RESTART,
0x7fd047bc7920}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, {0x7fd04856f000, [INT], SA_RESTORER|SA_RESTART,
0x7fd047bc7920}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGUSR1, {0x7fd04856efc0, [USR1], SA_RESTORER|SA_RESTART,
0x7fd047bc7920}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGHUP, {0x7fd04856efc0, [HUP], SA_RESTORER|SA_RESTART,
0x7fd047bc7920}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGALRM, {0x7fd04856eb00, [ALRM], SA_RESTORER|SA_RESTART,
0x7fd047bc7920}, {SIG_DFL, [], 0}, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [HUP INT QUIT USR1 TERM], NULL, 8) = 0
futex(0x7fd0479869d0, FUTEX_WAIT, 24782, NULL2014-04-27 13:48:20 1
[24781:0x7fd0235fe700]: accept() failed 24
<unfinished ...>
+++ killed by SIGSEGV +++
Segmentation fault
Memory leak?
-Jack