X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=afs.c;h=3a752acaaf9e1631a31704521317967d58886009;hp=f51039b1dbc3bcd8b329bf5bf802898569f5d353;hb=dd7675ad75d88dfebaf56cb0cab2f6c3171d5c85;hpb=c6e27c71877391685e30388689137a7d63cac58f diff --git a/afs.c b/afs.c index f51039b1..3a752aca 100644 --- a/afs.c +++ b/afs.c @@ -18,8 +18,8 @@ #include #include +#include "server.lsg.h" #include "server_cmd.lsg.h" -#include "server.cmdline.h" #include "para.h" #include "error.h" #include "crypt.h" @@ -238,7 +238,7 @@ int send_callback_request(afs_callback *f, struct osl_object *query, *(uint32_t *)buf = afs_socket_cookie; *(int *)(buf + sizeof(afs_socket_cookie)) = query_shmid; - ret = connect_local_socket(conf.afs_socket_arg); + ret = connect_local_socket(OPT_STRING_VAL(AFS_SOCKET)); if (ret < 0) goto out; fd = ret; @@ -317,31 +317,26 @@ static int action_if_pattern_matches(struct osl_row *row, void *data) struct pattern_match_data *pmd = data; struct osl_object name_obj; const char *p, *name; - int i, ret = osl(osl_get_object(pmd->table, row, pmd->match_col_num, &name_obj)); - const char *pattern_txt = (const char *)pmd->patterns.data; + int i, ret; + ret = osl(osl_get_object(pmd->table, row, pmd->match_col_num, + &name_obj)); if (ret < 0) return ret; name = (char *)name_obj.data; if ((!name || !*name) && (pmd->pm_flags & PM_SKIP_EMPTY_NAME)) return 1; - if ((pmd->lpr && lls_num_inputs(pmd->lpr) == 0) || pmd->patterns.size == 0) { + if (lls_num_inputs(pmd->lpr) == 0) { if (pmd->pm_flags & PM_NO_PATTERN_MATCHES_EVERYTHING) { pmd->num_matches++; return pmd->action(pmd->table, row, name, pmd->data); } } - p = pattern_txt; i = pmd->input_skip; for (;;) { - if (pmd->lpr) { - if (i >= lls_num_inputs(pmd->lpr)) - break; - p = lls_input(i, pmd->lpr); - } else { - if (p >= pattern_txt + pmd->patterns.size) - break; - } + if (i >= lls_num_inputs(pmd->lpr)) + break; + p = lls_input(i, pmd->lpr); ret = fnmatch(p, name, pmd->fnmatch_flags); if (ret != FNM_NOMATCH) { if (ret != 0) @@ -352,10 +347,7 @@ static int action_if_pattern_matches(struct osl_row *row, void *data) return ret; } - if (pmd->lpr) - i++; - else - p += strlen(p) + 1; + i++; } return 1; } @@ -622,7 +614,7 @@ static int com_select(struct command_context *cc, struct lls_parse_result *lpr) } EXPORT_SERVER_CMD_HANDLER(select); -static void init_admissible_files(char *arg) +static void init_admissible_files(const char *arg) { if (activate_mood_or_playlist(arg, NULL) < 0) activate_mood_or_playlist(NULL, NULL); /* always successful */ @@ -631,7 +623,7 @@ static void init_admissible_files(char *arg) static int setup_command_socket_or_die(void) { int ret, socket_fd; - char *socket_name = conf.afs_socket_arg; + const char *socket_name = OPT_STRING_VAL(AFS_SOCKET); unlink(socket_name); ret = create_local_socket(socket_name, 0); @@ -663,8 +655,8 @@ static char *database_dir; static void get_database_dir(void) { if (!database_dir) { - if (conf.afs_database_dir_given) - database_dir = para_strdup(conf.afs_database_dir_arg); + if (OPT_GIVEN(AFS_DATABASE_DIR)) + database_dir = para_strdup(OPT_STRING_VAL(AFS_DATABASE_DIR)); else { char *home = para_homedir(); database_dir = make_message( @@ -1005,7 +997,7 @@ __noreturn void afs_init(uint32_t cookie, int socket_fd) goto out_close; PARA_INFO_LOG("server_socket: %d, afs_socket_cookie: %u\n", server_socket, (unsigned) cookie); - init_admissible_files(conf.afs_initial_mode_arg); + init_admissible_files(OPT_STRING_VAL(AFS_INITIAL_MODE)); register_command_task(cookie, &s); s.default_timeout.tv_sec = 0; s.default_timeout.tv_usec = 999 * 1000;