- /* Become server, and handle requests */
- Dmsg1(10, "filed: listening on port %d\n", me->FDport);
- bnet_thread_server(me->FDport, 10, &dir_workq, handle_client_request);
+ if (!no_signals) {
+ start_watchdog(); /* start watchdog thread */
+ init_jcr_subsystem(); /* start JCR watchdogs etc. */
+ }
+ server_tid = pthread_self();
+
+ if (inetd_request) {
+ /* Socket is on fd 0 */
+ struct sockaddr client_addr;
+ int port = -1;
+ socklen_t client_addr_len = sizeof(client_addr);
+ if (getsockname(0, &client_addr, &client_addr_len) == 0) {
+ /* MA BUG 6 remove ifdefs */
+ port = sockaddr_get_port_net_order(&client_addr);
+ }
+ BSOCK *bs = init_bsock(NULL, 0, "client", "unknown client", port, &client_addr);
+ handle_client_request((void *)bs);
+ } else {
+ /* Become server, and handle requests */
+ IPADDR *p;
+ foreach_dlist(p, me->FDaddrs) {
+ Dmsg1(10, "filed: listening on port %d\n", p->get_port_host_order());
+ }
+ bnet_thread_server(me->FDaddrs, me->MaxConcurrentJobs, &dir_workq, handle_client_request);
+ }