Re: tmux fix when renaming session with no client attached

2018-04-11 Thread Nicholas Marriott

Fixed, thanks!




On Tue, Apr 10, 2018 at 04:31:38PM -0700, Ryan Freeman wrote:
> Hey,
> 
> After upgrading OpenBSD 6.2 -> 6.3, a program I am building for $DAYJOB
> started malfunctioning.
> 
> Basically, we use tmux to manage running sessions of this program, which
> does automated work on things with console ports.
> 
> The session is started in a detached state with temp session name derived
> from a date(1) stamp (date +%s) plus a few random digits:
> 
> $ tmux -S /var/someprog/default new-session -s tmp1234456789
> 
> After the program is running, a command is executed by the running
> program to give it a proper session id, fetched from a database:
> 
> exec /usr/bin/tmux -S /var/someprog/default rename-session $SESSIONID
> 
> Tmux in OpenBSD 6.2 worked a-okay, tmux in 6.3 would return an error
> indicating no current client.  This seems similar to here:
> 
> https://marc.info/?l=openbsd-cvs=152183263526828=2
> 
> I took a stab at fixing this in cmd-rename-session.c like was done
> for cmd-rename-window.c, and the rebuilt tmux seems happy renaming
> sessions from a program running within it again.
> 
> OK?  Flames? :-)
> 
> -ryan
> 
> Index: cmd-rename-session.c
> ===
> RCS file: /cvs/src/usr.bin/tmux/cmd-rename-session.c,v
> retrieving revision 1.27
> diff -u -p -r1.27 cmd-rename-session.c
> --- cmd-rename-session.c1 Mar 2018 12:53:08 -   1.27
> +++ cmd-rename-session.c10 Apr 2018 23:21:52 -
> @@ -47,7 +47,7 @@ static enum cmd_retval
>  cmd_rename_session_exec(struct cmd *self, struct cmdq_item *item)
>  {
> struct args *args = self->args;
> -   struct client   *c = cmd_find_client(item, NULL, 0);
> +   struct client   *c = cmd_find_client(item, NULL, 1);
> struct session  *s = item->target.s;
> char*newname;
> 



tmux fix when renaming session with no client attached

2018-04-10 Thread Ryan Freeman
Hey,

After upgrading OpenBSD 6.2 -> 6.3, a program I am building for $DAYJOB
started malfunctioning.

Basically, we use tmux to manage running sessions of this program, which
does automated work on things with console ports.

The session is started in a detached state with temp session name derived
from a date(1) stamp (date +%s) plus a few random digits:

$ tmux -S /var/someprog/default new-session -s tmp1234456789

After the program is running, a command is executed by the running
program to give it a proper session id, fetched from a database:

exec /usr/bin/tmux -S /var/someprog/default rename-session $SESSIONID

Tmux in OpenBSD 6.2 worked a-okay, tmux in 6.3 would return an error
indicating no current client.  This seems similar to here:

https://marc.info/?l=openbsd-cvs=152183263526828=2

I took a stab at fixing this in cmd-rename-session.c like was done
for cmd-rename-window.c, and the rebuilt tmux seems happy renaming
sessions from a program running within it again.

OK?  Flames? :-)

-ryan

Index: cmd-rename-session.c
===
RCS file: /cvs/src/usr.bin/tmux/cmd-rename-session.c,v
retrieving revision 1.27
diff -u -p -r1.27 cmd-rename-session.c
--- cmd-rename-session.c1 Mar 2018 12:53:08 -   1.27
+++ cmd-rename-session.c10 Apr 2018 23:21:52 -
@@ -47,7 +47,7 @@ static enum cmd_retval
 cmd_rename_session_exec(struct cmd *self, struct cmdq_item *item)
 {
struct args *args = self->args;
-   struct client   *c = cmd_find_client(item, NULL, 0);
+   struct client   *c = cmd_find_client(item, NULL, 1);
struct session  *s = item->target.s;
char*newname;