Great :-)
Ok aja 

—
Antoine

> On 24 Jan 2020, at 13:02, Stuart Henderson <s...@spacehopper.org> wrote:
> 
> On 2020/01/23 21:20, Damien Miller wrote:
>>> On Thu, 23 Jan 2020, Damien Miller wrote:
>>> 
>>>> On Thu, 23 Jan 2020, Damien Miller wrote:
>>> 
>>>> What information would you like there? We could put the first N listen
>>>> addrs in the proctitle if that would help.
>>> 
>>> Maybe like this:
>>> 
>>> 63817 ??  S        0:00.05 sshd: [listen] on [0.0.0.0]:22, [::]:22, 0 of 
>>> 10-100
>> 
>> antoine@ said this was not sufficient, so please try the following:
>> 
>> 63817 ??  I        0:00.09 sshd: /usr/sbin/sshd [listener] 0 of 10-100 
>> startups
> 
> That works - etc/rc.d/sshd diff to match as follows:
> 
> Index: sshd
> ===================================================================
> RCS file: /cvs/src/etc/rc.d/sshd,v
> retrieving revision 1.5
> diff -u -p -r1.5 sshd
> --- sshd    22 Jan 2020 13:14:51 -0000    1.5
> +++ sshd    24 Jan 2020 11:59:52 -0000
> @@ -6,7 +6,7 @@ daemon="/usr/sbin/sshd"
> 
> . /etc/rc.d/rc.subr
> 
> -pexp="sshd: \[listener\].*"
> +pexp="sshd: ${daemon}${daemon_flags:+ ${daemon_flags}} \[listener\].*"
> 
> rc_reload() {
>    ${daemon} ${daemon_flags} -t && pkill -HUP -xf "${pexp}"
> 
> 
> 
>> 
>> diff --git a/sshd.c b/sshd.c
>> index f6139fe..b7ed0f3 100644
>> --- a/sshd.c
>> +++ b/sshd.c
>> @@ -240,6 +240,8 @@ void destroy_sensitive_data(void);
>> void demote_sensitive_data(void);
>> static void do_ssh2_kex(struct ssh *);
>> 
>> +static char *listener_proctitle;
>> +
>> /*
>>  * Close all listening sockets
>>  */
>> @@ -1032,9 +1034,9 @@ server_accept_loop(int *sock_in, int *sock_out, int 
>> *newsock, int *config_s)
>>     */
>>    for (;;) {
>>        if (ostartups != startups) {
>> -            setproctitle("[listener] %d of %d-%d startups",
>> -                startups, options.max_startups_begin,
>> -                options.max_startups);
>> +            setproctitle("%s [listener] %d of %d-%d startups",
>> +                listener_proctitle, startups,
>> +                options.max_startups_begin, options.max_startups);
>>            ostartups = startups;
>>        }
>>        if (received_sighup) {
>> @@ -1347,6 +1349,41 @@ accumulate_host_timing_secret(struct sshbuf 
>> *server_cfg,
>>    sshbuf_free(buf);
>> }
>> 
>> +static void
>> +xextendf(char **s, const char *sep, const char *fmt, ...)
>> +    __attribute__((__format__ (printf, 3, 4))) __attribute__((__nonnull__ 
>> (3)));
>> +static void
>> +xextendf(char **sp, const char *sep, const char *fmt, ...)
>> +{
>> +    va_list ap;
>> +    char *tmp1, *tmp2;
>> +
>> +    va_start(ap, fmt);
>> +    xvasprintf(&tmp1, fmt, ap);
>> +    va_end(ap);
>> +
>> +    if (*sp == NULL || **sp == '\0') {
>> +        free(*sp);
>> +        *sp = tmp1;
>> +        return;
>> +    }
>> +    xasprintf(&tmp2, "%s%s%s", *sp, sep, tmp1);
>> +    free(tmp1);
>> +    free(*sp);
>> +    *sp = tmp2;
>> +}
>> +
>> +static char *
>> +prepare_proctitle(int ac, char **av)
>> +{
>> +    char *ret = NULL;
>> +    int i;
>> +
>> +    for (i = 0; i < ac; i++)
>> +        xextendf(&ret, " ", "%s", av[i]);
>> +    return ret;
>> +}
>> +
>> /*
>>  * Main program for the daemon.
>>  */
>> @@ -1774,6 +1811,7 @@ main(int ac, char **av)
>>        rexec_argv[rexec_argc] = "-R";
>>        rexec_argv[rexec_argc + 1] = NULL;
>>    }
>> +    listener_proctitle = prepare_proctitle(ac, av);
>> 
>>    /* Ensure that umask disallows at least group and world write */
>>    new_umask = umask(0077) | 0022;
>> 
> 

Reply via email to