msn-proxy-devel Mailing List for msn-proxy: the msn connection control (Page 8)
Brought to you by:
loos-br
You can subscribe to this list here.
| 2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(10) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2009 |
Jan
(45) |
Feb
(19) |
Mar
(21) |
Apr
(17) |
May
(43) |
Jun
(11) |
Jul
(3) |
Aug
(17) |
Sep
(17) |
Oct
(1) |
Nov
(4) |
Dec
(7) |
| 2010 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
(1) |
Oct
|
Nov
(3) |
Dec
(4) |
| 2011 |
Jan
(1) |
Feb
(3) |
Mar
(9) |
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(8) |
Jun
(19) |
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Luiz A. F. <lu...@ke...> - 2009-04-07 16:15:10
|
Boa Tarde, galera, ... to aproveitando que a lista ta meio parada pra
faze um off-topic aqui pra agradece ao LUIZ OTAVIO, pelo excelente trabalho
open-source que ele faz aqui com o msn-proxy, eu uso e, realmente, o código
é de excelente qualidade, ele funciona muito bem, PARABÉNS FERA...
Se precisar de algo estou a disposição, se estiver ao meu alcance ...
Abraços...
Atenciosamente.
Luiz Fachin
|
|
From: <lo...@us...> - 2009-03-20 17:24:21
|
Revision: 116
http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=116&view=rev
Author: loos-br
Date: 2009-03-20 17:24:15 +0000 (Fri, 20 Mar 2009)
Log Message:
-----------
MFC.
Modified Paths:
--------------
tags/msn-proxy-0.7/php/view-to.php
Modified: tags/msn-proxy-0.7/php/view-to.php
===================================================================
--- tags/msn-proxy-0.7/php/view-to.php 2009-03-20 17:23:45 UTC (rev 115)
+++ tags/msn-proxy-0.7/php/view-to.php 2009-03-20 17:24:15 UTC (rev 116)
@@ -55,7 +55,7 @@
$rsSB = mysql_query($sql, $mysql);
while($rsSB && ($rowSB = mysql_fetch_array($rsSB))) {
- if(connection_status() != CONNECTION_NORMAL) {
+ if(connection_status() != CONNECTION_NORMAL)
break;
switch ($rowSB['type']) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <lo...@us...> - 2009-03-20 17:23:50
|
Revision: 115
http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=115&view=rev
Author: loos-br
Date: 2009-03-20 17:23:45 +0000 (Fri, 20 Mar 2009)
Log Message:
-----------
corrigindo o erro encontrado pelo Rodrigo Kiyoshi. mea culpa.
Modified Paths:
--------------
trunk/php/view-to.php
Modified: trunk/php/view-to.php
===================================================================
--- trunk/php/view-to.php 2009-03-17 01:08:32 UTC (rev 114)
+++ trunk/php/view-to.php 2009-03-20 17:23:45 UTC (rev 115)
@@ -55,7 +55,7 @@
$rsSB = mysql_query($sql, $mysql);
while($rsSB && ($rowSB = mysql_fetch_array($rsSB))) {
- if(connection_status() != CONNECTION_NORMAL) {
+ if(connection_status() != CONNECTION_NORMAL)
break;
switch ($rowSB['type']) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Fábio M. <ilu...@gm...> - 2009-03-19 19:55:11
|
Opa, peço desculpas pelo ocorrido. Quanto a idéia, não achei ridiculo não, quem fica de papinho e risadinhas no msn tem que ser punido.. ahaha! Vou fazer diferente, quando a idéia estiver concreta, posto os resultados. De qualquer forma, Grato. 2009/3/19 Evaldo Gardenali <ev...@ga...> > Fábio, > > Por favor, ao iniciar um assunto novo, não responda a um assunto velho da > lista, mas sim componha um novo email, com o título de acordo. Isso confunde > os clientes de email do povo, e atrapalha a leitura do seu post, a > organização das mensagens e os arquivos pra quem quiser consultar > futuramente. > > Se você não sabe que informação é relevante pra você, você não precisa de > gráficos nem relatórios. Definição de requisitos e de objetivos vem ANTES da > definição da técnica a ser utilizada. E infelizmente, acho difícil que o que > alguem da lista responder se encaixe na sua realidade, pois eu poderia te > dizer pra fazer um gráfico pizza de qual usuário perdeu mais tempo digitando > mensagens 'kkkkkk%' no dia, e você iria achar isso ridículo ;) > > Evaldo > > Fábio Mello wrote: > >> Gráficos.. >> Galera tou pensando em adicionar umas triggers no banco de dados para >> fazer graficos sobre o uso do sistema.. Porém, eu ainda não sei que tipo de >> gráfico eu poderia criar(mensagens enviadas por dia??) (tempo online??) >> >> Me deêm sugestões aí....Que o patrão pediu mas não sabe nem como ele >> quer... >> >> 2009/3/16 <lo...@us... <mailto: >> lo...@us...>> >> >> >> Revision: 114 >> >> http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=114&view=rev >> <http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=114&view=rev> >> Author: loos-br >> Date: 2009-03-17 01:08:32 +0000 (Tue, 17 Mar 2009) >> >> Log Message: >> ----------- >> revertendo a ultima alteracao. >> >> Modified Paths: >> -------------- >> tags/msn-proxy-0.7/contacts.c >> >> Modified: tags/msn-proxy-0.7/contacts.c >> =================================================================== >> --- tags/msn-proxy-0.7/contacts.c 2009-03-16 15:24:54 UTC >> (rev 113) >> +++ tags/msn-proxy-0.7/contacts.c 2009-03-17 01:08:32 UTC >> (rev 114) >> @@ -278,13 +278,7 @@ >> if (contact == NULL) continue; >> >> /* decode lists */ >> - contact->lists = 0; >> - if (lists & 0x01) >> - contact->lists |= RL; >> - if (lists & 0x02) >> - contact->lists |= AL | FL; >> - if (lists & 0x04) >> - contact->lists |= BL; >> + contact->lists = lists | RL; >> >> if (str_copy(&contact->dn, contact->c.s, >> contact->c.len) == 0) >> die_nomem(); >> >> >> This was sent by the SourceForge.net collaborative development >> platform, the world's largest Open Source development site. >> >> >> ------------------------------------------------------------------------------ >> Apps built with the Adobe(R) Flex(R) framework and Flex >> Builder(TM) are >> powering Web 2.0 with engaging, cross-platform capabilities. >> Quickly and >> easily build your RIAs with Flex Builder, the Eclipse(TM)based >> development >> software that enables intelligent coding and step-through debugging. >> Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com >> _______________________________________________ >> msn-proxy-devel mailing list >> msn...@li... >> <mailto:msn...@li...> >> https://lists.sourceforge.net/lists/listinfo/msn-proxy-devel >> >> >> ------------------------------------------------------------------------ >> >> >> ------------------------------------------------------------------------------ >> Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are >> powering Web 2.0 with engaging, cross-platform capabilities. Quickly and >> easily build your RIAs with Flex Builder, the Eclipse(TM)based development >> software that enables intelligent coding and step-through debugging. >> Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> msn-proxy-devel mailing list >> msn...@li... >> https://lists.sourceforge.net/lists/listinfo/msn-proxy-devel >> >> > > > > > ------------------------------------------------------------------------------ > Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are > powering Web 2.0 with engaging, cross-platform capabilities. Quickly and > easily build your RIAs with Flex Builder, the Eclipse(TM)based development > software that enables intelligent coding and step-through debugging. > Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com > _______________________________________________ > msn-proxy-devel mailing list > msn...@li... > https://lists.sourceforge.net/lists/listinfo/msn-proxy-devel > > |
|
From: Evaldo G. <ev...@ga...> - 2009-03-19 19:48:29
|
Fábio, Por favor, ao iniciar um assunto novo, não responda a um assunto velho da lista, mas sim componha um novo email, com o título de acordo. Isso confunde os clientes de email do povo, e atrapalha a leitura do seu post, a organização das mensagens e os arquivos pra quem quiser consultar futuramente. Se você não sabe que informação é relevante pra você, você não precisa de gráficos nem relatórios. Definição de requisitos e de objetivos vem ANTES da definição da técnica a ser utilizada. E infelizmente, acho difícil que o que alguem da lista responder se encaixe na sua realidade, pois eu poderia te dizer pra fazer um gráfico pizza de qual usuário perdeu mais tempo digitando mensagens 'kkkkkk%' no dia, e você iria achar isso ridículo ;) Evaldo Fábio Mello wrote: > Gráficos.. > Galera tou pensando em adicionar umas triggers no banco de dados para > fazer graficos sobre o uso do sistema.. Porém, eu ainda não sei que > tipo de gráfico eu poderia criar(mensagens enviadas por dia??) (tempo > online??) > > Me deêm sugestões aí....Que o patrão pediu mas não sabe nem como ele > quer... > > 2009/3/16 <lo...@us... > <mailto:lo...@us...>> > > Revision: 114 > > http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=114&view=rev > <http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=114&view=rev> > Author: loos-br > Date: 2009-03-17 01:08:32 +0000 (Tue, 17 Mar 2009) > > Log Message: > ----------- > revertendo a ultima alteracao. > > Modified Paths: > -------------- > tags/msn-proxy-0.7/contacts.c > > Modified: tags/msn-proxy-0.7/contacts.c > =================================================================== > --- tags/msn-proxy-0.7/contacts.c 2009-03-16 15:24:54 UTC > (rev 113) > +++ tags/msn-proxy-0.7/contacts.c 2009-03-17 01:08:32 UTC > (rev 114) > @@ -278,13 +278,7 @@ > if (contact == NULL) continue; > > /* decode lists */ > - contact->lists = 0; > - if (lists & 0x01) > - contact->lists |= RL; > - if (lists & 0x02) > - contact->lists |= AL | FL; > - if (lists & 0x04) > - contact->lists |= BL; > + contact->lists = lists | RL; > > if (str_copy(&contact->dn, contact->c.s, > contact->c.len) == 0) > die_nomem(); > > > This was sent by the SourceForge.net collaborative development > platform, the world's largest Open Source development site. > > ------------------------------------------------------------------------------ > Apps built with the Adobe(R) Flex(R) framework and Flex > Builder(TM) are > powering Web 2.0 with engaging, cross-platform capabilities. > Quickly and > easily build your RIAs with Flex Builder, the Eclipse(TM)based > development > software that enables intelligent coding and step-through debugging. > Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com > _______________________________________________ > msn-proxy-devel mailing list > msn...@li... > <mailto:msn...@li...> > https://lists.sourceforge.net/lists/listinfo/msn-proxy-devel > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are > powering Web 2.0 with engaging, cross-platform capabilities. Quickly and > easily build your RIAs with Flex Builder, the Eclipse(TM)based development > software that enables intelligent coding and step-through debugging. > Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com > ------------------------------------------------------------------------ > > _______________________________________________ > msn-proxy-devel mailing list > msn...@li... > https://lists.sourceforge.net/lists/listinfo/msn-proxy-devel > |
|
From: Fábio M. <ilu...@gm...> - 2009-03-19 18:31:03
|
Gráficos.. Galera tou pensando em adicionar umas triggers no banco de dados para fazer graficos sobre o uso do sistema.. Porém, eu ainda não sei que tipo de gráfico eu poderia criar(mensagens enviadas por dia??) (tempo online??) Me deêm sugestões aí....Que o patrão pediu mas não sabe nem como ele quer... 2009/3/16 <lo...@us...> > Revision: 114 > http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=114&view=rev > Author: loos-br > Date: 2009-03-17 01:08:32 +0000 (Tue, 17 Mar 2009) > > Log Message: > ----------- > revertendo a ultima alteracao. > > Modified Paths: > -------------- > tags/msn-proxy-0.7/contacts.c > > Modified: tags/msn-proxy-0.7/contacts.c > =================================================================== > --- tags/msn-proxy-0.7/contacts.c 2009-03-16 15:24:54 UTC (rev 113) > +++ tags/msn-proxy-0.7/contacts.c 2009-03-17 01:08:32 UTC (rev 114) > @@ -278,13 +278,7 @@ > if (contact == NULL) continue; > > /* decode lists */ > - contact->lists = 0; > - if (lists & 0x01) > - contact->lists |= RL; > - if (lists & 0x02) > - contact->lists |= AL | FL; > - if (lists & 0x04) > - contact->lists |= BL; > + contact->lists = lists | RL; > > if (str_copy(&contact->dn, contact->c.s, contact->c.len) == 0) > die_nomem(); > > > This was sent by the SourceForge.net collaborative development platform, > the world's largest Open Source development site. > > > ------------------------------------------------------------------------------ > Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are > powering Web 2.0 with engaging, cross-platform capabilities. Quickly and > easily build your RIAs with Flex Builder, the Eclipse(TM)based development > software that enables intelligent coding and step-through debugging. > Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com > _______________________________________________ > msn-proxy-devel mailing list > msn...@li... > https://lists.sourceforge.net/lists/listinfo/msn-proxy-devel > |
|
From: <lo...@us...> - 2009-03-17 01:08:54
|
Revision: 114
http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=114&view=rev
Author: loos-br
Date: 2009-03-17 01:08:32 +0000 (Tue, 17 Mar 2009)
Log Message:
-----------
revertendo a ultima alteracao.
Modified Paths:
--------------
tags/msn-proxy-0.7/contacts.c
Modified: tags/msn-proxy-0.7/contacts.c
===================================================================
--- tags/msn-proxy-0.7/contacts.c 2009-03-16 15:24:54 UTC (rev 113)
+++ tags/msn-proxy-0.7/contacts.c 2009-03-17 01:08:32 UTC (rev 114)
@@ -278,13 +278,7 @@
if (contact == NULL) continue;
/* decode lists */
- contact->lists = 0;
- if (lists & 0x01)
- contact->lists |= RL;
- if (lists & 0x02)
- contact->lists |= AL | FL;
- if (lists & 0x04)
- contact->lists |= BL;
+ contact->lists = lists | RL;
if (str_copy(&contact->dn, contact->c.s, contact->c.len) == 0)
die_nomem();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <lo...@us...> - 2009-03-16 15:24:59
|
Revision: 113
http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=113&view=rev
Author: loos-br
Date: 2009-03-16 15:24:54 +0000 (Mon, 16 Mar 2009)
Log Message:
-----------
revertendo a mudanca anterior...
Modified Paths:
--------------
trunk/contacts.c
Modified: trunk/contacts.c
===================================================================
--- trunk/contacts.c 2009-03-15 17:30:28 UTC (rev 112)
+++ trunk/contacts.c 2009-03-16 15:24:54 UTC (rev 113)
@@ -278,13 +278,7 @@
if (contact == NULL) continue;
/* decode lists */
- contact->lists = 0;
- if (lists & 0x01)
- contact->lists |= RL;
- if (lists & 0x02)
- contact->lists |= AL | FL;
- if (lists & 0x04)
- contact->lists |= BL;
+ contact->lists = lists | RL;
if (str_copy(&contact->dn, contact->c.s, contact->c.len) == 0)
die_nomem();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <lo...@us...> - 2009-03-15 17:31:01
|
Revision: 112
http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=112&view=rev
Author: loos-br
Date: 2009-03-15 17:30:28 +0000 (Sun, 15 Mar 2009)
Log Message:
-----------
backporting todas as alteracoes do Leonardo (e as minhas tambem).
preparando para o release da versao msn-proxy-0.7
Modified Paths:
--------------
tags/msn-proxy-0.7/ChangeLog
tags/msn-proxy-0.7/check-cmd.c
tags/msn-proxy-0.7/client.c
tags/msn-proxy-0.7/client.h
tags/msn-proxy-0.7/command.c
tags/msn-proxy-0.7/config.c
tags/msn-proxy-0.7/contacts.c
tags/msn-proxy-0.7/msn-proxy.c
tags/msn-proxy-0.7/msn-proxy.h
tags/msn-proxy-0.7/msnp18.h
tags/msn-proxy-0.7/mysql.c
tags/msn-proxy-0.7/mysql.h
tags/msn-proxy-0.7/net-io.c
tags/msn-proxy-0.7/ns.c
tags/msn-proxy-0.7/p2p.c
tags/msn-proxy-0.7/php/fl.inc.php
tags/msn-proxy-0.7/php/group.inc.php
tags/msn-proxy-0.7/php/user.inc.php
tags/msn-proxy-0.7/php/user.php
tags/msn-proxy-0.7/php/view-to.php
tags/msn-proxy-0.7/sb.c
tags/msn-proxy-0.7/sb.h
tags/msn-proxy-0.7/server.c
tags/msn-proxy-0.7/server.h
tags/msn-proxy-0.7/sql.c
tags/msn-proxy-0.7/user.c
tags/msn-proxy-0.7/user.h
tags/msn-proxy-0.7/xml.c
Added Paths:
-----------
tags/msn-proxy-0.7/
tags/msn-proxy-0.7/mysql/UPDATING
tags/msn-proxy-0.7/mysql/mysql-update-0.6.3-to-0.7
tags/msn-proxy-0.7/php/lists.inc.php
Removed Paths:
-------------
tags/msn-proxy-0.7/php/al.inc.php
tags/msn-proxy-0.7/php/bl.inc.php
Modified: tags/msn-proxy-0.7/ChangeLog
===================================================================
--- trunk/ChangeLog 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/ChangeLog 2009-03-15 17:30:28 UTC (rev 112)
@@ -1,3 +1,21 @@
+2009-03-15
+
+ - Varios memory leaks (pra n\xE3o dizer todos) foram corrigidos pelo Leonardo.
+
+ - Corrigido a visualiza\xE7\xE3o de cameras nos contatos.
+
+ - Corrigido a visualiza\xE7\xE3o de quem n\xE3o tem voc\xEA na lista de contatos.
+
+ - Corrigido um bug na fun\xE7\xE3o net-connect (ainda bem que nunca esbarramos
+ neste bug antes).
+
+ - Algumas atualiza\xE7\xF5es e pequenas corre\xE7\xF5es na interface web.
+
+ - leia o documento mysql/UPDATING para atualiza\xE7\xE3o da base de dados
+
+ - Release da vers\xE3o msn-proxy-0.7
+
+
2009-02-05
- Adicionada a opcao de visualizar as conversas atraves da lista de contatos.
Modified: tags/msn-proxy-0.7/check-cmd.c
===================================================================
--- trunk/check-cmd.c 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/check-cmd.c 2009-03-15 17:30:28 UTC (rev 112)
@@ -87,8 +87,8 @@
erro = strtoul((char *)cmd->cmd.s, &ep, 10);
if (errno == 0 && *cmd->cmd.s && (ep && *ep == 0)) {
- /* ignore the 241, 508 and 509 commands */
- if (erro != 509 && erro != 508 && erro != 241) {
+ /* ignore the 241, 508, 509 and 511 commands */
+ if (erro != 511 && erro != 509 && erro != 508 && erro != 241) {
log->debug("===> warning error received\n");
return(ROK);
}
Modified: tags/msn-proxy-0.7/client.c
===================================================================
--- trunk/client.c 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/client.c 2009-03-15 17:30:28 UTC (rev 112)
@@ -21,7 +21,7 @@
#include <errno.h>
#include <stdlib.h>
-#include <strings.h>
+#include <string.h>
#include <unistd.h>
#include "client.h"
@@ -50,7 +50,7 @@
client = (client_ *)malloc(sizeof(*client));
if (client == (client_ *)0)
die_nomem();
- bzero(client, sizeof(*client));
+ memset(client, 0, sizeof(*client));
/* prepare commands */
commands_init(&client->commands);
Modified: tags/msn-proxy-0.7/client.h
===================================================================
--- trunk/client.h 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/client.h 2009-03-15 17:30:28 UTC (rev 112)
@@ -51,5 +51,6 @@
client_ *client_disconnect(client_ *client);
void real_client_disconnect(client_ *client);
void shift_client_commands(client_ *client, command *cmd);
+int client_flush_commands(client_ *client);
#endif
Modified: tags/msn-proxy-0.7/command.c
===================================================================
--- trunk/command.c 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/command.c 2009-03-15 17:30:28 UTC (rev 112)
@@ -66,12 +66,15 @@
if (strcasecmp((char *)cmd->cmd.s, "241") != 0 &&
strcasecmp((char *)cmd->cmd.s, "508") != 0 &&
strcasecmp((char *)cmd->cmd.s, "509") != 0 &&
+ strcasecmp((char *)cmd->cmd.s, "511") != 0 &&
strcasecmp((char *)cmd->cmd.s, "ADL") != 0 &&
strcasecmp((char *)cmd->cmd.s, "FQY") != 0 &&
strcasecmp((char *)cmd->cmd.s, "GCF") != 0 &&
strcasecmp((char *)cmd->cmd.s, "MSG") != 0 &&
+ strcasecmp((char *)cmd->cmd.s, "NFY") != 0 &&
strcasecmp((char *)cmd->cmd.s, "NOT") != 0 &&
strcasecmp((char *)cmd->cmd.s, "PAG") != 0 &&
+ strcasecmp((char *)cmd->cmd.s, "PUT") != 0 &&
strcasecmp((char *)cmd->cmd.s, "QRY") != 0 &&
strcasecmp((char *)cmd->cmd.s, "RML") != 0 &&
strcasecmp((char *)cmd->cmd.s, "UBM") != 0 &&
@@ -434,6 +437,7 @@
void
free_command(command *cmd) {
str_free(&cmd->cmd);
+ str_free(&cmd->obuf);
str_free(&cmd->payload);
free_command_args(cmd);
free(cmd);
Modified: tags/msn-proxy-0.7/config.c
===================================================================
--- trunk/config.c 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/config.c 2009-03-15 17:30:28 UTC (rev 112)
@@ -59,13 +59,14 @@
};
int config_default(config_ *config) {
- bzero(config, sizeof(*config));
+ memset(config, 0, sizeof(*config));
+
/* default config file path */
if (str_copys(&config->file, (unsigned char *)DEFAULT_CONFIG_PATH) == 0 ||
- str_cats(&config->file, (unsigned char *)DEFAULT_CONFIG_FILE) == 0) {
+ str_cats(&config->file, (unsigned char *)DEFAULT_CONFIG_FILE) == 0) {
- die_nomem();
+ die_nomem();
}
/* default M$ notification server */
@@ -273,7 +274,9 @@
}
int config_set_path(string *file, char *path) {
- str_zero(file);
+ /* Deallocate previous memory */
+ str_free(file);
+ str_zero(file);
if (str_cats(file, (unsigned char *)path) == 0)
die_nomem();
Modified: tags/msn-proxy-0.7/contacts.c
===================================================================
--- trunk/contacts.c 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/contacts.c 2009-03-15 17:30:28 UTC (rev 112)
@@ -259,7 +259,6 @@
} else if (tag_opt->name.len > 0 &&
strcmp((char *)tag_opt->name.s, "l") == 0) {
lists = atol((char *)tag_opt->value.s);
- lists |= RL;
} else if (tag_opt->name.len > 0 &&
strcmp((char *)tag_opt->name.s, "t") == 0) {
}
@@ -277,7 +276,16 @@
str_free(&c);
if (contact == NULL) continue;
- contact->lists = lists;
+
+ /* decode lists */
+ contact->lists = 0;
+ if (lists & 0x01)
+ contact->lists |= RL;
+ if (lists & 0x02)
+ contact->lists |= AL | FL;
+ if (lists & 0x04)
+ contact->lists |= BL;
+
if (str_copy(&contact->dn, contact->c.s, contact->c.len) == 0)
die_nomem();
if (str_copys(&contact->status, (unsigned char *)"OFF") == 0)
Modified: tags/msn-proxy-0.7/msn-proxy.c
===================================================================
--- trunk/msn-proxy.c 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/msn-proxy.c 2009-03-15 17:30:28 UTC (rev 112)
@@ -37,10 +37,37 @@
config_ config;
struct event evctl;
struct event ev;
+struct event_base *base = (struct event_base *)0;
-void die_nomem(void) { perror("malloc"); exit(51); }
-void die_err(char *msg) { if (msg) { io_printf(1, "%S\n", msg); } exit(1); }
+/* prevents memory leaks when program exits */
+void cleanup(void) {
+
+ db_close(&config.mysql);
+ str_free(&config.default_ns_host);
+ str_free(&config.default_ns_port);
+ str_free(&config.defaults.internal_host);
+ str_free(&config.file);
+ str_free(&config.listen_host);
+ str_free(&config.listen_port);
+ str_free(&config.defaults.internal_host);
+ str_free(&config.mysql.db);
+ str_free(&config.mysql.host);
+ str_free(&config.mysql.pass);
+ str_free(&config.mysql.user);
+ if (base) {
+ event_base_free(base);
+ }
+ /* free sql tree - tables */
+ free_sqltable_tree(&config.mysql);
+ /* free users tree - contacts and users */
+ free_users_tree();
+
+}
+
+void die_nomem(void) { perror("malloc"); cleanup(); exit(51); }
+void die_err(char *msg) { if (msg) { io_printf(1, "%S\n", msg); } cleanup(); exit(1); }
void die_bug(void) { io_printf(1, "oops bug here ! call my doctor !\n"); exit(2); }
+void die_suc(char *msg) { if (msg) { io_printf(1, "%S\n", msg); cleanup(); } exit(1); }
void usage(void) {
io_printf(1,
@@ -82,8 +109,15 @@
exit(0);
}
+void sigdie(void) {
+ /* Exit with SUCCESS */
+ die_suc("Exit msn-proxy!\n");
+}
+
+
int
main(int argc, char **argv) {
+
int bg;
int ch;
int ctlfd;
@@ -154,7 +188,7 @@
/* detach */
if (bg == 0) {
//detach();
- } else {
+ } else {
daemonize();
}
@@ -177,6 +211,11 @@
/* set SIGALRM to reload ACL defaults */
sig_catch(SIGALRM, (void *)sql_read_defaults);
+ /* set some signals */
+ sig_catch(SIGTERM, sigdie);
+ sig_catch(SIGQUIT, sigdie);
+ sig_catch(SIGINT, sigdie);
+
print_config(&config);
ctlfd = unix_listen(config.backlog);
@@ -200,7 +239,7 @@
user_rb_init();
/* setup libevent */
- event_init();
+ base = event_init();
/*
* setup persistent event on listenfd
Modified: tags/msn-proxy-0.7/msn-proxy.h
===================================================================
--- trunk/msn-proxy.h 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/msn-proxy.h 2009-03-15 17:30:28 UTC (rev 112)
@@ -114,6 +114,10 @@
void die_nomem(void);
void die_err(char *msg);
+void die_bug(void);
+void die_suc(char *msg);
+void cleanup(void);
+void sigdie(void);
extern config_ config;
Modified: tags/msn-proxy-0.7/msnp18.h
===================================================================
--- trunk/msnp18.h 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/msnp18.h 2009-03-15 17:30:28 UTC (rev 112)
@@ -38,6 +38,7 @@
{ "241", 2, check_args },
{ "508", 2, check_args },
{ "509", 2, check_args },
+ { "511", 2, check_args },
{ "ADL", 0, msnp18_adl_sync },
{ "BLP", 2, check_args },
{ "CHG", 0, check_ok },
@@ -46,10 +47,12 @@
{ "FQY", 2, check_args },
{ "ILN", 0, msnp13_contact_initial_state },
{ "MSG", 3, check_args },
+ { "NFY", 2, check_args },
{ "NLN", 0, msn_contact_change },
{ "NOT", 1, check_args },
{ "OUT", 1, check_args },
{ "PRP", 0, msnp12_update_dn },
+ { "PUT", 3, check_args },
{ "QNG", 1, check_args },
{ "QRY", 1, check_args },
{ "RML", 2, check_args },
@@ -87,6 +90,7 @@
{ "OUT", 0, check_ok },
{ "PNG", 0, check_ok },
{ "PRP", 3, check_args },
+ { "PUT", 2, check_args },
{ "QRY", 3, check_args },
{ "RML", 2, check_args },
{ "URL", 0, msn_url },
Added: tags/msn-proxy-0.7/mysql/UPDATING
===================================================================
--- tags/msn-proxy-0.7/mysql/UPDATING (rev 0)
+++ tags/msn-proxy-0.7/mysql/UPDATING 2009-03-15 17:30:28 UTC (rev 112)
@@ -0,0 +1,8 @@
+Type this at you prompt (change to fit your local changes):
+
+$ mysql -p -u msn-proxy msn-proxy < mysql-update-0.6.3-to-0.7
+Enter password: <type your password here>
+$
+
+Okay, it is ready !
+
Added: tags/msn-proxy-0.7/mysql/mysql-update-0.6.3-to-0.7
===================================================================
--- tags/msn-proxy-0.7/mysql/mysql-update-0.6.3-to-0.7 (rev 0)
+++ tags/msn-proxy-0.7/mysql/mysql-update-0.6.3-to-0.7 2009-03-15 17:30:28 UTC (rev 112)
@@ -0,0 +1,2 @@
+ALTER TABLE contacts ADD contact_chat enum('NO', 'YES') not null default 'NO' after contact_deny,
+ ADD contact_flags2 bigint not null default 0 after contact_flags;
Modified: tags/msn-proxy-0.7/mysql.c
===================================================================
--- trunk/mysql.c 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/mysql.c 2009-03-15 17:30:28 UTC (rev 112)
@@ -35,8 +35,7 @@
#define print_bar(a) (a[strlen(a) - 1] == '/') ? "" : "/"
int
-tablecmp(struct table__ *t1, struct table__ *t2)
-{
+tablecmp(struct table__ *t1, struct table__ *t2) {
if (t1 == NULL ||
t2 == NULL ||
t1->name.len == 0 ||
@@ -49,39 +48,33 @@
RB_GENERATE(tables, table__, table_, tablecmp)
MYSQL_ROW
-db_fetch_row(res)
-MYSQL_RES *res;
-{
+db_fetch_row(MYSQL_RES *res) {
return(mysql_fetch_row(res));
}
u_int64_t
-db_count(MYSQL_RES *res)
-{
+db_count(MYSQL_RES *res) {
if(res == NULL)
return 0;
return(mysql_num_rows(res));
}
u_int64_t
-db_affected_rows(MYSQL *mysql)
-{
+db_affected_rows(MYSQL *mysql) {
if(mysql == NULL)
return 0;
return(mysql_affected_rows(mysql));
}
u_int64_t
-db_last_id(MYSQL *mysql)
-{
+db_last_id(MYSQL *mysql) {
if(mysql == NULL)
return 0;
return(mysql_insert_id(mysql));
}
MYSQL_RES *
-db_free(MYSQL_RES *res)
-{
+db_free(MYSQL_RES *res) {
if(res == NULL)
return((MYSQL_RES *)NULL);
@@ -91,8 +84,7 @@
}
char *
-db_escape(mysql_ *mysql, char *from)
-{
+db_escape(mysql_ *mysql, char *from) {
char *rtrn;
size_t len;
@@ -111,8 +103,7 @@
}
MYSQL_RES *
-db_query(mysql_ *mysql, string *query)
-{
+db_query(mysql_ *mysql, string *query) {
MYSQL_RES *res;
if(query == NULL || query->s == NULL || *query->s == 0)
@@ -129,8 +120,7 @@
}
int
-db_query2(mysql_ *mysql, string *query)
-{
+db_query2(mysql_ *mysql, string *query) {
if (query == NULL || query->s == NULL || *query->s == 0)
return(RFAIL);
@@ -144,8 +134,7 @@
}
int
-db_create_all(mysql_ *mysql)
-{
+db_create_all(mysql_ *mysql) {
struct table__ *table;
string sql;
@@ -170,8 +159,7 @@
}
int
-db_check(mysql_ *mysql)
-{
+db_check(mysql_ *mysql) {
struct table__ find;
struct table__ *table;
MYSQL_RES *res;
@@ -201,8 +189,7 @@
}
char *
-db_error(mysql_ *mysql)
-{
+db_error(mysql_ *mysql) {
char *p;
p = (char *)mysql_error(&mysql->mysql);
@@ -214,8 +201,7 @@
int
db_init(mysql_ *mysql, void (*debug)(const char *, ...),
- void (*info)(const char *, ...))
-{
+ void (*info)(const char *, ...)) {
my_bool reconnect = 1;
mysql->debug = debug;
@@ -271,7 +257,9 @@
mysql->debug("SQL INIT: (%S)\n", db_error(mysql));
return(RFAIL);
}
- bzero(&mysql->pass.s, mysql->pass.len);
+
+ /* erase the database password from memory ?!?? Safety ? */
+ memset(&mysql->pass.s, 0, mysql->pass.len);
mysql->connected = 1;
/* set auto-reconnect */
@@ -282,16 +270,16 @@
}
void
-db_close(mysql_ *mysql)
-{
+db_close(mysql_ *mysql) {
if (mysql->connected)
mysql_close(&mysql->mysql);
+ /* Free memory */
+ mysql_server_end();
mysql->connected = 0;
}
int
-db_get_conf_key(char **key, char **buf)
-{
+db_get_conf_key(char **key, char **buf) {
register char *p;
p = *buf;
@@ -307,8 +295,7 @@
}
void
-db_table_free(struct table__ *table)
-{
+db_table_free(struct table__ *table) {
if (table == NULL) return;
str_free(&table->name);
str_free(&table->sql);
@@ -318,8 +305,7 @@
int
db_read_table_sql(const char *file, long filelen, size_t size,
- struct table__ **table_)
-{
+ struct table__ **table_) {
struct table__ *table;
size_t len;
int fd;
@@ -341,8 +327,8 @@
/* open file and read read */
fd = open((char *)table->name.s, O_RDONLY);
if (fd == -1) {
- io_printf(1, "n\xE3o foi poss\xEDvel abrir o arquivo [%S] [%S]\n",
- table->name.s, strerror(errno));
+ io_printf(1, "cannot open table file [%S] [%S]\n", table->name.s,
+ strerror(errno));
db_table_free(table);
free(*table_);
return(RFAIL);
@@ -351,8 +337,8 @@
len = io_read(fd, (char *)table->sql.s + table->sql.len,
table->sql.a - table->sql.len);
if (len == -1) {
- io_printf(1, "n\xE3o foi poss\xEDvel ler o arquivo [%S] [%S]\n",
- table->name.s, strerror(errno));
+ io_printf(1, "cannot read table file [%S] [%S]\n", table->name.s,
+ strerror(errno));
db_table_free(table);
free(*table_);
return(RFAIL);
@@ -361,13 +347,12 @@
table->sql.len += len;
}
close(fd);
-
+
return(ROK);
}
int
-db_read_tables(mysql_ *mysql, const char *configdir)
-{
+db_read_tables(mysql_ *mysql, const char *configdir) {
struct table__ *table = NULL;
struct table__ *tmp = NULL;
struct dirent *de;
@@ -378,9 +363,8 @@
RB_INIT(&mysql->table_head);
if (chdir(MYSQLTABLE) == -1) {
- io_printf(1, "n\xE3o foi poss\xEDvel ler o diret\xF3rio de configura\xE7\xE3o: "
- "[%S%Stables] [%S]\n", configdir, print_bar(configdir),
- strerror(errno));
+ io_printf(1, "cannot chdir to mysql tables directory: [%S%Stables] [%S]\n",
+ configdir, print_bar(configdir), strerror(errno));
return(RFAIL);
}
dir = opendir(".");
@@ -394,14 +378,15 @@
continue;
}
- bzero(&st, sizeof(st));
+ memset(&st, 0, sizeof(st));
if (stat(de->d_name, &st) == -1) {
- io_printf(1, "tabela n\xE3o carregada. stat: [%S]\n", strerror(errno));
+ io_printf(1, "cannot stat table file: [%S]: [%S]\n", de->d_name,
+ strerror(errno));
continue;
}
if (st.st_size == 0) {
- io_printf(1, "o arquivo n\xE3o cont\xE9m dados [%S]\n", de->d_name);
+ io_printf(1, "table file with zero size: [%S]. ignored.\n", de->d_name);
continue;
}
@@ -409,7 +394,7 @@
tmp = RB_INSERT(tables, &mysql->table_head, table);
if (tmp) {
db_table_free(table);
- io_printf(1, "arquivo duplicado [%S]\n", de->d_name);
+ io_printf(1, "duplicated file: [%S]. ignored.\n", de->d_name);
}
}
}
@@ -418,8 +403,7 @@
}
int
-db_read_conf(mysql_ *mysql, const char *configdir)
-{
+db_read_conf(mysql_ *mysql, const char *configdir) {
struct stat sb;
FILE *fp;
char buf[1024];
@@ -428,41 +412,39 @@
char *p;
int curdir = -1;
- bzero(mysql, sizeof(mysql_));
+ memset(mysql, 0, sizeof(mysql_));
/* save the current dir */
curdir = open(".", O_RDONLY);
if (curdir == -1) {
- io_printf(1, "n\xE3o foi poss\xEDvel abrir o diret\xF3rio corrente: [%S]\n",
- strerror(errno));
+ io_printf(1, "cannot open curdir: [%S]\n", strerror(errno));
goto fail;
}
/* chdir to config dir */
if (chdir(configdir) == -1) {
- io_printf(1, "n\xE3o foi poss\xEDvel ler o diret\xF3rio de configura\xE7\xE3o: "
- "[%S] [%S]\n", configdir, strerror(errno));
+ io_printf(1, "cannot chdir to mysql configuration directory: [%S]: [%S]\n",
+ configdir, strerror(errno));
goto fail;
}
/* check access to config */
- bzero(&sb, sizeof(sb));
+ memset(&sb, 0, sizeof(sb));
if (stat(MYSQLCONF, &sb) == -1) {
- io_printf(1, "n\xE3o foi poss\xEDvel verificar o arquivo de configura\xE7\xE3o: "
- "[%S%Sconf] [%S]\n", configdir, print_bar(configdir),
- strerror(errno));
+ io_printf(1, "cannot stat configuration file: [%S%Sconf]: [%S]\n",
+ configdir, print_bar(configdir), strerror(errno));
goto fail;
}
if (sb.st_mode & S_IRWXO)
io_printf(STDERR, "PUBLIC ACCESS on %S%Sconf should be removed !!!\n",
- configdir, print_bar(configdir));
+ "ie: chmod 400 %S%Sconf\n", configdir, print_bar(configdir),
+ configdir, print_bar(configdir));
fp = fopen(MYSQLCONF, "r");
if (fp == (FILE *)0) {
- io_printf(1, "n\xE3o foi poss\xEDvel abrir o arquivo de configura\xE7\xE3o: "
- "[%S%Sconf] [%S]\n", configdir, print_bar(configdir),
- strerror(errno));
+ io_printf(1, "cannot open configuration file: [%S%Sconf]: [%S]\n",
+ configdir, print_bar(configdir), strerror(errno));
goto fail;
}
@@ -488,7 +470,7 @@
/* check for buffer */
if (!p || !*p) {
- io_printf(1, "arquivo de configura\xE7\xE3o vazio ! [%S%Sconf]\n",
+ io_printf(1, "zero configuration data (no content) on file: [%S%Sconf]\n",
configdir, print_bar(configdir));
goto fail;
}
@@ -509,21 +491,21 @@
/* user */
if (db_get_conf_key(&key, &p) == RFAIL) {
- label = "o usu\xE1rio";
+ label = "the user";
goto field_fail;
}
if (str_copys(&mysql->user, (unsigned char *)key) == 0) exit(51);
/* pass */
if (db_get_conf_key(&key, &p) == RFAIL) {
- label = "a senha";
+ label = "the password";
goto field_fail;
}
if (str_copys(&mysql->pass, (unsigned char *)key) == 0) exit(51);
/* db */
if (db_get_conf_key(&key, &p) == RFAIL) {
- label = "o database";
+ label = "the database";
goto field_fail;
}
if (str_copys(&mysql->db, (unsigned char *)key) == 0) exit(51);
@@ -541,11 +523,26 @@
return(ROK);
field_fail:
- io_printf(1, "falha ao ler %S: [%S%Sconf]\n"
- "formato: host|porta|user|pass|db\n",
+ io_printf(1, "cannot read %S: [%S%Sconf]\n"
+ "should be: host|port|user|pass|db\n",
label, configdir, print_bar(configdir));
fail:
fchdir(curdir);
close(curdir);
return(RFAIL);
}
+
+/* remove tables from tree and memory */
+void free_sqltable_tree(mysql_ *mysql) {
+
+ struct table__ *table;
+ struct table__ *next;
+
+ for (table = RB_MIN(tables, &mysql->table_head); table != NULL; table = next) {
+ next = RB_NEXT(tables, &mysql->table_head, table);
+ RB_REMOVE(tables, &mysql->table_head, table);
+ db_table_free(table);
+ free(table);
+ }
+
+}
Modified: tags/msn-proxy-0.7/mysql.h
===================================================================
--- trunk/mysql.h 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/mysql.h 2009-03-15 17:30:28 UTC (rev 112)
@@ -92,4 +92,6 @@
void db_close(mysql_ *mysql);
int db_read_conf(mysql_ *mysql, const char *configdir);
+void free_sqltable_tree(mysql_ *mysql);
+
#endif
Modified: tags/msn-proxy-0.7/net-io.c
===================================================================
--- trunk/net-io.c 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/net-io.c 2009-03-15 17:30:28 UTC (rev 112)
@@ -35,7 +35,8 @@
#include "return.h"
#include "msn-proxy.h"
-int set_options(int fd) {
+int
+set_options(int fd) {
struct linger linger;
int keepalive = 1;
@@ -45,7 +46,7 @@
return(-1);
/* turn off linger */
- bzero(&linger, sizeof(linger));
+ memset(&linger, 0, sizeof(linger));
if (setsockopt(fd, SOL_SOCKET, SO_LINGER, (char *)&linger,
sizeof(linger)) == -1)
return(-1);
@@ -53,11 +54,13 @@
return(0);
}
-int set_nonblock(int fd) {
+int
+set_nonblock(int fd) {
return(fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK));
}
-int unix_listen(int backlog) {
+int
+unix_listen(int backlog) {
struct sockaddr_un sun;
log_ *log = &config.log;
int s;
@@ -80,14 +83,15 @@
return(s);
}
-int net_listen(const char *host, const char *port, int backlog) {
+int
+net_listen(const char *host, const char *port, int backlog) {
struct addrinfo hints, *res;
log_ *log = &config.log;
int listenfd;
int err;
/* make hints */
- bzero(&hints, sizeof(hints));
+ memset(&hints, 0, sizeof(hints));
hints.ai_flags = AI_PASSIVE;
hints.ai_family = PF_INET;
hints.ai_socktype = SOCK_STREAM;
@@ -105,7 +109,7 @@
err = 1;
if ((listenfd = socket(res->ai_family, res->ai_socktype,
res->ai_protocol)) == -1 ||
- setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &err, sizeof(err)) ||
+ setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &err, sizeof(err)) ||
bind(listenfd, (struct sockaddr *)res->ai_addr,
(socklen_t)res->ai_addrlen) ||
listen(listenfd, backlog)) {
@@ -122,14 +126,15 @@
return(listenfd);
}
-int net_connect(const char *host, const char *port) {
+int
+net_connect(const char *host, const char *port) {
struct addrinfo hints, *res, *res0;
log_ *log = &config.log;
int server_fd = -1;
int err;
/* make hints */
- bzero(&hints, sizeof(hints));
+ memset(&hints, 0, sizeof(hints));
hints.ai_family = PF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
@@ -148,12 +153,14 @@
res->ai_protocol)) == -1) {
log->debug("unable to create server socket: %S\n", strerror(errno));
+ freeaddrinfo(res0);
return(-1);
}
/* set socket options */
if (set_options(server_fd) == -1 || set_nonblock(server_fd) == -1) {
while (close(server_fd) != 0 && errno == EINTR);
+ freeaddrinfo(res0);
return(-1);
}
@@ -169,19 +176,25 @@
log->debug("unable to connect to server [%S:%S]: %S\n",
host, port, strerror(errno));
while (close(server_fd) != 0 && errno == EINTR);
- return(-1);
+ server_fd = -1;
}
break;
}
+ if (server_fd == -1) continue;
+
+ freeaddrinfo(res0);
+ log->info("connected to [%S:%S]\n", host, port);
+ return(server_fd);
}
+
+ log->info("unable to connect to server [%S:%S]: %S\n", host, port,
+ strerror(errno));
freeaddrinfo(res0);
-
- log->info("connected to [%S:%S]\n", host, port);
-
- return(server_fd);
+ return(-1);
}
-string *bind_free_port( unsigned int port_min,
+string *bind_free_port(
+ unsigned int port_min,
unsigned int port_max,
string *host,
int *listenfd) {
@@ -246,14 +259,14 @@
return(port);
}
-int resolve_client(string *str_host, struct sockaddr *sa, socklen_t sa_len) {
+int
+resolve_client(string *str_host, struct sockaddr *sa, socklen_t sa_len) {
static char host[NI_MAXHOST];
- bzero(host, NI_MAXHOST);
+ memset(host, 0, NI_MAXHOST);
/* get the user network address */
- if (getnameinfo(sa, sa_len, host, sizeof(host),
- (char *)0, 0, NI_NUMERICHOST) != 0)
+ if (getnameinfo(sa, sa_len, host, sizeof(host), NULL, 0, NI_NUMERICHOST) != 0)
return(RFAIL);
if (str_copys(str_host, (unsigned char *)host) == 0)
Modified: tags/msn-proxy-0.7/ns.c
===================================================================
--- trunk/ns.c 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/ns.c 2009-03-15 17:30:28 UTC (rev 112)
@@ -52,7 +52,7 @@
case END:
/* connection reset by peer */
-
+
if (HAS_CMD(server)) {
/* close connection to ns server - wait flush of command queue */
@@ -334,7 +334,7 @@
proxy = (client_ *)malloc(sizeof(client_));
if (proxy == (client_ *)0)
die_nomem();
- bzero(proxy, sizeof(client_));
+ memset(proxy, 0, sizeof(client_));
/* bind to free port for new client connection */
proxy->fd = -1;
@@ -375,7 +375,7 @@
proxy = (client_ *)malloc(sizeof(client_));
if (proxy == (client_ *)0)
die_nomem();
- bzero(proxy, sizeof(client_));
+ memset(proxy, 0, sizeof(client_));
/* bind to free port for new client connection */
proxy->fd = -1;
@@ -412,8 +412,8 @@
/* prepare client sockaddr */
client_sa_len = sizeof(struct sockaddr);
- bzero(&client_sa, client_sa_len);
-
+ memset(&client_sa, 0, client_sa_len);
+
/* accept connection */
client_fd = accept(listenfd, &client_sa, &client_sa_len);
if (client_fd < 0) {
@@ -428,14 +428,14 @@
while (close(client_fd) != 0 && errno == EINTR);
return;
}
-
+
/* max users */
if (config->max_clients && user_inuse >= config->max_clients) {
log->debug("debug: Server full - too many clients\n");
while (close(client_fd) != 0 && errno == EINTR);
return;
}
-
+
/* new user */
user = user_alloc(&client_sa, client_sa_len);
if (user == NULL) {
@@ -474,7 +474,7 @@
/* prepare client sockaddr */
client_sa_len = sizeof(struct sockaddr);
- bzero(&client_sa, client_sa_len);
+ memset(&client_sa, 0, client_sa_len);
/* accept connection */
client_fd = accept(listenfd, &client_sa, &client_sa_len);
Modified: tags/msn-proxy-0.7/p2p.c
===================================================================
--- trunk/p2p.c 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/p2p.c 2009-03-15 17:30:28 UTC (rev 112)
@@ -59,7 +59,7 @@
if (!p2p)
return(p2p);
- bzero(p2p, sizeof(p2p_));
+ memset(p2p, 0, sizeof(p2p_));
return(p2p);
}
Deleted: tags/msn-proxy-0.7/php/al.inc.php
===================================================================
--- trunk/php/al.inc.php 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/php/al.inc.php 2009-03-15 17:30:28 UTC (rev 112)
@@ -1,52 +0,0 @@
-<?php
-/*
- * Copyright (c) 2004-2009 Luiz Otavio O Souza <lo...@gm...>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
- * $Id$
- */
-?>
-
- <table border=0 cellpadding=0 cellspacing=0
- style="border-color: gray; border-style: solid; border-width: 1;">
- <tr><td>
- <table border=0 width=300>
- <tr align="center">
- <td bgcolor="#EBEBEB" width=600>Contatos liberados (recebem seu status)</td>
- </tr>
-<?php
- if ($_REQUEST['email']) {
- $sql = "SELECT * FROM contacts WHERE email = '".$_REQUEST['email']."' ";
- $sql .= "AND contact_lists & 2 AND !(contact_lists & 1) ";
- $sql .= "ORDER BY contact_email";
- }
-
- $rs = mysql_query($sql, $mysql) or die('fail to run query');
-
- while ($row = mysql_fetch_array($rs)) {
-
-?>
- <tr>
- <td bgcolor="#EBEBEB" align="left"><?php echo $row['contact_email'] ?></td>
- </tr>
-<?php
- }
-?>
- </table>
- </td>
- </tr>
- </table>
-
Deleted: tags/msn-proxy-0.7/php/bl.inc.php
===================================================================
--- trunk/php/bl.inc.php 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/php/bl.inc.php 2009-03-15 17:30:28 UTC (rev 112)
@@ -1,76 +0,0 @@
-<?php
-/*
- * Copyright (c) 2004-2009 Luiz Otavio O Souza <lo...@gm...>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
- * $Id$
- */
-
- require('default.array.cmd.inc.php');
-
- $sql = "SELECT * FROM contacts WHERE ";
- $sql .= "email = '". mysql_escape_string($_REQUEST['email']) ."' ";
- $sql .= "AND (contact_lists & 4) != 0 ";
- $sql .= "ORDER BY contact_email";
- $rs = mysql_query($sql, $mysql) or die('fail to run query');
-
- $sqlUser = "SELECT display_name, status, commands FROM users WHERE ";
- $sqlUser .= "email = '". mysql_escape_string($_REQUEST['email']) ."'";
-
- $rsUser = mysql_query($sqlUser, $mysql) or die('fail to run queryUser');
- if ($rsUser) {
- $rowUser = mysql_fetch_array($rsUser);
- $status = NULL;
- if ($rowUser)
- $status = $arrayStatus[$rowUser['status']];
- }
-?>
- <div align="center">
- <div align="left" style="width:400px; background-color: #EFEFEF; border-color: gray; border-style: solid; border-width: 1;">
- <p align="center" style="background-color: #E0E0E0;">
- <table border=0 cellpadding=0 cellspacing=0>
- <tr>
- <td>
- <img src="imagens/<?php echo $status['img'] ?>"
- alt="<?php echo $status['msg'] ?>" border=0>
- </td>
- <td>
- <a alt="Atualizar"
- href="<?php echo $_SERVER['PHP_SELF'] ?>?email=<?php echo $_REQUEST['email'] ?>&list=BL">
- <?php echo $rowUser['display_name'] ?>
- <?php echo ($status['img'] != "online.gif") ?
- "<font color=\"gray\">(".$status['msg'].")</font>" : "" ?></a>
- </td>
- </tr>
- </table>
- <strong>
- <a alt="Atualizar"
- href="<?php echo $_SERVER['PHP_SELF'] ?>?email=<?php echo $_REQUEST['email'] ?>&list=BL">Contatos
- bloqueados</a>
- </strong></p>
- <table border=0 width=398>
-<?php
- while ($row = mysql_fetch_array($rs)) {
-?>
- <tr>
- <td bgcolor="#EBEBEB" align="left"><?php echo $row['contact_email'] ?></td>
- </tr>
-<?php
- }
-?>
- </table>
- </div>
- </div>
Modified: tags/msn-proxy-0.7/php/fl.inc.php
===================================================================
--- trunk/php/fl.inc.php 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/php/fl.inc.php 2009-03-15 17:30:28 UTC (rev 112)
@@ -88,7 +88,8 @@
</table></p>
<div id="conectados" style="DISPLAY: ">
<?php
- $sql = "SELECT * FROM contacts WHERE email = '".$_REQUEST['email']."' ";
+ $sql = "SELECT *, contact_flags & 0x10 AS contact_cam ";
+ $sql .= "FROM contacts WHERE email = '".$_REQUEST['email']."' ";
$sql .= "AND contact_lists & 1 AND contact_status != 'OFF' ";
$sql .= "ORDER BY contact_dn, contact_status";
@@ -125,7 +126,7 @@
}
/* flags */
- if ((intval($row['contact_flags']) & 0x10) && 0) {
+ if (intval($row['contact_cam']) > 0) {
echo "<td width=16><img src=\"imagens/webcam.png\" alt=\"Webcam\" height=16 width=16 border=0></td>";
}
?>
@@ -151,7 +152,8 @@
<td width="10">S</td></tr></table>
<?php
}
- $sql = "SELECT * FROM contacts WHERE email = '".$_REQUEST['email']."' ";
+ $sql = "SELECT *, contact_flags & 0x10 AS contact_cam FROM contacts ";
+ $sql .= "WHERE email = '".$_REQUEST['email']."' ";
$sql .= "AND contact_lists & 1 AND contact_status = 'OFF' ";
$sql .= "ORDER BY contact_dn, contact_status";
@@ -219,7 +221,7 @@
}
/* flags */
- if ((intval($row['contact_flags']) & 0x10) && 0) {
+ if (intval($row['contact_cam']) > 0) {
echo "<td width=16><img src=\"imagens/webcam.png\" alt=\"Webcam\" height=16 width=16 border=0></td>";
}
?>
Modified: tags/msn-proxy-0.7/php/group.inc.php
===================================================================
--- trunk/php/group.inc.php 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/php/group.inc.php 2009-03-15 17:30:28 UTC (rev 112)
@@ -50,8 +50,9 @@
$i = 1;
while ($grow = mysql_fetch_array($grs)) {
- $sql = "SELECT * from contacts WHERE email = '$_REQUEST[email]' ";
- $sql .= "AND contact_group = '$grow[id]' ";
+ $sql = "SELECT *, contact_flags & 0x10 AS contact_cam ";
+ $sql .= "FROM contacts WHERE email = '$_REQUEST[email]' ";
+ $sql .= "AND contact_group = '". $grow['id'] ."' ";
$sql .= "ORDER BY contact_status, contact_dn";
$rs = mysql_query($sql, $mysql) or die('fail to run query');
@@ -59,7 +60,7 @@
?>
<tr>
<td bgcolor="#EBEBEB"><a href="javascript: expand('<?php echo $i ?>')">+</a>
- <?php echo $grow[name] ?> (<?php echo mysql_num_rows($rs) ?>)</td>
+ <?php echo $grow['name'] ?> (<?php echo mysql_num_rows($rs) ?>)</td>
</tr>
<tr id="<?php echo $i++ ?>" style="DISPLAY: ">
<td>
@@ -67,25 +68,25 @@
<?php
while ($row = mysql_fetch_array($rs)) {
- $status = $arrayStatus[$row[contact_status]];
+ $status = $arrayStatus[$row['contact_status']];
- $Chats = check_chats($row[email], $row[contact_email]);
+ $Chats = check_chats($row['email'], $row['contact_email']);
?>
<tr>
<td bgcolor="#EBEBEB">
<table border=0 cellspacing=0 cellpadding=0 width="100%">
<tr>
- <td width=<?php echo (intval($row[contact_lists]) & 8) ? "18" : "36" ?>><img
- src="imagens/<?php echo $status[img] ?>" alt="<?php echo $status[msg] ?>" border=0><?php echo !(intval($row[contact_lists]) & 8) ?
+ <td width=<?php echo (intval($row['contact_lists']) & 8) ? "18" : "36" ?>><img
+ src="imagens/<?php echo $status['img'] ?>" alt="<?php echo $status['msg'] ?>" border=0><?php echo !(intval($row['contact_lists']) & 8) ?
"<img src=\"imagens/notinlist.png\" alt=\"Não tem você\" height=16 width=16 border=0>" : "" ?></td>
- <td><a href="#" title="<?php echo $row[contact_email] ?>"><?php echo $row[contact_dn] ?></td>
- <td width=<?php $i = 0; if (intval($row[contact_flags]) & 0x10) $i += 18; if ($Chats > 0) $i += 18; echo $i; ?>><?
+ <td><a href="#" title="<?php echo $row['contact_email'] ?>"><?php echo $row['contact_dn'] ?></td>
+ <td width=<?php $i = 0; if (intval($row['contact_cam']) > 0) $i += 18; if ($Chats > 0) $i += 18; echo $i; ?>><?php
if ($Chats > 0) {
- echo "<a href=\"javascript: popup('chat-to.php?email=$row[email]&to=$row[contact_email]')\" " .
+ echo "<a href=\"javascript: popup('chat-to.php?email=". $row['email'] ."&to=". $row['contact_email'] ."')\" " .
"title=\"$row[contact_email]\"><img src=\"imagens/send_im.gif\" border=0></a>";
}
- if ((intval($row[contact_flags]) & 0x10)) {
+ if (intval($row['contact_cam']) > 0) {
echo "<img src=\"imagens/webcam.png\" alt=\"Não tem você\" height=16 width=16 border=0>";
} ?></td>
</tr>
Added: tags/msn-proxy-0.7/php/lists.inc.php
===================================================================
--- tags/msn-proxy-0.7/php/lists.inc.php (rev 0)
+++ tags/msn-proxy-0.7/php/lists.inc.php 2009-03-15 17:30:28 UTC (rev 112)
@@ -0,0 +1,86 @@
+<?php
+/*
+ * Copyright (c) 2004-2009 Luiz Otavio O Souza <lo...@gm...>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * $Id: bl.inc.php 102 2009-02-05 18:37:40Z loos-br $
+ */
+
+ /* FL = 1, AL = 2, BL = 4, RL = 8, PL = 16 */
+ $LISTS_AL = 0x02;
+ $LISTS_BL = 0x04;
+
+ require_once('default.array.cmd.inc.php');
+
+function lists($list, $text) {
+ global $arrayStatus, $mysql;
+
+ $sql = "SELECT * FROM contacts WHERE ";
+ $sql .= "email = '". mysql_escape_string($_REQUEST['email']) ."' ";
+ $sql .= "AND (contact_lists & ". $list .") != 0 ";
+ $sql .= "ORDER BY contact_email";
+ $rs = mysql_query($sql, $mysql) or die('fail to run query');
+
+ $sqlUser = "SELECT display_name, status, commands FROM users WHERE ";
+ $sqlUser .= "email = '". mysql_escape_string($_REQUEST['email']) ."'";
+
+ $rsUser = mysql_query($sqlUser, $mysql) or die('fail to run queryUser');
+ if ($rsUser) {
+ $rowUser = mysql_fetch_array($rsUser);
+ $status = NULL;
+ if ($rowUser)
+ $status = $arrayStatus[$rowUser['status']];
+ }
+?>
+ <div align="center">
+ <div align="left" style="width:400px; background-color: #EFEFEF; border-color: gray; border-style: solid; border-width: 1;">
+ <p align="center" style="background-color: #E0E0E0;">
+ <table border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td>
+ <img src="imagens/<?php echo $status['img'] ?>"
+ alt="<?php echo $status['msg'] ?>" border=0>
+ </td>
+ <td>
+ <a alt="Atualizar"
+ href="<?php echo $_SERVER['PHP_SELF'] ?>?email=<?php echo $_REQUEST['email']."&list=".$list ?>">
+ <?php echo $rowUser['display_name'] ?>
+ <?php echo ($status['img'] != "online.gif") ?
+ "<font color=\"gray\">(".$status['msg'].")</font>" : "" ?></a>
+ </td>
+ </tr>
+ </table>
+ <strong>
+ <a alt="Atualizar"
+ href="<?php echo $_SERVER['PHP_SELF'] ?>?email=<?php echo $_REQUEST['email']."&list=".$list ?>">
+ <?php echo $text; ?></a>
+ </strong></p>
+ <table border=0 width=398>
+<?php
+ while ($row = mysql_fetch_array($rs)) {
+?>
+ <tr>
+ <td bgcolor="#EBEBEB" align="left"><?php echo $row['contact_email'] ?></td>
+ </tr>
+<?php
+ }
+?>
+ </table>
+ </div>
+ </div>
+<?php
+}
+?>
Modified: tags/msn-proxy-0.7/php/user.inc.php
===================================================================
--- trunk/php/user.inc.php 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/php/user.inc.php 2009-03-15 17:30:28 UTC (rev 112)
@@ -32,7 +32,7 @@
$sql = "SELECT DISTINCT contact_chat FROM contacts WHERE ";
$sql .= "email = '".$row['email']."' AND contact_chat = 'YES' ";
- $rsChat = mysql_query($sql, $mysql) or die ("SELECT FAIL");
+ $rsChat = mysql_query($sql, $mysql) or die ("SELECT FAIL: ($sql)");
$rowChat = mysql_fetch_array($rsChat);
/* check from default denymask */
Modified: tags/msn-proxy-0.7/php/user.php
===================================================================
--- trunk/php/user.php 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/php/user.php 2009-03-15 17:30:28 UTC (rev 112)
@@ -19,13 +19,16 @@
* $Id$
*/
-// As linhas abaixo eliminam mensagens de erro nos logs do php.
-(isset($_REQUEST['viewby'])) ? $viewby=$_REQUEST['viewby'] : $viewby="STATUS";
-(isset($_REQUEST['list'])) ? $list=$_REQUEST['list'] : $list="FL";
-// by Eric Anderson Qua Ago 22 10:57:35 BRT 2007
+
+ // As linhas abaixo eliminam mensagens de erro nos logs do php.
+ (isset($_REQUEST['viewby'])) ? $viewby=$_REQUEST['viewby'] : $viewby="STATUS";
+ (isset($_REQUEST['list'])) ? $list=$_REQUEST['list'] : $list="FL";
+ // by Eric Anderson Qua Ago 22 10:57:35 BRT 2007
+
require('default.array.status.inc.php');
require('header.inc.php');
require('mysql.inc.php');
+ require('lists.inc.php');
if ($_REQUEST['email']) {
$sql = "SELECT * FROM contacts WHERE email = '".$_REQUEST['email']."' ";
@@ -81,8 +84,8 @@
if (!$viewby || $viewby == "STATUS") {
?>
<a href="user.php?email=<?php echo $_REQUEST['email'] ?>&list=FL">Listar contatos</a> |
- <a href="user.php?email=<?php echo $_REQUEST['email'] ?>&list=AL">Listar contatos liberados</a> |
- <a href="user.php?email=<?php echo $_REQUEST['email'] ?>&list=BL">Listar contatos bloqueados</a>
+ <a href="user.php?email=<?php echo $_REQUEST['email'] ?>&list=<?php echo $LISTS_AL; ?>">Listar contatos liberados</a> |
+ <a href="user.php?email=<?php echo $_REQUEST['email'] ?>&list=<?php echo $LISTS_BL; ?>">Listar contatos bloqueados</a>
<br><br>
<?php
}
@@ -99,11 +102,11 @@
break;
default:
switch ($list) {
- case "BL":
- require('bl.inc.php');
+ case "$LISTS_BL":
+ lists($LISTS_BL, "Contatos bloqueados");
break;
- case "AL":
- require('al.inc.php');
+ case "$LISTS_AL":
+ lists($LISTS_AL, "Contatos liberados");
break;
default:
require('fl.inc.php');
Modified: tags/msn-proxy-0.7/php/view-to.php
===================================================================
--- trunk/php/view-to.php 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/php/view-to.php 2009-03-15 17:30:28 UTC (rev 112)
@@ -22,6 +22,10 @@
require('mysql.inc.php');
require('header.inc.php');
+ /* ignore user aborts and allow the script to run forever */
+ set_time_limit(0);
+ ignore_user_abort(TRUE);
+
?>
<body bgcolor="#FFFFFF">
@@ -51,6 +55,9 @@
$rsSB = mysql_query($sql, $mysql);
while($rsSB && ($rowSB = mysql_fetch_array($rsSB))) {
+ if(connection_status() != CONNECTION_NORMAL) {
+ break;
+
switch ($rowSB['type']) {
case "start":
$msg = "Abriu a janela";
Modified: tags/msn-proxy-0.7/sb.c
===================================================================
--- trunk/sb.c 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/sb.c 2009-03-15 17:30:28 UTC (rev 112)
@@ -110,7 +110,7 @@
/* prepare client sockaddr */
client_sa_len = sizeof(struct sockaddr);
- bzero(&client_sa, client_sa_len);
+ memset(&client_sa, 0, client_sa_len);
/* accept connection */
client_fd = accept(listenfd, &client_sa, &client_sa_len);
@@ -340,7 +340,7 @@
case END:
/* connection reset by peer */
-
+
if (HAS_CMD(server)) {
/* close connection to ns server - wait flush of command queue */
Modified: tags/msn-proxy-0.7/sb.h
===================================================================
--- trunk/sb.h 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/sb.h 2009-03-15 17:30:28 UTC (rev 112)
@@ -40,5 +40,6 @@
int sb_iro(struct sb_ *sb, command *cmd, int args);
int msn_sb_post_bye(struct sb_ *sb, command *cmd, int args);
int msn_sb_cal(struct sb_ *sb, command *cmd, int args);
+struct sb_user_ *sb_user_free(struct sb_ *sb, struct sb_user_ *sb_user);
#endif
Modified: tags/msn-proxy-0.7/server.c
===================================================================
--- trunk/server.c 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/server.c 2009-03-15 17:30:28 UTC (rev 112)
@@ -100,7 +100,7 @@
die_nomem();
/* zero everything */
- bzero(server, sizeof(server_));
+ memset(server, 0, sizeof(server_));
server->fd = -1;
server->read.ev_fd = -1;
server->write.ev_fd = -1;
Modified: tags/msn-proxy-0.7/server.h
===================================================================
--- trunk/server.h 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/server.h 2009-03-15 17:30:28 UTC (rev 112)
@@ -56,5 +56,6 @@
void *arg);
void shift_server_commands(server_ *server, command *cmd);
int read_server_command(server_ *server, void (*sched_write)(), void *ev_write);
+int server_flush_commands(server_ *server);
#endif
Modified: tags/msn-proxy-0.7/sql.c
===================================================================
--- trunk/sql.c 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/sql.c 2009-03-15 17:30:28 UTC (rev 112)
@@ -152,6 +152,7 @@
return(RFAIL);
}
+ str_free(&sql);
return(ROK);
}
@@ -525,7 +526,7 @@
return(RFAIL);
}
-int
+int
read_commands(struct user_ *user) {
mysql_ *mysql = &config.mysql;
MYSQL_RES *res;
@@ -533,7 +534,7 @@
string sql;
char *ep;
char fmt[] = "SELECT commands FROM users WHERE email = '%q'";
-
+
str_zero(&sql);
sql.len = fmt_printf(NULL, fmt, user->email.s);
if (str_ready(&sql, sql.len + 1) == 0)
@@ -595,7 +596,7 @@
case NO:
user->commands |= SAVE_MSG;
break;
-
+
case RFAIL:
default:
return(RFAIL);
Modified: tags/msn-proxy-0.7/user.c
===================================================================
--- trunk/user.c 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/user.c 2009-03-15 17:30:28 UTC (rev 112)
@@ -27,6 +27,7 @@
#include "protocol.h"
#include "array_cmd.h"
#include "msn-proxy.h"
+#include "contacts.h"
struct users_ users; /* users rb list data */
unsigned int user_id = 0;
@@ -193,7 +194,7 @@
user_alloc(struct sockaddr *sa, socklen_t sa_len) {
struct user_ *user = NULL;
log_ *log = &config.log;
-
+
/* alloc new user */
user = (struct user_ *)malloc(sizeof(struct user_));
if (user == NULL) die_nomem();
@@ -214,7 +215,7 @@
user = user_free(user);
return(NULL);
}
-
+
if (RB_INSERT(users_, &users, user)) {
log->debug("debug: fail to insert new user on tree (already there)\n");
user = user_free(user);
@@ -266,3 +267,50 @@
user = user_free(user);
}
+/* remove users from tree and memory */
+void free_users_tree(void) {
+
+ struct user_ *user;
+ struct user_ *next;
+ struct sb_ *sb;
+ struct sb_user_ *sb_user;
+
+ for (user = RB_MIN(users_, &users); user != NULL; user = next) {
+ next = RB_NEXT(users_, &users, user);
+
+ contacts_free(user);
+ str_free(&user->addr);
+ str_free(&user->dn);
+ str_free(&user->email);
+ str_free(&user->status);
+ server_flush_commands(user->ns.server);
+ str_free(&user->ns.server->host);
+ str_free(&user->ns.server->port);
+ client_flush_commands(user->ns.client);
+
+ while (!LIST_EMPTY(&user->sbs)) {
+ sb = LIST_FIRST(&user->sbs);
+ sb_free_xfr(sb);
+ str_free(&sb->start);
+ server_flush_commands(sb->server);
+ str_free(&sb->server->host);
+ str_free(&sb->server->port);
+ client_flush_commands(sb->client);
+ free(sb->server);
+ free(sb->client);
+
+ while (!SLIST_EMPTY(&sb->sb_users)) {
+ sb_user = SLIST_FIRST(&sb->sb_users);
+ sb_user = sb_user_free(sb, sb_user);
+ }
+ LIST_REMOVE(sb, sb__);
+ free(sb);
+ }
+
+ free(user->ns.server);
+ free(user->ns.client);
+ RB_REMOVE(users_, &users, user);
+ free(user);
+ }
+
+}
Modified: tags/msn-proxy-0.7/user.h
===================================================================
--- trunk/user.h 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/user.h 2009-03-15 17:30:28 UTC (rev 112)
@@ -73,6 +73,7 @@
void user_disconnect(struct user_ *user);
int msnp12_update_dn(struct user_ *user, command *cmd, int args);
int msn_update_status(struct user_ *user, command *cmd, int args);
+void free_users_tree(void);
extern struct users_ users;
extern unsigned int user_max;
Modified: tags/msn-proxy-0.7/xml.c
===================================================================
--- trunk/xml.c 2009-02-05 20:15:10 UTC (rev 103)
+++ tags/msn-proxy-0.7/xml.c 2009-03-15 17:30:28 UTC (rev 112)
@@ -99,7 +99,7 @@
tag = (struct xml_tag_ *)malloc(sizeof(struct xml_tag_));
if (tag == NULL) exit(51);
- bzero(tag, sizeof(struct xml_tag_));
+ memset(tag, 0, sizeof(struct xml_tag_));
SLIST_INIT(&tag->xml_tag_opt_head);
SLIST_INIT(&tag->xml_tag_head);
return(tag);
@@ -150,7 +150,7 @@
}
if (tag_opt == NULL) {
tag_opt = (struct xml_tag_opt_ *)malloc(sizeof(struct xml_tag_opt_));
- bzero(tag_opt, sizeof(struct xml_tag_opt_));
+ memset(tag_opt, 0, sizeof(struct xml_tag_opt_));
}
if (tag_opt == NULL) exit(51);
@@ -273,6 +273,8 @@
SLIST_INSERT_HEAD(head, tag, xml_tag__);
+ str_free(&vrfy);
+
if (close == 1)
return(RCLOSE);
return(ROK);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <lo...@us...> - 2009-03-15 17:26:56
|
Revision: 111
http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=111&view=rev
Author: loos-br
Date: 2009-03-15 17:26:43 +0000 (Sun, 15 Mar 2009)
Log Message:
-----------
varias correcoes (correcoes de estilo, memory leaks, problemas no codigo da funcao net-connect e pequenas correcoes na interface web)
Modified Paths:
--------------
trunk/ChangeLog
trunk/command.c
trunk/contacts.c
trunk/msnp18.h
trunk/mysql.c
trunk/net-io.c
trunk/php/fl.inc.php
trunk/php/group.inc.php
trunk/php/user.inc.php
trunk/php/user.php
trunk/php/view-to.php
Added Paths:
-----------
trunk/php/lists.inc.php
Removed Paths:
-------------
trunk/php/al.inc.php
trunk/php/bl.inc.php
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2009-03-05 12:19:57 UTC (rev 110)
+++ trunk/ChangeLog 2009-03-15 17:26:43 UTC (rev 111)
@@ -1,3 +1,21 @@
+2009-03-15
+
+ - Varios memory leaks (pra n\xE3o dizer todos) foram corrigidos pelo Leonardo.
+
+ - Corrigido a visualiza\xE7\xE3o de cameras nos contatos.
+
+ - Corrigido a visualiza\xE7\xE3o de quem n\xE3o tem voc\xEA na lista de contatos.
+
+ - Corrigido um bug na fun\xE7\xE3o net-connect (ainda bem que nunca esbarramos
+ neste bug antes).
+
+ - Algumas atualiza\xE7\xF5es e pequenas corre\xE7\xF5es na interface web.
+
+ - leia o documento mysql/UPDATING para atualiza\xE7\xE3o da base de dados
+
+ - Release da vers\xE3o msn-proxy-0.7
+
+
2009-02-05
- Adicionada a opcao de visualizar as conversas atraves da lista de contatos.
Modified: trunk/command.c
===================================================================
--- trunk/command.c 2009-03-05 12:19:57 UTC (rev 110)
+++ trunk/command.c 2009-03-15 17:26:43 UTC (rev 111)
@@ -437,6 +437,7 @@
void
free_command(command *cmd) {
str_free(&cmd->cmd);
+ str_free(&cmd->obuf);
str_free(&cmd->payload);
free_command_args(cmd);
free(cmd);
Modified: trunk/contacts.c
===================================================================
--- trunk/contacts.c 2009-03-05 12:19:57 UTC (rev 110)
+++ trunk/contacts.c 2009-03-15 17:26:43 UTC (rev 111)
@@ -259,7 +259,6 @@
} else if (tag_opt->name.len > 0 &&
strcmp((char *)tag_opt->name.s, "l") == 0) {
lists = atol((char *)tag_opt->value.s);
- lists |= RL;
} else if (tag_opt->name.len > 0 &&
strcmp((char *)tag_opt->name.s, "t") == 0) {
}
@@ -277,7 +276,16 @@
str_free(&c);
if (contact == NULL) continue;
- contact->lists = lists;
+
+ /* decode lists */
+ contact->lists = 0;
+ if (lists & 0x01)
+ contact->lists |= RL;
+ if (lists & 0x02)
+ contact->lists |= AL | FL;
+ if (lists & 0x04)
+ contact->lists |= BL;
+
if (str_copy(&contact->dn, contact->c.s, contact->c.len) == 0)
die_nomem();
if (str_copys(&contact->status, (unsigned char *)"OFF") == 0)
Modified: trunk/msnp18.h
===================================================================
--- trunk/msnp18.h 2009-03-05 12:19:57 UTC (rev 110)
+++ trunk/msnp18.h 2009-03-15 17:26:43 UTC (rev 111)
@@ -38,6 +38,7 @@
{ "241", 2, check_args },
{ "508", 2, check_args },
{ "509", 2, check_args },
+ { "511", 2, check_args },
{ "ADL", 0, msnp18_adl_sync },
{ "BLP", 2, check_args },
{ "CHG", 0, check_ok },
Modified: trunk/mysql.c
===================================================================
--- trunk/mysql.c 2009-03-05 12:19:57 UTC (rev 110)
+++ trunk/mysql.c 2009-03-15 17:26:43 UTC (rev 111)
@@ -35,8 +35,7 @@
#define print_bar(a) (a[strlen(a) - 1] == '/') ? "" : "/"
int
-tablecmp(struct table__ *t1, struct table__ *t2)
-{
+tablecmp(struct table__ *t1, struct table__ *t2) {
if (t1 == NULL ||
t2 == NULL ||
t1->name.len == 0 ||
@@ -49,39 +48,33 @@
RB_GENERATE(tables, table__, table_, tablecmp)
MYSQL_ROW
-db_fetch_row(res)
-MYSQL_RES *res;
-{
+db_fetch_row(MYSQL_RES *res) {
return(mysql_fetch_row(res));
}
u_int64_t
-db_count(MYSQL_RES *res)
-{
+db_count(MYSQL_RES *res) {
if(res == NULL)
return 0;
return(mysql_num_rows(res));
}
u_int64_t
-db_affected_rows(MYSQL *mysql)
-{
+db_affected_rows(MYSQL *mysql) {
if(mysql == NULL)
return 0;
return(mysql_affected_rows(mysql));
}
u_int64_t
-db_last_id(MYSQL *mysql)
-{
+db_last_id(MYSQL *mysql) {
if(mysql == NULL)
return 0;
return(mysql_insert_id(mysql));
}
MYSQL_RES *
-db_free(MYSQL_RES *res)
-{
+db_free(MYSQL_RES *res) {
if(res == NULL)
return((MYSQL_RES *)NULL);
@@ -91,8 +84,7 @@
}
char *
-db_escape(mysql_ *mysql, char *from)
-{
+db_escape(mysql_ *mysql, char *from) {
char *rtrn;
size_t len;
@@ -111,8 +103,7 @@
}
MYSQL_RES *
-db_query(mysql_ *mysql, string *query)
-{
+db_query(mysql_ *mysql, string *query) {
MYSQL_RES *res;
if(query == NULL || query->s == NULL || *query->s == 0)
@@ -129,8 +120,7 @@
}
int
-db_query2(mysql_ *mysql, string *query)
-{
+db_query2(mysql_ *mysql, string *query) {
if (query == NULL || query->s == NULL || *query->s == 0)
return(RFAIL);
@@ -144,8 +134,7 @@
}
int
-db_create_all(mysql_ *mysql)
-{
+db_create_all(mysql_ *mysql) {
struct table__ *table;
string sql;
@@ -170,8 +159,7 @@
}
int
-db_check(mysql_ *mysql)
-{
+db_check(mysql_ *mysql) {
struct table__ find;
struct table__ *table;
MYSQL_RES *res;
@@ -201,8 +189,7 @@
}
char *
-db_error(mysql_ *mysql)
-{
+db_error(mysql_ *mysql) {
char *p;
p = (char *)mysql_error(&mysql->mysql);
@@ -214,8 +201,7 @@
int
db_init(mysql_ *mysql, void (*debug)(const char *, ...),
- void (*info)(const char *, ...))
-{
+ void (*info)(const char *, ...)) {
my_bool reconnect = 1;
mysql->debug = debug;
@@ -271,7 +257,9 @@
mysql->debug("SQL INIT: (%S)\n", db_error(mysql));
return(RFAIL);
}
- //memset(&mysql->pass.s, 0, mysql->pass.len);
+
+ /* erase the database password from memory ?!?? Safety ? */
+ memset(&mysql->pass.s, 0, mysql->pass.len);
mysql->connected = 1;
/* set auto-reconnect */
@@ -282,8 +270,7 @@
}
void
-db_close(mysql_ *mysql)
-{
+db_close(mysql_ *mysql) {
if (mysql->connected)
mysql_close(&mysql->mysql);
/* Free memory */
@@ -292,8 +279,7 @@
}
int
-db_get_conf_key(char **key, char **buf)
-{
+db_get_conf_key(char **key, char **buf) {
register char *p;
p = *buf;
@@ -309,8 +295,7 @@
}
void
-db_table_free(struct table__ *table)
-{
+db_table_free(struct table__ *table) {
if (table == NULL) return;
str_free(&table->name);
str_free(&table->sql);
@@ -320,8 +305,7 @@
int
db_read_table_sql(const char *file, long filelen, size_t size,
- struct table__ **table_)
-{
+ struct table__ **table_) {
struct table__ *table;
size_t len;
int fd;
@@ -343,8 +327,8 @@
/* open file and read read */
fd = open((char *)table->name.s, O_RDONLY);
if (fd == -1) {
- io_printf(1, "n�o foi poss�vel abrir o arquivo [%S] [%S]\n",
- table->name.s, strerror(errno));
+ io_printf(1, "cannot open table file [%S] [%S]\n", table->name.s,
+ strerror(errno));
db_table_free(table);
free(*table_);
return(RFAIL);
@@ -353,8 +337,8 @@
len = io_read(fd, (char *)table->sql.s + table->sql.len,
table->sql.a - table->sql.len);
if (len == -1) {
- io_printf(1, "n�o foi poss�vel ler o arquivo [%S] [%S]\n",
- table->name.s, strerror(errno));
+ io_printf(1, "cannot read table file [%S] [%S]\n", table->name.s,
+ strerror(errno));
db_table_free(table);
free(*table_);
return(RFAIL);
@@ -368,8 +352,7 @@
}
int
-db_read_tables(mysql_ *mysql, const char *configdir)
-{
+db_read_tables(mysql_ *mysql, const char *configdir) {
struct table__ *table = NULL;
struct table__ *tmp = NULL;
struct dirent *de;
@@ -380,9 +363,8 @@
RB_INIT(&mysql->table_head);
if (chdir(MYSQLTABLE) == -1) {
- io_printf(1, "n�o foi poss�vel ler o diret�rio de configura��o: "
- "[%S%Stables] [%S]\n", configdir, print_bar(configdir),
- strerror(errno));
+ io_printf(1, "cannot chdir to mysql tables directory: [%S%Stables] [%S]\n",
+ configdir, print_bar(configdir), strerror(errno));
return(RFAIL);
}
dir = opendir(".");
@@ -398,12 +380,13 @@
memset(&st, 0, sizeof(st));
if (stat(de->d_name, &st) == -1) {
- io_printf(1, "tabela n�o carregada. stat: [%S]\n", strerror(errno));
+ io_printf(1, "cannot stat table file: [%S]: [%S]\n", de->d_name,
+ strerror(errno));
continue;
}
if (st.st_size == 0) {
- io_printf(1, "o arquivo n�o cont�m dados [%S]\n", de->d_name);
+ io_printf(1, "table file with zero size: [%S]. ignored.\n", de->d_name);
continue;
}
@@ -411,7 +394,7 @@
tmp = RB_INSERT(tables, &mysql->table_head, table);
if (tmp) {
db_table_free(table);
- io_printf(1, "arquivo duplicado [%S]\n", de->d_name);
+ io_printf(1, "duplicated file: [%S]. ignored.\n", de->d_name);
}
}
}
@@ -420,8 +403,7 @@
}
int
-db_read_conf(mysql_ *mysql, const char *configdir)
-{
+db_read_conf(mysql_ *mysql, const char *configdir) {
struct stat sb;
FILE *fp;
char buf[1024];
@@ -435,36 +417,34 @@
/* save the current dir */
curdir = open(".", O_RDONLY);
if (curdir == -1) {
- io_printf(1, "n�o foi poss�vel abrir o diret�rio corrente: [%S]\n",
- strerror(errno));
+ io_printf(1, "cannot open curdir: [%S]\n", strerror(errno));
goto fail;
}
/* chdir to config dir */
if (chdir(configdir) == -1) {
- io_printf(1, "n�o foi poss�vel ler o diret�rio de configura��o: "
- "[%S] [%S]\n", configdir, strerror(errno));
+ io_printf(1, "cannot chdir to mysql configuration directory: [%S]: [%S]\n",
+ configdir, strerror(errno));
goto fail;
}
/* check access to config */
memset(&sb, 0, sizeof(sb));
if (stat(MYSQLCONF, &sb) == -1) {
- io_printf(1, "n�o foi poss�vel verificar o arquivo de configura��o: "
- "[%S%Sconf] [%S]\n", configdir, print_bar(configdir),
- strerror(errno));
+ io_printf(1, "cannot stat configuration file: [%S%Sconf]: [%S]\n",
+ configdir, print_bar(configdir), strerror(errno));
goto fail;
}
if (sb.st_mode & S_IRWXO)
io_printf(STDERR, "PUBLIC ACCESS on %S%Sconf should be removed !!!\n",
- configdir, print_bar(configdir));
+ "ie: chmod 400 %S%Sconf\n", configdir, print_bar(configdir),
+ configdir, print_bar(configdir));
fp = fopen(MYSQLCONF, "r");
if (fp == (FILE *)0) {
- io_printf(1, "n�o foi poss�vel abrir o arquivo de configura��o: "
- "[%S%Sconf] [%S]\n", configdir, print_bar(configdir),
- strerror(errno));
+ io_printf(1, "cannot open configuration file: [%S%Sconf]: [%S]\n",
+ configdir, print_bar(configdir), strerror(errno));
goto fail;
}
@@ -490,7 +470,7 @@
/* check for buffer */
if (!p || !*p) {
- io_printf(1, "arquivo de configura��o vazio ! [%S%Sconf]\n",
+ io_printf(1, "zero configuration data (no content) on file: [%S%Sconf]\n",
configdir, print_bar(configdir));
goto fail;
}
@@ -511,21 +491,21 @@
/* user */
if (db_get_conf_key(&key, &p) == RFAIL) {
- label = "o usu�rio";
+ label = "the user";
goto field_fail;
}
if (str_copys(&mysql->user, (unsigned char *)key) == 0) exit(51);
/* pass */
if (db_get_conf_key(&key, &p) == RFAIL) {
- label = "a senha";
+ label = "the password";
goto field_fail;
}
if (str_copys(&mysql->pass, (unsigned char *)key) == 0) exit(51);
/* db */
if (db_get_conf_key(&key, &p) == RFAIL) {
- label = "o database";
+ label = "the database";
goto field_fail;
}
if (str_copys(&mysql->db, (unsigned char *)key) == 0) exit(51);
@@ -543,8 +523,8 @@
return(ROK);
field_fail:
- io_printf(1, "falha ao ler %S: [%S%Sconf]\n"
- "formato: host|porta|user|pass|db\n",
+ io_printf(1, "cannot read %S: [%S%Sconf]\n"
+ "should be: host|port|user|pass|db\n",
label, configdir, print_bar(configdir));
fail:
fchdir(curdir);
Modified: trunk/net-io.c
===================================================================
--- trunk/net-io.c 2009-03-05 12:19:57 UTC (rev 110)
+++ trunk/net-io.c 2009-03-15 17:26:43 UTC (rev 111)
@@ -35,7 +35,8 @@
#include "return.h"
#include "msn-proxy.h"
-int set_options(int fd) {
+int
+set_options(int fd) {
struct linger linger;
int keepalive = 1;
@@ -53,11 +54,13 @@
return(0);
}
-int set_nonblock(int fd) {
+int
+set_nonblock(int fd) {
return(fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK));
}
-int unix_listen(int backlog) {
+int
+unix_listen(int backlog) {
struct sockaddr_un sun;
log_ *log = &config.log;
int s;
@@ -80,7 +83,8 @@
return(s);
}
-int net_listen(const char *host, const char *port, int backlog) {
+int
+net_listen(const char *host, const char *port, int backlog) {
struct addrinfo hints, *res;
log_ *log = &config.log;
int listenfd;
@@ -122,7 +126,8 @@
return(listenfd);
}
-int net_connect(const char *host, const char *port) {
+int
+net_connect(const char *host, const char *port) {
struct addrinfo hints, *res, *res0;
log_ *log = &config.log;
int server_fd = -1;
@@ -148,12 +153,14 @@
res->ai_protocol)) == -1) {
log->debug("unable to create server socket: %S\n", strerror(errno));
+ freeaddrinfo(res0);
return(-1);
}
/* set socket options */
if (set_options(server_fd) == -1 || set_nonblock(server_fd) == -1) {
while (close(server_fd) != 0 && errno == EINTR);
+ freeaddrinfo(res0);
return(-1);
}
@@ -169,19 +176,25 @@
log->debug("unable to connect to server [%S:%S]: %S\n",
host, port, strerror(errno));
while (close(server_fd) != 0 && errno == EINTR);
- return(-1);
+ server_fd = -1;
}
break;
}
+ if (server_fd == -1) continue;
+
+ freeaddrinfo(res0);
+ log->info("connected to [%S:%S]\n", host, port);
+ return(server_fd);
}
+
+ log->info("unable to connect to server [%S:%S]: %S\n", host, port,
+ strerror(errno));
freeaddrinfo(res0);
-
- log->info("connected to [%S:%S]\n", host, port);
-
- return(server_fd);
+ return(-1);
}
-string *bind_free_port( unsigned int port_min,
+string *bind_free_port(
+ unsigned int port_min,
unsigned int port_max,
string *host,
int *listenfd) {
@@ -246,14 +259,14 @@
return(port);
}
-int resolve_client(string *str_host, struct sockaddr *sa, socklen_t sa_len) {
+int
+resolve_client(string *str_host, struct sockaddr *sa, socklen_t sa_len) {
static char host[NI_MAXHOST];
memset(host, 0, NI_MAXHOST);
/* get the user network address */
- if (getnameinfo(sa, sa_len, host, sizeof(host),
- (char *)0, 0, NI_NUMERICHOST) != 0)
+ if (getnameinfo(sa, sa_len, host, sizeof(host), NULL, 0, NI_NUMERICHOST) != 0)
return(RFAIL);
if (str_copys(str_host, (unsigned char *)host) == 0)
Deleted: trunk/php/al.inc.php
===================================================================
--- trunk/php/al.inc.php 2009-03-05 12:19:57 UTC (rev 110)
+++ trunk/php/al.inc.php 2009-03-15 17:26:43 UTC (rev 111)
@@ -1,52 +0,0 @@
-<?php
-/*
- * Copyright (c) 2004-2009 Luiz Otavio O Souza <lo...@gm...>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
- * $Id$
- */
-?>
-
- <table border=0 cellpadding=0 cellspacing=0
- style="border-color: gray; border-style: solid; border-width: 1;">
- <tr><td>
- <table border=0 width=300>
- <tr align="center">
- <td bgcolor="#EBEBEB" width=600>Contatos liberados (recebem seu status)</td>
- </tr>
-<?php
- if ($_REQUEST['email']) {
- $sql = "SELECT * FROM contacts WHERE email = '".$_REQUEST['email']."' ";
- $sql .= "AND contact_lists & 2 AND !(contact_lists & 1) ";
- $sql .= "ORDER BY contact_email";
- }
-
- $rs = mysql_query($sql, $mysql) or die('fail to run query');
-
- while ($row = mysql_fetch_array($rs)) {
-
-?>
- <tr>
- <td bgcolor="#EBEBEB" align="left"><?php echo $row['contact_email'] ?></td>
- </tr>
-<?php
- }
-?>
- </table>
- </td>
- </tr>
- </table>
-
Deleted: trunk/php/bl.inc.php
===================================================================
--- trunk/php/bl.inc.php 2009-03-05 12:19:57 UTC (rev 110)
+++ trunk/php/bl.inc.php 2009-03-15 17:26:43 UTC (rev 111)
@@ -1,76 +0,0 @@
-<?php
-/*
- * Copyright (c) 2004-2009 Luiz Otavio O Souza <lo...@gm...>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
- * $Id$
- */
-
- require('default.array.cmd.inc.php');
-
- $sql = "SELECT * FROM contacts WHERE ";
- $sql .= "email = '". mysql_escape_string($_REQUEST['email']) ."' ";
- $sql .= "AND (contact_lists & 4) != 0 ";
- $sql .= "ORDER BY contact_email";
- $rs = mysql_query($sql, $mysql) or die('fail to run query');
-
- $sqlUser = "SELECT display_name, status, commands FROM users WHERE ";
- $sqlUser .= "email = '". mysql_escape_string($_REQUEST['email']) ."'";
-
- $rsUser = mysql_query($sqlUser, $mysql) or die('fail to run queryUser');
- if ($rsUser) {
- $rowUser = mysql_fetch_array($rsUser);
- $status = NULL;
- if ($rowUser)
- $status = $arrayStatus[$rowUser['status']];
- }
-?>
- <div align="center">
- <div align="left" style="width:400px; background-color: #EFEFEF; border-color: gray; border-style: solid; border-width: 1;">
- <p align="center" style="background-color: #E0E0E0;">
- <table border=0 cellpadding=0 cellspacing=0>
- <tr>
- <td>
- <img src="imagens/<?php echo $status['img'] ?>"
- alt="<?php echo $status['msg'] ?>" border=0>
- </td>
- <td>
- <a alt="Atualizar"
- href="<?php echo $_SERVER['PHP_SELF'] ?>?email=<?php echo $_REQUEST['email'] ?>&list=BL">
- <?php echo $rowUser['display_name'] ?>
- <?php echo ($status['img'] != "online.gif") ?
- "<font color=\"gray\">(".$status['msg'].")</font>" : "" ?></a>
- </td>
- </tr>
- </table>
- <strong>
- <a alt="Atualizar"
- href="<?php echo $_SERVER['PHP_SELF'] ?>?email=<?php echo $_REQUEST['email'] ?>&list=BL">Contatos
- bloqueados</a>
- </strong></p>
- <table border=0 width=398>
-<?php
- while ($row = mysql_fetch_array($rs)) {
-?>
- <tr>
- <td bgcolor="#EBEBEB" align="left"><?php echo $row['contact_email'] ?></td>
- </tr>
-<?php
- }
-?>
- </table>
- </div>
- </div>
Modified: trunk/php/fl.inc.php
===================================================================
--- trunk/php/fl.inc.php 2009-03-05 12:19:57 UTC (rev 110)
+++ trunk/php/fl.inc.php 2009-03-15 17:26:43 UTC (rev 111)
@@ -88,7 +88,8 @@
</table></p>
<div id="conectados" style="DISPLAY: ">
<?php
- $sql = "SELECT * FROM contacts WHERE email = '".$_REQUEST['email']."' ";
+ $sql = "SELECT *, contact_flags & 0x10 AS contact_cam ";
+ $sql .= "FROM contacts WHERE email = '".$_REQUEST['email']."' ";
$sql .= "AND contact_lists & 1 AND contact_status != 'OFF' ";
$sql .= "ORDER BY contact_dn, contact_status";
@@ -125,7 +126,7 @@
}
/* flags */
- if ((intval($row['contact_flags']) & 0x10) && 0) {
+ if (intval($row['contact_cam']) > 0) {
echo "<td width=16><img src=\"imagens/webcam.png\" alt=\"Webcam\" height=16 width=16 border=0></td>";
}
?>
@@ -151,7 +152,8 @@
<td width="10">S</td></tr></table>
<?php
}
- $sql = "SELECT * FROM contacts WHERE email = '".$_REQUEST['email']."' ";
+ $sql = "SELECT *, contact_flags & 0x10 AS contact_cam FROM contacts ";
+ $sql .= "WHERE email = '".$_REQUEST['email']."' ";
$sql .= "AND contact_lists & 1 AND contact_status = 'OFF' ";
$sql .= "ORDER BY contact_dn, contact_status";
@@ -219,7 +221,7 @@
}
/* flags */
- if ((intval($row['contact_flags']) & 0x10) && 0) {
+ if (intval($row['contact_cam']) > 0) {
echo "<td width=16><img src=\"imagens/webcam.png\" alt=\"Webcam\" height=16 width=16 border=0></td>";
}
?>
Modified: trunk/php/group.inc.php
===================================================================
--- trunk/php/group.inc.php 2009-03-05 12:19:57 UTC (rev 110)
+++ trunk/php/group.inc.php 2009-03-15 17:26:43 UTC (rev 111)
@@ -50,8 +50,9 @@
$i = 1;
while ($grow = mysql_fetch_array($grs)) {
- $sql = "SELECT * from contacts WHERE email = '$_REQUEST[email]' ";
- $sql .= "AND contact_group = '$grow[id]' ";
+ $sql = "SELECT *, contact_flags & 0x10 AS contact_cam ";
+ $sql .= "FROM contacts WHERE email = '$_REQUEST[email]' ";
+ $sql .= "AND contact_group = '". $grow['id'] ."' ";
$sql .= "ORDER BY contact_status, contact_dn";
$rs = mysql_query($sql, $mysql) or die('fail to run query');
@@ -59,7 +60,7 @@
?>
<tr>
<td bgcolor="#EBEBEB"><a href="javascript: expand('<?php echo $i ?>')">+</a>
- <?php echo $grow[name] ?> (<?php echo mysql_num_rows($rs) ?>)</td>
+ <?php echo $grow['name'] ?> (<?php echo mysql_num_rows($rs) ?>)</td>
</tr>
<tr id="<?php echo $i++ ?>" style="DISPLAY: ">
<td>
@@ -67,25 +68,25 @@
<?php
while ($row = mysql_fetch_array($rs)) {
- $status = $arrayStatus[$row[contact_status]];
+ $status = $arrayStatus[$row['contact_status']];
- $Chats = check_chats($row[email], $row[contact_email]);
+ $Chats = check_chats($row['email'], $row['contact_email']);
?>
<tr>
<td bgcolor="#EBEBEB">
<table border=0 cellspacing=0 cellpadding=0 width="100%">
<tr>
- <td width=<?php echo (intval($row[contact_lists]) & 8) ? "18" : "36" ?>><img
- src="imagens/<?php echo $status[img] ?>" alt="<?php echo $status[msg] ?>" border=0><?php echo !(intval($row[contact_lists]) & 8) ?
+ <td width=<?php echo (intval($row['contact_lists']) & 8) ? "18" : "36" ?>><img
+ src="imagens/<?php echo $status['img'] ?>" alt="<?php echo $status['msg'] ?>" border=0><?php echo !(intval($row['contact_lists']) & 8) ?
"<img src=\"imagens/notinlist.png\" alt=\"Não tem você\" height=16 width=16 border=0>" : "" ?></td>
- <td><a href="#" title="<?php echo $row[contact_email] ?>"><?php echo $row[contact_dn] ?></td>
- <td width=<?php $i = 0; if (intval($row[contact_flags]) & 0x10) $i += 18; if ($Chats > 0) $i += 18; echo $i; ?>><?
+ <td><a href="#" title="<?php echo $row['contact_email'] ?>"><?php echo $row['contact_dn'] ?></td>
+ <td width=<?php $i = 0; if (intval($row['contact_cam']) > 0) $i += 18; if ($Chats > 0) $i += 18; echo $i; ?>><?php
if ($Chats > 0) {
- echo "<a href=\"javascript: popup('chat-to.php?email=$row[email]&to=$row[contact_email]')\" " .
+ echo "<a href=\"javascript: popup('chat-to.php?email=". $row['email'] ."&to=". $row['contact_email'] ."')\" " .
"title=\"$row[contact_email]\"><img src=\"imagens/send_im.gif\" border=0></a>";
}
- if ((intval($row[contact_flags]) & 0x10)) {
+ if (intval($row['contact_cam']) > 0) {
echo "<img src=\"imagens/webcam.png\" alt=\"Não tem você\" height=16 width=16 border=0>";
} ?></td>
</tr>
Added: trunk/php/lists.inc.php
===================================================================
--- trunk/php/lists.inc.php (rev 0)
+++ trunk/php/lists.inc.php 2009-03-15 17:26:43 UTC (rev 111)
@@ -0,0 +1,86 @@
+<?php
+/*
+ * Copyright (c) 2004-2009 Luiz Otavio O Souza <lo...@gm...>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * $Id: bl.inc.php 102 2009-02-05 18:37:40Z loos-br $
+ */
+
+ /* FL = 1, AL = 2, BL = 4, RL = 8, PL = 16 */
+ $LISTS_AL = 0x02;
+ $LISTS_BL = 0x04;
+
+ require_once('default.array.cmd.inc.php');
+
+function lists($list, $text) {
+ global $arrayStatus, $mysql;
+
+ $sql = "SELECT * FROM contacts WHERE ";
+ $sql .= "email = '". mysql_escape_string($_REQUEST['email']) ."' ";
+ $sql .= "AND (contact_lists & ". $list .") != 0 ";
+ $sql .= "ORDER BY contact_email";
+ $rs = mysql_query($sql, $mysql) or die('fail to run query');
+
+ $sqlUser = "SELECT display_name, status, commands FROM users WHERE ";
+ $sqlUser .= "email = '". mysql_escape_string($_REQUEST['email']) ."'";
+
+ $rsUser = mysql_query($sqlUser, $mysql) or die('fail to run queryUser');
+ if ($rsUser) {
+ $rowUser = mysql_fetch_array($rsUser);
+ $status = NULL;
+ if ($rowUser)
+ $status = $arrayStatus[$rowUser['status']];
+ }
+?>
+ <div align="center">
+ <div align="left" style="width:400px; background-color: #EFEFEF; border-color: gray; border-style: solid; border-width: 1;">
+ <p align="center" style="background-color: #E0E0E0;">
+ <table border=0 cellpadding=0 cellspacing=0>
+ <tr>
+ <td>
+ <img src="imagens/<?php echo $status['img'] ?>"
+ alt="<?php echo $status['msg'] ?>" border=0>
+ </td>
+ <td>
+ <a alt="Atualizar"
+ href="<?php echo $_SERVER['PHP_SELF'] ?>?email=<?php echo $_REQUEST['email']."&list=".$list ?>">
+ <?php echo $rowUser['display_name'] ?>
+ <?php echo ($status['img'] != "online.gif") ?
+ "<font color=\"gray\">(".$status['msg'].")</font>" : "" ?></a>
+ </td>
+ </tr>
+ </table>
+ <strong>
+ <a alt="Atualizar"
+ href="<?php echo $_SERVER['PHP_SELF'] ?>?email=<?php echo $_REQUEST['email']."&list=".$list ?>">
+ <?php echo $text; ?></a>
+ </strong></p>
+ <table border=0 width=398>
+<?php
+ while ($row = mysql_fetch_array($rs)) {
+?>
+ <tr>
+ <td bgcolor="#EBEBEB" align="left"><?php echo $row['contact_email'] ?></td>
+ </tr>
+<?php
+ }
+?>
+ </table>
+ </div>
+ </div>
+<?php
+}
+?>
Modified: trunk/php/user.inc.php
===================================================================
--- trunk/php/user.inc.php 2009-03-05 12:19:57 UTC (rev 110)
+++ trunk/php/user.inc.php 2009-03-15 17:26:43 UTC (rev 111)
@@ -32,7 +32,7 @@
$sql = "SELECT DISTINCT contact_chat FROM contacts WHERE ";
$sql .= "email = '".$row['email']."' AND contact_chat = 'YES' ";
- $rsChat = mysql_query($sql, $mysql) or die ("SELECT FAIL");
+ $rsChat = mysql_query($sql, $mysql) or die ("SELECT FAIL: ($sql)");
$rowChat = mysql_fetch_array($rsChat);
/* check from default denymask */
Modified: trunk/php/user.php
===================================================================
--- trunk/php/user.php 2009-03-05 12:19:57 UTC (rev 110)
+++ trunk/php/user.php 2009-03-15 17:26:43 UTC (rev 111)
@@ -19,13 +19,16 @@
* $Id$
*/
-// As linhas abaixo eliminam mensagens de erro nos logs do php.
-(isset($_REQUEST['viewby'])) ? $viewby=$_REQUEST['viewby'] : $viewby="STATUS";
-(isset($_REQUEST['list'])) ? $list=$_REQUEST['list'] : $list="FL";
-// by Eric Anderson Qua Ago 22 10:57:35 BRT 2007
+
+ // As linhas abaixo eliminam mensagens de erro nos logs do php.
+ (isset($_REQUEST['viewby'])) ? $viewby=$_REQUEST['viewby'] : $viewby="STATUS";
+ (isset($_REQUEST['list'])) ? $list=$_REQUEST['list'] : $list="FL";
+ // by Eric Anderson Qua Ago 22 10:57:35 BRT 2007
+
require('default.array.status.inc.php');
require('header.inc.php');
require('mysql.inc.php');
+ require('lists.inc.php');
if ($_REQUEST['email']) {
$sql = "SELECT * FROM contacts WHERE email = '".$_REQUEST['email']."' ";
@@ -81,8 +84,8 @@
if (!$viewby || $viewby == "STATUS") {
?>
<a href="user.php?email=<?php echo $_REQUEST['email'] ?>&list=FL">Listar contatos</a> |
- <a href="user.php?email=<?php echo $_REQUEST['email'] ?>&list=AL">Listar contatos liberados</a> |
- <a href="user.php?email=<?php echo $_REQUEST['email'] ?>&list=BL">Listar contatos bloqueados</a>
+ <a href="user.php?email=<?php echo $_REQUEST['email'] ?>&list=<?php echo $LISTS_AL; ?>">Listar contatos liberados</a> |
+ <a href="user.php?email=<?php echo $_REQUEST['email'] ?>&list=<?php echo $LISTS_BL; ?>">Listar contatos bloqueados</a>
<br><br>
<?php
}
@@ -99,11 +102,11 @@
break;
default:
switch ($list) {
- case "BL":
- require('bl.inc.php');
+ case "$LISTS_BL":
+ lists($LISTS_BL, "Contatos bloqueados");
break;
- case "AL":
- require('al.inc.php');
+ case "$LISTS_AL":
+ lists($LISTS_AL, "Contatos liberados");
break;
default:
require('fl.inc.php');
Modified: trunk/php/view-to.php
===================================================================
--- trunk/php/view-to.php 2009-03-05 12:19:57 UTC (rev 110)
+++ trunk/php/view-to.php 2009-03-15 17:26:43 UTC (rev 111)
@@ -22,6 +22,10 @@
require('mysql.inc.php');
require('header.inc.php');
+ /* ignore user aborts and allow the script to run forever */
+ set_time_limit(0);
+ ignore_user_abort(TRUE);
+
?>
<body bgcolor="#FFFFFF">
@@ -51,6 +55,9 @@
$rsSB = mysql_query($sql, $mysql);
while($rsSB && ($rowSB = mysql_fetch_array($rsSB))) {
+ if(connection_status() != CONNECTION_NORMAL) {
+ break;
+
switch ($rowSB['type']) {
case "start":
$msg = "Abriu a janela";
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Fábio M. <ilu...@gm...> - 2009-03-05 13:17:36
|
Só pra dizer que ... FUNCIONOU! Valeu! 2009/3/5 <lo...@us...> > Revision: 110 > http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=110&view=rev > Author: loos-br > Date: 2009-03-05 12:19:57 +0000 (Thu, 05 Mar 2009) > > Log Message: > ----------- > Adicionado a resposta do comando PUT pelo servidor. > > Modified Paths: > -------------- > trunk/msnp18.h > > Modified: trunk/msnp18.h > =================================================================== > --- trunk/msnp18.h 2009-03-04 00:43:41 UTC (rev 109) > +++ trunk/msnp18.h 2009-03-05 12:19:57 UTC (rev 110) > @@ -51,6 +51,7 @@ > { "NOT", 1, check_args }, > { "OUT", 1, check_args }, > { "PRP", 0, msnp12_update_dn }, > + { "PUT", 3, check_args }, > { "QNG", 1, check_args }, > { "QRY", 1, check_args }, > { "RML", 2, check_args }, > > > This was sent by the SourceForge.net collaborative development platform, > the world's largest Open Source development site. > > > ------------------------------------------------------------------------------ > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, > CA > -OSBC tackles the biggest issue in open source: Open Sourcing the > Enterprise > -Strategies to boost innovation and cut costs with open source > participation > -Receive a $600 discount off the registration fee with the source code: > SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > msn-proxy-devel mailing list > msn...@li... > https://lists.sourceforge.net/lists/listinfo/msn-proxy-devel > |
|
From: <lo...@us...> - 2009-03-05 12:20:00
|
Revision: 110
http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=110&view=rev
Author: loos-br
Date: 2009-03-05 12:19:57 +0000 (Thu, 05 Mar 2009)
Log Message:
-----------
Adicionado a resposta do comando PUT pelo servidor.
Modified Paths:
--------------
trunk/msnp18.h
Modified: trunk/msnp18.h
===================================================================
--- trunk/msnp18.h 2009-03-04 00:43:41 UTC (rev 109)
+++ trunk/msnp18.h 2009-03-05 12:19:57 UTC (rev 110)
@@ -51,6 +51,7 @@
{ "NOT", 1, check_args },
{ "OUT", 1, check_args },
{ "PRP", 0, msnp12_update_dn },
+ { "PUT", 3, check_args },
{ "QNG", 1, check_args },
{ "QRY", 1, check_args },
{ "RML", 2, check_args },
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Fábio M. <ilu...@gm...> - 2009-03-04 11:19:35
|
O erro mudou...
[rod...@dc...] send to ns client ==> UBX
1:tat...@dc...<1%3At...@dc...>
;via=9:000...@li...<9%3A0...@li...>423
<Data><PSM></PSM><CurrentMedia>WMP\0Music\00\0{0} -
{1}\0\0\0\0\0</CurrentMedia><MachineGuid>{3D81F5CF-5F2A-4C33-BD19-88099076F139}</MachineGuid><DDP></DDP><SignatureSound></SignatureSound><Scene></Scene><ColorScheme></ColorScheme><EndpointData
id="{3d81f5cf-5f2a-4c33-bd19-88099076f139}"><Capabilities>2788999212:48</Capabilities></EndpointData></Data>
[rod...@dc...] send to ns server ==> PUT 20 399
Routing: 1.0
To: 9:000...@li...<9%3A0...@li...>
From: 1:rod...@dc...<1%3Ar...@dc...>
;epid={23831493-07e3-43f5-a90c-973ab7225ea2}
Reliability: 1.0
Stream: 0
Segment: 0
Publication: 1.0
Uri: /circle
Content-Type: application/circles+xml
Content-Length: 104
<circle><roster><id>IM</id><user><id>1:rod...@dc...<1%3Ar...@dc...>
</id></user></roster></circle>
[rod...@dc...] send to ns client ==> ADL 19 OK
[rod...@dc...] send to ns client ==> NLN NLN
1:mar...@dc... <1%3Am...@dc...>
;via=9:000...@li...<9%3A0...@li...>
mar...@dc... 2788999228:48
%3Cmsnobj%20Creator%3D%22mario.cunha%40dclogisticsbrasil.com
%22%20Type%3D%223%22%20SHA1D%3D%22Oc%2BdzLObEREzz2fN4ZGom0lYSSc%3D%22%20Size%3D%2225114%22%20Location%3D%220%22%20Friendly%3D%22RgBvAHQAbwBNAGEAcgBpAG8AAAA%3D%22%2F%3E
debug: server_cmd command blocked: PUT 20 OK 204
payload: [Routing: 1.0
To: 1:rod...@dc...<1%3Ar...@dc...>
;epid={23831493-07e3-43f5-a90c-973ab7225ea2}
From: 9:000...@li...<9%3A0...@li...>
Reliability: 1.0
Stream: 0
AckSegment: 0
]
debug: ns server command not accepted
PUT 20 OK 204
payload: [Routing: 1.0
To: 1:rod...@dc...<1%3Ar...@dc...>
;epid={23831493-07e3-43f5-a90c-973ab7225ea2}
From: 9:000...@li...<9%3A0...@li...>
Reliability: 1.0
Stream: 0
AckSegment: 0
]
Luiz, se precisar posso te passar o login do usuario para testes...
Só com ele e mais alguns acontece isto(mais uns 2 de 50)... Bem estranho...
2009/3/3 <lo...@us...>
> Revision: 109
> http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=109&view=rev
> Author: loos-br
> Date: 2009-03-04 00:43:41 +0000 (Wed, 04 Mar 2009)
>
> Log Message:
> -----------
> Adicionado o comando PUT. Obrigado novamente Fabio.
>
> Modified Paths:
> --------------
> trunk/command.c
> trunk/msnp18.h
>
> Modified: trunk/command.c
> ===================================================================
> --- trunk/command.c 2009-03-02 22:04:39 UTC (rev 108)
> +++ trunk/command.c 2009-03-04 00:43:41 UTC (rev 109)
> @@ -74,6 +74,7 @@
> strcasecmp((char *)cmd->cmd.s, "NFY") != 0 &&
> strcasecmp((char *)cmd->cmd.s, "NOT") != 0 &&
> strcasecmp((char *)cmd->cmd.s, "PAG") != 0 &&
> + strcasecmp((char *)cmd->cmd.s, "PUT") != 0 &&
> strcasecmp((char *)cmd->cmd.s, "QRY") != 0 &&
> strcasecmp((char *)cmd->cmd.s, "RML") != 0 &&
> strcasecmp((char *)cmd->cmd.s, "UBM") != 0 &&
>
> Modified: trunk/msnp18.h
> ===================================================================
> --- trunk/msnp18.h 2009-03-02 22:04:39 UTC (rev 108)
> +++ trunk/msnp18.h 2009-03-04 00:43:41 UTC (rev 109)
> @@ -88,6 +88,7 @@
> { "OUT", 0, check_ok },
> { "PNG", 0, check_ok },
> { "PRP", 3, check_args },
> + { "PUT", 2, check_args },
> { "QRY", 3, check_args },
> { "RML", 2, check_args },
> { "URL", 0, msn_url },
>
>
> This was sent by the SourceForge.net collaborative development platform,
> the world's largest Open Source development site.
>
>
> ------------------------------------------------------------------------------
> Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco,
> CA
> -OSBC tackles the biggest issue in open source: Open Sourcing the
> Enterprise
> -Strategies to boost innovation and cut costs with open source
> participation
> -Receive a $600 discount off the registration fee with the source code:
> SFAD
> http://p.sf.net/sfu/XcvMzF8H
> _______________________________________________
> msn-proxy-devel mailing list
> msn...@li...
> https://lists.sourceforge.net/lists/listinfo/msn-proxy-devel
>
|
|
From: <lo...@us...> - 2009-03-04 00:43:44
|
Revision: 109
http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=109&view=rev
Author: loos-br
Date: 2009-03-04 00:43:41 +0000 (Wed, 04 Mar 2009)
Log Message:
-----------
Adicionado o comando PUT. Obrigado novamente Fabio.
Modified Paths:
--------------
trunk/command.c
trunk/msnp18.h
Modified: trunk/command.c
===================================================================
--- trunk/command.c 2009-03-02 22:04:39 UTC (rev 108)
+++ trunk/command.c 2009-03-04 00:43:41 UTC (rev 109)
@@ -74,6 +74,7 @@
strcasecmp((char *)cmd->cmd.s, "NFY") != 0 &&
strcasecmp((char *)cmd->cmd.s, "NOT") != 0 &&
strcasecmp((char *)cmd->cmd.s, "PAG") != 0 &&
+ strcasecmp((char *)cmd->cmd.s, "PUT") != 0 &&
strcasecmp((char *)cmd->cmd.s, "QRY") != 0 &&
strcasecmp((char *)cmd->cmd.s, "RML") != 0 &&
strcasecmp((char *)cmd->cmd.s, "UBM") != 0 &&
Modified: trunk/msnp18.h
===================================================================
--- trunk/msnp18.h 2009-03-02 22:04:39 UTC (rev 108)
+++ trunk/msnp18.h 2009-03-04 00:43:41 UTC (rev 109)
@@ -88,6 +88,7 @@
{ "OUT", 0, check_ok },
{ "PNG", 0, check_ok },
{ "PRP", 3, check_args },
+ { "PUT", 2, check_args },
{ "QRY", 3, check_args },
{ "RML", 2, check_args },
{ "URL", 0, msn_url },
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Fábio M. <ilu...@gm...> - 2009-03-03 14:34:23
|
[rod...@dc...] send to ns client ==> UBX
1:ali...@dc... <1%3Aa...@dc...>348
<Data><PSM>Dc Logistics
Brasil</PSM><CurrentMedia></CurrentMedia><MachineGuid>{769CB890-8B6C-4B33-80E7-6945F143FB5E}</MachineGuid><DDP></DDP><SignatureSound></SignatureSound><Scene></Scene><ColorScheme></ColorScheme><EndpointData
id="{769cb890-8b6c-4b33-80e7-6945f143fb5e}"><Capabilities>2788999212:48</Capabilities></EndpointData></Data>
[rod...@dc...] send to ns client ==> UBX
1:pau...@dc...<1%3Ap...@dc...>423
<Data><PSM></PSM><CurrentMedia>WMP\0Music\00\0{0} -
{1}\0\0\0\0\0</CurrentMedia><MachineGuid>{428AFB02-A8E6-4685-8C51-7FE3E808E6C8}</MachineGuid><DDP></DDP><SignatureSound></SignatureSound><Scene></Scene><ColorScheme></ColorScheme><EndpointData
id="{428afb02-a8e6-4685-8c51-7fe3e808e6c8}"><Capabilities>2788999212:48</Capabilities></EndpointData></Data>
[rod...@dc...] send to ns client ==> UBX
1:tat...@dc...<1%3At...@dc...>423
<Data><PSM></PSM><CurrentMedia>WMP\0Music\00\0{0} -
{1}\0\0\0\0\0</CurrentMedia><MachineGuid>{3D81F5CF-5F2A-4C33-BD19-88099076F139}</MachineGuid><DDP></DDP><SignatureSound></SignatureSound><Scene></Scene><ColorScheme></ColorScheme><EndpointData
id="{3d81f5cf-5f2a-4c33-bd19-88099076f139}"><Capabilities>2788999212:48</Capabilities></EndpointData></Data>
[rod...@dc...] send to ns client ==> UBX
1:mar...@dc... <1%3Am...@dc...>329
<Data><PSM></PSM><CurrentMedia></CurrentMedia><MachineGuid>{39A424EE-7D3E-47F1-BDDF-E694BFBCA10B}</MachineGuid><DDP></DDP><SignatureSound></SignatureSound><Scene></Scene><ColorScheme></ColorScheme><EndpointData
id="{39a424ee-7d3e-47f1-bddf-e694bfbca10b}"><Capabilities>2788999228:48</Capabilities></EndpointData></Data>
[rod...@dc...] send to ns client ==> UBX
1:fab...@dc...<1%3Af...@dc...>461
<Data><PSM>+55 41 3014-8509 // +55 41
9601-7091</PSM><CurrentMedia>WMP\0Music\00\0{0} -
{1}\0\0\0\0\0</CurrentMedia><MachineGuid>{BCE23CFC-BA6B-41E3-9E79-B8B948D11EDA}</MachineGuid><DDP></DDP><SignatureSound></SignatureSound><Scene></Scene><ColorScheme></ColorScheme><EndpointData
id="{bce23cfc-ba6b-41e3-9e79-b8b948d11eda}"><Capabilities>2788999212:48</Capabilities></EndpointData></Data>
[rod...@dc...] send to ns server ==> USR 12 SHA A
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTE2Ij8+DQo8U2lnbmVkVGlja2V0IHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHZlcj0iMSIga2V5VmVyPSIxIj4NCiAgPERhdGE+UEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVEUySWo4K0RRbzhWR2xqYTJWMElIaHRiRzV6T25oemFUMGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TVM5WVRVeFRZMmhsYldFdGFXNXpkR0Z1WTJVaUlIaHRiRzV6T25oelpEMGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TVM5WVRVeFRZMmhsYldFaVBnMEtJQ0E4UTJseVkyeGxJRWxrUFNJd01EQXdNREF3TUMwd01EQXdMVEF3TURBdE1EQXdPUzAyTlRabU5UbGtNVEUzTURBaUlFaHZjM1JsWkVSdmJXRnBiajBpYkdsMlpTNWpiMjBpSUM4K0RRb2dJRHhVVXo0eU1EQTVMVEF6TFRBelZERTBPak16T2pJM0xqYzNOemc1TlROYVBDOVVVejROQ2lBZ1BFTkpSRDR0TkRVNE9UWTFPVGd6T1RJd01Ea3pNVGszTVR3dlEwbEVQZzBLUEM5VWFXTnJaWFErPC9EYXRhPg0KICA8U2lnPmI3K2RJbVVhYW41TWI3T1I0MlV0U3J4MXYyQnJCSzBjQmk2a0Q3TEFIaDB0T1lzaEliZWJvejZEYnFvamhQRmlZMkViazVWNHNCT1l2YXVqUXpxQkloT29NS0VSbU50eEVmL2gwSGh6bEJHR2VCWk5sRnM3SUJ5cXVQcitKS1hXSlIzR2xET2hJakZhS1FzSklBSFlHVUlhWDFtSVZHNjNodEVjL1Rzc2FZYz08L1NpZz4NCjwvU2lnbmVkVGlja2V0Pg==
[rod...@dc...] send to ns client ==> USR 12 OK
rod...@dc... 1 0
[rod...@dc...] send to ns server ==> ADL 13 92
<ml l="1"><d n="live.com"><c n="00000000-0000-0000-0009-656f59d11700" l="3"
t="9"/></d></ml>
[rod...@dc...] send to ns client ==> FLN
1:rod...@dc...<1%3Ar...@dc...>
;via=9:000...@li...<9%3A0...@li...>0:0
[rod...@dc...] send to ns client ==> NLN NLN
1:rod...@dc...<1%3Ar...@dc...>
;via=9:000...@li...<9%3A0...@li...>
rod...@dc... 0:0 0
[rod...@dc...] send to ns client ==> NFY PUT 752
Routing: 1.0
To: 1:rod...@dc...<1%3Ar...@dc...>
;epid={23831493-07e3-43f5-a90c-973ab7225ea2}
From: 9:000...@li...<9%3A0...@li...>
Reliability: 1.0
Stream: 7
Segment: 0
Notification: 1.0
Content-Type: application/circles+xml
Content-Length: 426
Uri: /circle
NotifNum: 7
NotifType: Full
<circle><props><presence dtype="xml"><Data><UTL></UTL><MFN>DC Logistics
Brasil
CWB</MFN><PSM></PSM><CurrentMedia></CurrentMedia></Data></presence></props><roster><id>IM</id><user><id>
1:mar...@dc... <1%3Am...@dc...>
</id></user><user><id>1:fab...@dc...<1%3Af...@dc...>
</id></user><user><id>1:tat...@dc...<1%3At...@dc...>
</id></user><user><id>1:rod...@dc...<1%3Ar...@dc...>
</id></user></roster></circle>
[rod...@dc...] send to ns client ==> NLN NLN
1:fab...@dc...<1%3Af...@dc...>
;via=9:000...@li...<9%3A0...@li...>"Fabio%20Kamada%20/%20DC%20Logistics%20Cwb"
2788999212:48
%3Cmsnobj%20Creator%3D%22fabio.kamada%40dclogisticsbrasil.com
%22%20Type%3D%223%22%20SHA1D%3D%22%2FezNsiPf2vNDZE0JCKH4qRCAwes%3D%22%20Size%3D%2210479%22%20Location%3D%220%22%20Friendly%3D%22ZABjACAAdABlAHMAdABlAAAA%22%2F%3E
[rod...@dc...] send to ns client ==> UBX
1:fab...@dc...<1%3Af...@dc...>
;via=9:000...@li...<9%3A0...@li...>461
<Data><PSM>+55 41 3014-8509 // +55 41
9601-7091</PSM><CurrentMedia>WMP\0Music\00\0{0} -
{1}\0\0\0\0\0</CurrentMedia><MachineGuid>{BCE23CFC-BA6B-41E3-9E79-B8B948D11EDA}</MachineGuid><DDP></DDP><SignatureSound></SignatureSound><Scene></Scene><ColorScheme></ColorScheme><EndpointData
id="{bce23cfc-ba6b-41e3-9e79-b8b948d11eda}"><Capabilities>2788999212:48</Capabilities></EndpointData></Data>
null command buf: [PUT 14 399
Routing: 1.0
To: 9:000...@li...<9%3A0...@li...>
From: 1:rod...@dc...<1%3Ar...@dc...>
;epid={23831493-07e3-43f5-a90c-973ab7225ea2}
Reliability: 1.0
Stream: 0
Segment: 0
Publication: 1.0
Uri: /circ]
debug fail to read ns client command
SQL: (UPDATE contacts SET contact_status = 'OFF', contact_deny =
contact_deny & ~4194304 WHERE email = 'rod...@dc...')
SQL: (UPDATE users SET status = 'OFF' WHERE email = '
rod...@dc...')
2009/3/3 Luiz Otavio O Souza <lo...@gm...>
> >
> > Não resolveu.. Continua...
> > Mas agora ele caiu no..
> > null command buf: [PUT 14 399
>
> Fabio,
>
> Me envie mais detalhes desse comando (como vc fez da ultima vez) assim
> consigo identificar a direção deste comando (do cliente para o servidor ou
> vice-versa).
>
> Att.,
> Luiz
>
>
>
> ------------------------------------------------------------------------------
> Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco,
> CA
> -OSBC tackles the biggest issue in open source: Open Sourcing the
> Enterprise
> -Strategies to boost innovation and cut costs with open source
> participation
> -Receive a $600 discount off the registration fee with the source code:
> SFAD
> http://p.sf.net/sfu/XcvMzF8H
> _______________________________________________
> msn-proxy-devel mailing list
> msn...@li...
> https://lists.sourceforge.net/lists/listinfo/msn-proxy-devel
>
|
|
From: Luiz O. O S. <lo...@gm...> - 2009-03-03 12:29:50
|
> > Não resolveu.. Continua... > Mas agora ele caiu no.. > null command buf: [PUT 14 399 Fabio, Me envie mais detalhes desse comando (como vc fez da ultima vez) assim consigo identificar a direção deste comando (do cliente para o servidor ou vice-versa). Att., Luiz |
|
From: <leo...@us...> - 2009-03-02 22:04:43
|
Revision: 108
http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=108&view=rev
Author: leorogoski
Date: 2009-03-02 22:04:39 +0000 (Mon, 02 Mar 2009)
Log Message:
-----------
Ops!!
Removed Paths:
-------------
.settings/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <leo...@us...> - 2009-03-02 21:53:14
|
Revision: 107
http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=107&view=rev
Author: leorogoski
Date: 2009-03-02 21:53:04 +0000 (Mon, 02 Mar 2009)
Log Message:
-----------
- Corrigido mais memory leaks
Modified Paths:
--------------
trunk/client.h
trunk/msn-proxy.c
trunk/sb.h
trunk/server.h
trunk/user.c
Added Paths:
-----------
.settings/
Modified: trunk/client.h
===================================================================
--- trunk/client.h 2009-03-02 19:57:00 UTC (rev 106)
+++ trunk/client.h 2009-03-02 21:53:04 UTC (rev 107)
@@ -51,5 +51,6 @@
client_ *client_disconnect(client_ *client);
void real_client_disconnect(client_ *client);
void shift_client_commands(client_ *client, command *cmd);
+int client_flush_commands(client_ *client);
#endif
Modified: trunk/msn-proxy.c
===================================================================
--- trunk/msn-proxy.c 2009-03-02 19:57:00 UTC (rev 106)
+++ trunk/msn-proxy.c 2009-03-02 21:53:04 UTC (rev 107)
@@ -111,7 +111,7 @@
void sigdie(void) {
/* Exit with SUCCESS */
- die_suc("exiting msn-proxy!\n");
+ die_suc("Exit msn-proxy!\n");
}
Modified: trunk/sb.h
===================================================================
--- trunk/sb.h 2009-03-02 19:57:00 UTC (rev 106)
+++ trunk/sb.h 2009-03-02 21:53:04 UTC (rev 107)
@@ -40,5 +40,6 @@
int sb_iro(struct sb_ *sb, command *cmd, int args);
int msn_sb_post_bye(struct sb_ *sb, command *cmd, int args);
int msn_sb_cal(struct sb_ *sb, command *cmd, int args);
+struct sb_user_ *sb_user_free(struct sb_ *sb, struct sb_user_ *sb_user);
#endif
Modified: trunk/server.h
===================================================================
--- trunk/server.h 2009-03-02 19:57:00 UTC (rev 106)
+++ trunk/server.h 2009-03-02 21:53:04 UTC (rev 107)
@@ -56,5 +56,6 @@
void *arg);
void shift_server_commands(server_ *server, command *cmd);
int read_server_command(server_ *server, void (*sched_write)(), void *ev_write);
+int server_flush_commands(server_ *server);
#endif
Modified: trunk/user.c
===================================================================
--- trunk/user.c 2009-03-02 19:57:00 UTC (rev 106)
+++ trunk/user.c 2009-03-02 21:53:04 UTC (rev 107)
@@ -272,25 +272,45 @@
struct user_ *user;
struct user_ *next;
+ struct sb_ *sb;
+ struct sb_user_ *sb_user;
for (user = RB_MIN(users_, &users); user != NULL; user = next) {
next = RB_NEXT(users_, &users, user);
+
contacts_free(user);
- RB_REMOVE(users_, &users, user);
str_free(&user->addr);
str_free(&user->dn);
str_free(&user->email);
- str_free(user->ns.client->xfr);
+ str_free(&user->status);
+ server_flush_commands(user->ns.server);
str_free(&user->ns.server->host);
str_free(&user->ns.server->port);
- str_free(&user->ns.server->commands.buf);
- str_free(&user->ns.client->commands.buf);
- str_free(&user->status);
+ client_flush_commands(user->ns.client);
+
+ while (!LIST_EMPTY(&user->sbs)) {
+ sb = LIST_FIRST(&user->sbs);
+ sb_free_xfr(sb);
+ str_free(&sb->start);
+ server_flush_commands(sb->server);
+ str_free(&sb->server->host);
+ str_free(&sb->server->port);
+ client_flush_commands(sb->client);
+ free(sb->server);
+ free(sb->client);
+
+ while (!SLIST_EMPTY(&sb->sb_users)) {
+ sb_user = SLIST_FIRST(&sb->sb_users);
+ sb_user = sb_user_free(sb, sb_user);
+ }
+ LIST_REMOVE(sb, sb__);
+ free(sb);
+ }
+
free(user->ns.server);
free(user->ns.client);
+ RB_REMOVE(users_, &users, user);
free(user);
}
}
-
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Fábio M. <ilu...@gm...> - 2009-03-02 20:41:29
|
Não resolveu.. Continua...
Mas agora ele caiu no..
null command buf: [PUT 14 399
2009/3/2 Luiz Otavio O Souza <lo...@gm...>
> > command read buf: [NFY PUT 575
> > Routing: 1.0
> > To: 1:us...@do... <1%3Au...@do...>
> ;epid={0073530b-0f71-4e3d-b44e-ecdae6f48493}
> > From: 9:000...@li...<9%3A0...@li...>
> ...
> >
> > server_read_command cmd buf: [NFY PUT 575
> > Routing: 1.0
> > To: 1:us...@do... <1%3Au...@do...>;epid={0073530b-0]
> > debug: fail to read ns server command
> > SQL: (UPDATE contacts SET contact_status = 'OFF', contact_deny =
> > contact_deny & ~4194304 WHERE email = 'us...@do...')
> > SQL: (UPDATE users SET status = 'OFF' WHERE email = 'us...@do...
> ')
> >
> >
> > alguem ja pegou este erro?
>
> Por favor verifique se esse meu ultimo commit resolve o problema.
>
> Att.,
> Luiz
>
>
>
> ------------------------------------------------------------------------------
> Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco,
> CA
> -OSBC tackles the biggest issue in open source: Open Sourcing the
> Enterprise
> -Strategies to boost innovation and cut costs with open source
> participation
> -Receive a $600 discount off the registration fee with the source code:
> SFAD
> http://p.sf.net/sfu/XcvMzF8H
> _______________________________________________
> msn-proxy-devel mailing list
> msn...@li...
> https://lists.sourceforge.net/lists/listinfo/msn-proxy-devel
>
|
|
From: Luiz O. O S. <lo...@gm...> - 2009-03-02 20:01:50
|
> command read buf: [NFY PUT 575
> Routing: 1.0
> To: 1:us...@do...;epid={0073530b-0f71-4e3d-b44e-ecdae6f48493}
> From: 9:000...@li...
...
>
> server_read_command cmd buf: [NFY PUT 575
> Routing: 1.0
> To: 1:us...@do...;epid={0073530b-0]
> debug: fail to read ns server command
> SQL: (UPDATE contacts SET contact_status = 'OFF', contact_deny =
> contact_deny & ~4194304 WHERE email = 'us...@do...')
> SQL: (UPDATE users SET status = 'OFF' WHERE email = 'us...@do...')
>
>
> alguem ja pegou este erro?
Por favor verifique se esse meu ultimo commit resolve o problema.
Att.,
Luiz
|
|
From: <lo...@us...> - 2009-03-02 19:57:10
|
Revision: 106
http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=106&view=rev
Author: loos-br
Date: 2009-03-02 19:57:00 +0000 (Mon, 02 Mar 2009)
Log Message:
-----------
adiciona o comando NFY.
Modified Paths:
--------------
trunk/command.c
trunk/msnp18.h
Modified: trunk/command.c
===================================================================
--- trunk/command.c 2009-02-26 13:05:47 UTC (rev 105)
+++ trunk/command.c 2009-03-02 19:57:00 UTC (rev 106)
@@ -71,6 +71,7 @@
strcasecmp((char *)cmd->cmd.s, "FQY") != 0 &&
strcasecmp((char *)cmd->cmd.s, "GCF") != 0 &&
strcasecmp((char *)cmd->cmd.s, "MSG") != 0 &&
+ strcasecmp((char *)cmd->cmd.s, "NFY") != 0 &&
strcasecmp((char *)cmd->cmd.s, "NOT") != 0 &&
strcasecmp((char *)cmd->cmd.s, "PAG") != 0 &&
strcasecmp((char *)cmd->cmd.s, "QRY") != 0 &&
Modified: trunk/msnp18.h
===================================================================
--- trunk/msnp18.h 2009-02-26 13:05:47 UTC (rev 105)
+++ trunk/msnp18.h 2009-03-02 19:57:00 UTC (rev 106)
@@ -46,6 +46,7 @@
{ "FQY", 2, check_args },
{ "ILN", 0, msnp13_contact_initial_state },
{ "MSG", 3, check_args },
+ { "NFY", 2, check_args },
{ "NLN", 0, msn_contact_change },
{ "NOT", 1, check_args },
{ "OUT", 1, check_args },
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Fábio M. <ilu...@gm...> - 2009-03-02 16:48:20
|
command read buf: [NFY PUT 575
Routing: 1.0
To: 1:us...@do... <1%3Au...@do...>
;epid={0073530b-0f71-4e3d-b44e-ecdae6f48493}
From: 9:000...@li...<9%3A0...@li...>
Reliability: 1.0
Stream: 2
Segment: 0
Notification: 1.0
Content-Type: applicati]
command read buf: [Routing: 1.0
To: 1:us...@do... <1%3Au...@do...>
;epid={0073530b-0f71-4e3d-b44e-ecdae6f48493}
From: 9:000...@li...<9%3A0...@li...>
Reliability: 1.0
Stream: 2
Segment: 0
Notification: 1.0
Content-Type: applicati]
command read buf: [To: 1:us...@do... <1%3Au...@do...>
;epid={0073530b-0f71-4e3d-b44e-ecdae6f48493}
From: 9:000...@li...<9%3A0...@li...>
Reliability: 1.0
Stream: 2
Segment: 0
Notification: 1.0
Content-Type: applicati]
command read buf: [From:
9:000...@li...<9%3A0...@li...>
Reliability: 1.0
Stream: 2
Segment: 0
Notification: 1.0
Content-Type: applicati]
command read buf: [
Reliability: 1.0
Stream: 2
Segment: 0
Notification: 1.0
Content-Type: applicati]
null command buf: [NFY PUT 575
Routing: 1.0
To: 1:us...@do... <1%3Au...@do...>;epid={0073530b-0]
server_read_command cmd buf: [NFY PUT 575
Routing: 1.0
To: 1:us...@do... <1%3Au...@do...>;epid={0073530b-0]
debug: fail to read ns server command
SQL: (UPDATE contacts SET contact_status = 'OFF', contact_deny =
contact_deny & ~4194304 WHERE email = 'us...@do...')
SQL: (UPDATE users SET status = 'OFF' WHERE email = 'us...@do...')
alguem ja pegou este erro?
2009/2/26 <lo...@us...>
> Revision: 105
> http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=105&view=rev
> Author: loos-br
> Date: 2009-02-26 13:05:47 +0000 (Thu, 26 Feb 2009)
>
> Log Message:
> -----------
> mais um comando com payload... outro tipo de erro que parece nao
> interromper a conexao.
>
> Modified Paths:
> --------------
> trunk/check-cmd.c
> trunk/command.c
>
> Modified: trunk/check-cmd.c
> ===================================================================
> --- trunk/check-cmd.c 2009-02-11 19:04:58 UTC (rev 104)
> +++ trunk/check-cmd.c 2009-02-26 13:05:47 UTC (rev 105)
> @@ -87,8 +87,8 @@
> erro = strtoul((char *)cmd->cmd.s, &ep, 10);
> if (errno == 0 && *cmd->cmd.s && (ep && *ep == 0)) {
>
> - /* ignore the 241, 508 and 509 commands */
> - if (erro != 509 && erro != 508 && erro != 241) {
> + /* ignore the 241, 508, 509 and 511 commands */
> + if (erro != 511 && erro != 509 && erro != 508 && erro != 241) {
> log->debug("===> warning error received\n");
> return(ROK);
> }
>
> Modified: trunk/command.c
> ===================================================================
> --- trunk/command.c 2009-02-11 19:04:58 UTC (rev 104)
> +++ trunk/command.c 2009-02-26 13:05:47 UTC (rev 105)
> @@ -66,6 +66,7 @@
> if (strcasecmp((char *)cmd->cmd.s, "241") != 0 &&
> strcasecmp((char *)cmd->cmd.s, "508") != 0 &&
> strcasecmp((char *)cmd->cmd.s, "509") != 0 &&
> + strcasecmp((char *)cmd->cmd.s, "511") != 0 &&
> strcasecmp((char *)cmd->cmd.s, "ADL") != 0 &&
> strcasecmp((char *)cmd->cmd.s, "FQY") != 0 &&
> strcasecmp((char *)cmd->cmd.s, "GCF") != 0 &&
>
>
> This was sent by the SourceForge.net collaborative development platform,
> the world's largest Open Source development site.
>
>
> ------------------------------------------------------------------------------
> Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco,
> CA
> -OSBC tackles the biggest issue in open source: Open Sourcing the
> Enterprise
> -Strategies to boost innovation and cut costs with open source
> participation
> -Receive a $600 discount off the registration fee with the source code:
> SFAD
> http://p.sf.net/sfu/XcvMzF8H
> _______________________________________________
> msn-proxy-devel mailing list
> msn...@li...
> https://lists.sourceforge.net/lists/listinfo/msn-proxy-devel
>
|
|
From: <lo...@us...> - 2009-02-26 13:05:52
|
Revision: 105
http://msn-proxy.svn.sourceforge.net/msn-proxy/?rev=105&view=rev
Author: loos-br
Date: 2009-02-26 13:05:47 +0000 (Thu, 26 Feb 2009)
Log Message:
-----------
mais um comando com payload... outro tipo de erro que parece nao interromper a conexao.
Modified Paths:
--------------
trunk/check-cmd.c
trunk/command.c
Modified: trunk/check-cmd.c
===================================================================
--- trunk/check-cmd.c 2009-02-11 19:04:58 UTC (rev 104)
+++ trunk/check-cmd.c 2009-02-26 13:05:47 UTC (rev 105)
@@ -87,8 +87,8 @@
erro = strtoul((char *)cmd->cmd.s, &ep, 10);
if (errno == 0 && *cmd->cmd.s && (ep && *ep == 0)) {
- /* ignore the 241, 508 and 509 commands */
- if (erro != 509 && erro != 508 && erro != 241) {
+ /* ignore the 241, 508, 509 and 511 commands */
+ if (erro != 511 && erro != 509 && erro != 508 && erro != 241) {
log->debug("===> warning error received\n");
return(ROK);
}
Modified: trunk/command.c
===================================================================
--- trunk/command.c 2009-02-11 19:04:58 UTC (rev 104)
+++ trunk/command.c 2009-02-26 13:05:47 UTC (rev 105)
@@ -66,6 +66,7 @@
if (strcasecmp((char *)cmd->cmd.s, "241") != 0 &&
strcasecmp((char *)cmd->cmd.s, "508") != 0 &&
strcasecmp((char *)cmd->cmd.s, "509") != 0 &&
+ strcasecmp((char *)cmd->cmd.s, "511") != 0 &&
strcasecmp((char *)cmd->cmd.s, "ADL") != 0 &&
strcasecmp((char *)cmd->cmd.s, "FQY") != 0 &&
strcasecmp((char *)cmd->cmd.s, "GCF") != 0 &&
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Luiz O. O S. <lo...@gm...> - 2009-02-26 13:02:49
|
> Bom dia pessoal, > > Hoje me deparei com um problema, conversa de voz atrás do msn-proxy. > Notei que o cliente enviou um comando UBN e o servidor retornou um comando > UUN, o comando não foi aceito e trouxe resultado nulo. > > -- > Pierre Santana > System Administrator > Certified LPI Bom dia Pierre, (muitos dias depois...) Você não teria esse trecho do log (mais especificamente o comando UUN) ? Na versão do trunk já existe o suporte ao comando UUN em vários sentidos, eu precisaria confirmar se é o seu caso... Obrigado, Luiz |
|
From: Luiz O. O S. <lo...@gm...> - 2009-02-26 12:59:21
|
> A Microsoft disponibiliza algum link com as padronizações do protocolo do > MSN? ou tem que dar um tcpdump e catar na unha? > Acho que a atualização liberada ontem/hoje modificou o protocolo > novamente.. Não eu que tenha conhecimento... O proprio msn-proxy fornece um log dos comandos recebidos, normalmente ele mesmo dá a dica do que esta faltando. Eu fui _purista_ quando escrevi o msn-proxy, todo comando precisa estar relacionado para ser aceito, outra opção seria simplesmente deixar passar os comandos que não nos dizem respeito, isso facilitaria bastante esse tipo de pequenas mudanças. De qualquer maneira há uma situação (comandos com payload) que sempre vai necessitar de um conhecimento prévio do comando, pois parece não haver outra maneira de identificar comandos com e sem payload e sem esse informação não é possível fazer um parse adequado dos dados. Documentações não oficiais ainda estão documentando o msnp15... a ms parece que faz de propósito, cada vez que a gente corrige tudo aqui eles mudam alguma coisa lá :) []'s Luiz |