Thu Nov 21 23:56:29 2024
EVENTS
 FREE
SOFTWARE
INSTITUTE

POLITICS
JOBS
MEMBERS'
CORNER

MAILING
LIST

NYLXS Mailing Lists and Archives
NYLXS Members have a lot to say and share but we don't keep many secrets. Join the Hangout Mailing List and say your peice.

DATE 2013-06-01

HANGOUT

2024-11-21 | 2024-10-21 | 2024-09-21 | 2024-08-21 | 2024-07-21 | 2024-06-21 | 2024-05-21 | 2024-04-21 | 2024-03-21 | 2024-02-21 | 2024-01-21 | 2023-12-21 | 2023-11-21 | 2023-10-21 | 2023-09-21 | 2023-08-21 | 2023-07-21 | 2023-06-21 | 2023-05-21 | 2023-04-21 | 2023-03-21 | 2023-02-21 | 2023-01-21 | 2022-12-21 | 2022-11-21 | 2022-10-21 | 2022-09-21 | 2022-08-21 | 2022-07-21 | 2022-06-21 | 2022-05-21 | 2022-04-21 | 2022-03-21 | 2022-02-21 | 2022-01-21 | 2021-12-21 | 2021-11-21 | 2021-10-21 | 2021-09-21 | 2021-08-21 | 2021-07-21 | 2021-06-21 | 2021-05-21 | 2021-04-21 | 2021-03-21 | 2021-02-21 | 2021-01-21 | 2020-12-21 | 2020-11-21 | 2020-10-21 | 2020-09-21 | 2020-08-21 | 2020-07-21 | 2020-06-21 | 2020-05-21 | 2020-04-21 | 2020-03-21 | 2020-02-21 | 2020-01-21 | 2019-12-21 | 2019-11-21 | 2019-10-21 | 2019-09-21 | 2019-08-21 | 2019-07-21 | 2019-06-21 | 2019-05-21 | 2019-04-21 | 2019-03-21 | 2019-02-21 | 2019-01-21 | 2018-12-21 | 2018-11-21 | 2018-10-21 | 2018-09-21 | 2018-08-21 | 2018-07-21 | 2018-06-21 | 2018-05-21 | 2018-04-21 | 2018-03-21 | 2018-02-21 | 2018-01-21 | 2017-12-21 | 2017-11-21 | 2017-10-21 | 2017-09-21 | 2017-08-21 | 2017-07-21 | 2017-06-21 | 2017-05-21 | 2017-04-21 | 2017-03-21 | 2017-02-21 | 2017-01-21 | 2016-12-21 | 2016-11-21 | 2016-10-21 | 2016-09-21 | 2016-08-21 | 2016-07-21 | 2016-06-21 | 2016-05-21 | 2016-04-21 | 2016-03-21 | 2016-02-21 | 2016-01-21 | 2015-12-21 | 2015-11-21 | 2015-10-21 | 2015-09-21 | 2015-08-21 | 2015-07-21 | 2015-06-21 | 2015-05-21 | 2015-04-21 | 2015-03-21 | 2015-02-21 | 2015-01-21 | 2014-12-21 | 2014-11-21 | 2014-10-21 | 2014-09-21 | 2014-08-21 | 2014-07-21 | 2014-06-21 | 2014-05-21 | 2014-04-21 | 2014-03-21 | 2014-02-21 | 2014-01-21 | 2013-12-21 | 2013-11-21 | 2013-10-21 | 2013-09-21 | 2013-08-21 | 2013-07-21 | 2013-06-21 | 2013-05-21 | 2013-04-21 | 2013-03-21 | 2013-02-21 | 2013-01-21 | 2012-12-21 | 2012-11-21 | 2012-10-21 | 2012-09-21 | 2012-08-21 | 2012-07-21 | 2012-06-21 | 2012-05-21 | 2012-04-21 | 2012-03-21 | 2012-02-21 | 2012-01-21 | 2011-12-21 | 2011-11-21 | 2011-10-21 | 2011-09-21 | 2011-08-21 | 2011-07-21 | 2011-06-21 | 2011-05-21 | 2011-04-21 | 2011-03-21 | 2011-02-21 | 2011-01-21 | 2010-12-21 | 2010-11-21 | 2010-10-21 | 2010-09-21 | 2010-08-21 | 2010-07-21 | 2010-06-21 | 2010-05-21 | 2010-04-21 | 2010-03-21 | 2010-02-21 | 2010-01-21 | 2009-12-21 | 2009-11-21 | 2009-10-21 | 2009-09-21 | 2009-08-21 | 2009-07-21 | 2009-06-21 | 2009-05-21 | 2009-04-21 | 2009-03-21 | 2009-02-21 | 2009-01-21 | 2008-12-21 | 2008-11-21 | 2008-10-21 | 2008-09-21 | 2008-08-21 | 2008-07-21 | 2008-06-21 | 2008-05-21 | 2008-04-21 | 2008-03-21 | 2008-02-21 | 2008-01-21 | 2007-12-21 | 2007-11-21 | 2007-10-21 | 2007-09-21 | 2007-08-21 | 2007-07-21 | 2007-06-21 | 2007-05-21 | 2007-04-21 | 2007-03-21 | 2007-02-21 | 2007-01-21 | 2006-12-21 | 2006-11-21 | 2006-10-21 | 2006-09-21 | 2006-08-21 | 2006-07-21 | 2006-06-21 | 2006-05-21 | 2006-04-21 | 2006-03-21 | 2006-02-21 | 2006-01-21 | 2005-12-21 | 2005-11-21 | 2005-10-21 | 2005-09-21 | 2005-08-21 | 2005-07-21 | 2005-06-21 | 2005-05-21 | 2005-04-21 | 2005-03-21 | 2005-02-21 | 2005-01-21 | 2004-12-21 | 2004-11-21 | 2004-10-21 | 2004-09-21 | 2004-08-21 | 2004-07-21 | 2004-06-21 | 2004-05-21 | 2004-04-21 | 2004-03-21 | 2004-02-21 | 2004-01-21 | 2003-12-21 | 2003-11-21 | 2003-10-21 | 2003-09-21 | 2003-08-21 | 2003-07-21 | 2003-06-21 | 2003-05-21 | 2003-04-21 | 2003-03-21 | 2003-02-21 | 2003-01-21 | 2002-12-21 | 2002-11-21 | 2002-10-21 | 2002-09-21 | 2002-08-21 | 2002-07-21 | 2002-06-21 | 2002-05-21 | 2002-04-21 | 2002-03-21 | 2002-02-21 | 2002-01-21 | 2001-12-21 | 2001-11-21 | 2001-10-21 | 2001-09-21 | 2001-08-21 | 2001-07-21 | 2001-06-21 | 2001-05-21 | 2001-04-21 | 2001-03-21 | 2001-02-21 | 2001-01-21 | 2000-12-21 | 2000-11-21 | 2000-10-21 | 2000-09-21 | 2000-08-21 | 2000-07-21 | 2000-06-21 | 2000-05-21 | 2000-04-21 | 2000-03-21 | 2000-02-21 | 2000-01-21 | 1999-12-21

Key: Value:

Key: Value:

MESSAGE
DATE 2013-06-15
FROM Ruben Safir
SUBJECT Subject: [NYLXS - HANGOUT] (fwd) HTTP POST for file upload
-- forwarded message --
Path: reader1.panix.com!panix!newsfeed-00.mathworks.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: Josef Moellers
Newsgroups: comp.os.linux.networking
Subject: HTTP POST for file upload
Date: Wed, 05 Jun 2013 19:40:19 +0200
Lines: 241
Message-ID:
Reply-To: Josef Moellers
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Trace: individual.net XMgqfpANMtUTxY8saW0LRg5zcjvBpdzKnZBhauKV6Psi/XbJgk
Cancel-Lock: sha1:ShG1D88XLpzXvQEp11ruN8nrW/A=
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130510 Thunderbird/17.0.6
X-Enigmail-Version: 1.5.1
Xref: panix comp.os.linux.networking:496446

Hi,

I'm trying to extend an application to upload result files to a web
server using HTMP POST. By and large it works but the last couple of
bytes (the last line, to be precise) does not show up in the received
data. Maybe someone more knowing than I has an idea what I'm doing wrong.

Thanks in advance,

Josef


Here's my code:

# include
# include
# include
# include
# include
# include
# include
# include

int upload(char *archive_name, char *local_name, char *remote_name, char
*servname);
static ssize_t writen(int sd, void *ptr, size_t nbytes);
static ssize_t readline(int sd, void *ptr, size_t maxlen);

char servname[] = "de2server";
char hostname[128];
/*
* upload
*/
int
main(int argc, char *argv[])
{
if (argc != 4)
{
fprintf(stderr, "usage: %s \n",
argv[0]);
exit(1);
}
gethostname(hostname, sizeof(hostname));
upload(argv[1], argv[2], argv[3], servname);
}

void
pr_inet(char **listptr, int length)
{
struct in_addr *ptr;
while ((ptr = (struct in_addr *) *listptr++) != NULL)
printf(" %s\n", inet_ntoa(*ptr));
}
int
upload(char *archive_name, char *local_name, char *remote_name, char
*servname)
{
int sd;
struct sockaddr_in servaddr;
struct hostent *he;
FILE *src, *tmpfp;
char buffer[BUFSIZ];
char boundary[128];
char line[256];
size_t nread, content_length;

if ((he = gethostbyname(servname)) == NULL)
{
fprintf(stderr, "Cannot find %s\n", servname);
return 0;
}
pr_inet(he->h_addr_list, he->h_length);

if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
perror("socket");
return 0;
}

memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(80); /* Web port */
memcpy(&servaddr.sin_addr, he->h_addr, he->h_length);

if (connect(sd, (struct sockaddr *)&servaddr, sizeof(servaddr)) == -1)
{
perror("connect");
close(sd);
return 0;
}

/* Let's assemble the body in a file so we can determine the
Content-Length */
if ((src = fopen(local_name, "r")) == NULL)
{
perror(local_name);
close(sd);
return 0;
}
if ((tmpfp = tmpfile()) == NULL)
{
perror("tmpfile");
close(sd);
fclose(src);
return 0;
}

snprintf(boundary, sizeof(boundary),
"WebKitFormBoundaryePkpFF7tjBAqx29L");
content_length = 0;
content_length += fprintf(tmpfp, "\r\n"); /* This belongs to the
content */
content_length += fprintf(tmpfp, "------%s\r\n", boundary);
content_length += fprintf(tmpfp, "Content-Disposition: form-data;
name=\"archive_name\"\r\n");
content_length += fprintf(tmpfp, "\r\n");
content_length += fprintf(tmpfp, "%s\r\n", archive_name);
content_length += fprintf(tmpfp, "------%s\r\n", boundary);
content_length += fprintf(tmpfp, "Content-Disposition: form-data;
name=\"destination_name\"\r\n");
content_length += fprintf(tmpfp, "\r\n");
content_length += fprintf(tmpfp, "%s\r\n", remote_name);
content_length += fprintf(tmpfp, "------%s\r\n", boundary);
content_length += fprintf(tmpfp, "Content-Disposition: form-data;
name=\"file_contents\"; filename=\"%s\"\r\n", local_name);
content_length += fprintf(tmpfp, "Content-Type:
application/x-object\r\n");
content_length += fprintf(tmpfp, "\r\n");
while ((nread = fread(buffer, 1, sizeof(buffer), src)) > 0)
{
fwrite(buffer, 1, nread, tmpfp);
content_length += nread;
}
content_length += fprintf(tmpfp, "------%s--\r\n", boundary);
fprintf(stderr, "content_length=%u, file length=%u\n",
content_length, ftell(tmpfp));
fclose(src); /* We don't need that any more */

/* Now send request */
snprintf(line, sizeof(line), "POST
/cgi-bin/zip.pl?upload_progress_id=12344 HTTP/1.1\r\n");
writen(sd, line, strlen(line));
snprintf(line, sizeof(line), "Host: %s\r\n", hostname);
writen(sd, line, strlen(line));
snprintf(line, sizeof(line), "Content-Length: %u\r\n", content_length);
writen(sd, line, strlen(line));
snprintf(line, sizeof(line), "Origin: http://%s\r\n", hostname);
writen(sd, line, strlen(line));
snprintf(line, sizeof(line), "Content-Type: multipart/form-data;
boundary=----%s\r\n", boundary);
writen(sd, line, strlen(line));
/* Copy file to sd */
rewind(tmpfp);
while ((nread = fread(buffer, 1, sizeof(buffer), tmpfp)) > 0)
writen(sd, buffer, nread);
/*
* Now await response
*/
while (readline(sd, line, sizeof(line)))
fprintf(stderr, ">>%s", line);

close(sd);
fclose(tmpfp);

return 1;
}

static ssize_t
writen(int sd, void *ptr, size_t nbytes)
{
ssize_t nleft, nwritten;
fd_set writefds;
struct timeval tensec;

for (nleft = nbytes; nleft > 0; )
{
/* Wait up to 10s for permission to write, then give up */

FD_ZERO(&writefds);
FD_SET(sd, &writefds);
tensec.tv_sec = 10;
tensec.tv_usec = 0;
if (select(sd+1, NULL, &writefds, NULL, &tensec) != 1)
nwritten = -1;
else
nwritten = write(sd, ptr, nleft);

if (nwritten == -1)
return -1;
nleft -= nwritten;
ptr += nwritten;
}

return nbytes - nleft;
}

static ssize_t
readline(int sd, void *ptr, size_t maxlen)
{
char *sp = ptr;
ssize_t rc;
int n;
char c;
fd_set readfds;
struct timeval tensec;

for (n = 1; n < maxlen; n++)
{
/* Wait up to 10s for data, then give up */

FD_ZERO(&readfds);
FD_SET(sd, &readfds);
tensec.tv_sec = 10;
tensec.tv_usec = 0;
if (select(sd+1, &readfds, NULL, NULL, &tensec) != 1)
rc = 0;
else
rc = read(sd, &c, 1);

if (rc == 1)
{
*sp++ = c;
if (c == '\n')
break;
}
else if (rc == 0) /* EOF */
{
if (n == 1)
return 0;
else
break;
}
else
return -1;
}

*sp = '\0';

return n;
}
-eoc-
-- end of forwarded message --

  1. 2013-06-02 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] Re: Pharmacy Help (Bed-Sty)
  2. 2013-06-04 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] (fwd) NY Mets Finances
  3. 2013-06-04 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] Linux on the desktop
  4. 2013-06-05 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] [ruben-at-mrbrklyn.com: Gerrymandering]
  5. 2013-06-06 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] hardware repair
  6. 2013-06-06 Kevin Mark <kevin.mark-at-verizon.net> Re: [NYLXS - HANGOUT] hardware repair
  7. 2013-06-06 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  8. 2013-06-06 From: "Paul Robert Marino" <prmarino1-at-gmail.com> Re: [NYLXS - HANGOUT] hardware repair
  9. 2013-06-07 Kevin Mark <kevin.mark-at-verizon.net> Re: [NYLXS - HANGOUT] hardware repair
  10. 2013-06-07 Ruben <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] Be Happy - we aren't on verizon
  11. 2013-06-07 Ruben <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] Be Happy - we aren't on verizon
  12. 2013-06-07 Ruben <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] Be Happy - we aren't on verizon
  13. 2013-06-07 Ruben <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] Be Happy - we aren't on verizon
  14. 2013-06-07 Ruben <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] your phone service and you
  15. 2013-06-07 einker <eminker-at-gmail.com> Re: [NYLXS - HANGOUT] your phone service and you
  16. 2013-06-07 Ruben <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] your phone service and you
  17. 2013-06-07 Ruben <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] Put your business in the cloud!
  18. 2013-06-08 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  19. 2013-06-08 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  20. 2013-06-09 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  21. 2013-06-09 Robert Menes <viewtiful.icchan-at-gmail.com> Re: [NYLXS - HANGOUT] hardware repair
  22. 2013-06-09 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  23. 2013-06-09 From: "Paul Robert Marino" <prmarino1-at-gmail.com> Re: [NYLXS - HANGOUT] hardware repair
  24. 2013-06-09 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  25. 2013-06-09 From: "Paul Robert Marino" <prmarino1-at-gmail.com> Re: [NYLXS - HANGOUT] hardware repair
  26. 2013-06-09 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  27. 2013-06-09 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  28. 2013-06-09 Paul Robert Marino <prmarino1-at-gmail.com> Re: [NYLXS - HANGOUT] hardware repair
  29. 2013-06-09 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  30. 2013-06-09 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  31. 2013-06-09 Paul Robert Marino <prmarino1-at-gmail.com> Re: [NYLXS - HANGOUT] hardware repair
  32. 2013-06-10 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  33. 2013-06-10 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] [ruben-at-mrbrklyn.com: Re: sort bug?]
  34. 2013-06-10 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] [ruben-at-mrbrklyn.com: Re: sort bug?]
  35. 2013-06-10 Paul Robert Marino <prmarino1-at-gmail.com> Re: [NYLXS - HANGOUT] hardware repair
  36. 2013-06-10 Paul Robert Marino <prmarino1-at-gmail.com> Re: [NYLXS - HANGOUT] hardware repair
  37. 2013-06-10 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  38. 2013-06-10 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  39. 2013-06-10 From: "Paul Robert Marino" <prmarino1-at-gmail.com> Re: [NYLXS - HANGOUT] hardware repair
  40. 2013-06-10 einker <eminker-at-gmail.com> Re: [NYLXS - HANGOUT] hardware repair
  41. 2013-06-10 From: "Paul Robert Marino" <prmarino1-at-gmail.com> Re: [NYLXS - HANGOUT] hardware repair
  42. 2013-06-10 Kevin Mark <kevin.mark-at-verizon.net> Re: [NYLXS - HANGOUT] hardware repair
  43. 2013-06-10 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  44. 2013-06-10 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  45. 2013-06-10 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  46. 2013-06-11 From: "Paul Robert Marino" <prmarino1-at-gmail.com> Re: [NYLXS - HANGOUT] hardware repair
  47. 2013-06-11 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  48. 2013-06-11 From: "Paul Robert Marino" <prmarino1-at-gmail.com> Re: [NYLXS - HANGOUT] hardware repair
  49. 2013-06-11 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  50. 2013-06-11 Paul Robert Marino <prmarino1-at-gmail.com> Re: [NYLXS - HANGOUT] hardware repair
  51. 2013-06-11 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] html problem
  52. 2013-06-11 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  53. 2013-06-11 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] html problem
  54. 2013-06-11 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  55. 2013-06-11 Paul Robert Marino <prmarino1-at-gmail.com> Re: [NYLXS - HANGOUT] hardware repair
  56. 2013-06-11 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] hardware repair
  57. 2013-06-13 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] televsion content wars
  58. 2013-06-13 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] Troubles with hotel arraingments
  59. 2013-06-14 eminker-at-gmail.com Re: [NYLXS - HANGOUT] Troubles with hotel arraingments
  60. 2013-06-14 eminker-at-gmail.com Re: [NYLXS - HANGOUT] Troubles with hotel arraingments
  61. 2013-06-14 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] Troubles with hotel arraingments
  62. 2013-06-14 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] Troubles with hotel arraingments
  63. 2013-06-14 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] Troubles with hotel arraingments
  64. 2013-06-14 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] Troubles with hotel arraingments
  65. 2013-06-14 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] secure mail - and security
  66. 2013-06-15 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] (fwd) Re: question about forwarding and sysfs entries
  67. 2013-06-15 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] (fwd) HTTP POST for file upload
  68. 2013-06-15 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] (fwd) Re: HTTP POST for file upload
  69. 2013-06-16 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] fishing dates
  70. 2013-06-16 Ruben <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] So while you were away this weekend
  71. 2013-06-16 Ruben <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] Fwd: Re: [NYLXS] Secure your email. Get your own email server and...
  72. 2013-06-16 Ruben <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] So while you were away this weekend
  73. 2013-06-16 Ruben <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] So while you were away this weekend
  74. 2013-06-16 Ruben <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] So while you were away this weekend
  75. 2013-06-16 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] biometrics - I can see you!!
  76. 2013-06-20 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] image galleries for the web
  77. 2013-06-21 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] image galleries - a REAL HACK
  78. 2013-06-21 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] A little fraud never hurt anyone
  79. 2013-06-21 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] github
  80. 2013-06-21 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] employment help
  81. 2013-06-23 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] kill count
  82. 2013-06-23 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] kill count
  83. 2013-06-25 Ruben Safir <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] what is the government doing?
  84. 2013-06-27 From: "Michael L. Richardson" <mlr52-at-michaellrichardson.com> Subject: [NYLXS - HANGOUT] Any thoughts on this, Sacramento State 8008 computer, the world's-first
  85. 2013-06-28 Ruben <mrbrklyn-at-panix.com> Subject: [NYLXS - HANGOUT] Fwd: New job Kansas City Perl developer roles available
  86. 2013-06-28 einker <eminker-at-gmail.com> Subject: [NYLXS - HANGOUT] MySQL mistake is a wake-up call on open source ownership
  87. 2013-06-30 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] MySQL mistake is a wake-up call on open
  88. 2013-06-30 Ruben Safir <mrbrklyn-at-panix.com> Re: [NYLXS - HANGOUT] MySQL mistake is a wake-up call on open
  89. 2013-06-30 From: "Paul Robert Marino" <prmarino1-at-gmail.com> Re: [NYLXS - HANGOUT] MySQL mistake is a wake-up call on open source ownership
  90. 2013-06-30 From: "Paul Robert Marino" <prmarino1-at-gmail.com> Re: [NYLXS - HANGOUT] MySQL mistake is a wake-up call on open source ownership

NYLXS are Do'ers and the first step of Doing is Joining! Join NYLXS and make a difference in your community today!