From 02013228914a1d17e8df15d4e2b7950469395a5c Mon Sep 17 00:00:00 2001 From: Bjørn Mork Date: Fri, 15 May 2015 10:23:51 +0200 Subject: ripe-atlas-fw: imported version 4520 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bjørn Mork --- include/applets.h | 15 +++++ include/cmdtable.h | 23 +++++++ include/libbb.h | 27 ++++++++- include/usage.h | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 235 insertions(+), 2 deletions(-) create mode 100644 include/cmdtable.h (limited to 'include') diff --git a/include/applets.h b/include/applets.h index 0e4cbd5..eb1495e 100644 --- a/include/applets.h +++ b/include/applets.h @@ -95,6 +95,7 @@ USE_CHGRP(APPLET_NOEXEC(chgrp, chgrp, _BB_DIR_BIN, _BB_SUID_NEVER, chgrp)) USE_CHMOD(APPLET_NOEXEC(chmod, chmod, _BB_DIR_BIN, _BB_SUID_NEVER, chmod)) USE_CHOWN(APPLET_NOEXEC(chown, chown, _BB_DIR_BIN, _BB_SUID_NEVER, chown)) USE_CHPASSWD(APPLET(chpasswd, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) +USE_CHPASSWD(APPLET(chpasswd, _BB_DIR_BIN, _BB_SUID_NEVER)) USE_CHPST(APPLET(chpst, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_CHROOT(APPLET(chroot, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) USE_CHRT(APPLET(chrt, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) @@ -103,6 +104,7 @@ USE_CKSUM(APPLET(cksum, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_CLEAR(APPLET(clear, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_CMP(APPLET(cmp, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_COMM(APPLET(comm, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) +USE_CONDMV(APPLET_NOEXEC(condmv, condmv, _BB_DIR_BIN, _BB_SUID_NEVER, condmv)) USE_CP(APPLET_NOEXEC(cp, cp, _BB_DIR_BIN, _BB_SUID_NEVER, cp)) USE_CPIO(APPLET(cpio, _BB_DIR_BIN, _BB_SUID_NEVER)) USE_CROND(APPLET(crond, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) @@ -121,6 +123,7 @@ USE_MODPROBE_SMALL(APPLET_ODDNAME(depmod, modprobe, _BB_DIR_SBIN, _BB_SUID_NEVER USE_DEVFSD(APPLET(devfsd, _BB_DIR_SBIN, _BB_SUID_NEVER)) USE_DEVMEM(APPLET(devmem, _BB_DIR_SBIN, _BB_SUID_NEVER)) USE_DF(APPLET(df, _BB_DIR_BIN, _BB_SUID_NEVER)) +USE_DFRM(APPLET(dfrm, _BB_DIR_BIN, _BB_SUID_NEVER)) USE_APP_DHCPRELAY(APPLET(dhcprelay, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) USE_DIFF(APPLET(diff, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_DIRNAME(APPLET_NOFORK(dirname, dirname, _BB_DIR_USR_BIN, _BB_SUID_NEVER, dirname)) @@ -141,7 +144,13 @@ USE_EJECT(APPLET(eject, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_ENV(APPLET_NOEXEC(env, env, _BB_DIR_USR_BIN, _BB_SUID_NEVER, env)) USE_ENVDIR(APPLET_ODDNAME(envdir, chpst, _BB_DIR_USR_BIN, _BB_SUID_NEVER, envdir)) USE_ENVUIDGID(APPLET_ODDNAME(envuidgid, chpst, _BB_DIR_USR_BIN, _BB_SUID_NEVER, envuidgid)) +USE_EOOQD(APPLET(eooqd, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) +USE_EPERD(APPLET(eperd, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) USE_ETHER_WAKE(APPLET_ODDNAME(ether-wake, ether_wake, _BB_DIR_USR_BIN, _BB_SUID_NEVER, ether_wake)) +USE_EVHTTPGET(APPLET(evhttpget, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) +USE_EVPING(APPLET(evping, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) +USE_EVTDIG(APPLET(evtdig, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) +USE_EVTRACEROUTE(APPLET(evtraceroute, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_EXPAND(APPLET(expand, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_EXPR(APPLET(expr, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_FAKEIDENTD(APPLET(fakeidentd, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) @@ -179,6 +188,8 @@ USE_HEXDUMP(APPLET_NOEXEC(hexdump, hexdump, _BB_DIR_USR_BIN, _BB_SUID_NEVER, hex USE_HOSTID(APPLET_NOFORK(hostid, hostid, _BB_DIR_USR_BIN, _BB_SUID_NEVER, hostid)) USE_HOSTNAME(APPLET(hostname, _BB_DIR_BIN, _BB_SUID_NEVER)) USE_HTTPD(APPLET(httpd, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) +USE_HTTPGET(APPLET_NOFORK(httpget, httpget, _BB_DIR_BIN, _BB_SUID_NEVER, httpget)) +USE_HTTPPOST(APPLET_NOFORK(httppost, httppost, _BB_DIR_BIN, _BB_SUID_NEVER, httppost)) USE_HUSH(APPLET(hush, _BB_DIR_BIN, _BB_SUID_NEVER)) USE_HWCLOCK(APPLET(hwclock, _BB_DIR_SBIN, _BB_SUID_NEVER)) USE_ID(APPLET(id, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) @@ -273,6 +284,7 @@ USE_OPENVT(APPLET(openvt, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) //USE_PARSE(APPLET(parse, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_PASSWD(APPLET(passwd, _BB_DIR_USR_BIN, _BB_SUID_ALWAYS)) USE_PATCH(APPLET(patch, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) +USE_PERD(APPLET(perd, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) USE_PGREP(APPLET(pgrep, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_PIDOF(APPLET(pidof, _BB_DIR_BIN, _BB_SUID_NEVER)) USE_PING(APPLET(ping, _BB_DIR_BIN, _BB_SUID_MAYBE)) @@ -306,6 +318,7 @@ USE_RMMOD(APPLET(rmmod, _BB_DIR_SBIN, _BB_SUID_NEVER)) USE_MODPROBE_SMALL(APPLET_ODDNAME(rmmod, modprobe, _BB_DIR_SBIN, _BB_SUID_NEVER, modprobe)) USE_ROUTE(APPLET(route, _BB_DIR_SBIN, _BB_SUID_NEVER)) USE_RPM(APPLET(rpm, _BB_DIR_BIN, _BB_SUID_NEVER)) +USE_RPTRA6(APPLET(rptra6, _BB_DIR_BIN, _BB_SUID_NEVER)) USE_RPM2CPIO(APPLET(rpm2cpio, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_RTCWAKE(APPLET(rtcwake, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_RUN_PARTS(APPLET_ODDNAME(run-parts, run_parts, _BB_DIR_BIN, _BB_SUID_NEVER, run_parts)) @@ -314,6 +327,7 @@ USE_RUNLEVEL(APPLET(runlevel, _BB_DIR_SBIN, _BB_SUID_NEVER)) USE_RUNSV(APPLET(runsv, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_RUNSVDIR(APPLET(runsvdir, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_RX(APPLET(rx, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) +USE_RXTXRPT(APPLET(rxtxrpt, _BB_DIR_BIN, _BB_SUID_NEVER)) USE_SCRIPT(APPLET(script, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_SED(APPLET(sed, _BB_DIR_BIN, _BB_SUID_NEVER)) USE_SELINUXENABLED(APPLET(selinuxenabled, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) @@ -340,6 +354,7 @@ USE_SLEEP(APPLET_NOFORK(sleep, sleep, _BB_DIR_BIN, _BB_SUID_NEVER, sleep)) USE_SOFTLIMIT(APPLET_ODDNAME(softlimit, chpst, _BB_DIR_USR_BIN, _BB_SUID_NEVER, softlimit)) USE_SORT(APPLET_NOEXEC(sort, sort, _BB_DIR_USR_BIN, _BB_SUID_NEVER, sort)) USE_SPLIT(APPLET(split, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) +USE_SSLGETCERT(APPLET(sslgetcert, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) USE_START_STOP_DAEMON(APPLET_ODDNAME(start-stop-daemon, start_stop_daemon, _BB_DIR_SBIN, _BB_SUID_NEVER, start_stop_daemon)) USE_STAT(APPLET(stat, _BB_DIR_BIN, _BB_SUID_NEVER)) USE_STRINGS(APPLET(strings, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) diff --git a/include/cmdtable.h b/include/cmdtable.h new file mode 100644 index 0000000..b50d12e --- /dev/null +++ b/include/cmdtable.h @@ -0,0 +1,23 @@ +/* +cmdtable.h + +Commands for perd and ooqd +*/ + +int condmv_main(int argc, char *argv[]); +int httpget_main(int argc, char *argv[]); +int httppost_main(int argc, char *argv[]); +int sslgetcert_main(int argc, char *argv[]); + +static struct builtin +{ + const char *cmd; + int (*func)(int argc, char *argv[]); +} builtin_cmds[]= +{ + { "condmv", condmv_main }, + { "httppost", httppost_main }, + { "sslgetcert", sslgetcert_main }, + { NULL, 0 } +}; + diff --git a/include/libbb.h b/include/libbb.h index 08fed90..1231b31 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -302,6 +302,17 @@ extern char *bb_get_last_path_component_strip(char *path) FAST_FUNC; /* "abc/def/" -> "" and it never modifies 'path' */ extern char *bb_get_last_path_component_nostrip(const char *path) FAST_FUNC; +/* What's the best place for this? */ +#define ATLAS_HOME "/home/atlas" +#define ATLAS_CRONS ATLAS_HOME "/crons" +#define ATLAS_STATUS ATLAS_HOME "/status" +#define ATLAS_DATA_OUT ATLAS_HOME "/data/out" +#define ATLAS_DATA_OOQ_OUT ATLAS_HOME "/data/ooq.out" +#define ATLAS_DATA_NEW ATLAS_HOME "/data/new" +#define ATLAS_TIMESYNC_FILE ATLAS_STATUS "/timesync.vol" + +extern int validate_filename(const char *path, const char *prefix); + int ndelay_on(int fd) FAST_FUNC; int ndelay_off(int fd) FAST_FUNC; int close_on_exec_on(int fd) FAST_FUNC; @@ -319,6 +330,10 @@ char *xrealloc_getcwd_or_warn(char *cwd) FAST_FUNC; char *xmalloc_follow_symlinks(const char *path) FAST_FUNC; +extern size_t strlcat(char *__restrict dst, const char *__restrict src, + size_t n) __THROW __nonnull ((1, 2)); +extern size_t strlcpy(char *__restrict dst, const char *__restrict src, + size_t n) __THROW __nonnull ((1, 2)); enum { /* bb_signals(BB_FATAL_SIGS, handler) catches all signals which @@ -422,13 +437,20 @@ struct BUG_too_small { ) <= 127 ? 1 : -1]; }; - int xsocket(int domain, int type, int protocol) FAST_FUNC; void xbind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen) FAST_FUNC; +void xrbind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen, + void (*reportf)(int err)) FAST_FUNC; void xlisten(int s, int backlog) FAST_FUNC; void xconnect(int s, const struct sockaddr *s_addr, socklen_t addrlen) FAST_FUNC; +void xrconnect(int s, const struct sockaddr *s_addr, socklen_t addrlen, + void (*reportf)(int err)) FAST_FUNC; ssize_t xsendto(int s, const void *buf, size_t len, const struct sockaddr *to, socklen_t tolen) FAST_FUNC; +ssize_t xrsendto(int s, const void *buf, size_t len, const struct sockaddr *to, + socklen_t tolen, void (*reportf)(int err)) FAST_FUNC; +ssize_t rsendto(int s, const void *buf, size_t len, const struct sockaddr *to, + socklen_t tolen, void (*reportf)(int err)) FAST_FUNC; /* SO_REUSEADDR allows a server to rebind to an address that is already * "in use" by old connections to e.g. previous server instance which is * killed or crashed. Without it bind will fail until all such connections @@ -526,6 +548,8 @@ struct hostent *xgethostbyname(const char *name) FAST_FUNC; // Also mount.c and inetd.c are using gethostbyname(), // + inet_common.c has additional IPv4-only stuff +len_and_sockaddr* get_sock_lsa(int fd) FAST_FUNC; + void socket_want_pktinfo(int fd) FAST_FUNC; ssize_t send_to_from(int fd, void *buf, size_t len, int flags, @@ -1302,6 +1326,7 @@ procps_status_t* procps_scan(procps_status_t* sp, int flags) FAST_FUNC; /* Puts [comm] if cmdline is empty (-> process is a kernel thread) */ void read_cmdline(char *buf, int col, unsigned pid, const char *comm) FAST_FUNC; pid_t *find_pid_by_name(const char* procName) FAST_FUNC; +int comm_match(procps_status_t *p, const char *procName); pid_t *pidlist_reverse(pid_t *pidList) FAST_FUNC; diff --git a/include/usage.h b/include/usage.h index 63aff31..2fd5953 100644 --- a/include/usage.h +++ b/include/usage.h @@ -470,6 +470,14 @@ "\n -2 Suppress lines unique to FILE2" \ "\n -3 Suppress lines common to both files" \ +#define condmv_trivial_usage \ + "[-A ][-f] FILE1 FILE2" +#define condmv_full_usage "\n\n" \ + "Rename FILE1 to FILE2 if FILE2 does not exist\n" \ + "\nOptions:" \ + "\n -A Append before renaming FILE1" \ + "\n -f Force. Move even if FILE2 does exist" \ + #define bbconfig_trivial_usage \ "" #define bbconfig_full_usage "\n\n" \ @@ -602,6 +610,7 @@ "\n -d TIME Display TIME, not 'now'" \ "\n -r FILE Display last modification time of FILE" \ "\n [-s] TIME Set time to TIME" \ + "\n -S Interpret TIME as Unix seconds since epoch" \ USE_FEATURE_DATE_ISOFMT( \ "\n -D FMT Use FMT for str->date conversion" \ ) \ @@ -749,6 +758,12 @@ "Filesystem 512-blocks Used Available Capacity Mounted on\n" \ "/dev/sda3 17381728 17107080 274648 98% /\n" +#define dfrm_trivial_usage \ + " ..." + +#define dfrm_full_usage \ + " ..." + #define dhcprelay_trivial_usage \ "[client1,client2,...] [server_device]" #define dhcprelay_full_usage "\n\n" \ @@ -965,6 +980,37 @@ "\n -, -i Start with an empty environment" \ "\n -u Remove variable from the environment" \ +#define eooqd_trivial_usage \ + "" +#define eooqd_full_usage \ + +#define eperd_trivial_usage \ + "-fbSAD -P pidfile -l N " USE_FEATURE_CROND_D("-d N ") "-L LOGFILE -c DIR" +#define eperd_full_usage "\n\n" \ + " -f Foreground" \ + "\n -b Background (default)" \ + "\n -S Log to syslog (default)" \ + "\n -l Set log level. 0 is the most verbose, default 8" \ + USE_FEATURE_CROND_D( \ + "\n -d Set log level, log to stderr" \ + ) \ + "\n -L Log to file" \ + "\n -c Working dir" \ + "\n -A Atlas specific processing" \ + "\n -D Periodically kick watchdog" \ + "\n -P pidfile to use" \ + +#define evtdig_trivial_usage \ + "[-h|-i|-b|-s] ... " +#define evtdig_full_usage "\n\n" \ + "evtdig: a tiny implemention dns queries which supports 4 queries\n" \ + "\n not implemented: recursion" \ + "\n -h | --hostname-bind hostname.bind txt chaos " \ + "\n -i | id-server id.server txt chaos " \ + "\n -b | version-bind version-bind txt chaos " \ + "\n -s | soa to be implmented " \ + "\n RIPE NCC 2011 " \ + #define ether_wake_trivial_usage \ "[-b] [-i iface] [-p aa:bb:cc:dd[:ee:ff]] MAC" #define ether_wake_full_usage "\n\n" \ @@ -976,6 +1022,44 @@ "\n -i iface Interface to use (default eth0)" \ "\n -p pass Append four or six byte password PW to the packet" \ +#define evhttpget_trivial_usage \ + "[-ac0146] [--all [--combine]] [--get|--head|--post] [--post-file ] [--post-header ] [--post-footer ] [--store-headers ] [--user-agent ] [-A ] [-O ]" +#define evhttpget_full_usage "\n\n" \ + "\nOptions:" \ + "\n -a --all Report on all addresses" \ + "\n -c --combine Combine the reports for all address in one JSON" \ + "\n --get GET method" \ + "\n --head HEAD method" \ + "\n --post POST mehod" \ + "\n --post-file File to post" \ + "\n --post-header File to post (comes first)" \ + "\n --post-footer File to post (comes last)" \ + "\n --store-headers Number of bytes of the header to store"\ + "\n --user-agent User agent header" \ + "\n -0 HTTP/1.0" \ + "\n -1 HTTP/1.1" \ + "\n -A Atlas ID" \ + "\n -O Output file" \ + "\n -4 Only IPv4 addresses" \ + "\n -6 Only IPv6 addresses" \ + +#define evping_trivial_usage \ + "todo" +#define evping_full_usage "\n\n" \ + "\nOptions:" \ + "\n -c Number of packets" \ + "\n -s Size" \ + "\n -A Atlas measurement ID" \ + "\n -O Output file name" \ + "\n -4 IPv4" \ + "\n -6 IPv6" \ + "todo" + +#define evtraceroute_trivial_usage \ + "todo" +#define evtraceroute_full_usage "\n\n" \ + "todo" + #define expand_trivial_usage \ "[-i] [-t NUM] [FILE|-]" #define expand_full_usage "\n\n" \ @@ -1577,6 +1661,55 @@ "\n -e STRING HTML encode STRING" \ "\n -d STRING URL decode STRING" \ +#define httpget_trivial_usage \ + "[--append] [--delete-file] [--get|--head|--post] " \ + "[--post-file FILE] [--post-dir DIR] " \ + "[--post-header FILE] " \ + "[--post-footer FILE] [--set-time bound] " \ + "[--store-headers SIZE] [--store-body SIZE] [--summary] " \ + "[--user-agent STRING] [-0|-1] [-4|-6] [-A STRING] [-O FILE] URL" +#define httpget_full_usage "\n\n" \ +"Interact with a HTTP server using GET/HEAD/POST commands\n" \ +"\nOptions:" \ +"\n --append Append data to output file" \ +"\n --defile-file Delete files after they have been posted" \ +"\n --get HTTP GET command (default)" \ +"\n --head HTTP HEAD command" \ +"\n --post HTTP POST command" \ +"\n --post-file FILE Post this file" \ +"\n --post-dir DIR Post all files in this directory" \ +"\n --post-header FILE First post this file and do not delete it" \ +"\n --post-footer FILE Post this file last and do not delete it" \ +"\n --set-time bound Parse the time in the HTTP reply and set the" \ +"\n system time if it exceeds bound (in seconds)" \ +"\n --store-headers SIZE Write this amount of headers to the output" \ +"\n --store-body SIZE Write this amount of body to the output" \ +"\n --summary Write the summary output" \ +"\n --user-agent STRING Set the user-agent header to STRING" \ +"\n -0 Send the request using http/1.0" \ +"\n -1 Send the request using http/1.1 (default)" \ +"\n -4 Connect only over IPv4" \ +"\n -6 Connect only over IPv6" \ +"\n -A STRING Format the output for Atlas using STRING" \ +"\n -O FILE Write the body of the HTTP reply to FILE" + +#define httppost_trivial_usage \ + "[--delete-file] [--post-file FILE] [--post-dir DIR] " \ + "[--post-header FILE] " \ + "[--post-footer FILE] [--set-time bound] " \ + "[-O FILE] URL" +#define httppost_full_usage "\n\n" \ +"Post file using the HTTP POST command\n" \ +"\nOptions:" \ +"\n --defile-file Delete files after they have been posted" \ +"\n --post-file FILE Post this file" \ +"\n --post-dir DIR Post all files in this directory" \ +"\n --post-header FILE First post this file and do not delete it" \ +"\n --post-footer FILE Post this file last and do not delete it" \ +"\n --set-time bound Parse the time in the HTTP reply and set the" \ +"\n system time if it exceeds bound (in seconds)" \ +"\n -O FILE Write the body of the HTTP reply to FILE" + #define hwclock_trivial_usage \ USE_FEATURE_HWCLOCK_LONG_OPTIONS( \ "[-r|--show] [-s|--hctosys] [-w|--systohc]" \ @@ -2983,6 +3116,23 @@ "$ patch -p1 < example.diff\n" \ "$ patch -p0 -i example.diff" +#define perd_trivial_usage \ + "-fbSAD -P pidfile -l N " USE_FEATURE_CROND_D("-d N ") "-L LOGFILE -c DIR" +#define perd_full_usage "\n\n" \ + " -f Foreground" \ + "\n -b Background (default)" \ + "\n -S Log to syslog (default)" \ + "\n -l Set log level. 0 is the most verbose, default 8" \ + USE_FEATURE_CROND_D( \ + "\n -d Set log level, log to stderr" \ + ) \ + "\n -L Log to file" \ + "\n -c Working dir" \ + "\n -A Atlas specific processing" \ + "\n -D Periodically kick watchdog" \ + "\n -P pidfile to use" \ + + #define pgrep_trivial_usage \ "[-flnovx] pattern" #define pgrep_full_usage "\n\n" \ @@ -3394,6 +3544,10 @@ #define rpm2cpio_full_usage "\n\n" \ "Output a cpio archive of the rpm file" +#define rptra6_trivial_usage \ + +#define rptra6_full_usage "\n\n" \ + #define rtcwake_trivial_usage \ "[-a | -l | -u] [-d DEV] [-m MODE] [-s SECS | -t TIME]" #define rtcwake_full_usage "\n\n" \ @@ -3493,6 +3647,13 @@ #define rx_example_usage \ "$ rx /tmp/foo\n" +#define rxtxrpt_trivial_usage \ + "[-A STRING] [ipv6-info-cache]" + +#define rxtxrpt_full_usage "\n\n" \ + "Display RX and TX statistics as well as IPv6 info\n" \ + "\n -A STRING Use Atlas format with STRING" \ + #define script_trivial_usage \ "[-afq] [-c COMMAND] [OUTFILE]" #define script_full_usage "\n\n" \ @@ -3768,6 +3929,15 @@ "$ split TODO foo\n" \ "$ cat TODO | split -a 2 -l 2 TODO_\n" +#define sslgetcert_trivial_usage \ + "-[46] [-A ] [-p ] " +#define sslgetcert_full_usage "\n\n" \ + "\nOptions:" \ + "\n -A Atlas measurement ID" \ + "\n -p Port (default https)" \ + "\n -4 IPv4" \ + "\n -6 IPv6" \ + #define start_stop_daemon_trivial_usage \ "[OPTIONS] [-S|-K] ... [-- arguments...]" #define start_stop_daemon_full_usage "\n\n" \ @@ -4322,7 +4492,7 @@ "hello world\n" #define traceroute_trivial_usage \ - "[-FIldnrv] [-f 1st_ttl] [-m max_ttl] [-p port#] [-q nqueries]\n" \ + "[-FIldnrv46] [-f 1st_ttl] [-m max_ttl] [-p port#] [-q nqueries]\n" \ " [-s src_addr] [-t tos] [-w wait] [-g gateway] [-i iface]\n" \ " [-z pausemsecs] HOST [data size]" #define traceroute_full_usage "\n\n" \ -- cgit v1.2.3