Lines Matching defs:serv
268 MASTER_SERV *serv;
328 serv = (MASTER_SERV *) mymalloc(sizeof(MASTER_SERV));
329 serv->next = 0;
334 serv->flags = 0;
339 serv->busy_warn_time = 0;
344 serv->ext_name = mystrdup(name);
354 serv->ext_name, VAR_INET_INTERFACES);
358 serv->type = MASTER_SERV_TYPE_INET;
363 serv->flags |= MASTER_FLAG_INETHOST;/* host:port */
364 MASTER_INET_ADDRLIST(serv) = (INET_ADDR_LIST *)
365 mymalloc(sizeof(*MASTER_INET_ADDRLIST(serv)));
366 inet_addr_list_init(MASTER_INET_ADDRLIST(serv));
367 if (inet_addr_host(MASTER_INET_ADDRLIST(serv), host) == 0)
369 inet_addr_list_uniq(MASTER_INET_ADDRLIST(serv));
370 serv->listen_fd_count = MASTER_INET_ADDRLIST(serv)->used;
372 MASTER_INET_ADDRLIST(serv) =
376 if (MASTER_INET_ADDRLIST(serv)->used == 0)
380 inet_addr_list_uniq(MASTER_INET_ADDRLIST(serv));
381 serv->listen_fd_count = MASTER_INET_ADDRLIST(serv)->used;
383 MASTER_INET_PORT(serv) = mystrdup(port);
385 if (n >= MASTER_INET_ADDRLIST(serv)->used) {
386 serv->flags |= MASTER_FLAG_LOCAL_ONLY;
389 if (!sock_addr_in_loopback(SOCK_ADDR_PTR(MASTER_INET_ADDRLIST(serv)->addrs + n)))
393 serv->type = MASTER_SERV_TYPE_UNIX;
394 serv->listen_fd_count = 1;
395 serv->flags |= MASTER_FLAG_LOCAL_ONLY;
397 serv->type = MASTER_SERV_TYPE_UXDG;
398 serv->listen_fd_count = 1;
399 serv->flags |= MASTER_FLAG_LOCAL_ONLY;
401 serv->type = MASTER_SERV_TYPE_FIFO;
402 serv->listen_fd_count = 1;
403 serv->flags |= MASTER_FLAG_LOCAL_ONLY;
406 serv->type = MASTER_SERV_TYPE_PASS;
407 serv->listen_fd_count = 1;
423 if (serv->type == MASTER_SERV_TYPE_INET) {
442 serv->name = (host ? concatenate("[", host_addr.buf, "]:",
451 serv->name = (host ? concatenate("[", host, "]:",
458 serv->name = mystrdup(name);
460 } else if (serv->type == MASTER_SERV_TYPE_UNIX) {
461 serv->name = mail_pathname(private ? MAIL_CLASS_PRIVATE :
463 } else if (serv->type == MASTER_SERV_TYPE_UXDG) {
464 serv->name = mail_pathname(private ? MAIL_CLASS_PRIVATE :
466 } else if (serv->type == MASTER_SERV_TYPE_FIFO) {
467 serv->name = mail_pathname(private ? MAIL_CLASS_PRIVATE :
470 } else if (serv->type == MASTER_SERV_TYPE_PASS) {
471 serv->name = mail_pathname(private ? MAIL_CLASS_PRIVATE :
475 msg_panic("bad transport type: %d", serv->type);
482 if (serv->listen_fd_count == 0) {
485 serv->listen_fd = (int *) mymalloc(sizeof(int) * serv->listen_fd_count);
486 for (n = 0; n < serv->listen_fd_count; n++)
487 serv->listen_fd[n] = -1;
510 serv->wakeup_time = get_int_ent(&bufp, "wakeup_time", "0", 0);
516 if (serv->wakeup_time > 0 && bufp[*bufp ? -2 : -1] == '?')
517 serv->flags |= MASTER_FLAG_CONDWAKE;
523 serv->max_proc = get_int_ent(&bufp, "max_proc", vstring_str(junk), 0);
529 serv->path = concatenate(var_daemon_dir, "/", command, (char *) 0);
534 serv->avail_proc = 0;
535 serv->total_proc = 0;
540 serv->throttle_delay = var_throttle_time;
545 serv->status_fd[0] = serv->status_fd[1] = -1;
550 serv->children = 0;
556 serv->args = argv_alloc(0);
557 argv_add(serv->args, command, (char *) 0);
558 if (serv->max_proc == 1)
559 argv_add(serv->args, "-l", (char *) 0);
560 if (serv->max_proc == 0)
561 argv_add(serv->args, "-z", (char *) 0);
563 argv_add(serv->args, "-n", name, (char *) 0);
564 argv_add(serv->args, "-t", transport, (char *) 0);
566 argv_add(serv->args, "-d", (char *) 0);
568 argv_add(serv->args, "-v", (char *) 0);
570 argv_add(serv->args, "-u", (char *) 0);
572 argv_add(serv->args, "-c", (char *) 0);
573 if ((serv->flags & MASTER_FLAG_LOCAL_ONLY) == 0 && serv->max_proc > 1) {
574 argv_add(serv->args, "-o", "stress=" CONFIG_BOOL_YES, (char *) 0);
575 serv->stress_param_val =
576 serv->args->argv[serv->args->argc - 1] + sizeof("stress=") - 1;
577 serv->stress_param_val[0] = 0;
579 serv->stress_param_val = 0;
580 serv->stress_expire_time = 0;
581 if (serv->listen_fd_count > 1)
582 argv_add(serv->args, "-s",
583 vstring_str(vstring_sprintf(junk, "%d", serv->listen_fd_count)),
589 argv_add(serv->args, cp, (char *) 0);
591 argv_terminate(serv->args);
598 return (serv);
603 void print_master_ent(MASTER_SERV *serv)
608 msg_info("flags: %d", serv->flags);
609 msg_info("name: %s", serv->name);
611 serv->type == MASTER_SERV_TYPE_UNIX ? MASTER_XPORT_NAME_UNIX :
612 serv->type == MASTER_SERV_TYPE_FIFO ? MASTER_XPORT_NAME_FIFO :
613 serv->type == MASTER_SERV_TYPE_INET ? MASTER_XPORT_NAME_INET :
615 serv->type == MASTER_SERV_TYPE_PASS ? MASTER_XPORT_NAME_PASS :
617 serv->type == MASTER_SERV_TYPE_UXDG ? MASTER_XPORT_NAME_UXDG :
619 msg_info("listen_fd_count: %d", serv->listen_fd_count);
620 msg_info("wakeup: %d", serv->wakeup_time);
621 msg_info("max_proc: %d", serv->max_proc);
622 msg_info("path: %s", serv->path);
623 for (cpp = serv->args->argv; *cpp; cpp++)
624 msg_info("arg[%d]: %s", (int) (cpp - serv->args->argv), *cpp);
625 msg_info("avail_proc: %d", serv->avail_proc);
626 msg_info("total_proc: %d", serv->total_proc);
627 msg_info("throttle_delay: %d", serv->throttle_delay);
628 msg_info("status_fd %d %d", serv->status_fd[0], serv->status_fd[1]);
629 msg_info("children: 0x%lx", (long) serv->children);
630 msg_info("next: 0x%lx", (long) serv->next);
636 void free_master_ent(MASTER_SERV *serv)
642 if (serv->flags & MASTER_FLAG_INETHOST) {
643 inet_addr_list_free(MASTER_INET_ADDRLIST(serv));
644 myfree((void *) MASTER_INET_ADDRLIST(serv));
646 if (serv->type == MASTER_SERV_TYPE_INET)
647 myfree(MASTER_INET_PORT(serv));
648 myfree(serv->ext_name);
649 myfree(serv->name);
650 myfree(serv->path);
651 argv_free(serv->args);
652 myfree((void *) serv->listen_fd);
653 myfree((void *) serv);