Home | History | Annotate | Download | only in libxml2

Lines Matching refs:ctxt

302     xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
308 if (ctxt->protocol != NULL) {
309 xmlFree(ctxt->protocol);
310 ctxt->protocol = NULL;
312 if (ctxt->hostname != NULL) {
313 xmlFree(ctxt->hostname);
314 ctxt->hostname = NULL;
316 if (ctxt->path != NULL) {
317 xmlFree(ctxt->path);
318 ctxt->path = NULL;
331 ctxt->protocol = xmlMemStrdup(uri->scheme);
332 ctxt->hostname = xmlMemStrdup(uri->server);
334 ctxt->path = xmlMemStrdup(uri->path);
336 ctxt->path = xmlMemStrdup("/");
338 ctxt->port = uri->port;
343 ctxt->user = xmlMemStrdup(uri->user);
345 ctxt->user = (char *)xmlStrndup((xmlChar *)uri->user,
347 ctxt->passwd = xmlMemStrdup(cptr+1);
371 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
376 if (ctxt == NULL)
378 if (ctxt->protocol == NULL)
380 if (ctxt->hostname == NULL)
391 if ((strcmp(ctxt->protocol, uri->scheme)) ||
392 (strcmp(ctxt->hostname, uri->server)) ||
393 ((uri->port != 0) && (ctxt->port != uri->port))) {
399 ctxt->port = uri->port;
401 if (ctxt->path != NULL) {
402 xmlFree(ctxt->path);
403 ctxt->path = NULL;
407 ctxt->path = xmlMemStrdup("/");
409 ctxt->path = xmlMemStrdup(uri->path);
509 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
510 if (ctxt == NULL) return;
511 if (ctxt->hostname != NULL) xmlFree(ctxt->hostname);
512 if (ctxt->protocol != NULL) xmlFree(ctxt->protocol);
513 if (ctxt->path != NULL) xmlFree(ctxt->path);
514 ctxt->passive = 1;
515 if (ctxt->controlFd != INVALID_SOCKET) closesocket(ctxt->controlFd);
516 ctxt->controlFd = INVALID_SOCKET;
517 ctxt->controlBufIndex = -1;
518 ctxt->controlBufUsed = -1;
519 xmlFree(ctxt);
567 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
571 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
573 if ((ctxt->controlBufIndex < 0) || (ctxt->controlBufIndex > FTP_BUF_SIZE)) {
577 ctxt->controlBufIndex);
582 if ((ctxt->controlBufUsed < 0) || (ctxt->controlBufUsed > FTP_BUF_SIZE)) {
586 ctxt->controlBufUsed);
590 if (ctxt->controlBufIndex > ctxt->controlBufUsed) {
594 ctxt->controlBufIndex, ctxt->controlBufUsed);
602 if (ctxt->controlBufIndex > 0) {
603 memmove(&ctxt->controlBuf[0], &ctxt->controlBuf[ctxt->controlBufIndex],
604 ctxt->controlBufUsed - ctxt->controlBufIndex);
605 ctxt->controlBufUsed -= ctxt->controlBufIndex;
606 ctxt->controlBufIndex = 0;
608 size = FTP_BUF_SIZE - ctxt->controlBufUsed;
612 "xmlNanoFTPGetMore : buffer full %d \n", ctxt->controlBufUsed);
620 if ((len = recv(ctxt->controlFd, &ctxt->controlBuf[ctxt->controlBufIndex],
623 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
624 ctxt->controlFd = INVALID_SOCKET;
630 ctxt->controlBufUsed, ctxt->controlBufUsed + len);
632 ctxt->controlBufUsed += len;
633 ctxt->controlBuf[ctxt->controlBufUsed] = 0;
647 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
652 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
663 if ((ctxt->controlBufUsed == 0) && (len == 0)) {
666 ptr = &ctxt->controlBuf[ctxt->controlBufIndex];
667 end = &ctxt->controlBuf[ctxt->controlBufUsed];
683 ctxt->controlBufAnswer = ptr - ctxt->controlBuf;
691 ctxt->controlBufIndex = ctxt->controlBufUsed;
698 ctxt->controlBufIndex = ptr - ctxt->controlBuf;
700 ptr = &ctxt->controlBuf[ctxt->controlBufIndex];
737 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
741 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
745 FD_SET(ctxt->controlFd, &rfd);
746 switch(select(ctxt->controlFd + 1, &rfd, NULL, NULL, &tv)) {
764 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
769 if (ctxt->user == NULL)
772 snprintf(buf, sizeof(buf), "USER %s\r\n", ctxt->user);
778 res = send(ctxt->controlFd, buf, len, 0);
792 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
797 if (ctxt->passwd == NULL)
800 snprintf(buf, sizeof(buf), "PASS %s\r\n", ctxt->passwd);
806 res = send(ctxt->controlFd, buf, len, 0);
826 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
830 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
837 res = send(ctxt->controlFd, buf, len, 0);
856 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
862 if (ctxt == NULL)
864 if (ctxt->hostname == NULL)
873 port = ctxt->port;
878 memset (&ctxt->ftpAddr, 0, sizeof(ctxt->ftpAddr));
895 if (getaddrinfo (ctxt->hostname, NULL, &hints, &result) != 0) {
910 if (tmp->ai_addrlen > sizeof(ctxt->ftpAddr)) {
915 memcpy (&ctxt->ftpAddr, tmp->ai_addr, tmp->ai_addrlen);
916 ((struct sockaddr_in6 *) &ctxt->ftpAddr)->sin6_port = htons (port);
917 ctxt->controlFd = socket (AF_INET6, SOCK_STREAM, 0);
920 memcpy (&ctxt->ftpAddr, tmp->ai_addr, tmp->ai_addrlen);
921 ((struct sockaddr_in *) &ctxt->ftpAddr)->sin_port = htons (port);
922 ctxt->controlFd = socket (AF_INET, SOCK_STREAM, 0);
933 hp = gethostbyname (ctxt->hostname);
939 sizeof(((struct sockaddr_in *)&ctxt->ftpAddr)->sin_addr)) {
947 ((struct sockaddr_in *)&ctxt->ftpAddr)->sin_family = AF_INET;
948 memcpy (&((struct sockaddr_in *)&ctxt->ftpAddr)->sin_addr,
950 ((struct sockaddr_in *)&ctxt->ftpAddr)->sin_port = (u_short)htons ((unsigned short)port);
951 ctxt->controlFd = socket (AF_INET, SOCK_STREAM, 0);
955 if (ctxt->controlFd == INVALID_SOCKET) {
963 if (connect(ctxt->controlFd, (struct sockaddr *) &ctxt->ftpAddr,
966 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
967 ctxt->controlFd = INVALID_SOCKET;
974 res = xmlNanoFTPGetResponse(ctxt);
976 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
977 ctxt->controlFd = INVALID_SOCKET;
1030 res = send(ctxt->controlFd, buf, len, 0);
1033 closesocket(ctxt->controlFd);
1034 ctxt->controlFd = INVALID_SOCKET;
1037 res = xmlNanoFTPGetResponse(ctxt);
1052 res = send(ctxt->controlFd, buf, len, 0);
1055 closesocket(ctxt->controlFd);
1056 ctxt->controlFd = INVALID_SOCKET;
1059 res = xmlNanoFTPGetResponse(ctxt);
1061 closesocket(ctxt->controlFd);
1062 ctxt->controlFd = INVALID_SOCKET;
1072 closesocket(ctxt->controlFd);
1073 ctxt->controlFd = INVALID_SOCKET;
1087 snprintf(buf, sizeof(buf), "SITE %s\r\n", ctxt->hostname);
1093 res = send(ctxt->controlFd, buf, len, 0);
1096 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1097 ctxt->controlFd = INVALID_SOCKET;
1100 res = xmlNanoFTPGetResponse(ctxt);
1107 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1108 ctxt->controlFd = INVALID_SOCKET;
1113 if (ctxt->user == NULL)
1115 ctxt->hostname);
1118 ctxt->user, ctxt->hostname);
1124 res = send(ctxt->controlFd, buf, len, 0);
1127 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1128 ctxt->controlFd = INVALID_SOCKET;
1131 res = xmlNanoFTPGetResponse(ctxt);
1137 if (ctxt->passwd == NULL)
1140 snprintf(buf, sizeof(buf), "PASS %s\r\n", ctxt->passwd);
1146 res = send(ctxt->controlFd, buf, len, 0);
1149 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1150 ctxt->controlFd = INVALID_SOCKET;
1153 res = xmlNanoFTPGetResponse(ctxt);
1160 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1161 ctxt->controlFd = INVALID_SOCKET;
1170 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1171 ctxt->controlFd = INVALID_SOCKET;
1178 res = xmlNanoFTPSendUser(ctxt);
1180 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1181 ctxt->controlFd = INVALID_SOCKET;
1184 res = xmlNanoFTPGetResponse(ctxt);
1195 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1196 ctxt->controlFd = INVALID_SOCKET;
1199 res = xmlNanoFTPSendPasswd(ctxt);
1201 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1202 ctxt->controlFd = INVALID_SOCKET;
1205 res = xmlNanoFTPGetResponse(ctxt);
1217 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1218 ctxt->controlFd = INVALID_SOCKET;
1237 xmlNanoFTPCtxtPtr ctxt;
1245 ctxt = (xmlNanoFTPCtxtPtr) xmlNanoFTPNewCtxt(NULL);
1246 ctxt->hostname = xmlMemStrdup(server);
1248 ctxt->port = port;
1249 res = xmlNanoFTPConnect(ctxt);
1251 xmlNanoFTPFreeCtxt(ctxt);
1254 return(ctxt);
1269 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1274 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
1290 res = send(ctxt->controlFd, buf, len, 0);
1295 res = xmlNanoFTPGetResponse(ctxt);
1318 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1323 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET) || (file == NULL)) return(-1);
1341 res = send(ctxt->controlFd, buf, len, 0);
1346 res = xmlNanoFTPGetResponse(ctxt);
1368 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1381 if (ctxt == NULL) return INVALID_SOCKET;
1385 if ((ctxt->ftpAddr).ss_family == AF_INET6) {
1386 ctxt->dataFd = socket (AF_INET6, SOCK_STREAM, IPPROTO_TCP);
1392 ctxt->dataFd = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
1397 if (ctxt->dataFd == INVALID_SOCKET) {
1402 if (ctxt->passive) {
1404 if ((ctxt->ftpAddr).ss_family == AF_INET6)
1413 res = send(ctxt->controlFd, buf, len, 0);
1416 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1422 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1428 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1429 ctxt->passive = 0;
1432 cur = &ctxt->controlBuf[ctxt->controlBufAnswer];
1435 if ((ctxt->ftpAddr).ss_family == AF_INET6) {
1439 if (ctxt->dataFd != INVALID_SOCKET) {
1440 closesocket (ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1444 memcpy (&((struct sockaddr_in6 *)&dataAddr)->sin6_addr, &((struct sockaddr_in6 *)&ctxt->ftpAddr)->sin6_addr, sizeof(struct in6_addr));
1454 if (ctxt->dataFd != INVALID_SOCKET) {
1455 closesocket (ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1464 if (connect(ctxt->dataFd, (struct sockaddr *) &dataAddr, dataAddrLen) < 0) {
1466 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1470 getsockname(ctxt->dataFd, (struct sockaddr *) &dataAddr, &dataAddrLen);
1472 if ((ctxt->ftpAddr).ss_family == AF_INET6)
1478 if (bind(ctxt->dataFd, (struct sockaddr *) &dataAddr, dataAddrLen) < 0) {
1480 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1483 getsockname(ctxt->dataFd, (struct sockaddr *) &dataAddr, &dataAddrLen);
1485 if (listen(ctxt->dataFd, 1) < 0) {
1487 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1491 if ((ctxt->ftpAddr).ss_family == AF_INET6) {
1514 res = send(ctxt->controlFd, buf, len, 0);
1517 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1520 res = xmlNanoFTPGetResponse(ctxt);
1522 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1526 return(ctxt->dataFd);
1541 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1546 if ((ctxt == NULL) || (ctxt->controlFd == INVALID_SOCKET)) return(-1);
1548 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1552 FD_SET(ctxt->controlFd, &rfd);
1554 FD_SET(ctxt->controlFd, &efd);
1555 res = select(ctxt->controlFd + 1, &rfd, NULL, &efd, &tv);
1560 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1568 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1570 res = xmlNanoFTPGetResponse(ctxt);
1572 closesocket(ctxt->controlFd); ctxt->controlFd = INVALID_SOCKET;
1721 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1728 if (ctxt == NULL) return (-1);
1730 if (xmlNanoFTPCwd(ctxt, ctxt->path) < 1)
1732 ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
1733 if (ctxt->dataFd == INVALID_SOCKET)
1738 if (xmlNanoFTPCwd(ctxt, ctxt->path) < 1)
1741 ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
1742 if (ctxt->dataFd == INVALID_SOCKET)
1751 res = send(ctxt->controlFd, buf, len, 0);
1754 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1757 res = xmlNanoFTPReadResponse(ctxt);
1759 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1767 FD_SET(ctxt->dataFd, &rfd);
1769 FD_SET(ctxt->dataFd, &efd);
1770 res = select(ctxt->dataFd + 1, &rfd, NULL, &efd, &tv);
1775 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1779 res = xmlNanoFTPCheckResponse(ctxt);
1781 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1782 ctxt->dataFd = INVALID_SOCKET;
1786 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1793 if ((len = recv(ctxt->dataFd, &buf[indx], sizeof(buf) - (indx + 1), 0)) < 0) {
1795 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1796 ctxt->dataFd = INVALID_SOCKET;
1813 xmlNanoFTPCloseConnection(ctxt);
1830 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1835 if ((filename == NULL) && (ctxt->path == NULL))
1837 ctxt->dataFd = xmlNanoFTPGetConnection(ctxt);
1838 if (ctxt->dataFd == INVALID_SOCKET)
1846 res = send(ctxt->controlFd, buf, len, 0);
1849 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1852 res = xmlNanoFTPReadResponse(ctxt);
1854 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1858 snprintf(buf, sizeof(buf), "RETR %s\r\n", ctxt->path);
1866 res = send(ctxt->controlFd, buf, len, 0);
1869 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1872 res = xmlNanoFTPReadResponse(ctxt);
1874 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1877 return(ctxt->dataFd);
1896 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1902 if (ctxt == NULL) return(-1);
1903 if ((filename == NULL) && (ctxt->path == NULL))
1907 if (xmlNanoFTPGetSocket(ctxt, filename) == INVALID_SOCKET)
1914 FD_SET(ctxt->dataFd, &rfd);
1915 res = select(ctxt->dataFd + 1, &rfd, NULL, NULL, &tv);
1920 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1924 res = xmlNanoFTPCheckResponse(ctxt);
1926 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1927 ctxt->dataFd = INVALID_SOCKET;
1931 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1937 if ((len = recv(ctxt->dataFd, buf, sizeof(buf), 0)) < 0) {
1940 closesocket(ctxt->dataFd); ctxt->dataFd = INVALID_SOCKET;
1946 return(xmlNanoFTPCloseConnection(ctxt));
1963 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
1966 if (ctxt->dataFd == INVALID_SOCKET) return(0);
1970 len = recv(ctxt
1974 xmlNanoFTPCloseConnection(ctxt);
1993 xmlNanoFTPCtxtPtr ctxt;
2000 ctxt = (xmlNanoFTPCtxtPtr) xmlNanoFTPNewCtxt(URL);
2001 if (ctxt == NULL) return(NULL);
2002 if (xmlNanoFTPConnect(ctxt) < 0) {
2003 xmlNanoFTPFreeCtxt(ctxt);
2006 sock = xmlNanoFTPGetSocket(ctxt, ctxt->path);
2008 xmlNanoFTPFreeCtxt(ctxt);
2011 return(ctxt);
2025 xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
2027 if (ctxt == NULL)
2030 if (ctxt->dataFd != INVALID_SOCKET) {
2031 closesocket(ctxt->dataFd);
2032 ctxt->dataFd = INVALID_SOCKET;
2034 if (ctxt->controlFd != INVALID_SOCKET) {
2035 xmlNanoFTPQuit(ctxt);
2036 closesocket(ctxt->controlFd);
2037 ctxt->controlFd = INVALID_SOCKET;
2039 xmlNanoFTPFreeCtxt(ctxt);
2067 void *ctxt;
2073 ctxt = xmlNanoFTPNewCtxt(argv[1]);
2074 if (xmlNanoFTPConnect(ctxt) < 0) {
2082 ctxt = xmlNanoFTPConnectTo("localhost", 0);
2083 if (ctxt == NULL) {
2088 xmlNanoFTPList(ctxt, ftpList, NULL, tstfile);
2091 if (xmlNanoFTPGet(ctxt, ftpData, (void *) output, tstfile) < 0)
2096 xmlNanoFTPClose(ctxt);