the upcoming 2.0 version
https://redmine.lighttpd.net/projects/lighttpd2
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
954 B
51 lines
954 B
|
|
#include <lighttpd/base.h> |
|
|
|
#define perror(msg) g_error("(%s:%i) %s failed: %s", __FILE__, __LINE__, msg, g_strerror(errno)) |
|
|
|
static void test_send_fd(void) { |
|
int pipefds[2], sockfd[2], rfd = -1; |
|
char buf[6]; |
|
|
|
g_printerr("start\n"); |
|
|
|
if (-1 == pipe(pipefds)) { |
|
perror("pipe"); |
|
} |
|
|
|
if (-1 == socketpair(AF_UNIX, SOCK_STREAM, 0, sockfd)) { |
|
perror("socketpair"); |
|
} |
|
|
|
if (-1 == li_send_fd(sockfd[0], pipefds[0])) { |
|
perror("li_send_fd"); |
|
} |
|
|
|
if (-1 == li_receive_fd(sockfd[1], &rfd)) { |
|
perror("li_receive_fd"); |
|
} |
|
|
|
write(pipefds[1], CONST_STR_LEN("test\0")); |
|
|
|
if (-1 == read(rfd, buf, 5)) { |
|
perror("read"); |
|
} |
|
|
|
buf[5] = '\0'; |
|
g_test_message("received: %s", buf); |
|
|
|
g_assert_cmpstr(buf, ==, "test"); |
|
|
|
close(pipefds[0]); close(pipefds[1]); |
|
close(sockfd[0]); close(sockfd[1]); |
|
close(rfd); |
|
} |
|
|
|
|
|
int main(int argc, char **argv) { |
|
g_test_init(&argc, &argv, NULL); |
|
|
|
g_test_add_func("/utils/send_fd", test_send_fd); |
|
|
|
return g_test_run(); |
|
}
|
|
|