equal
deleted
inserted
replaced
70 size_t i; |
70 size_t i; |
71 for (i = 0; i < sizeof(flags) / sizeof(flags[0]); ++i) { |
71 for (i = 0; i < sizeof(flags) / sizeof(flags[0]); ++i) { |
72 size_t len = strlen(flags[i].name); |
72 size_t len = strlen(flags[i].name); |
73 size_t narg = flags[i].narg; |
73 size_t narg = flags[i].narg; |
74 if (memcmp(arg, flags[i].name, len) == 0) { |
74 if (memcmp(arg, flags[i].name, len) == 0) { |
75 if (arg[len] == '\0') { /* --flag (value) */ |
75 if (arg[len] == '\0') { |
|
76 /* --flag (value) */ |
76 return narg + 1; |
77 return narg + 1; |
77 } else if (arg[len] == '=' && narg > 0) { /* --flag=value */ |
78 } else if (arg[len] == '=' && narg > 0) { |
|
79 /* --flag=value */ |
78 return 1; |
80 return 1; |
79 } else if (flags[i].name[1] != '-') { /* short flag */ |
81 } else if (flags[i].name[1] != '-') { |
|
82 /* short flag */ |
80 return 1; |
83 return 1; |
81 } |
84 } |
82 } |
85 } |
83 } |
86 } |
84 return 0; |
87 return 0; |
161 * explicit unlock. Will block if the lock is held by another process. |
164 * explicit unlock. Will block if the lock is held by another process. |
162 */ |
165 */ |
163 static void lockcmdserver(struct cmdserveropts *opts) |
166 static void lockcmdserver(struct cmdserveropts *opts) |
164 { |
167 { |
165 if (opts->lockfd == -1) { |
168 if (opts->lockfd == -1) { |
166 opts->lockfd = open(opts->lockfile, O_RDWR | O_CREAT | O_NOFOLLOW, 0600); |
169 opts->lockfd = open(opts->lockfile, |
|
170 O_RDWR | O_CREAT | O_NOFOLLOW, 0600); |
167 if (opts->lockfd == -1) |
171 if (opts->lockfd == -1) |
168 abortmsgerrno("cannot create lock file %s", |
172 abortmsgerrno("cannot create lock file %s", |
169 opts->lockfile); |
173 opts->lockfile); |
170 } |
174 } |
171 int r = flock(opts->lockfd, LOCK_EX); |
175 int r = flock(opts->lockfd, LOCK_EX); |