summary refs log tree commit diff stats
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common/chanopt.c7
-rw-r--r--src/common/outbound.c7
2 files changed, 9 insertions, 5 deletions
diff --git a/src/common/chanopt.c b/src/common/chanopt.c
index 9e841cb6..820a31fb 100644
--- a/src/common/chanopt.c
+++ b/src/common/chanopt.c
@@ -128,6 +128,7 @@ chanopt_command (session *sess, char *tbuf, char *word[], char *word_eol[])
 			if (newval != -1)	/* set new value */
 			{
 				*(guint8 *)G_STRUCT_MEMBER_P(sess, chanopt[i].offset) = newval;
+				chanopt_changed = TRUE;
 			}
 
 			if (!quiet)	/* print value */
@@ -436,11 +437,9 @@ cont:
 
 	close (fh);
 
-	/* we're quiting, no need to free */
-
-	/*g_slist_free (chanopt_list);
+	g_slist_free (chanopt_list);
 	chanopt_list = NULL;
 
 	chanopt_open = FALSE;
-	chanopt_changed = FALSE;*/
+	chanopt_changed = FALSE;
 }
diff --git a/src/common/outbound.c b/src/common/outbound.c
index e6113488..95c8a354 100644
--- a/src/common/outbound.c
+++ b/src/common/outbound.c
@@ -575,8 +575,13 @@ cmd_unban (struct session *sess, char *tbuf, char *word[], char *word_eol[])
 static int
 cmd_chanopt (struct session *sess, char *tbuf, char *word[], char *word_eol[])
 {
+	int ret;
+	
 	/* chanopt.c */
-	return chanopt_command (sess, tbuf, word, word_eol);
+	ret = chanopt_command (sess, tbuf, word, word_eol);
+	chanopt_save_all ();
+	
+	return ret;
 }
 
 static int