Home | History | Annotate | Download | only in inetd

Lines Matching refs:sep

149 parse_syntax_v2(struct servtab *sep, char **cpp)
158 switch(parse_invoke_handler(&is_valid_definition, cpp, sep)) {
172 if (is_valid_definition && fill_default_values(sep)) {
202 fill_default_values(struct servtab *sep)
206 if (sep->se_service_max == SERVTAB_UNSPEC_SIZE_T) {
208 sep->se_service_max = TOOMANY;
211 if (sep->se_hostaddr == NULL) {
213 sep->se_hostaddr = newstr(defhost);
216 try_infer_socktype(sep);
218 if (sep->se_server == NULL) {
220 is_valid = setup_internal(sep) && is_valid;
223 if (sep->se_socktype == SERVTAB_UNSPEC_VAL) {
229 if (sep->se_wait == SERVTAB_UNSPEC_VAL) {
235 if (sep->se_user == NULL) {
241 if (sep->se_proto == NULL) {
246 is_valid = infer_protocol_ip_version(sep) && is_valid;
250 setup_ipsec(sep);
258 setup_ipsec(struct servtab *sep)
260 if (sep->se_policy == NULL) {
262 sep->se_policy = policy;
263 } else if (*sep->se_policy == '\0') {
265 free(sep->se_policy);
266 sep->se_policy = NULL;
272 try_infer_socktype(struct servtab *sep) {
273 if (sep->se_socktype != SERVTAB_UNSPEC_VAL || sep->se_proto == NULL) {
278 if (strncmp(sep->se_proto, "udp", 3) == 0) {
279 sep->se_socktype = SOCK_DGRAM;
280 } else if (strncmp(sep->se_proto, "tcp", 3) == 0) {
281 sep->se_socktype = SOCK_STREAM;
286 setup_internal(struct servtab *sep)
288 pid_t wait_prev = sep->se_wait;
289 if (parse_server(sep, "internal") != 0) {
294 if (wait_prev != SERVTAB_UNSPEC_VAL && wait_prev != sep->se_wait) {
296 WRN(WAIT_WRN, sep->se_service);
302 infer_protocol_ip_version(struct servtab *sep)
306 if (strcmp("tcp", sep->se_proto) != 0
307 && strcmp("udp", sep->se_proto) != 0
308 && strcmp("rpc/tcp", sep->se_proto) != 0
309 && strcmp("rpc/udp", sep->se_proto) != 0) {
313 if (inet_pton(AF_INET, sep->se_hostaddr, &tmp)) {
314 sep->se_family = AF_INET;
318 if (inet_pton(AF_INET6, sep->se_hostaddr, &tmp)) {
319 sep->se_family = AF_INET6;
324 "Explicitly specify protocol", sep->se_hostaddr);
554 parse_invoke_handler(bool *is_valid_definition, char **cpp, struct servtab *sep)
616 * Read values for key and write into sep.
619 if (handler(sep, &info) == KEY_HANDLER_FAILURE) {
647 /* Return true if sep must be a built-in service */
649 is_internal(struct servtab *sep)
651 return sep->se_bi != NULL;
660 unknown_handler(struct servtab *sep, vlist values)
668 bind_handler(struct servtab *sep, vlist values)
670 if (sep->se_hostaddr != NULL) {
676 sep->se_hostaddr = newstr(val);
685 socket_type_handler(struct servtab *sep, vlist values)
693 parse_socktype(type, sep);
695 if (sep->se_socktype == -1) {
711 filter_handler(struct servtab *sep, vlist values)
717 * Also see parse_accept_filter(char* arg, struct servtab*sep)
730 strlcpy(sep->se_accf.af_name, af_name, sizeof(sep->se_accf.af_name));
735 strlcpy(sep->se_accf.af_arg, af_arg,
736 sizeof(sep->se_accf.af_arg));
743 sep->se_accf.af_arg[0] = '\0';
751 protocol_handler(struct servtab *sep, vlist values)
760 if (sep->se_type == NORM_TYPE &&
763 sep->se_type = FAITH_TYPE;
765 sep->se_proto = newstr(val);
767 if (parse_protocol(sep))
817 send_buf_handler(struct servtab *sep, vlist values)
822 if (ISMUX(sep)) {
824 sep->se_service);
845 sep->se_sndbuf = buffer_size;
852 recv_buf_handler(struct servtab *sep, vlist values)
857 if (ISMUX(sep)) {
859 sep->se_service);
879 sep->se_rcvbuf = buffer_size;
887 wait_handler(struct servtab *sep, vlist values)
894 if (!is_internal(sep) && sep->se_wait != SERVTAB_UNSPEC_VAL) {
916 if (is_internal(sep) && wait != sep->se_wait) {
918 WRN(WAIT_WRN, sep->se_service);
919 } else if (parse_wait(sep, wait)) {
933 service_max_handler(struct servtab *sep, vlist values)
938 if (sep->se_service_max != SERVTAB_UNSPEC_SIZE_T) {
964 sep->se_service_max = count;
970 ip_max_handler(struct servtab *sep, vlist values)
975 if (sep->se_ip_max != SERVTAB_UNSPEC_SIZE_T) {
1000 sep->se_ip_max = count;
1007 user_handler(struct servtab *sep, vlist values)
1009 if (sep->se_user != NULL) {
1021 sep->se_user = newstr(name);
1033 group_handler(struct servtab *sep, vlist values)
1042 sep->se_group = newstr(name);
1054 exec_handler(struct servtab *sep, vlist values)
1063 pid_t wait_prev = sep->se_wait;
1064 if (parse_server(sep, val))
1066 if (is_internal(sep) && wait_prev != SERVTAB_UNSPEC_VAL) {
1071 if (wait_prev != sep->se_wait) {
1072 WRN(WAIT_WRN, sep->se_service);
1086 args_handler(struct servtab *sep, vlist values)
1091 if (sep->se_argv[0] != NULL) {
1103 sep->se_argv[argc++] = newstr(val);
1106 sep->se_argv[argc++] = NULL;
1118 * can continue to be stored in sep->policy.
1121 ipsec_handler(struct servtab *sep, vlist values)
1123 if (sep->se_policy != NULL) {
1140 sep->se_policy = policy != NULL ? newstr(ipsecstr) : newstr("");