Update of /cvsroot/gaim/gaim/src/protocols/msn
In directory usw-pr-cvs1:/tmp/cvs-serv1789/protocols/msn
Modified Files:
msn.c
Log Message:
hi
Index: msn.c
===================================================================
RCS file: /cvsroot/gaim/gaim/src/protocols/msn/msn.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- msn.c 2001/10/25 18:30:22 1.32
+++ msn.c 2001/11/02 20:55:55 1.33
@@ -1579,7 +1579,7 @@
{
struct msn_data *md = gc->proto_data;
char buf[MSN_BUF_LEN];
- GSList *s;
+ GSList *s, *t = NULL;
if (gc->permdeny == PERMIT_ALL || gc->permdeny == DENY_SOME)
g_snprintf(buf, sizeof(buf), "BLP %d AL\r\n", ++md->trId);
@@ -1609,28 +1609,53 @@
s = g_slist_nth(gc->permit, g_slist_length(md->permit));
while (s) {
char *who = s->data;
+ s = s->next;
+ if (!strchr(who, '@')) {
+ t = g_slist_append(t, who);
+ continue;
+ }
g_snprintf(buf, sizeof(buf), "ADD %d AL %s %s\r\n", ++md->trId, who, who);
if (msn_write(md->fd, buf, strlen(buf)) < 0) {
hide_login_progress(gc, "Write error");
signoff(gc);
return;
}
- s = s->next;
}
+ while (t) {
+ char *who = t->data;
+ gc->permit = g_slist_remove(gc->permit, who);
+ g_free(who);
+ t = t->next;
+ }
+ if (t)
+ g_slist_free(t);
+ t = NULL;
g_slist_free(md->permit);
md->permit = NULL;
s = g_slist_nth(gc->deny, g_slist_length(md->deny));
while (s) {
char *who = s->data;
+ s = s->next;
+ if (!strchr(who, '@')) {
+ t = g_slist_append(t, who);
+ continue;
+ }
g_snprintf(buf, sizeof(buf), "ADD %d AL %s %s\r\n", ++md->trId, who, who);
if (msn_write(md->fd, buf, strlen(buf)) < 0) {
hide_login_progress(gc, "Write error");
signoff(gc);
return;
}
- s = s->next;
}
+ while (t) {
+ char *who = t->data;
+ gc->deny = g_slist_remove(gc->deny, who);
+ g_free(who);
+ t = t->next;
+ }
+ if (t)
+ g_slist_free(t);
g_slist_free(md->deny);
md->deny = NULL;
}
@@ -1640,6 +1665,13 @@
struct msn_data *md = gc->proto_data;
char buf[MSN_BUF_LEN];
+ if (!strchr(who, '@')) {
+ do_error_dialog(_("Invalid name"), _("MSN Error"));
+ gc->permit = g_slist_remove(gc->permit, who);
+ g_free(who);
+ return;
+ }
+
g_snprintf(buf, sizeof(buf), "ADD %d AL %s %s\r\n", ++md->trId, who, who);
if (msn_write(md->fd, buf, strlen(buf)) < 0) {
hide_login_progress(gc, "Write error");
@@ -1665,6 +1697,13 @@
{
struct msn_data *md = gc->proto_data;
char buf[MSN_BUF_LEN];
+
+ if (!strchr(who, '@')) {
+ do_error_dialog(_("Invalid name"), _("MSN Error"));
+ gc->deny = g_slist_remove(gc->deny, who);
+ g_free(who);
+ return;
+ }
g_snprintf(buf, sizeof(buf), "ADD %d BL %s %s\r\n", ++md->trId, who, who);
if (msn_write(md->fd, buf, strlen(buf)) < 0) {
|